+--------------------+ Ý CODAGE DES DONNEES Ý +--------------------+ Le chiffrement de donn‚es EFS int‚gr‚ … Windows NT 5.0 (Windows 2000) --------------------------------------------------------------------- Article (c) Alexandre PUKALL 1998 [Utilisation de tout ou partie autoris‚e si le nom de l'auteur est mentionn‚ et … condition que cet entˆte ne soit pas retir‚] Microsoft renonce … son pass‚ grƒce … Windows NT 5.0 et le nouveau systŠme EFS : Encrypting File System Jusqu'… pr‚sent les logiciels Microsoft n'‚taient pas vraiment … la pointe du progrŠs en matiŠre de protection des donn‚es. On se souvient de Word 2.0, Word 6.0 et Word 95 qui utilisaient le systŠme VigenŠre pour crypter les fichiers des utilisateurs avec un mot de passe. Ce systŠme d‚rive le mot de passe, par un systŠme simple de rotations, en une cl‚ fixe de 16 octets puis mixe par XOR cette cl‚ avec le texte clair pour former le texte crypt‚. Or, ce systŠme n'offre aucune s‚curit‚ et on a vu se propager sur Internet des logiciels pour 'casser' les mots de passe de Word. Ces logiciels retrouvent la cl‚ fixe de 16 octets par attaque statistique puis inversent les rotations pour retrouver le mot de passe original. Avec Office 97, le systŠme reste le mˆme en France ( l‚galit‚ oblige ), mais pour les autres pays le systŠme utilis‚ est le RC4-40 bits de la soci‚t‚ am‚ricaine RSA. Le mot de passe est transform‚ en une cl‚ al‚atoire de 16 octets non inversible grƒce … la fonction de hachage … sens unique MD5 ‚galement de la soci‚t‚ RSA. 5 octets sont alors utilis‚s pour initialiser le systŠme de chiffrement en continu RC4. RC4 produit une suite al‚atoire d'octets pratiquement infinie qui est mix‚e par XOR avec le texte clair. Cependant aucune valeur de salage n'est utilis‚e. Une valeur de salage est une suite al‚atoire d'octets ajout‚e au mot de passe de l'utilisateur pour cr‚er une cl‚ diff‚rente … chaque cryptage. Comme Office 97 ne l'utilise pas, la suite al‚atoire d'octets est toujours la mˆme si on ne change pas le mot de passe. Ceci permet d'attaquer le systŠme. Si on connaŒt un seul fichier crypt‚ et son ‚quivalent non crypt‚ on peut d‚coder tous les autres fichiers cod‚s avec la mˆme cl‚ ( de longueur inf‚rieure ou ‚gale … ce premier fichier ). Quant … Windows NT 4.0, Microsoft ne cesse de marteler sa grande s‚curit‚. Cependant une partition NTFS avec des droits d'accŠs r‚serv‚s ne protŠge absolument pas, si on peut avoir un accŠs physique … la machine. De nombreux logiciels sont disponibles sur Internet, comme NTFSDOS.EXE . Il suffit alors de booter sur une disquette DOS puis de lancer NTFSDOS pour avoir accŠs … la partition NTFS complŠte mˆme si on ne possŠde aucun droit d'accŠs sur les fichiers. Si on ne possŠde pas ce programme mais que l'on peut ouvrir la machine, il suffit de r‚cup‚rer le disque dur et de l'installer en esclave sur une autre machine NT 4.0 sur laquelle on connaŒt le mot de passe Administrateur. On r‚cupŠre automatiquement les droits d'accŠs aux fichiers du nouveau disque dur, mˆme si le mot de passe Administrateur n'est pas le mˆme sur les deux disques. Pour ceux disposant de NT 4.0 sans service Pack suppl‚mentaire, le programme GETADMIN.EXE ( disponible aussi sur Internet ) permet d'exploiter un bug du systŠme d'exploitation ( r‚gl‚ dans les services Pack suivants ) et transforme tout utilisateur normal en Administrateur avec tous les droits d'accŠs associ‚s, ceci en introduisant le nom de l'utilisateur dans le groupe local 'administrateurs'. S‚curit‚ et Microsoft ne faisaient pas bon m‚nage. Cependant cela va bient“t prendre fin avec Windows NT 5.0 NT 5.0, outre toutes les am‚liorations tourn‚es vers Internet qu'il va apporter, procure ‚galement un nouveau systŠme de fichiers : EFS ( Encrypting File System ). Cela faisait longtemps que les sp‚cialistes de la s‚curit‚ attendaient un systŠme fiable. Ce systŠme permet de crypter tous les fichiers d'un disque dur de fa‡on automatique et transparente. Sous NT 4.0 lorsque l'on applique l'attribut 'compress‚' … un fichier ou un r‚pertoire, tous les fichiers sont compress‚s automatiquement et ceux que l'on rajoute par la suite ‚galement. Sous NT 5.0, la compression des fichiers sera toujours possible mais en plus on disposera d'un attribut 'crypt‚'. En ce qui concerne la gestion des attributs 'crypt‚' des fichiers, rien de plus simple, on peut activer cet attribut dans les propri‚t‚s du fichier par l'explorateur Windows NT. Ainsi, un fichier crypt‚ sera prot‚g‚ des accŠs physiques au disque dur car mˆme si on y accŠde, son contenu ne sera pas d‚chiffrable. Tous les fichiers temporaires peuvent ˆtre crypt‚s ‚galement, ne laissant ainsi aucune brŠche … un ‚ventuel pirate. Jusqu'… pr‚sent les logiciels de cryptage de fichiers ‚taient lourds … utiliser car il fallait les lancer, donner un mot de passe et choisir les fichiers … crypter ou d‚crypter. Or, ce qui est lourd n'est jamais utilis‚ par les utilisateurs. S‚curiser les fichiers d'une entreprise ‚tait alors pratiquement impossible. Avec NT 5.0, le mot de passe que l'utilisateur donne au login ( connexion sur NT ) est utilis‚ par la suite pour toutes les proc‚dures de cryptage/d‚cryptage de fa‡on transparente. Mais NT 5.0 permet aussi de stocker les cl‚s sur une carte … puce que l'utilisateur insŠre dans un lecteur pour d‚crypter ses fichiers ( ou mˆme pour se connecter … NT ). En fait, le systŠme est plus complexe car il apporte de nombreuses s‚curit‚s suppl‚mentaires. A la cr‚ation de chaque utilisateur, une cl‚ priv‚e et une cl‚ publique sont cr‚‚es. Rappelons qu'une cl‚ publique permet de crypter une information mais ne permet pas de la d‚crypter ( le systŠme est bas‚ sur la factorisation des nombres premiers ). Pour d‚coder l'information il faut disposer de la cl‚ priv‚e. Sous NT 5.0, chaque utilisateur dispose d'une cl‚ publique et d'une cl‚ priv‚e de type RSA ( Rivest Shamir Adleman ) … 1024 bits pour la version NT 5.0 US et 512 bits pour la version export. La cl‚ priv‚e est elle-mˆme crypt‚e avec le mot de passe de l'utilisateur. Chaque fois qu'un fichier doit ˆtre crypt‚, une cl‚ al‚atoire est cr‚‚e. Cette cl‚ est appel‚e cl‚ de session et ne sera jamais r‚utilis‚e une seconde fois. Cette cl‚ est utilis‚e pour crypter le fichier avec l'algorithme DES ( Data Encryption Standard ). Ainsi chaque fichier sera toujours crypt‚ avec une cl‚ diff‚rente et un mˆme fichier d‚cod‚ puis recod‚ … nouveau aura une cl‚ diff‚rente lors du nouveau codage. Cette cl‚ de session est ins‚r‚e en d‚but du fichier et est elle-mˆme cod‚e avec la cl‚ publique de l'utilisateur. On l'appelle alors 'champ de d‚cryptage de donn‚es'. Lorsque l'utilisateur veut avoir accŠs … son fichier, le systŠme d‚code sa cl‚ priv‚e ( en m‚moire prot‚g‚e ) avec son mot de passe ( rest‚ en m‚moire aprŠs le login ) puis d‚crypte le 'champ de d‚cryptage des donn‚es' avec cette cl‚ priv‚e. La cl‚ de session est alors utilis‚e pour d‚crypter le fichier en lui-mˆme. Sans cl‚ priv‚e ou sans la bonne cl‚ priv‚e, le fichier ne sera pas accessible ( et ne pourrait d'ailleurs pas ˆtre d‚crypt‚ ). Microsoft a bien pens‚ le systŠme : si certains fichiers doivent ˆtre partag‚s entre plusieurs utilisateurs, la cl‚ de session du fichier est dupliqu‚e autant de fois qu'il y a d'utilisateurs et chaque copie de la mˆme cl‚ de session est crypt‚e par chaque cl‚ priv‚e de chaque utilisateur. Toutes ces copies de la cl‚ de session ( plusieurs 'champ de d‚cryptage de donn‚es' ) sont int‚gr‚es en d‚but de fichier avec, pour chaque cl‚, un identificateur de l'utilisateur. Le systŠme EFS r‚side en mode noyau, ce qui a pour effet d'‚viter que les cl‚s de session puissent ˆtre enregistr‚es par le systŠme d'exploitation dans le fichier d'‚change sur le disque dur. Les cl‚s de session restent donc toujours en m‚moire pendant leur utilisation et sont effac‚es aprŠs. Cette m‚moire est inaccessible … tous les autres programmes, mˆme ayant un privilŠge d'accŠs 'systŠme' ( le plus ‚lev‚ ). Ce qui pourrait poser problŠme, c'est le d‚part d'un salari‚ de l'entreprise : si un utilisateur a crypt‚ tous ses fichiers et qu'il ne veut pas donner son mot de passe pour d‚crypter sa cl‚ priv‚e ( ou qu'il ne s'en souvient plus ), alors tous ses fichiers sont perdus. L… encore, Microsoft fait fort : chaque cl‚ de session des fichiers est dupliqu‚e et crypt‚e avec une cl‚ publique de 'recouvrement de cl‚s'. Cette copie de cl‚ de session crypt‚e est ‚galement ins‚r‚e en d‚but de fichier. Elle est appel‚e 'Champ de recouvrement de donn‚es'. Pour d‚crypter alors un fichier, il faut soit avoir la cl‚ priv‚e de l'utilisateur, soit avoir la cl‚ priv‚e de 'recouvrement de cl‚s'. La paire cl‚ priv‚e-cl‚ publique de 'recouvrement de cl‚s' est cr‚‚e par l'Administrateur lors de l'installation de NT 5.0. Elle est crypt‚e par le mot de passe de l'Administrateur ( par d‚faut ) mais ce dernier peut d‚l‚guer la gestion de cette cl‚ … un op‚rateur de 'recouvrement de cl‚s' comme cela existe d‚j… sur NT 4.0 pour les op‚rateurs de sauvegarde. NT 5.0 permet mˆme de cr‚er plusieurs cl‚s de 'recouvrement de cl‚s' pour autoriser diff‚rents op‚rateurs … r‚cup‚rer les fichiers. A noter que le systŠme de 'recouvrement de cl‚s' permet de retrouver les cl‚s de session ( uniques par fichier ) des fichiers, pour d‚coder ceux-ci mais ne donne aucune information sur la cl‚ priv‚e de l'utilisateur, afin que celle-ci ne puisse pas ˆtre diffus‚e par un op‚rateur de 'recouvrement de cl‚s' malveillant. Autre chose importante, Microsoft a ‚galement pens‚ aux temps de codage/d‚codage pour les fichiers. Lorsqu'il s'agit de bases de donn‚es partag‚es par divers utilisateurs, si le systŠme devait d‚coder toute la base puis la recoder … chaque fois, cela prendrait ‚norm‚ment de temps. Le systŠme EFS, travaillant au niveau des secteurs du disque dur, il n'est pas capable d'interpr‚ter le contenu des fichiers pour voir s'il s'agit d'un texte, d'une image ou d'une base de donn‚es. Microsoft a donc int‚gr‚ un systŠme permettant de ne d‚coder qu'une partie du fichier si n‚cessaire ( comme les enregistrements d'une base de donn‚es). Le systŠme paraŒt ˆtre extrˆmement s–r et va clouer d‚finitivement la bouche de tous les opposants … Microsoft ... A moins que ... Eh oui, pour rester honnˆte il faut indiquer que pour le moment tous les systŠmes de chiffrement qui sortent des Etats-Unis ne peuvent disposer que de 40 bits pour les cl‚s de session ( DES-40 ) Ainsi, un pirate pourra toujours passer quelques jours … rechercher toutes les cl‚s de session possibles pour d‚crypter le fichier et ceci sans devoir s'attaquer … la cl‚ priv‚e de l'utilisateur. Cependant, Microsoft est en train de n‚gocier avec le gouvernement am‚ricain l'autorisation d'exporter son systŠme avec 56 bits ( DES-56 ). S'il y parvient ce systŠme pourra alors s–rement ˆtre utilis‚ tel quel en France puisque le Premier Ministre a annonc‚ r‚cemment que les cl‚s de 56 bits allaient ˆtre l‚galis‚es. ( NB : Depuis Mars 1999, les cl‚s de 128 bits sont autoris‚es en France mais les am‚ricains ne peuvent exporter de systŠmes avec des cl‚s de plus de 40 bits. Il faut bien que la NSA puisse d‚coder ) Enfin dernier problŠme, si le systŠme permet de d‚coder des parties de fichiers sans devoir d‚coder tout le fichier, cela donne une porte d'entr‚e aux pirates. Le systŠme DES utilise une cl‚ de 56 bits pour crypter un bloc de 8 octets ( 64 bits ). Le bloc crypt‚ de 8 octets d‚pend alors entiŠrement du texte clair et de la cl‚. Le systŠme DES n'est vraiment fiable que s'il est utilis‚ avec une cl‚ de session unique ( ce qui est le cas ) et en mode CBC ( Cipher Block Chaining ), mode o— le r‚sultat du cryptage des 8 octets pr‚c‚dents est combin‚ par XOR avec les 8 octets clairs suivants qui vont alors ˆtre eux-mˆme crypt‚s ... et ainsi de suite jusqu'… la fin du fichier. Le mode CBC ne permet cependant pas de d‚crypter une portion de fichier : tout le fichier doit ˆtre d‚cod‚ ou rien ne pourra l'ˆtre. Si le systŠme DES est utilis‚ en mode EBC ( Electronic CodeBook ) o— chaque portion de 8 octets est cod‚e par la mˆme cl‚ de session mais sans chaŒnage entre les blocs, ceci permet de d‚coder des portions de fichier par blocs de 8 octets mais permet ‚galement des attaques par les pirates sur les bouts de 8 octets qui sont ind‚pendants les uns des autres et cod‚s avec la mˆme cl‚. Microsoft ne donne pas de d‚tails, pour le moment, sur le mode utilis‚. Esp‚rons qu'ils y ont r‚fl‚chi un peu et qu'ils utilisent un systŠme fiable mixant les deux : au lieu de crypter les blocs de 8 octets en mode EBC, on code les blocs de 8 octets en mode CBC jusqu'… concurrence de 512 octets ( taille d'un secteur ). Chaque secteur du fichier sera alors cod‚ avec la mˆme cl‚ de session, ce qui permet d'acc‚der … des portions de fichier par blocs de 512 octets mais en mˆme temps rend beaucoup plus difficile une attaque sur les diff‚rents blocs de 512 octets qui sont bien plus gros qu'un simple bloc de 8 octets. AprŠs v‚rification Windows NT 5.0 utilise bien le mode CBC avec les algorithmes suivants ( DES-40 bits pour l'export et DES-56 et 3-DES 168 bits pour les USA et le Canada ). Microsoft utilise le mode CBC en cryptant les informations secteur par secteur ( du disque dur ) et non pas fichier par fichier. Ceci permet l'acces aleatoire dans base de donn‚es, sans perte de performance ( sans devoir d‚coder toute la base entiŠre ). Mais n'oublions pas que lorsqu'un nouveau systŠme sort, les pirates inventent de nouvelles techniques. On peut augurer que la lutte du " canon contre la cuirasse " continuera encore longtemps. Alexandre PUKALL email : alexandermail@hotmail.com