Les articles de MISC Hors-Série N°5

Article mis en avant

Du bon usage de la cryptographie : OpenSSL et PolarSSL pour vous servir

L'allergie aux mathématiques est un phénomène assez courant chez la plupart d'entre nous. Concevoir ou casser un algorithme cryptographique sans de très solides bases théoriques paraît impensable à certains. Et pourtant, l'orchestration des mécanismes nécessaires à l'obtention d'une solution robuste est potentiellement à la portée de tous ceux qui n'ont pas un doctorat en théorie des nombres ! Cet article aidera le lecteur à se poser les bonnes questions et à faire le bon choix parmi le trop grand nombre d'algorithmes et de bibliothèques, le tout illustré à travers différents cas concrets avec OpenSSL et PolarSSL. Faites chauffer xterm, vim et gcc !
La cryptographie symétrique reste l’un des moyens les plus rapides de chiffrer des messages échangés par deux parties qui possèdent une clé commune, cette clé étant le plus souvent transmise de façon sûre via l’utilisation de la cryptographie asymétrique. La définition de primitives communes en cryptographie symétrique reconnues au niveau international remonte à la standardisation du DES en 1977 comme algorithme de chiffrement par bloc. Depuis cette date, les fonctions de hachage MD5 et SHA-1 ont été standardisées dans le courant des années 90 et l’AES a été choisi comme nouveau standard de chiffrements par bloc en octobre 2000 par le NIST au terme d’une compétition internationale publique de trois ans réunissant quinze candidats.
La façon la plus directe de casser le cryptosystème RSA est de factoriser la clé publique. Nous donnons ici quelques éléments scientifiques et historiques pour comprendre le fonctionnement des algorithmes de factorisation.
Et si vos données n'étaient jamais déchiffrées, même en mémoire, même quand vos applications ou le système d'exploitation les utilise ? Le chiffrement dit « complètement homomorphe » permettrait de réaliser de tels exploits. Seul hic, la construction d'un tel système de chiffrement est restée pendant trente ans un problème ouvert, jusqu'à récemment où des avancées spectaculaires ont eu lieu …
« S'il saigne, on peut le tuer ». Cette maxime chère à John McTiernan [JT87] résume assez bien le problème que rencontrent depuis toujours les systèmes dédiés à la sécurité : s'ils fuient, ils sont condamnés. Depuis le milieu des années 90, les circuits micro-électroniques sont la cible des attaques à canaux auxiliaires. Elles exploitent les lois de la physique pour extraire les secrets manipulés par les cartes à puce ou les accélérateurs cryptographiques. Dans cet article, nous identifions ces vecteurs de fuite et expliquons leurs méthodes d'exploitation.
En février 2007, le PDG d’Apple, Steve Jobs, écrivit une lettre ouverte au monde dénonçant les DRM (Digital Right Management) et leur utilisation par l’industrie musicale. Dans cette lettre, S. Jobs affirmait : les DRM ne fonctionnent pas, et pourraient ne jamais fonctionner, pour empêcher le piratage de la musique ». Le monde reçut cette prise de position, et des blogs apparurent pour tenter d’interpréter le sens de cette lettre. Le débat sur les DRM avait commencé avant cela, et continue encore aujourd’hui. Au cours du temps, tout le monde s’est forgé sa propre idée sur les DRM, ce qu’ils sont, comment ils fonctionnent.Mais que savent réellement les gens à propos des DRM ?
Le défi que la cryptographie en boîte blanche vise à relever consiste à mettre en œuvre un algorithme cryptographique en logiciel de telle manière que les éléments cryptographiques restent sécurisés même en cas d'attaque en boîte blanche.
Le rétroconception d'algorithmes cryptographiques est une discipline à part dans le monde des reversers. La difficulté réside dans le fait de ne pas se « noyer » dans des parties inutiles à l'analyse (dans une fonction de compression d'un algorithme de hachage par exemple). La connaissance des concepts mathématiques sous-jacents à chaque algorithme est inutile. Par contre, la connaissance des grandes familles de fonctions cryptographiques et de leurs implémentations est indispensable : ce sera l'objet de la première partie de cet article. Puis, nous verrons comment appliquer ces résultats sur un exemple concret.
Enfermé dans une cellule hautement gardée, on vient de nous transférer un nouveau virus pour téléphone mobile. A première vue, il a une tête tellement angélique qu'on douterait de sa culpabilité. Mais derrière la vitre sans tain, nous avons vite compris qu'il utilisait de la… cryptographie. Il ne fera pas longtemps le malin : nous avons les moyens de le faire parler. Et sans torture matérielle.