SSL et le mythe de sécurité

Il y a un mythe persistant sur le SSL. La prémisse veut que si on utilise de la cryptographie pour protéger la communication, tous les problèmes de sécurité seront réglés. Cette croyance est très forte chez les non-patriciens (la vue d’un cadenas sur une page web est souvent suffisante pour créer une impression de confiance) et étonnamment chez plusieurs praticiens en sécurité. Même Bruce Schneier y croyait dur comme fer lorsqu’il a écrit “Cryptography Applied”. Il s’est vite rendu compte que la sécurité est beaucoup plus complexe et comme il est possible de voir dans ses livres subséquents, son regard a évolué. On parle ici du milieu des années 90!

Le chiffrement de la communication sert à protéger le contenu contre les yeux trop curieux de Ève. Dans le cas d’une communication web, le protocole utilisé (SSL ou TLS) permet d’encapsuler le message à protéger dans une enveloppe opaque (chiffrement). Seules la source et la destination de la communication peuvent en voir le contenu, dans ce cas-ci le navigateur web et le serveur web (il existe des scénarios plus complexes avec des mandataires et accélérateurs, mais aux fins de l’explication je vais me limiter à une communication simple). Accessoirement, il est possible de valider l’identité de la source et/ou de la destination. Dans le monde web, seul le serveur web est authentifié, par la comparaison du nom de domaine dans le certificat et celui qui est accédé réellement.

Maintenant, une mesure de protection sert à se prémunir contre une menace. Dans le cas du chiffrement d’une communication web, ça sert à ce que l’information ne soit pas accessible par un tiers non autorisé, Ève. Jusque-là tout va bien. Cela dit, il faut placer les choses en contexte. Pour que Ève soit en mesure d’intercepter la communication, faut-il qu’elle soit capable de se placer entre la source et la destination. Le cas le plus courant est par les réseaux sans fil non protégé. Dans ce cas, il est primordial que la communication soit chiffrée (voir Cachez cette sécurité que je ne saurais voir), puisque le WiFi est un médium partagé, aka toutes les communications sont accessibles à tous les terminaux qui sont dans le champ des ondes ou branché sur le médium partagé (Ethernet non commuté). Dans le cas d’une communication faite sur un réseau n’ayant pas un médium partagé, il est difficile de se placer pour voir la communication et c'est carrément illégal de le faire (faite la lecture de l’article 184 du Code criminel du Canada, pour vous éviter d’aller croupir 5 ans en prison). Dans les scénarios, il faut aussi considérer la valeur de l’information qui est transitée, puisque si c'est seulement un formulaire de commentaires, personne ne mettra d’énergie pour intercepter spécifiquement cette information. Si c'est un site peu connu, il est peu probable que quelqu'un s’y intéresse. Dans le cas de site plus connu, comme Facebook par exemple, il est probable que des personnes soient tentées d’intercepter les communications pour hijacker la session, comme l’a si bien démontré Firesheep.

La sécurité c'est un ensemble de choses, qui pris individuellement ne serve pas à grand-chose. Rien n’est totalement noir ou blanc en sécurité.