La sortie publique il y a quelques semaine de l’existence de la faille de la librairie du OpenSSL, baptisé “heartbleed” m’a rappelé que depuis un certains temps je voulais écrire sur le SSL et par la même occasion faire l’oiseau de malheur sur son future. Donc laisser moi ouvrir ma prophétie sur cette affirmation :
Oyez Oyez brave gens! Sachez que le système d’encryptage le plus populaire sur Internet est promue à l’échec!
Non cet article n’est pas dédié à “heartbleed” mais bien au cul sac dans lequel le SSL est en train de s’enliser présentement. Mais qu’est-ce que je suis en train de raconter? Je ne vous ferait pas un historique sur le SSL, mais si vous lisez cet article, vous devez bien réaliser ou savoir déjà à quel point les systèmes de cryptage sur Internet sont très populaire. Moi-même j’en suis un fervent adepte et j’ai un certains plaisirs lorsque, chaque fois, je créé un certificat pour l’utiliser dans un système quelconque, tel que des services web ou courriels que je participe à améliorer la sécurité, en générale, des communications sur Internet. Et pourtant, je ne peux m’empêcher d’avoir des frissons à l’idée que tout le travail que je fais présentement est vain et qu’il faudra probablement refaire tout le travail d’ici quelques années, si ce n’est que quelques mois.
Je m’explique : Il existe déjà plusieurs génération de système de cryptage et lorsqu’on mentionne le SSL, sachez que c’est déjà dépassé. Le système le plus à la mode est maintenant le TLS version 1.2 puisqu’il est beaucoup plus fort, donc plus difficile à casser/craquer. Peut importe la génération ou le type de cryptage utilisé, on peut simplifier leurs définitions à leur plus simple expression mathématique, leur force mesurée en bits. Un certificat de 1024 bits est-il plus fort et sécuritaire que celui d’une ancienne version qui est de 256 bits? Sans aucun doute. Depuis les dernières décennies, chaque nouvelles génération de cryptage nous as donner de nouvelle façon d’encrypter des clés de sécurités mais nous as surtout amené des clés de plus grandes forces; 128, 256, 512, 1024, 2048, 4096 bits, etc. Il faut comprendre que plus une clé est forte, plus l’ordinateur de l’usager est “taxé” en terme de ressources pour communiquer avec le système distant. Qu’à cela ne tienne, aujourd’hui on a des ordinateurs avec processeurs quadcore “hyperthreader” et de la RAM à profusion qui ferait pâlir d’envie nos ancêtres de l’ère informatique d’il y a 5 ans seulement. Donc on peut dire que la demande plus grande en terme de performance pour utiliser les clés de dernières générations qui sont plus puissantes ne nous émeut pas du tout. On se trompe royalement!
Mais pourquoi est-ce qu’on passe notre temps à créer de nouveau standard de cryptage? Tout simplement parce que la capacité des ordinateurs à briser ses système de communication crypter ne cesse d’augmenter. Il y a 10 ans, avoir la puissance nécessaire pour casser une clé de 256 bits était déjà possible, mais pas nécessairement facile d’accès au commun des mortels et demandais une puissance de calcul formidable que peux d’organisations étaient en mesure de se payer/procurer. Tout a changé aujourd’hui avec les performances des dernières générations des ordinateurs ainsi que l’ajout des cartes vidéos hyper puissante avec système GPU qui aide à faire rouler des algorithme mathématique pour aider les processeurs à casser les clés de cryptage. Ajouter à cela la découverte de plusieurs failles dans les vielles générations de système de cryptage, et aussi celle plus récente, c’est maintenant un jeu d’enfant que d’être capable de les craquer. Microsoft pousse même l’abandon d’un de ses propres système, le RC4, puisque la compagnie juge qu’elle n’est plus du tout sécuritaire. Les experts en cryptographie sont formels, il faut abandonner les vieux système de cryptage et faire une mise à jours complète de ce que l’on a présentement. Un travail titanesque!
Alors que faire? On arrête de se casser la tête et on crée une clé de cryptage hyper méga puissante de 10^9347854 bits de puissance? C’est ici qu’on se trompe. On ne peut se le permettre pour la simple raison que la popularité des téléphones intelligents et tablettes ne sont pas en mesure de travailler facilement avec des clés puissantes. Sans compter qu’il y a encore sur la toile un paquet de vieux ordinateurs qui fonctionnent très bien, sans être nécessairement puissant. Que faire? les clés de cryptage les plus populaires tels que les standards du TLS 1.2 repose sur du 256 bits de cryptage et il est déjà possible (si on le désire vraiment) de les briser. Une des solutions proposé, à court terme, est d’utiliser les clés de types ECC (Elliptic Curve Cryptography). En français on peut dire : une cryptographie de courbes elliptique. Une méthode de génération de clé de force standard (ce qui nous permet de les utiliser sur les téléphones intelligents et les tablettes), mais donc la création est basé sur une méthode complètement différentes des méthodes standards que l’on utilise depuis plusieurs années. La description complète d’une clé ECC dépasse le but de cet article, mais si vous êtes intéressé à une lecture, que je considère fort passionnante, l’excellent site Ars Technica vous explique la chose facilement.
Le problème présentement est que les clés de types ECC sont trop méconnues et peu de fournisseur les offrent. Il ne reste que quelques années avant que le publique en générale se rende compte que les clés de cryptage les plus populaires que nous utilisons en ce moment sont déjà sur le respirateur artificiel et d’ici quelques années, si ce n’est que quelques mois, un exploit vas apparaitre sur Internet et vas rendre désuet d’un coup de baguette magique les systèmes de cryptages qu’on a pris pour acquis pour les 10 dernières années. À ce moment, le publique, ainsi que les médias vont partir en peur sur un sujet que peu de personnes peuvent comprendre. Ce qui est rendu très fréquent aujourd’hui.