
        +--------------------+
         CODAGE DES DONNEES   
        +--------------------+    


        Le chiffrement de donnes EFS intgr  Windows NT 5.0 (Windows 2000)
        ---------------------------------------------------------------------


                     Article (c) Alexandre PUKALL 1998



                [Utilisation de tout ou partie autorise si le
                 nom de l'auteur est mentionn et  condition
                 que cet entte ne soit pas retir]




        Microsoft renonce  son pass grce  Windows NT 5.0 et le nouveau
        systme EFS : Encrypting File System


        Jusqu' prsent les logiciels Microsoft n'taient pas vraiment 
        la pointe du progrs en matire de protection des donnes.

        On se souvient de Word 2.0, Word 6.0 et Word 95 qui utilisaient le
        systme Vigenre pour crypter les fichiers des utilisateurs avec un
        mot de passe. Ce systme drive le mot de passe, par un systme
        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
        systme n'offre aucune scurit 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 systme reste le mme en France ( lgalit
        oblige ), mais pour les autres pays le systme utilis est le
        RC4-40 bits de la socit amricaine RSA. Le mot de passe est
        transform en une cl alatoire de 16 octets non inversible grce
         la fonction de hachage  sens unique MD5 galement de la socit
        RSA.

        5 octets sont alors utiliss pour initialiser le systme de
        chiffrement en continu RC4. RC4 produit une suite alatoire
        d'octets pratiquement infinie qui est mixe par XOR avec le texte
        clair.

        Cependant aucune valeur de salage n'est utilise. Une valeur de
        salage est une suite alatoire d'octets ajoute au mot de passe de
        l'utilisateur pour crer une cl diffrente  chaque cryptage.

        Comme Office 97 ne l'utilise pas, la suite alatoire d'octets est
        toujours la mme si on ne change pas le mot de passe.

        Ceci permet d'attaquer le systme. Si on connat un seul fichier
        crypt et son quivalent non crypt on peut dcoder tous les autres
        fichiers cods avec la mme cl ( de longueur infrieure ou gale 
        ce premier fichier ).

        Quant  Windows NT 4.0, Microsoft ne cesse de marteler sa grande
        scurit. Cependant une partition NTFS avec des droits d'accs
        rservs ne protge absolument pas, si on peut avoir un accs
        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 accs  la
        partition NTFS complte mme si on ne possde aucun droit d'accs
        sur les fichiers.

        Si on ne possde pas ce programme mais que l'on peut ouvrir la
        machine, il suffit de rcuprer le disque dur et de l'installer en
        esclave sur une autre machine NT 4.0 sur laquelle on connat le mot
        de passe Administrateur. On rcupre automatiquement les droits
        d'accs aux fichiers du nouveau disque dur, mme si le mot de passe
        Administrateur n'est pas le mme sur les deux disques.

        Pour ceux disposant de NT 4.0 sans service Pack supplmentaire, le
        programme GETADMIN.EXE ( disponible aussi sur Internet ) permet
        d'exploiter un bug du systme d'exploitation ( rgl dans les
        services Pack suivants ) et transforme tout utilisateur normal en
        Administrateur avec tous les droits d'accs associs, ceci en
        introduisant le nom de l'utilisateur dans le groupe local
        'administrateurs'.

        Scurit et Microsoft ne faisaient pas bon mnage.

        Cependant cela va bientt prendre fin avec Windows NT 5.0

        NT 5.0, outre toutes les amliorations tournes vers Internet
        qu'il va apporter, procure galement un nouveau systme de
        fichiers : EFS ( Encrypting File System ).

        Cela faisait longtemps que les spcialistes de la scurit
        attendaient un systme fiable.

        Ce systme permet de crypter tous les fichiers d'un disque dur de
        faon automatique et transparente.

        Sous NT 4.0 lorsque l'on applique l'attribut 'compress'  un
        fichier ou un rpertoire, tous les fichiers sont compresss
        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
        proprits du fichier par l'explorateur Windows NT.

        Ainsi, un fichier crypt sera protg des accs physiques au disque
        dur car mme si on y accde, son contenu ne sera pas dchiffrable.

        Tous les fichiers temporaires peuvent tre crypts galement, ne
        laissant ainsi aucune brche  un ventuel pirate.

        Jusqu' prsent 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 dcrypter. Or, ce qui est
        lourd n'est jamais utilis par les utilisateurs.

        Scuriser 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
        procdures de cryptage/dcryptage de faon transparente.
        Mais NT 5.0 permet aussi de stocker les cls sur une carte  puce
        que l'utilisateur insre dans un lecteur pour dcrypter ses
        fichiers ( ou mme pour se connecter  NT ).

        En fait, le systme est plus complexe car il apporte de nombreuses
        scurits supplmentaires.

        A la cration de chaque utilisateur, une cl prive et une cl
        publique sont cres.

        Rappelons qu'une cl publique permet de crypter une information
        mais ne permet pas de la dcrypter ( le systme est bas sur la
        factorisation des nombres premiers ). Pour dcoder l'information il
        faut disposer de la cl prive.

        Sous NT 5.0, chaque utilisateur dispose d'une cl publique et d'une
        cl prive de type RSA ( Rivest Shamir Adleman )  1024 bits pour
        la version NT 5.0 US et 512 bits pour la version export.

        La cl prive est elle-mme crypte avec le mot de passe de
        l'utilisateur.

        Chaque fois qu'un fichier doit tre crypt, une cl alatoire est
        cre. Cette cl est appele cl de session et ne sera jamais
        rutilise une seconde fois. Cette cl est utilise pour crypter
        le fichier avec l'algorithme DES ( Data Encryption Standard ).

        Ainsi chaque fichier sera toujours crypt avec une cl diffrente
        et un mme fichier dcod puis recod  nouveau aura une cl
        diffrente lors du nouveau codage.

        Cette cl de session est insre en dbut du fichier et est
        elle-mme code avec la cl publique de l'utilisateur. On l'appelle
        alors 'champ de dcryptage de donnes'. 

        Lorsque l'utilisateur veut avoir accs  son fichier, le systme
        dcode sa cl prive ( en mmoire protge ) avec son mot de passe
        ( rest en mmoire aprs le login ) puis dcrypte le 'champ de
        dcryptage des donnes' avec cette cl prive. La cl de session
        est alors utilise pour dcrypter le fichier en lui-mme.

        Sans cl prive ou sans la bonne cl prive, le fichier ne sera
        pas accessible ( et ne pourrait d'ailleurs pas tre dcrypt ).

        Microsoft a bien pens le systme : si certains fichiers doivent
        tre partags entre plusieurs utilisateurs, la cl de session du
        fichier est duplique autant de fois qu'il y a d'utilisateurs et
        chaque copie de la mme cl de session est crypte par chaque cl
        prive de chaque utilisateur. Toutes ces copies de la cl de
        session ( plusieurs 'champ de dcryptage de donnes' ) sont
        intgres en dbut de fichier avec, pour chaque cl, un
        identificateur de l'utilisateur.

        Le systme EFS rside en mode noyau, ce qui a pour effet d'viter
        que les cls de session puissent tre enregistres par le systme
        d'exploitation dans le fichier d'change sur le disque dur. Les
        cls de session restent donc toujours en mmoire pendant leur
        utilisation et sont effaces aprs. Cette mmoire est inaccessible
         tous les autres programmes, mme ayant un privilge d'accs
        'systme' ( le plus lev ).

        Ce qui pourrait poser problme, c'est le dpart 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 dcrypter sa cl
        prive ( 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 duplique et crypte avec une cl publique de 'recouvrement de
        cls'. Cette copie de cl de session crypte est galement insre
        en dbut de fichier. Elle est appele 'Champ de recouvrement de
        donnes'.

        Pour dcrypter alors un fichier, il faut soit avoir la cl prive
        de l'utilisateur, soit avoir la cl prive de 'recouvrement de
        cls'.

        La paire cl prive-cl publique de 'recouvrement de cls' est
        cre par l'Administrateur lors de l'installation de NT 5.0. Elle
        est crypte par le mot de passe de l'Administrateur ( par dfaut )
        mais ce dernier peut dlguer la gestion de cette cl  un
        oprateur de 'recouvrement de cls' comme cela existe dj sur NT
        4.0 pour les oprateurs de sauvegarde.

        NT 5.0 permet mme de crer plusieurs cls de 'recouvrement de
        cls' pour autoriser diffrents oprateurs  rcuprer les
        fichiers.

        A noter que le systme de 'recouvrement de cls' permet de
        retrouver les cls de session ( uniques par fichier ) des fichiers,
        pour dcoder ceux-ci mais ne donne aucune information sur la cl
        prive de l'utilisateur, afin que celle-ci ne puisse pas tre
        diffuse par un oprateur de 'recouvrement de cls' malveillant.


        Autre chose importante, Microsoft a galement pens aux temps de
        codage/dcodage pour les fichiers. Lorsqu'il s'agit de bases de
        donnes partages par divers utilisateurs, si le systme devait
        dcoder toute la base puis la recoder  chaque fois, cela prendrait
        normment de temps.

        Le systme EFS, travaillant au niveau des secteurs du disque dur,
        il n'est pas capable d'interprter le contenu des fichiers pour
        voir s'il s'agit d'un texte, d'une image ou d'une base de donnes.
        Microsoft a donc intgr un systme permettant de ne dcoder qu'une
        partie du fichier si ncessaire ( comme les enregistrements d'une
        base de donnes).



        Le systme parat tre extrmement sr et va clouer dfinitivement
        la bouche de tous les opposants  Microsoft ... A moins que ...

        Eh oui, pour rester honnte il faut indiquer que pour le moment
        tous les systmes de chiffrement qui sortent des Etats-Unis ne
        peuvent disposer que de 40 bits pour les cls de session ( DES-40 )
        Ainsi, un pirate pourra toujours passer quelques jours  rechercher
        toutes les cls de session possibles pour dcrypter le fichier et
        ceci sans devoir s'attaquer  la cl prive de l'utilisateur.

        Cependant, Microsoft est en train de ngocier avec le gouvernement
        amricain l'autorisation d'exporter son systme avec 56 bits
        ( DES-56 ). S'il y parvient ce systme pourra alors srement tre
        utilis tel quel en France puisque le Premier Ministre a annonc
        rcemment que les cls de 56 bits allaient tre lgalises.
        ( NB : Depuis Mars 1999, les cls de 128 bits sont autorises en
        France mais les amricains ne peuvent exporter de systmes avec 
        des cls de plus de 40 bits. Il faut bien que la NSA puisse dcoder )

        Enfin dernier problme, si le systme permet de dcoder des parties
        de fichiers sans devoir dcoder tout le fichier, cela donne une
        porte d'entre aux pirates. Le systme DES utilise une cl de 56
        bits pour crypter un bloc de 8 octets ( 64 bits ). Le bloc crypt
        de 8 octets dpend alors entirement du texte clair et de la cl.

        Le systme 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 rsultat du cryptage des 8
        octets prcdents est combin par XOR avec les 8 octets clairs
        suivants qui vont alors tre eux-mme crypts ... et ainsi de suite
        jusqu' la fin du fichier.

        Le mode CBC ne permet cependant pas de dcrypter une portion de
        fichier : tout le fichier doit tre dcod ou rien ne pourra
        l'tre.

        Si le systme DES est utilis en mode EBC ( Electronic CodeBook )
        o chaque portion de 8 octets est code par la mme cl de session
        mais sans chanage entre les blocs, ceci permet de dcoder 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
        indpendants les uns des autres et cods avec la mme cl.

        Microsoft ne donne pas de dtails, pour le moment, sur le mode
        utilis. Esprons qu'ils y ont rflchi un peu et qu'ils utilisent
        un systme 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 mme cl de session, ce
        qui permet d'accder  des portions de fichier par blocs de 512
        octets mais en mme temps rend beaucoup plus difficile une attaque
        sur les diffrents blocs de 512 octets qui sont bien plus gros
        qu'un simple bloc de 8 octets.

        Aprs vrification 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 donnes, sans perte de performance ( sans devoir dcoder toute
        la base entire ).



        Mais n'oublions pas que lorsqu'un nouveau systme 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







