Menaces Sur Le Reseau

download Menaces Sur Le Reseau

of 342

Transcript of Menaces Sur Le Reseau

Michal Zalewski

Menaces sur le rseauScurit informatique : guide pratique des attaques passives et indirectes

Menaces sur le rseauGuide pratique des attaques passives et indirectes

Michal Zalewski

CampusPress a apport le plus grand soin la ralisation de ce livre an de vous fournir une information complte et able. Cependant, CampusPress nassume de responsabilits, ni pour son utilisation, ni pour les contrefaons de brevets ou atteintes aux droits de tierces personnes qui pourraient rsulter de cette utilisation. Les exemples ou les programmes prsents dans cet ouvrage sont fournis pour illustrer les descriptions thoriques. Ils ne sont en aucun cas destins une utilisation commerciale ou professionnelle. CampusPress ne pourra en aucun cas tre tenu pour responsable des prjudices ou dommages de quelque nature que ce soit pouvant rsulter de lutilisation de ces exemples ou programmes. Tous les noms de produits ou marques cits dans ce livre sont des marques dposes par leurs propritaires respectifs.Publi par CampusPress 47 bis, rue des Vinaigriers 75010 PARIS Tl. : 01 72 74 90 00 Mise en pages : TyPAO Collaboration ditoriale : Marie-France Claerebout ISBN : 978-2-7440-4031-3 Copyright 2009 Pearson Education France Tous droits rservs CampusPress est une marque de Pearson Education France Titre original : Silence on the wire. A Field Guide to Passive Reconnaissance and Indirect Attacks Traduit de lamricain par Philippe Beaudran Relecture technique : Paolo Pinto (Sysdream) ISBN original : 1-59327-046-1 Copyright 2005 by Michal Zalewski All rights reserved

No Starch Press www.nostarch.com

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. Aucune reprsentation ou reproduction, mme partielle, autre que celles prvues larticle L. 122-5 2 et 3 a) du code de la proprit intellectuelle ne peut tre faite sans lautorisation expresse de Pearson Education France ou, le cas chant, sans le respect des modalits prvues larticle L. 122-10 dudit code.

Pour Maja

propos de lauteurMichal Zalewski est un chercheur autodidacte sur la scurit de linformation qui a travaill sur des sujets allant de la conception du matriel et des systmes dexploitation la gestion des rseaux. Il a dcouvert de nombreux bogues, est un membre actif de Bugtraq depuis le milieu des annes 1990 et a crit des utilitaires de scurit populaires comme p0f, un utilitaire de ngerprinting passif du systme dexploitation. Il a galement publi un certain nombre dtudes sur la scurit qui ont t acclames. Michal a travaill comme expert pour la scurit dans plusieurs entreprises de renom, dont deux gants des tlcommunications, la fois dans son pays natal, la Pologne, et aux tats-Unis. En plus dtre un fervent chercheur et un programmeur occasionnel, Michal sintresse galement lintelligence articielle, aux mathmatiques appliques, llectronique et la photographie.

RemerciementsNous remercions vivement Paolo Pinto (Sysdream) pour sa prcieuse collaboration et son soutien technique, sans lesquels ldition franaise de cet ouvrage naurait pu voir le jour.

Table des matires propos de lauteur ................................................................................................... Remerciements ........................................................................................................... Avant-propos ..................................................................................................................... Introduction ...................................................................................................................... Quelques mots de lauteur .......................................................................................... propos de cet ouvrage ............................................................................................. Partie I La source 1. Lcoute du clavier ....................................................................................................... Le besoin de hasard .................................................................................................... Gnrer automatiquement des nombres alatoires .......................................... La scurit des gnrateurs de nombres pseudo-alatoires ............................. Entropie entre-sortie : votre souris vous parle ............................................... Interruptions : un exemple pratique ................................................................ Fonctions de rsum ........................................................................................ De limportance dtre pdant ......................................................................... Lentropie ne doit pas tre gche ................................................................... Attaques : les implications dun changement soudain de paradigme ............. Examen plus dtaill des motifs dans le temps en entre ............................... Tactiques de dfense immdiates .................................................................... Les gnrateurs de nombres alatoires matriels : une meilleure solution ? .................................................................................. Matire rexion ...................................................................................................... Les attaques distance fondes sur le temps .................................................. Exploiter les diagnostics du systme ............................................................... Reproduction de limprvisible ....................................................................... 2. Des efforts supplmentaires ne sont jamais inutiles ................................................. Lhritage de Boole .................................................................................................... 7 8 10 11 12 13 15 17 18 19 20 24 24 26 26 27 27 29 30 V V XV 1 1 2

VIII

Menaces sur le rseau

Vers loprateur universel ........................................................................................... La loi de De Morgan en pratique .................................................................... La commodit est une ncessit ...................................................................... Englober la complexit ................................................................................... Vers le monde matriel ............................................................................................... Un ordinateur sans lectricit ..................................................................................... Une conception dordinateur lgrement plus classique ............................................ Portes logiques ................................................................................................ Des oprateurs logiques aux calculs ........................................................................... Du sablier lectronique lordinateur ........................................................................ La machine de Turing et les suites complexes dinstructions ................................... Utilisation pratique, enn ................................................................................ Le Graal : lordinateur programmable ............................................................ Des amliorations par simplication ............................................................... Le partage des tches ...................................................................................... tapes dexcution .......................................................................................... Le moins de mmoire possible ........................................................................ Plus dactions la fois : le pipelining ............................................................. Le gros problme des pipelines ....................................................................... Implications : de subtiles diffrences ......................................................................... Utiliser les motifs dans le temps pour reconstruire les donnes ..................... Bit par bit ......................................................................................................... En pratique .................................................................................................................. Optimisation early-out ................................................................................................ Code fonctionnel, faites-le vous-mme ........................................................... Prvention ................................................................................................................... Matire rexion ...................................................................................................... 3. Les dix ttes de lhydre ................................................................................................ TEMPEST : lespionnage des missions TV ............................................................. Les limitations de la condentialit ............................................................................ tablir la provenance des donnes .................................................................. Divulgation malencontreuse : *_~1q@@... et le mot de passe est ............ 4. Travailler pour le bien de tous ....................................................................................

30 31 32 33 34 35 36 36 37 40 43 45 45 46 47 48 50 51 52 53 54 55 56 57 59 61 62 63 64 66 67 68 71

Table des matires

IX

Partie II Un endroit sr 5. Les Blinkenlights ......................................................................................................... Lart de transmettre des donnes ................................................................................ De votre courrier lectronique des bruits intenses aller et retour ................................................................................................... De nos jours ..................................................................................................... Parfois, un modem est juste un modem .......................................................... Les collisions sous contrle ............................................................................ Les coulisses : la soupe de cble et comment la grer .................................... Les blinkenlights et les communications ........................................................ Les consquences des diodes esthtiques ................................................................... Construire son propre dispositif despionnage ....................................................... et lutiliser avec un ordinateur ................................................................................ Empcher que les DEL ne divulguent des donnes (et pourquoi cela ne fonctionne pas) .......................................................................... Matire rexion ...................................................................................................... 6. chos du pass ............................................................................................................. Construire la tour de Babel ......................................................................................... Le modle OSI ................................................................................................ La phrase manquante .................................................................................................. Matire rexion ...................................................................................................... 7. La scurit dans les rseaux commuts ..................................................................... Un peu de thorie ........................................................................................................ La rsolution de ladresse et la commutation .................................................. Les rseaux virtuels et la gestion du trac ...................................................... Attaques sur larchitecture .......................................................................................... Le CAM et linterception du trac .................................................................. Autres exemples dattaques : DTP, STP, trunks .............................................. Prvention des attaques .............................................................................................. Matire rexion ...................................................................................................... 8. Lenfer, cest les autres ................................................................................................ Les indicateurs logiques et leur utilisation inhabituelle ............................................. Montrez-moi ce que vous tapez et je vous dirai qui vous tes ........................ Les bits inattendus : des donnes personnelles dissmines partout .......................... Les failles du wi- ...................................................................................................... 79 80 82 88 89 90 93 95 96 97 99 103 106 109 110 111 112 115 117 118 118 120 123 123 124 124 125 127 129 130 131 132

X

Menaces sur le rseau

Partie III Dans la jungle 9. Un accent tranger ...................................................................................................... Le langage dInternet .................................................................................................. Routage naf .................................................................................................... Le routage dans le monde rel ........................................................................ Lespace dadressage ....................................................................................... Des empreintes digitales sur lenveloppe ........................................................ Internet Protocol ......................................................................................................... Version du protocole ....................................................................................... Le champ IHL ................................................................................................. Le champ Service (8 bits) ............................................................................... La longueur totale (16 bits) ............................................................................. Ladresse IP source .......................................................................................... Ladresse IP de destination .............................................................................. Lidentiant du protocole de la quatrime couche .......................................... Le TTL ............................................................................................................ Les paramtres Flags et Offset ........................................................................ Numro didentication ................................................................................. Somme de contrle .......................................................................................... Au-del du protocole IP .............................................................................................. Le protocole UDP ....................................................................................................... Introduction ladressage des ports ................................................................ Rsum de len-tte UDP ................................................................................ Les paquets TCP ......................................................................................................... Flags de contrle : la poigne de main TCP .................................................... Autres paramtres de len-tte TCP ................................................................ Options TCP .................................................................................................... Les paquets ICMP (Internet Control Message) .......................................................... Le ngerprinting passif ............................................................................................... Examiner les paquets IP : les origines ............................................................. Time to Live initial (couche IP) ...................................................................... Le ag DF (couche IP) ................................................................................... Le numro IP ID (couche IP) .......................................................................... Type de service (couche IP) ............................................................................ Les champs Nonzero et Must Be Zero (couches IP et TCP) ........................... Port source (couche TCP) ............................................................................... Taille de fentre (couche TCP) ........................................................................ Pointeur durgence et valeurs du numro dacquittement (couche TCP) ....... 137 138 139 140 141 143 143 144 145 145 145 146 146 146 146 147 149 150 150 151 152 153 153 154 158 159 162 164 164 165 165 166 166 167 168 168 169

Table des matires

XI

Lordre des options (couche TCP) ................................................................... Dcalage de fentre (couche TCP, option) ...................................................... Maximum Segment Size (TCP Layer, option) ................................................ Donnes Timestamp (couche TCP, option) ..................................................... Autres types de ngerprinting passif ............................................................... Le ngerprinting passif en pratique ............................................................................ Les applications de ngerprinting passif .................................................................... Collecter des donnes statistiques et des incidents de connexion ................... Optimisation du contenu ................................................................................. laboration dune politique ............................................................................. La scurit du pauvre ...................................................................................... Test de scurit et dcouverte du rseau ......................................................... Proling du consommateur et invasion de la vie prive .................................. Espionnage et reconnaissance furtive ............................................................. Protection contre le ngerprinting .............................................................................. Matire rexion : le dfaut fatal de la fragmentation IP ........................................ Fragmentation TCP ......................................................................................... 10. Stratgies avances pour compter les moutons ....................................................... Les avantages et les implications du ngerprinting passif classique .......................... Un bref historique des numros de squence ............................................................. Obtenir plus dinformations des numros de squence .............................................. Coordonnes temporises : images des squences dans le temps .............................. Une galerie de jolies images de la pile TCP/IP .......................................................... Attaques utilisant les attracteurs ................................................................................. Retour au ngerprinting du systme ........................................................................... ISNProber, la mise en pratique de la thorie ................................................... Empcher lanalyse passive ....................................................................................... Matire rexion ...................................................................................................... 11. La reconnaissance des anomalies ............................................................................. Les bases des pare-feu de paquets .............................................................................. Filtrage et fragmentation sans tats ................................................................. Filtrage sans tats et perte de synchronisation du trac .................................. Les ltres de paquets tats ............................................................................ Rcriture de paquet et NAT ........................................................................... Lost in Translation ........................................................................................... Les consquences du masquerading ........................................................................... La taille des segments .................................................................................................

169 170 170 170 171 171 174 174 175 175 175 176 176 176 177 178 180 183 184 186 188 189 194 199 202 203 204 204 207 208 209 210 212 213 214 215 216

XII

Menaces sur le rseau

Suivi tats et rponses inattendues ........................................................................... Fiabilit ou performances : la controverse sur le bit DF ............................................ Cas dchec du Path MTU Discovery ............................................................. La lutte contre PMTUD et ses retombes ....................................................... Matire rexion ...................................................................................................... 12. Fuite des donnes de la pile ...................................................................................... Le serveur de Kristjan ................................................................................................ Des dcouvertes surprenantes ..................................................................................... Rvlation : la reproduction du phnomne ............................................................... Matire rexion ...................................................................................................... 13. Fume et miroirs ........................................................................................................ Lusurpation dadresse IP : le scan de port avanc ..................................................... Larbre qui cache la fort ................................................................................ Lidle scan ....................................................................................................... Se dfendre contre lidle scan ..................................................................................... Matire rexion ...................................................................................................... 14. Lidentication du client : vos papiers, sil vous plat ! .......................................... Camouage ................................................................................................................. Dnition du problme ................................................................................... Vers une solution ............................................................................................. Une (trs) brve histoire du Web ................................................................................ Notions lmentaires sur le protocole de transfert hypertexte ................................... Amliorer HTTP ......................................................................................................... La rduction de la latence : du bricolage ........................................................ La mise en cache du contenu .......................................................................... La gestion des sessions : les cookies ............................................................... Le mlange des cookies et du cache ............................................................... Empcher lattaque utilisant les cookies en cache .......................................... La dcouverte des trahisons ........................................................................................ Exemple simple danalyse comportementale .................................................. Donner un sens aux graphiques ....................................................................... Au-del du moteur... ........................................................................................ et au-del de lidentication ....................................................................... Prvention ................................................................................................................... Matire rexion ......................................................................................................

218 219 219 221 222 225 225 226 228 229 231 232 232 233 236 236 237 238 239 240 240 242 244 244 246 249 250 251 252 253 255 256 257 259 259

Table des matires

XIII

15. Les avantages dtre une victime ............................................................................. Connatre les mesures de lattaquant .......................................................................... Se protger : observer les observations ...................................................................... Matire rexion ......................................................................................................

261 262 266 267

Partie IV Vision densemble 16. Le calcul parasitaire, ou comment lunion fait la force ......................................... Lutilisation des processeurs distants ......................................................................... Considrations pratiques ............................................................................................ Les dbuts du stockage parasitaire ............................................................................. Rendre possible le stockage parasitaire ...................................................................... Applications, considrations sociales, et dfense ....................................................... Matire rexion ...................................................................................................... 17. La topologie du rseau .............................................................................................. Capturer linstant ........................................................................................................ Utiliser les donnes de topologie pour identier lorigine du trac ........................... La triangulation du rseau laide des donnes de la topologie maille ................................................................................................ Lanalyse de la saturation du rseau ........................................................................... Matire rexion ...................................................................................................... 18. En regardant le vide .................................................................................................. Les tactiques dobservation directe ............................................................................ Lanalyse des retombes du trac de lattaque ........................................................... Dtecter les donnes malformes ou mal diriges ..................................................... Matire rexion ...................................................................................................... pilogue ............................................................................................................................. Notes bibliographiques ..................................................................................................... Index .................................................................................................................................. 271 272 275 277 279 287 288 289 290 292 294 295 298 299 300 303 305 307 309 311 317

Avant-propos

Que faut-il pour crire un livre sur la scurit informatique ? Ou, plutt, que faut-il pour crire un roman sur linformatique moderne ? Il faut un auteur jeune mais trs expriment qui possde des talents dans de nombreux domaines, dans de nombreux aspects de linformatique, des mathmatiques et de llectronique (et peut-tre un intrt pour la robotique) mais qui sintresse galement dautres sujets apparemment sans rapport (y compris, disons-le, la photographie rotique). Enn, bien sr, il doit avoir lenvie dcrire et le talent pour le faire. Il tait une fois dans une fort sombre et vierge des arbres qui, grce la magie des arbres (les cellules du cerveau), donnrent naissance un bit dinformation. Ds sa naissance, il partit naviguer sur une rivire aux ots tumultueux qui se jetait dans une mer immense (Internet) pour fonder un nouveau foyer, mourir ou peut-tre prendre place dans un muse. Et ainsi commence notre rcit. Que notre bit soit bon ou mauvais, la rivire le conduit dans un premier temps dans un resplendissant chteau blanc (bien que beaucoup le considrent encore comme une bote noire). Il franchit lentre et sapproche de la rception pour signaler son arrive. Sil ntait pas si naf, il aurait pu constater un groupe de bits patibulaires qui observent larrive des bits distance, en notant la frquence laquelle ils se prsentent et quittent la rception. De toute faon, il na dautre choix que de senregistrer.

XVI

Menaces sur le rseau

Une fois repos, notre hros est invit se joindre un groupe de ses congnres. Ensemble, ils sentassent sur un radeau pneumatique dj fort us et dont le fond est jonch de dchets (mais sagit-il bien de dchets ?) sans doute laisss l par le groupe qui les a prcds. En respectant les feux de circulation et en se faulant dans les embouteillages, nos bits parviennent nalement gagner un refuge sr o ils accostent. Seront-ils reprs depuis les chteaux et les phares alentour ? Quelquun surveille-t-il les feux de circulation depuis leur dpart ? Quelquun allume-t-il les lumires sur le quai o ils dbarquent et les prend en photo ? Les mchants bits usurpent-ils leur identit et les prcdent-ils ? Nos bits ne le savent pas. Et, donc, ils embarquent sur un autre bateau et naviguent vers la mer... Le voyage de notre confrrie de bits se poursuit, et de nombreux dangers les guettent. Non, le livre de Michal ne cache pas de dtails techniques sous lapparence dun conte de fes, comme je viens de le faire. Tout en restant divertissant, il nonce directement tous les faits et donne rapidement des rponses la plupart des problmes noncs au dbut de chaque chapitre. Bien que Menaces sur le rseau soit unique de nombreux gards, deux caractristiques lui permettent de se dmarquer des autres ouvrages : tout dabord, il fournit des informations dtailles sur la quasi-totalit des tapes essentielles du traitement des donnes qui permettent aujourdhui "linterconnexion", depuis la pression sur une touche du clavier jusquau rsultat que cette action entrane. Il dnit ensuite les problmes de scurit si souvent ngligs et peu tudis qui sont inhrents chaque tape de la mise en rseau et lensemble du processus. Les questions de scurit abordes montrent lart de la recherche des failles aussi bien du point de vue de lattaquant que du dfenseur et encouragent le lecteur poursuivre ses propres recherches. Manifestement, un ouvrage sur la scurit informatique ne peut pas tre exhaustif. DansMenaces sur le rseau, Michal a choisi dlibrment de ne pas aborder les attaques et les

failles trs connues et pourtant trs dangereuses sur lesquelles se concentre la majorit de la communaut qui se consacre aux problmes de scurit de linformation. Il vous parlera des attaques fondes sur le temps dopration des touches du clavier mais ne vous rappellera pas que les "chevaux de Troie" qui permettent de contrler distance un ordinateur sont actuellement la fois plus frquents et plus faciles utiliser quaucune de ces attaques. Pourquoi parler de lcoute du clavier et laisser de ct les chevaux de Troie ? Parce que les attaques fondes sur le temps sont largement sous-estimes et mal comprises, mme par les professionnels de la scurit, tandis que les chevaux de Troie sont bien connus et reprsentent une menace vidente. La vulnrabilit aux attaques fondes sur le temps est une proprit

Avant-propos

XVII

inhrente la conception de nombreux composants, tandis quimplanter un cheval de Troie exige soit un bogue du logiciel soit quun utilisateur nal fasse une erreur. De mme, et quelques exceptions prs, vous ne trouverez pas la moindre mention dans cet ouvrage des bogues logiciels les plus courants ni mme des bogues des classes gnriques des logiciels comme le "dpassement de tampon". Si les failles de scurit informatiques les plus communes ne vous sont pas familires et que vous dsiriez en savoir plus sur ces sujets, vous devrez pour suivre ce livre vous plonger dans des lectures moins passionnantes sur Internet et dans dautres ouvrages, en particulier dans les documents qui abordent le systme dexploitation spcique que vous utilisez. Mais vous vous demandez peut-tre pourquoi tudier le silence, puisque le silence nest rien. Oui, dans un sens mais, de ce point de vue, le zro aussi nest rien. Or zro est aussi un nombre, un concept sans lequel nous ne pouvons pas vraiment comprendre le monde. Apprciez autant que possible le silence. Alexander Peslyak Fondateur et directeur technique de la socit Openwall mieux connu sous le pseudo Solar Designer Chef de projet Openwall Janvier 2005

Introduction

Quelques mots de lauteurOn pourrait croire que je suis un geek informatique depuis lenfance, mais ma rencontre avec les problmes de scurit des rseaux sest produite par accident. Jai toujours aim exprimenter, explorer de nouvelles ides et relever des ds en thorie bien dnis mais pas si simples en pratique ; des problmes qui exigent pour les rsoudre dadopter une approche novatrice et crative mme si jchoue nalement trouver une solution. Quand jtais jeune, jai pass la plus grande partie de mon temps effectuer des tentatives parfois risques et souvent stupides en chimie, mathmatiques, lectronique et nalement en informatique plutt que faire du vlo dans mon quartier toute la journe (jexagre probablement un peu, mais ma mre semblait toujours tre inquite). Peu de temps aprs ma premire rencontre avec Internet (au milieu des annes 1990, peut-tre huit ans aprs avoir cod mon premier programme "Hello world" sur une machine 8 bits que jadorais), jai reu une demande inhabituelle par e-mail : un mailing de masse qui, cest difcile croire, me demandait (ainsi qu plusieurs milliers dautres personnes) de rejoindre une quipe de hackers chapeau noir. Ce message ne ma pas pouss entrer dans ce milieu (peut-tre en raison de mon fort instinct de conservation, ce que dautres considrent comme de la lchet), mais il ma en quelque sorte incit explorer le domaine de la scurit informatique plus en dtail. Ayant fait beaucoup de programmation en amateur, jtais fascin par lide de considrer le

2

Menaces sur le rseau

code avec un autre point de vue et dessayer de trouver un moyen pour quun algorithme fasse quelque chose de plus que ce quil tait cens faire. Internet me semblait parfait pour les ds dont je rvais un systme important et complexe reposant sur un seul principe : on ne peut vraiment avoir conance en personne. Et cest ainsi que tout a commenc. Je nai pas la culture que vous pourriez attendre dun spcialiste en scurit informatique, une profession qui est en train de devenir monnaie courante aujourdhui. Je nai jamais reu aucune ducation formelle en science informatique et je ne suis pas bard de diplmes. La scurit a toujours constitu une de mes principales passions (et maintenant ma profession). Je ne suis pas le strotype du geek informatique et je prends de temps autre de la distance par rapport mon travail, voire mloigne compltement de tout ordinateur. Que cela soit un mal ou un bien, tout cela a inuenc la forme et le contenu de ce livre. Je donne ma vision de la scurit informatique, dune manire diffrente de lenseignement traditionnel. Pour moi, la scurit ne reprsente pas un seul problme rsoudre ni un processus unique suivre. Il sagit non pas de matriser un domaine spcique mais de voir lensemble de lcosystme et de comprendre chaque composant.

propos de cet ouvrageMme dans la faible lueur dispense par nos crans, nous ne sommes encore que des tres humains. Nous avons appris faire conance aux autres, et nous ne voulons pas tre trop paranoaques. Nous avons besoin de trouver un compromis raisonnable entre scurit et productivit pour vivre confortablement. Nanmoins, Internet est diffrent du monde rel. Se conformer aux rgles napporte aucun avantage lensemble et commettre des mfaits ne nous laisse gnralement que peu de remords. Nous ne pouvons tout simplement pas faire conance au systme et il nexiste pas de rgle unique qui puisse tre applique tous les problmes. Instinctivement, nous traons une ligne de dmarcation entre "nous" et "eux" an de crer une le depuis laquelle nous regardons les navires pirates naviguer lhorizon. Bientt, des problmes de scurit commencent apparatre, des anomalies localises qui peuvent tre facilement identies, analyses et rsolues. De ce point de vue, les intentions des agresseurs semblent tre claires et, si nous sommes vigilants, nous pouvons les voir approcher et les arrter. Pourtant, le monde virtuel est diffrent : scurit ne signie pas absence de bogues ; la scurit ne consiste pas rester hors de porte des attaques. Chaque processus ou presque qui implique le traitement ou la transmission dinformation a sur la scurit des consquences qui deviennent visibles linstant o nous regardons au-del de lobjectif

Introduction

3

que le processus essaie datteindre. Comprendre la scurit est lart de franchir cette ligne de dmarcation et dadopter un point de vue diffrent. Ce livre nest pas conventionnel, du moins je lespre. Il ne sagit ni dun recueil de problmes ni dun guide pour scuriser vos systmes. Il commence par suivre lhistoire des informations, depuis le moment o vos mains touchent le clavier jusqu leur arrive lautre extrmit du rseau. Il traite de considrations technologiques et de leurs consquences sur la scurit, en mettant laccent sur des problmes qui ne peuvent pas tre qualis de bogues, car il ny a pas dattaquant, pas de faille analyser ni rsoudre ou parce que ces attaques sont indtectables (elles ne peuvent du moins pas tre distingues de lactivit normale). Lobjectif de ce livre est de dmontrer que le seul moyen de comprendre Internet est davoir le courage de dpasser les spcications ou de les lire entre les lignes. Comme le sous-titre lindique, ce livre met laccent sur la condentialit et les problmes de scurit inhrents aux communications et linformatique de tous les jours. Certains de ces problmes ont des consquences importantes, tandis que dautres sont simplement intressants et stimulants. Aucun naura dimpact dvastateur immdiat sur lenvironnement ou ne dtruira les donnes du disque dur. Cet ouvrage sadresse aux professionnels et aux amateurs chevronns des technologies de linformation qui veulent rchir et qui dsirent en apprendre davantage sur les consquences peu videntes des dcisions prises lors de la conception. Il se destine ceux qui veulent apprendre utiliser ces subtilits pour prendre le contrle de leur environnement et acqurir un avantage sur le monde extrieur. Ce livre est divis en quatre sections. Les trois premires parties abordent les diffrentes tapes de la transmission des donnes et des technologies qui sont dployes pour cela. La dernire section porte sur le rseau dans son ensemble. Chaque chapitre traite des technologies utilises chaque tape du traitement des donnes, examine leurs implications en matire de scurit, montre leurs effets secondaires, indique si possible des moyens daborder ces problmes et comment explorer le sujet plus en dtail. Dans la mesure du possible, jessaie dviter les graphiques, tableaux et autres spcications (mais vous trouverez de nombreuses rfrences en bas de page). Comme vous pouvez facilement trouver beaucoup de documentation de rfrence en ligne, mon objectif est avant tout de rendre ce livre agrable lire. Nous commenons ?

Partie ILa sourceO il est question des problmes qui surgissent bien avant que les informations ne soient envoyes sur le rseau.

1Lcoute du clavierO lon apprend que les touches du clavier peuvent tre surveilles distance.

Ds le moment o vous appuyez sur une touche du clavier, linformation que vous envoyez commence un long priple dans le monde virtuel. Quelques microsecondes avant que les paquets ne transitent par les bres optiques ou par satellite, chaque morceau dinformation commence un tortueux voyage dans un labyrinthe de circuits. Bien avant que le systme dexploitation et les programmes quil excute nela reoivent, de nombreux mcanismes subtils et de bas niveau entament un processus qui intresse toutes sortes de hackers et qui sest rvl avoir une grande signication pour les responsables de la scurit. Le chemin qui mne lutilisateur est pav de nombreuses surprises. Ce chapitre est consacr ces phases initiales denvoi des donnes et aux possibilits quont les autres utilisateurs (bienveillants ou non) den savoir beaucoup sur ce que vous faites devant votre terminal. Un exemple de divulgation dinformation travers la faon dont lordinateur traite les donnes que vous saisissez renvoie un sujet qui semble pourtant totalement sans rapport premire vue : la difcult de produire des chiffres alatoires sur une machine qui se comporte de faon totalement prvisible. Il est en effet difcile de trouver un rapport aussi tnu mais, pourtant, ce problme existe bien et peut permettre un

8

La source

observateur sournois de dduire normment de choses partir de lactivit dun utilisateur, quil sagisse de ses mots de passe ou des e-mails condentiels quil saisit.

Le besoin de hasardLes ordinateurs sont totalement dterministes. Ils traitent les donnes en fonction dun ensemble de rgles bien dnies. Les ingnieurs font de leur mieux pour compenser les imperfections lies au processus de fabrication et aux proprits des composants lectroniques eux-mmes (interfrences, bruit thermique, et ainsi de suite) an de garantir que le systme suive toujours la mme logique et fonctionne correctement. Lorsque les composants refusent dagir comme on lespre (saturation, lenteur), nous rejetons la faute sur lordinateur. La cohrence des machines et leurs merveilleuses capacits de calcul font de lordinateur un outil si intressant pour ceux qui parviennent le contrler et le matriser. Bien sr, il faut admettre que tout nest pas parfait et les personnes qui se plaignent du manque de abilit des ordinateurs nont pas entirement tort. En dpit du fonctionnement parfait des composants, les programmes informatiques eux-mmes se comportent mal dans diffrentes situations. En effet, mme si le matriel informatique est souvent cohrent et able, il est impossible de prvoir le comportement dun seul programme informatique complexe sur le long terme et, a fortiori, dun ensemble de logiciels interdpendants (comme cest le cas dun systme dexploitation). Cela rend difcile la validation dun programme, mme dans lhypothse o lon parvienne tablir un modle dtaill sufsamment strict et exempt de dfauts du fonctionnement du programme. Pourquoi ? En 1936, Alan Turing, le pre de la programmation actuelle, a prouv par labsurde quil ne peut pas y avoir de mthode gnrale pour dterminer le rsultat dune procdure informatique ou dun algorithme dans un temps dni (bien quil puisse exister certaines mthodes spciques pour certains algorithmes) 1. En pratique, si on ne peut donc pas esprer quun systme dexploitation ou un traitement de texte se comporte toujours exactement de la faon prvue par son auteur ou son utilisateur, on peut tout de mme sattendre ce que le mme programme install sur deux systmes disposant des mmes composants matriels ait un comportement cohrent et identique si on lui fournit les mmes donnes en entre ( moins bien sr quun des deux systmes ne soit cras par un piano ou inuenc par dautres vnements externes). Cela constitue bien sr une excellente nouvelle pour les entreprises qui commercialisent les programmes, mais les personnes en charge de la scurit prfreraient parfois que les ordinateurs soient un peu moins dterministes. Pas ncessairement tant dans la faon dont ils se comportent que dans les rsultats quils produisent.

Chapitre 1

Lcoute du clavier

9

Prenons lexemple du cryptage des donnes et en particulier le concept de cryptographie cl publique. Cette brillante et nouvelle forme de chiffrement (entre autres) fut invente dans les annes 1970 par Whiteld Dife et Martin Hellman, puis mise en application peu de temps aprs par Ron Rivest, Adi Shamir et Len Adleman. Ce systme, aussi appel cryptographie asymtrique, repose sur un concept simple : certaines choses sont plus difciles que dautres. Cela parat vident, bien sr, mais ajoutez quelques notions mathmatiques de haut niveau et vous obtenez une invention de premier plan. La cryptographie traditionnelle, ou symtrique, repose sur une information "secrte" (la cl) connue de toutes les personnes impliques. La cl est ncessaire mais sufsante pour chiffrer et ensuite dchiffrer linformation transmise, si bien quune personne extrieure, mme si elle connat la mthode de chiffrement utilise, ne peut pas dcouvrir le contenu du message. Mais, comme il est ncessaire de partager un secret, cette approche est assez peu pratique en terme de communication informatique. En effet, il est dabord ncessaire dtablir un moyen scuris pour changer le secret avant mme de communiquer transfrer le secret sur un canal non scuris rendrait le systme vulnrable au dchiffrement. En informatique, on communique souvent avec des systmes ou des personnes que lon na jamais vus auparavant et avec lesquels on ne dispose daucun autre moyen scuris pour entrer en contact. La cryptographie cl publique, au contraire, ne repose pas sur un secret partag. Chaque partie dispose de deux lments : le premier (la cl publique) permet de crer un message chiffr mais ne sert quasiment rien pour le dcrypter ; le second (la cl prive) sutilise pour dcrypter le message chiffr. Les personnes qui communiquent peuvent changer leurs cls publiques sur un canal non scuris, mme sil est surveill. Elles se fournissent mutuellement linformation (inutile pour un observateur externe) ncessaire au chiffrement des messages quelles schangent, mais elles conservent pour elles-mmes la partie ncessaire au dchiffrement des donnes. Tout coup, la communication scurise entre deux parfaits inconnus (un client assis sur le canap de son appartement et le serveur dun site de vente en ligne) devient une ralit. Le systme de chiffrement cl publique RSA (Rivest, Shamir et Adleman), original, repose sur le fait que multiplier deux nombres de grande taille reprsente une complexit de calcul assez faible, puisque directement proportionnelle au nombre de chiffres multiplier. linverse, il est beaucoup plus difcile de dcomposer en produit de facteurs premiers (factorisation) un nombre de grande taille, moins dtre un gnie de la cryptographie travaillant pour la NSA, et encore. Lalgorithme RSA choisit tout dabord deux nombres premiers* de trs grande taille, p et q, et les multiplie. Il utilise ensuite ce produit et un autre nombre premier**, (p1)(q1), pour crer une cl publique.* Un nombre premier est un entier positif qui ne se divise que par 1 ou lui-mme. ** Le second entier na dautre facteur commun avec le premier entier que 1 et 1 (leur plus grand commun diviseur est 1).

10

La source

Cette cl est utilise pour chiffrer linformation mais ne suft pas pour la dchiffrer sans recourir la factorisation. La factorisation des produits de deux nombres premiers de grande taille est souvent impossible, ce qui protge des attaques. Lalgorithme de factorisation le plus rapide sur les ordinateurs traditionnels, le crible gnral de corps de nombres (GNFS), aurait besoin de plus de mille ans pour factoriser un nombre entier de 1 024 bits, raison dun million de tests par seconde. En revanche, il ne faut que quelques secondes un PC de moyenne gamme pour trouver deux chiffres premiers dont le produit soit de cette taille. En outre, dans le systme RSA, on cre galement une cl prive en plus de la cl publique. Cette cl prive contient sur les nombres premiers des donnes supplmentaires qui peuvent tre utilises pour dcrypter toute information chiffre avec la cl publique. Lastuce est possible, grce au thorme des restes chinois, le thorme dEuler et dautres concepts mathmatiques fascinants que certains lecteurs curieux auront peuttre envie de dcouvrir par eux-mmes 2. Dautres systmes de cryptographie cl publique fonds sur des formules mathmatiques complexes ont galement t conus par la suite (comme la cryptographie utilisant les courbes elliptiques, par exemple), mais tous partagent le principe de cls publiques et de cls prives. Cette mthode sest rvle sre pour scuriser les e-mails, les transactions sur le Web, mme lorsque lchange seffectue entre deux parties qui ne sont jamais entres en contact et ne disposent pas dun canal scuris pour changer des informations complmentaires avant dtablir la connexion*. Quasiment tous les protocoles de communication scurise utiliss aujourdhui, comme SSH (Secure Shell) ou SSL (Secure Sockets Layer) pour marquer numriquement des mises jour ou des cartes puce, existent grce aux dcouvertes de Dife, Hellman, Rivest, Shamir et Adleman.

Gnrer automatiquement des nombres alatoiresIl subsiste un problme : lors de limplmentation du systme RSA sur une machine dterministe, la premire tape consiste gnrer deux nombres premiers de trs grande taille, p et q. Un ordinateur trouve facilement un premier de grande taille, mais ces nombres doivent galement tre impossibles deviner par dautres machines et ne doivent tre les mmes sur tous les ordinateurs (sils ltaient, une attaque de lalgorithme ne ncessiterait aucune factorisation puisque p et q seraient connus par toute personne disposant dun ordinateur quivalent).* Pour tre complet, il faut noter que la cryptographie cl publique est entre autre vulnrable aux attaques menes par une personne qui cr et fournit une cl publique fausse de faon intercepter les communications. Pour se prmunir de ce type dattaques, des mthodes supplmentaires doivent tre mis en place pour vrier lauthenticit de la cl, soit en concevant un change scuris, soit en tablissant une autorit centrale qui vrie et valide les cls (infrastructures cls publiques, PKI ou IGC).

Chapitre 1

Lcoute du clavier

11

De nombreux algorithmes ont t dvelopps ces dernires annes pour trouver rapidement des nombres premiers pouvant tre utiliss (nombres pseudo-alatoires) et effectuer aussi rapidement des tests prliminaires sur ces nombres 3. Mais, pour gnrer un nombre premier vraiment impossible prvoir, il est ncessaire daccumuler de lentropie ou du hasard, quil sagisse de slectionner un nombre premier parmi un ensemble donn ou de partir dune valeur alatoire et de choisir ensuite le premier nombre premier sur lequel on tombe. Bien que le hasard soit essentiel au moment de la gnration de la cl, cela ne suft pas. La cryptographie cl publique repose sur des calculs complexes et souffre donc dune grande lenteur, en particulier lorsquon la compare la cryptographie symtrique, qui, elle, utilise des cls courtes que les machines dchiffrent laide de calculs connus pour sexcuter rapidement. Pour implmenter un protocole comme SSH, dont on attend un certain niveau de performances, il est prfrable dtablir une communication initiale, deffectuer une vrication basique laide dalgorithmes cls publiques et, donc, de crer un canal scuris. La seconde tape consiste changer une cl de chiffrement symtrique et compacte, par exemple de 128 bits, puis de continuer la communication en utilisant le systme de cryptographie symtrique. Le principal dfaut de la cryptographie symtrique est donc rsolu par la cration initiale (et donc lente) dun canal scuris pour changer le secret partager. Ensuite, en passant des algorithmes plus rapides, lutilisateur peut alors bncier de meilleures performances sans sacrier la scurit. Cependant, pour utiliser la cryptographie symtrique correctement, il est toujours ncessaire de recourir un certain degr dentropie an de gnrer une cl de session symtrique imprvisible pour chaque communication scurise..

La scurit des gnrateurs de nombres pseudo-alatoiresLes programmeurs ont conu de nombreuses mthodes pour que les ordinateurs gnrent des nombres apparemment alatoires. Ces algorithmes sont regroups sous le nom gnrique de gnrateurs de nombres pseudo-alatoires (PRNG). Les gnrateurs de nombres pseudo-alatoires sufsent pour des applications simples, comme la cration dvnements "alatoires" dans des jeux vido ou les titres des messages non sollicits dans le cadre dun mailing de masse. Prenons le gnrateur de congruence linaire (GCL) 4, un exemple classique de ce type dalgorithme. En dpit de son nom obscur, ce gnrateur de nombres alatoires effectue une suite de calculs simples (multiplication, addition et modulo*) chaque fois quil gnre une sortie* Loprateur modulo renvoie le reste entier de la division de deux nombres. Par exemple, 7 divis par 3 donne un rsultat de 2 et un reste de 1 (7=2*3+1). 7 modulo 3 est donc gal 1.

12

La source

"alatoire". Ce gnrateur utilise sa sortie prcdente rt pour calculer la valeur de la sortie suivante rt+1 (o t indique le temps).rt+1=(art+c)modM

Loprateur modulo empche que le rsultat dpasse la plage prdnie de valeurs possibles. Si r0, a, M et c, un ensemble de variables de contrle pour le gnrateur, sont tous des entiers positifs, tous les rsultats de lquation sont compris entre 0 et M1. Pourtant, alors que la sortie de cet algorithme peut, avec quelques rglages, afcher des proprits statistiques qui le rendent utilisable pour gnrer des nombres pseudo-alatoires, rien nest vraiment imprvisible dans les calculs effectus. Et l rside le problme : un attaquant peut facilement dvelopper sa propre copie du gnrateur et lutiliser pour connatre tous les rsultats que notre gnrateur crera. Mme si le gnrateur part dun tat initial (r0) inconnu de lattaquant, il lui est souvent possible de dduire des proprits importantes de cette valeur en observant les sorties produites par le gnrateur de la victime puis dutiliser ce quil sait pour rgler sa version du gnrateur an quelle imite la ntre. En fait, une mthode gnrale pour reconstruire et prdire tous les polynmes des gnrateurs de congruence a t tablie dans les annes 1990 5. Il est sage de ne pas ignorer ce petit inconvnient car il cre un trou bant dans cet algorithme lorsque son utilisation est essentielle la scurit. On a compris peu peu que la seule mthode quun ordinateur peut employer pour produire des donnes quasiment imprvisibles ( moins que la mmoire ne subisse une panne grave ou que le processeur ne fonde) consiste rassembler autant dinformations non prvisibles que possible partir de son environnement physique et de les utiliser comme une valeur transfrer tous les programmes qui ncessitent une bonne part de hasard. Le problme tient au fait quun ordinateur na pas de "sens" qui lui permette de sonder son environnement la recherche de signaux externes apparemment alatoires. Nanmoins, il existe une mthode assez intressante pour contourner ce problme.

Entropie entre-sortie : votre souris vous parleSur presque tous les systmes informatiques, les priphriques externes communiquent des vnements asynchrones, ces informations provenant de la carte rseau ou du clavier laide dun mcanisme dinterruption matriel. Chaque priphrique dispose dun nombre dinterruptions matrielles (IRQ, de langlais Interrupt Request) et indique les vnements importants en changeant le voltage sur la ligne dentre-sortie matrielle de llment qui correspond cet IRQ en particulier dans lordinateur. La modication est alors interprte par un priphrique appel le contrleur programmable dinterruption (PIC, de langlais Programmable Interrupt Controller) qui dlivre les appels dinterruption au processeur (ou aux processeurs).

Chapitre 1

Lcoute du clavier

13

Le processeur indique au contrleur dinterruption si, quand, comment et dans quel ordre de priorit il doit signaler les appels des priphriques lunit centrale, ce qui permet au processeur de grer les vnements efcacement et de faon able. Lorsquil reoit un signal du contrleur dinterruption, le processeur interrompt provisoirement la tche quil effectue, moins quil ait choisi dignorer toute interruption ce moment (au cas o il est particulirement occup). Il invoque ensuite un code assign par le systme dexploitation pour grer lappel du priphrique ou du groupe de priphriques. Une fois que le programme gre lvnement, le processeur restaure le processus original et son contexte ltat de lenvironnement au moment de linterruption et continue son excution comme si rien ne stait produit.

Interruptions : un exemple pratiqueEn pratique, de nombreuses tapes supplmentaires se droulent lors de la dtection dune condition externe, la gnration et la rception dun IRQ. La Figure 1.1 illustre les vnements qui sont dclenchs par lappui ou le relchement dune touche du clavier. Avant mme que vous nappuyiez sur une touche, une puce situe dans le clavier sert de microcontrleur et surveille en permanence tout changement de ltat du clavier. Le clavier est organis comme un tableau de cbles horizontaux et verticaux. Les touches (microcontacts ou membranes sensibles la pression) sont installes lintersection de chaque range et colonne. Le contrleur teste chaque range et chaque colonne sparment une vitesse trs leve. Si le contrleur du clavier dtecte par exemple un circuit ferm lorsquil teste lintersection de la range 3 et de la colonne 5 (ce qui est indiqu par une rsistance faible lorsque le voltage est appliqu ces lignes), il en conclut que la touche cet emplacement (J) est enfonce. Lorsque le contrleur du clavier sent une modication, il convertit les coordonnes de la range et de la colonne en scan code, une valeur qui identie chaque touche. Linformation est ensuite place dans la mmoire tampon interne dune puce qui signale au processeur principal lexistence de nouvelles donnes, puis reprend sa tche. La puce du contrleur dentre du clavier est lquivalent du contrleur de la carte mre. Le contrleur dentre gre habituellement tous les priphriques dentre lmentaires, comme la souris et le clavier. Il reoit un scan code unique de la puce du clavier et signale linterruption adquate au contrleur dinterruption. Ds que ce dernier dtermine quil peut envoyer cette IRQ en particulier, il transfre le signal au processeur, qui gnralement interrompt sa tche courante et fait appel au gestionnaire dinterruption du systme dexploitation. Ce gestionnaire est cens lire les donnes et indiquer la puce quil a effectu la lecture du scan code avec succs. Le contrleur dentre reprend alors

14

La source

ses activits normales et lit ventuellement un autre scan code en provenance du clavier si de nouvelles donnes se trouvent dans la mmoire tampon*.Contrleur d'entre du clavier 8042

Contrleur du clavier Donnes disponibles (1) (2) Lecture de la requte Donnes du scan code (3) 8048 Processeur principal (invoque la routine du systme d'exploitation pour l'IRQ)

Requte IRQ (4)

(5) IRQ 1 8259 (8) Confirmation (EOI) Contrleur d'interruption

(6) scan code

(7) Lecture et reconnaissance

(9)

8042 Vers le systme d'exploitation et les programmes de l'utilisateur

Contrleur d'entre du priphrique

Figure 1.1Communications du clavier lordinateur.

Bien quindirectement, ce schma de fonctionnement est important pour la cration de nombres alatoires. Lordinateur, en utilisant le systme de notication asynchrone des vnements (interruptions), reoit presque instantanment des indications prcises sur

* Sur de nombreuses architectures, il est ncessaire dindiquer au contrleur dentre que linterruption a t traite et quil ne doit plus bloquer les interruptions suivantes. Cest le rle du code de n dinterruption EOI (de langlais End of Interrupt).

Chapitre 1

Lcoute du clavier

15

lactivit de lutilisateur et, ce qui est peut-tre plus intressant, mesure prcisment le dlai entre chaque pression sur les touches. Bien que cette information ne soit pas totalement imprvisible, elle constitue sans doute le meilleur signal externe, quantiable et quelque part non dterministe, que la machine peut obtenir. Et, donc, pour contourner la nature dterministe de lordinateur et insrer une part de hasard dans ses calculs, les auteurs de limplmentation de gnrateurs de nombres pseudo-alatoires crent de lentropie partir du comportement gnralement imprvisible de certains priphriques comme la souris, le clavier, les interfaces rseau et parfois les disques durs. Pour cela, ils ajoutent dans le gestionnaire dinterruption du systme dexploitation un code qui enregistre certains paramtres pour chaque vnement utilisable. On peut bien sr considrer quaucune de ces sources ne fournit tout le temps de donnes vraiment alatoires. Si lutilisateur tape "camsc", il est plus que vraisemblable que les lettres qui suivent seront "ope". Mais certains comportements, comme le choix du mot camscope de notre exemple, sont en fait assez imprvisibles dun point de vue pratique (sans entrer dans une discussion philosophique sur le libre arbitre et les univers dterministes). En fait, cette mthode pour ajouter de lentropie fonctionne raisonnablement bien car elle intgre plusieurs facteurs qui ne peuvent pas tre pris en compte, surveills ou prdits par un attaquant sans quil perde sa sant mentale. Selon les lois de la probabilit, si on collecte des donnes de toutes ces sources pendant une dure assez longue, on obtient obligatoirement une certaine part de hasard. En collectant les informations dune mmoire tampon, on cre un stock dentropie qui peut tre plus ou moins important en fonction du nombre de donnes imprvisibles fournies ou utilises. Malheureusement, ces petites portions de hasard dans le stock (lorsque les donnes que nous entrons au clavier sont le fruit dvnements cosmiques) saccompagnent toujours de donnes hautement prvisibles et ne peuvent donc pas tre utilises en ltat pour gnrer des nombres alatoires. Pour sassurer que le taux dentropie des donnes collectes lors du processus de gestion et de remplissage de notre stock soit galement rparti dans tous les bits en sortie du gnrateur de nombres pseudo-alatoires, ce stock doit tre hach. Autrement dit, il doit tre soigneusement mlang pour quaucune partie des donnes ne soit plus facile prdire quune autre. Chaque bit en sortie doit dpendre part gale de tous les bits en entre. Il peut tre difcile datteindre ce but sans savoir quelles parties de linformation sont prvisibles ou non (linformation qui ne peut pas facilement tre obtenue en surveillant les touches du clavier ou les mouvements de la souris).

Fonctions de rsumHeureusement, les fonctions de hachage scurises, un lment phare de la cryptographie moderne, nous permettent de mlanger les donnes an dobtenir plus dentropie dans chaque bit en sortie, quel que soit le manque duniformit des donnes en entre.

16

La source

Ces fonctions gnrent un rsum de longueur xe, autrement dit un identicateur unique pour un bloc de donnes de taille arbitraire en entre. Mais ce nest pas tout. Toutes les fonctions de hachage possdent deux proprits importantes :m

Il est ais de calculer le rsum mais il nest pas possible de dduire le message original ou lune de ses proprits partir de ce rsultat. Tout changement apport au message peut autant affecter toutes les proprits de la sortie que nimporte quelle autre modication. La possibilit que deux messages distincts aient le mme rsum dpend uniquement de la taille du rsum. Si sa taille est sufsamment importante pour que des recherches exhaustives soient impossibles (entre 128 et 160 bits, soit un nombre de combinaisons compris entre 3.4E+38 1.46E+48), il nest pas possible que deux messages aient le mme rsum.

m

Les fonctions de hachage fournissent donc un moyen de rpartir uniformment dans les donnes en sortie la part de hasard prsente dans les donnes en entre. Cela rsout le problme du hasard cr partir de sources locales dont lentropie est prvisible. En effet, nous collectons un nombre approximatif de donnes alatoires depuis lenvironnement que nous mlangeons avec des donnes prvisibles, puis nous gnrons un rsum qui est assur dtre aussi imprvisible que lentropie rcolte en premier lieu, quelle que soit la manire dont cette part de hasard est rpartie dans les donnes en entre. Comment fonctionnent les fonctions de hachage ? L encore, certaines reposent sur des problmes mathmatiques qui sont, autant quon le sache, trs difciles rsoudre. En fait, tout algorithme de cryptographie symtrique ou cl publique peut tre converti en fonction scurise de hachage. Aussi longtemps que personne ne dcouvre une meilleure solution, cette mthode convient parfaitement. Cependant, cette mthode implique lutilisation doutils lents et trs complexes pour gnrer des rsums, ce qui la rend souvent peu pratique implmenter, en particulier lorsquil sagit de lintgrer dans un systme dexploitation. Une autre solution consiste traiter les donnes de faon que linterdpendance entre tous les bits en entre et en sortie soit sufsamment complexe pour que lobfuscation du message en entre soit totale, en esprant que "cela sufse" empcher les techniques connues de cryptanalyse. Cette approche empirique est raisonnable puisquune bonne partie de linformatique repose en fait sur la devise "esprons que cela sufse". Les groupes dalgorithmes alors utiliss, comme les fonctions MD2, MD4, MD5 et SHA-1, prsentent lavantage dtre plus rapides et simples utiliser que leurs quivalents fonds sur des formules mathmatiques complexes mais galement, lorsquils sont bien conus, de rsister aux techniques traditionnelles de cryptanalyse. Leur faiblesse tient au fait quon ne peut pas prouver quils soient scuriss, puisque aucun dentre eux ne peut se rduire une formule classique et dure rsoudre. Dailleurs, certains chercheurs ont prouv que ces algorithmes prsentaient des failles 6.

Chapitre 1

Lcoute du clavier

17

Comme nous lavons dj indiqu, les fonctions de hachage rendent un grand service aux gnrateurs de nombres pseudo-alatoires dans le sens o elles peuvent tre excutes sur un segment de donnes qui contient n bits alatoires et nimporte quelle quantit de bits prvisibles an de crer une empreinte qui contiendra n bits alatoires rpartis galement sur tous les bits de ce rsum (grce aux deux proprits fondamentales des fonctions de hachage que nous avons dcrites). La fonction de hachage est donc un extracteur pratique dentropie. Si la fonction de hachage utilise un nombre sufsant de donnes imprvisibles rcoltes depuis un gestionnaire dinterruption, il est possible de gnrer des nombres alatoires sans divulguer de renseignements sur la forme exacte de linformation utilise pour les crer, tout en vitant le risque que des donnes imparfaites en entre puissent affecter la sortie de manire signicative. Pour ne pas compromettre lensemble du processus, il suft de sassurer que la quantit dentropie soit sufsamment importante et de fournir la fonction de hachage cet amas de donnes dinterruption. Si lattaquant peut prvoir une grande partie des donnes utilises pour gnrer le nombre alatoire et que le reste ne reprsente quune poigne de combinaisons possibles, il peut alors lancer une attaque par force brute sur limplmentation en essayant simplement toutes les valeurs possibles. Si nous utilisons par exemple une fonction de hachage qui cre une empreinte de 128 bits, quelle que soit la quantit de donnes collectes (200 octets ou 2 mgaoctets de pression sur le clavier), nous devons tre srs quau moins 128 de ces bits en entre sont imprvisibles pour un attaquant avant dutiliser la fonction de hachage.

De limportance dtre pdantPrenons lexemple dun utilisateur qui dcide dcrire un script shell alors que le stock dentropie est vide, peut-tre parce quune prcdente opration a ncessit lutilisation de nombres alatoires auparavant. Lattaquant note que lutilisateur crit un script car vi delallusers.sh est excut. Il considre ensuite que le dbut du script doit commencer aux lignes #!/bin/sh. Bien quil ne puisse pas tre sr de ce qui suit, il peut sattendre ce que le script souvre lors de lutilisation dune commande shell et quil ne sagisse pas dune ode aux tamanoirs. ce moment, un utilitaire de chiffrement demande soudainement au systme un nombre alatoire de 128 bits pour lutiliser comme cl de session et ainsi protger les communications. En revanche, le systme ne parvient pas estimer correctement la quantit dentropie disponible dans la mmoire tampon qui a enregistr le processus dcriture des premires lignes du script, si bien que la tche de lattaquant est maintenant facile. Lordinateur ne dispose pas de linformation ncessaire pour savoir si laction effectue par lutilisateur ce moment prcis est prvisible par dautres ou non. Il ne peut que spculer (aid par les hypothses faites par le programmeur) sur le fait que les actions de lutilisateur au l des minutes ou des heures niront par se rsumer quelque chose qui

18

La source

ne peut pas tre prvu avec prcision et quen moyenne cette quantit de donnes entres dpendra de facteurs que lattaquant ne peut pas prvoir. Lattaquant, ce point, connat la plus grande part du contenu du stock dentropie et ne doit plus choisir que parmi quelques milliers doptions pour la partie quil ne connat pas (en dpit du fait que le systme dexploitation est persuad que la quantit dentropie dans la mmoire tampon est beaucoup plus importante). Ces milliers doptions ne reprsentent pas un gros d pour une personne assiste dun ordinateur. Par consquent, au lieu davoir un nombre alatoire de 128 bits et donc une combinaison de 39 chiffres, une application de cryptographie peu sre gnre un nombre partir de donnes en entre qui se rsument quelques milliers doptions. Lattaquant peut alors facilement tester ces options les unes aprs les autres et donc dchiffrer rapidement les informations qui taient censes rester scurises.

Lentropie ne doit pas tre gcheComme il est presque impossible de prvoir prcisment la quantit dentropie collecte par lutilisateur dans une priode courte et an dviter que la sortie du PRNG soit prvisible, toutes les implmentations intgrent le rsum ou ltat interne du gnrateur de nombres pseudo-alatoires lors de la cration de la nouvelle sortie. La sortie prcdente devient une part de lquation utilise pour calculer la valeur suivante du PRNG. Dans ce cas, une fois une quantit sufsante dentropie rassemble dans le systme, les donnes les plus rcentes utilises pour remplir de nouveau le stock dentropie nont pas besoin dtre totalement alatoires tout moment pour garantir une scurit lmentaire. Il y a cependant un autre problme. Si les implmentations sexcutent pendant une dure prolonge en se fondant sur lancienne entropie hrite, en rptant simplement plusieurs fois des fonctions de hachage MD5 ou SHA-1, la scurit ne repose plus alors que sur lalgorithme de hachage. Or nous avons vu que celui-ci ne peut pas tre totalement able en termes de performance et de scurit des communications. En outre, les fonctions de hachage nont pas forcment t values par des cryptographes comptents pour savoir si elles sont adaptes cet usage prcis. Limplmentation ne repose plus uniquement sur les proprits de hachage des bits de la fonction mais dpend maintenant compltement de son invulnrabilit aux attaques. Si une petite portion dinformation sur ltat interne du gnrateur est dvoile chaque tape et quaucune nouvelle donne imprvisible nest ajoute au stock, ces donnes peuvent long terme permettre de reconstruire ou de deviner avec une quasi-certitude ltat interne. Il est alors possible de prvoir le comportement futur du priphrique. En revanche, si de nouvelles donnes alatoires sont ajoutes un rythme qui, du moins statistiquement, empche une rutilisation signicative de ltat interne, lattaque devient beaucoup moins ralisable mme si la fonction de hachage est casse.

Chapitre 1

Lcoute du clavier

19

De nombreux experts dconseillent daccorder un tel niveau de conance et de dpendance envers la fonction de hachage pour les applications les plus exigeantes. Il est donc important que limplmentation conserve la trace de la quantit estime dentropie que le systme a collecte, ce qui, mme si cette estimation nest pas exacte momentanment, rete une tendance statistique gnrale conforme ce que nous attendons des sources utilises. court terme, des uctuations mineures dans la disponibilit de lentropie externe peuvent se produire, comme dans le script dexemple dont nous avons parl, et sont alors compenses par lalgorithme qui rutilise la sortie prcdente. Nanmoins, il est ncessaire deffectuer des prvisions long terme prcises an de garantir la reconstitution frquente du stock dentropie et de minimiser lexposition au cas o la fonction de hachage dvoile ltat interne au l du temps. En tant que telle, limplmentation doit tenir compte de lentropie dpense dans les donnes fournies aux processus utilisateur et refuser de fournir plus de nombres alatoires jusqu ce quune quantit sufsante dentropie soit disponible. Le systme conu et mis en uvre par Theodore Tso en 1994 au MIT (Massachusetts Institute of Technology) reprsente un bon exemple dimplmentation de PRNG qui tienne compte de toutes ces notions. Son mcanisme, /dev/random, a tout dabord t implment dans Linux puis introduit dans des systmes comme FreeBSD, NetBSD et HP/UX. Il contrle un certain nombre dvnements en entre et en sortie (I/O), mesure les intervalles de temps entre eux ainsi que dautres caractristiques importantes des interruptions. Il prserve galement le stock dentropie lors de la fermeture du systme en le sauvegardant sur disque, ce qui empche le systme de dmarrer dans un tat totalement prvisible et le rend plus difcile attaquer.

Attaques : les implications dun changement soudain de paradigmeQuel problme pourrait poser ce systme apparemment infaillible pour la fourniture de nombres alatoires imprvisibles aux applications exigeantes ? Aucun, du moins pas l o vous vous attendriez en trouver. Les chiffres gnrs sont en effet difciles prdire. Le raisonnement de lauteur de cette technologie contient cependant une erreur lgre mais dsastreuse. La conception de M. Tso suppose en effet que lassaillant cherche prvoir les nombres alatoires en fonction de ce quil sait de la machine et de son environnement. Mais que se passe-t-il si lattaquant veut faire tout le contraire ? Lattaquant qui dispose dun compte sur la machine, mme sans avoir daccs direct linformation que lutilisateur tape, peut dduire le moment exact auquel lactivit en entre survient dans le systme en vidant le stock dentropie (ce quil peut raliser simplement en demandant des donnes alatoires au systme sans les conserver) puis en surveillant la disponibilit de la sortie du PRNG. Sil ny a pas dactivit en entre/sortie, le PRNG

20

La source

ne dispose pas de nouvelles donnes disponibles, puisque lestimation de lentropie ne change pas. Si une ou plusieurs touches sont enfonces, une petite quantit dinformations sera disponible pour lattaquant, qui peut alors en dduire que lune des touches a t enfonce ou relche. Dautres vnements, comme lactivit du disque, gnrent galement une sortie du PRNG, mais les motifs dans le temps et la quantit de lentropie collecte de cette faon diffrent des caractristiques des donnes dinterruption transmises par un clavier. Ainsi, il est possible et facile de distinguer les vnements en fonction de la quantit de donnes disponibles un moment donn. Les donnes provenant des touches du clavier seront diffrentes des donnes relatives lactivit du disque. En n de compte, une mthode conue pour scuriser au maximum la gnration de nombres alatoires entrane en fait une dgradation de la vie prive de lutilisateur : il est possible de tromper ce mcanisme qui estime la quantit dentropie disponible auprs dune source externe et de lutiliser pour contrler certains aspects des activits en entre sur le systme. Mme si lattaquant ne peut pas dtecter exactement ce qui est tap, la frappe de certains mots prsente certains motifs dans le temps identiables, en particulier sil dispose de linformation concernant lappui ou le relchement dune touche en particulier, comme cest le cas ici. En examinant ces motifs, lattaquant peut dduire de quelle entre il sagit ou tout au moins la deviner plus facilement.

Examen plus dtaill des motifs dans le temps en entreUne analyse approfondie mene par une quipe de chercheurs de luniversit de Californie 7 indique quil est possible de dduire certaines proprits des entres de lutilisateur, voire de compltement reconstruire les donnes, en se concentrant uniquement sur la frquence de frappe entre deux touches. Cette tude a conclu quil pouvait exister des variations entre une personne qui tape lentement et un oprateur clavier comptent mais que la vitesse de frappe entre deux touches suivait gnralement des motifs dans le temps. En effet, non seulement nous disposons nos mains dune certaine faon, mais la disposition des touches sur le clavier affecte galement la vitesse laquelle nos doigts peuvent atteindre une touche. Par exemple, le laps de temps entre les touches e et n est gnralement diffrent de lintervalle entre b et j. Dans le premier cas, comme une main contrle le ct gauche du clavier et lautre, le ct droit (voir Figure 1.2), la frappe des deux lettres ne demande quasiment aucun mouvement, si bien que les deux touches sont enfonces presque simultanment, avec un intervalle de moins de 100 millisecondes. En revanche, la frappe conscutive de b et j est plus complexe car cela exige dutiliser deux fois la mme main, ce qui prend beaucoup plus de temps.

Chapitre 1

Lcoute du clavier

21

Figure 1.2La zone du clavier gnralement dvolue chaque main. Les touches grises sont habituellement contrles par la main gauche et les touches blanches, par la main droite.

Aprs avoir men un certain nombre dexpriences, les auteurs de cette tude estiment quenviron 1,2 bit dinformation par touche enfonce peut tre obtenue partir de la frquence de la frappe. En observant le rythme des squences, il est possible de dterminer lensemble des entres du clavier les plus susceptibles de gnrer ce schma et donc de deviner plus facilement la chronologie exacte des touches enfonces. Lide de compter des fractions de bit peut sembler ridicule, mais cela signie que le nombre de possibilits pour chaque touche peut tre rduit par 21.2, soit environ 2,40 fois. Pour une simple touche, qui ne vhicule gnralement pas plus de 6 bits de hasard, cela rduit le nombre doptions possibles de 64 lments environ 26. Comme vous pouvez le voir, il existe bien une manire de limiter le nombre de possibilits si nous voulons deviner quelles sont les touches enfonces. Mme si cela peut ne pas tre particulirement impressionnant en soi, il faut galement considrer le fait que les donnes saisies au clavier ont peu de chances dtre une suite de lettres sans queue ni tte. On estime que lentropie dun texte en anglais est de 0,6 1,3 bit par caractre seulement 8, ce qui signie quenviron 1,5 2,5 tentatives en moyenne sufsent pour russir prvoir le caractre suivant. Avec une mthode qui rduise encore davantage le champ de recherche, il est possible de dcouvrir sans ambiguts les mots qui correspondent presque toutes les donnes entres. Pour vrier leur estimation et la dmontrer dans la pratique, les chercheurs ont utilis le modle de Markov cach et lalgorithme de Viterbi pour deviner les touches enfonces. On appelle modle de Markov une mthode qui dcrit un systme dtat discret dont la prochaine valeur dpend uniquement de son tat actuel, et non pas des valeurs prcdentes (chane de Markov). Le modle de Markov cach est une variante qui fournit une mthode pour dcrire un systme dans lequel chaque tat interne gnre une observation, mais pour laquelle ltat actuel nest pas connu. Ce modle est couramment utilis dans des applications comme la reconnaissance vocale, lorsquon cherche obtenir des

22

La source

donnes pures (une reprsentation textuelle de la parole) partir de ses manifestations spciques (londe sonore chantillonne). Les auteurs de ltude ont conclu que le modle de Markov cach peut tre utilis pour analyser la frappe, et ils considrent que ltat interne du systme reprsente linformation sur les touches enfonces, tandis que le laps de temps entre la frappe de deux touches correspond lobservation gurant dans le modle de Markov. Il est possible de considrer quil sagit l dune simplication exagre, puisque la dpendance peut tre plus importante, en particulier dans la situation quillustre la Figure 1.3.

` tab lock shift ctrl

1 q a \

2 w s z

3 e d x alt

4 r f c

5 t g v

6 y h b

7 u j n

8 i k m

9 o l ,

0 p ; .

[ / alt

= ] #

backspace

` tab

1 q a \

2 w s z

3 e d x alt

4 r f c

5 t g v

6 y h b

7 u j n

8 i k m

9 o l ,

0 p ; .

[ / alt

= ] #

backspace

return

lock shift

return

shift ctrl

shift ctrl

space

ctrl

space

Position initiale

L'utilisateur presse la touche "Z"

` tab lock shift ctrl

1 q a \

2 w s z

3 e d x alt

4 r f c

5 t g v

6 y h b

7 u j n

8 i k m

9 o l ,

0 p ; .

[ / alt

= ] #

backspace

` tab

1 q a \

2 w s z

3 e d x alt

4 r f c

5 t g v

6 y h b

7 u j n

8 i k m

9 o l ,

0 p ; .

[ / alt

= ] #

backspace

return

lock shift

return

shift ctrl

shift ctrl

space

ctrl

space

L'utilisateur presse la touche "P"

L'utilisateur presse la touche "V"

Figure 1.3La ncessit de dplacer la main gauche dans une position diffrente lors de la premire tape affecte ensuite le laps de temps entre les touches P et V. Or le modle de Markov est incapable de tenir compte dun scnario o la position de la main varie ltape prcdente.

Lalgorithme de Viterbi permet de rsoudre les problmes du modle de Markov cach. Cet algorithme peut tre utilis pour trouver la squence la plus probable des tats internes en se fondant sur une suite dobservations. Dans ce cas particulier, on lutilise pour dterminer la suite la plus probable de caractres partir de lintervalle de temps entre les touches.

Chapitre 1

Lcoute du clavier

23

Lutilisation de lalgorithme de Viterbi entrane une rduction du champ de recherche pour les mots de passe de 8 caractres absents du dictionnaire par un facteur de 50. Dans le cas o le texte reconstruire partir de sa frappe est constitu de mots anglais existants dans le dictionnaire, ce facteur est susceptible dtre considrablement plus lev. Penchons-nous maintenant sur la surveillance des interruptions. Les recherches que nous venons de dcrire se concentrent sur les informations partielles disponibles en espionnant les motifs de transfert de SSH (Secure Shell). Mais, sil contrle les interruptions, lattaquant dispose alors de beaucoup plus dinformations, savoir la dure de lappui sur la touche, ainsi que la cadence de la frappe, puisque la dure pendant laquelle une touche est enfonce dpend du doigt utilis. Par exemple, lindex est le doigt qui reste gnralement le moins longtemps en contact sur une touche, lannulaire est probablement le plus lent, et ainsi de suite. Ces informations prcieuses facilitent la localisation approximative des touches sur le clavier. Par ailleurs, ces donnes permettent galement lattaquant de surveiller le passage dune main lautre, le moment o le premier caractre est tap de la main gauche et le second, par la main droite, ou vice versa. Comme chaque main est contrle par un hmisphre diffrent du cerveau, presque tous les utilisateurs qui matrisent lusage du clavier appuient souvent sur la deuxime touche avant de relcher la premire lorsquils changent de main. Bien que lenfoncement et le relchement des touches soient impossibles distinguer en tant que tels, un intervalle de temps particulirement court entre deux vnements clavier indique clairement ce phnomne. Dans quelques cas rares, en particulier lorsque la personne qui frappe est presse, la seconde touche survient non seulement avant la libration mais avant mme que la premire touche ne soit enfonce, ce qui se traduit par des erreurs typographiques classiques comme la frappe de "dse" au lieu de "des".e v i l Temps

Figure 1.4Cadence de la pression et du relchement sur les touches lors de changement de main.

La Figure 1.4 montre un exemple dchantillon de frappe au clavier dans le temps. Lutilisateur tape le mot evil ("mal" en anglais). Le majeur de la main gauche appuie sur

24

La source

la touche e pendant une priode de temps moyenne. Ensuite, un laps de temps important se droule avant la frappe de la touche v car lutilisateur doit bouger la totalit de sa main an datteindre cette touche avec lindex. (Le pouce ne peut pas tre utilis car la barre Espace bloque le passage.) La touche v est enfonce pendant une courte priode de temps, comme cest le cas de i, car ces deux touches sont enfonces par lindex. On constate galement un chevauchement : la touche i est enfonce avant que la touche v ne soit relche en raison dun changement de main. Enn, lannulaire enfonce la touche l aprs un certain temps (il nest pas ncessaire de dplacer la main), et le contact est assez long. Par consquent, on peut raisonnablement penser quil est possible dobtenir un taux de russite beaucoup plus lev dans cette attaque (la plupart de ces informations ntaient pas disponibles dans lexemple de ltude originale).

Tactiques de dfense immdiates prsent que nous connaissons le potentiel de lespionnage du clavier, comment sen dfendre ? Le meilleur moyen consiste utiliser lentropie dune mmoire tampon distincte (celle du clavier) et qui ait une taille raisonnable. La mmoire tampon est vide et transmise la base de limplmentation du PRNG uniquement lorsquelle dborde ou aprs un intervalle de temps beaucoup plus important que celui habituellement constat entre la frappe de deux touches (cest--dire quelques secondes au moins). On limine ainsi la capacit de lattaquant mesurer la cadence de la frappe. Avec cette solution, seuls deux types dinformations sont disponibles pour lattaquant. La procdure de vidage de la mmoire tampon lorsquelle dborde rvle lattaquant quun certain nombre de touches (en fonction de la taille de la mmoire tampon) ont t enfonces dans un laps de temps quil peut mesurer, mais sans que ne lui soit divulgu lintervalle de temps exact entre chaque touche. Lattaquant peut galement chronomtrer une squence du vidage de la mmoire, ce qui lui indique quune ou plusieurs touches ont t enfonces pendant une dure prcise mais ne lui fournit aucune information sur le nombre dvnements ni le moment o ils se sont produits. Les renseignements obtenus de cette faon ont une valeur marginale pour les attaques fondes sur le temps et ne peuvent qutre utilises pour gnrer des statistiques gnrales sur lactivit de clavier, ce qui ne constitue pas une menace dans la plupart des environnements multi-utilisateurs.

Les gnrateurs de nombres alatoires matriels : une meilleure solution ?De nos jours, un certain nombre de plates-formes matrielles implmentent des gnrateurs de nombres alatoires physiques, appels vrais gnrateurs de nombres alatoires

Chapitre 1

Lcoute du clavier

25

(TRNG, de langlais True Random Number Generators). Ces priphriques offrent un moyen plus able de gnrer des donnes vraiment imprvisibles par rapport la collecte dinformations dont on espre simplement quelles soient difciles prdire. Il est conseill dutiliser ce moyen pour acqurir de lentropie sur toutes les machines quipes de ce matriel. Au moment de la rdaction de cet ouvrage, deux solutions fondes sur des circuits intgrs sont mises au point par Intel et VIA. Intel intgre un gnrateur de nombres alatoires dans certains de ses chipsets, comme i810. Le systme utilise une conception classique de deux oscillateurs : loscillateur de haute frquence gnre un signal de base qui est pour lessentiel une alternance logique dtats (010101010101...) et un oscillateur basse frquence, travaillant un taux nominal de 1/100 de la frquence de loscillateur haute vitesse, mais dont la frquence est module par une rsistance qui sert de principale source dentropie. Certaines caractristiques mesurables dune rsistance changent en raison du