50
Architecture et mise en Architecture et mise en œuvre du chiffrement de œuvre du chiffrement de fichiers EFS fichiers EFS Jean-Yves Poublan Jean-Yves Poublan Consultant Principal Consultant Principal Microsoft Microsoft

Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Embed Size (px)

Citation preview

Page 1: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Architecture et mise en œuvre Architecture et mise en œuvre du chiffrement de fichiers EFSdu chiffrement de fichiers EFS

Jean-Yves PoublanJean-Yves PoublanConsultant PrincipalConsultant Principal

MicrosoftMicrosoft

Page 2: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

AgendaAgenda

Rappel du fonctionnelRappel du fonctionnel ArchitectureArchitecture Mise en œuvre/meilleures pratiquesMise en œuvre/meilleures pratiques

Page 3: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Point sur le fonctionnel EFSPoint sur le fonctionnel EFS

Page 4: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

FonctionnelFonctionnel

Protection des fichiers par chiffrementProtection des fichiers par chiffrement Vol de portable, disque durVol de portable, disque dur Attaque hors ligne, boot d’un autre OSAttaque hors ligne, boot d’un autre OS

Intégration sécurité Windows et Active DirectoryIntégration sécurité Windows et Active Directory Chiffrement/Déchiffrement pour des comptes WindowsChiffrement/Déchiffrement pour des comptes Windows Pas de groupesPas de groupes

Mais chiffrement pour plusieurs utilisateurs possibleMais chiffrement pour plusieurs utilisateurs possible

Intégré au système de fichiers NTFSIntégré au système de fichiers NTFS EFS est une fonction de NTFSEFS est une fonction de NTFS Transparent pour les programmes et applicationsTransparent pour les programmes et applications

Page 5: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

FonctionnelFonctionnel

EFS est une application PKIEFS est une application PKI

Chiffrement du contenu AES 256 par défautChiffrement du contenu AES 256 par défaut 3DES configurable par Policy3DES configurable par Policy

System cryptography: Use FIPS compliant algorithms for encryptionSystem cryptography: Use FIPS compliant algorithms for encryption HKLM\SYSTEM\CurrentControlSet\Control\LSA\FipsAlgorithmPolicy HKLM\SYSTEM\CurrentControlSet\Control\LSA\FipsAlgorithmPolicy

Driver Fips.sys FIPS 140-1Driver Fips.sys FIPS 140-1 DESX pour accès aux fichiers Windows 2000DESX pour accès aux fichiers Windows 2000

Chiffrement clé de session RSA 1024 par défautChiffrement clé de session RSA 1024 par défaut HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS\

RSAKeyLengthRSAKeyLength Certificats X509v3Certificats X509v3 Certificats spécifiques EFSCertificats spécifiques EFS

Extensions Extensions Application PolicyApplication Policy/EKU/EKU Encrypting File System – oid 1.3.6.1.4.1.311.10.3.4Encrypting File System – oid 1.3.6.1.4.1.311.10.3.4 File Recovery – oid 1.3.6.1.4.1.311.10.3.4.1File Recovery – oid 1.3.6.1.4.1.311.10.3.4.1

EFS ne peut fonctionner qu’avec les CSP RSA « logiciels » de la EFS ne peut fonctionner qu’avec les CSP RSA « logiciels » de la plateformeplateforme Pas de certificat EFS sur SmartcardPas de certificat EFS sur Smartcard

Page 6: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

FonctionnelFonctionnel Modèle dit « Modèle dit « data recoverydata recovery » (en contraste avec «  » (en contraste avec « key key

recoveryrecovery ») ») Mise en œuvre optionnelle d’une politique de récupérationMise en œuvre optionnelle d’une politique de récupération Agents de récupération (DRA)Agents de récupération (DRA)

File Encryption Key (FEK)File Encryption Key (FEK) Chiffrement RSA de la FEK n fois avec clés publiques desChiffrement RSA de la FEK n fois avec clés publiques des

n entités qui devront accéder au fichiern entités qui devront accéder au fichier DDF Key Ring – Data Decryption Field – UtilisateursDDF Key Ring – Data Decryption Field – Utilisateurs DRF Key Ring – Data Recovery Field – Agents de récupération DRF Key Ring – Data Recovery Field – Agents de récupération

(DRA)(DRA) Peut être vide (pas de politique de récupération)Peut être vide (pas de politique de récupération)

Key Rings font partie du fichier (metadata NTFS)Key Rings font partie du fichier (metadata NTFS)

DDF

DDF

DDF

DDFChiffrement

RSA de la FEKDDF Key Ring

Page 7: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

FonctionnelFonctionnel Attribut des dossiers et des fichiersAttribut des dossiers et des fichiers

État chiffré ou non chiffré (comme la compression)État chiffré ou non chiffré (comme la compression) E = EncryptedE = Encrypted

Explorateur WindowsExplorateur Windows Couleur verteCouleur verte

Clé de configuration Clé de configuration Click droit propriétés/général/avancéClick droit propriétés/général/avancé Menu contextuelMenu contextuel

HKLM\Software\Microsoft\Windows\ExplorerHKLM\Software\Microsoft\Windows\Explorer EncryptionContexteMenuEncryptionContexteMenu

Désignation des utilisateurs par leurs certificatsDésignation des utilisateurs par leurs certificats Visualisation des agents de récupérationVisualisation des agents de récupération

Politique de récupérationPolitique de récupération Scénario typique, et recommandéScénario typique, et recommandé

On active le chiffrement sur un dossierOn active le chiffrement sur un dossier On place les fichiers à protéger dans ce dossierOn place les fichiers à protéger dans ce dossier

Page 8: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

FonctionnelFonctionnel Chiffrement sur serveur du fichiers SMB possibleChiffrement sur serveur du fichiers SMB possible

Transport en clairTransport en clair Utiliser IPSECUtiliser IPSEC

Chiffrement redirecteur WebDAV (préféré)Chiffrement redirecteur WebDAV (préféré) Serveur WebDAVServeur WebDAV

Partage de fichier sur HTTPPartage de fichier sur HTTP Alternative à SMB, RFC 2518Alternative à SMB, RFC 2518

Chiffrement sur la station, transport chiffréChiffrement sur la station, transport chiffré IIS supporte Webdav de par les Web foldersIIS supporte Webdav de par les Web folders SPS ne supporte pas EFSSPS ne supporte pas EFS

EFS n’est pas adapté pour le partage des fichiers EFS n’est pas adapté pour le partage des fichiers chiffréschiffrés Son rôle premier est la protection contre le volSon rôle premier est la protection contre le vol Pour la protection d’informations confidentielles à Pour la protection d’informations confidentielles à

partager, on s’orientera vers RMS, et/ou S/MIMEpartager, on s’orientera vers RMS, et/ou S/MIME

Page 9: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

FonctionnelFonctionnel

Pas de chiffrement des fichiers et dossiers systèmePas de chiffrement des fichiers et dossiers système Logique d’initialisation système et driversLogique d’initialisation système et drivers %systemroot%%systemroot% Attribut SYSTEMAttribut SYSTEM

Pas de chiffrement des fichiers compressés possiblePas de chiffrement des fichiers compressés possible C’est l’un ou l’autre (chiffrement, ou compression)C’est l’un ou l’autre (chiffrement, ou compression)

Droits propriétaire non nécessaireDroits propriétaire non nécessaire Permission écriture suffisantePermission écriture suffisante

API de programmationAPI de programmation La plus part des opérations EFS peuvent être effectuées La plus part des opérations EFS peuvent être effectuées

par programmationpar programmation

Intégration backupIntégration backup Backup des fichiers sous leur forme chiffréeBackup des fichiers sous leur forme chiffrée

Page 10: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Copie et déplacementCopie et déplacement

Opérations localesOpérations locales Shell glisser/déplacer, copier/collerShell glisser/déplacer, copier/coller

Vers un dossier chiffréVers un dossier chiffré Le fichier arrive chiffré quelque soit son état initial et que Le fichier arrive chiffré quelque soit son état initial et que

l’opération soit une copie ou un déplacementl’opération soit une copie ou un déplacement Vers un dossier non chiffréVers un dossier non chiffré

Le fichier conserve son étatLe fichier conserve son état

Commande CopyCommande Copy IDEM shellIDEM shell

Vers un dossier chiffréVers un dossier chiffré• Le fichier arrive chiffré quelque soit son état initialLe fichier arrive chiffré quelque soit son état initial

Vers un dossier non chiffréVers un dossier non chiffré• Le fichier conserve son étatLe fichier conserve son état

Commande MoveCommande Move Le fichier conserve son étatLe fichier conserve son état

Page 11: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Copie et déplacementCopie et déplacement

D’un fichier chiffré vers un serveur distant (SMB)D’un fichier chiffré vers un serveur distant (SMB)Le transport est en clair: utiliser IPSEC lorsque possibleLe transport est en clair: utiliser IPSEC lorsque possible

Serveur ne supporte pas le chiffrement EFSServeur ne supporte pas le chiffrement EFS Message d’avertissement (Windows XP/2003) et Message d’avertissement (Windows XP/2003) et

possibilité pour l’utilisateur d’annuler l’opérationpossibilité pour l’utilisateur d’annuler l’opération

Serveur supporte EFS et le compte machine du Serveur supporte EFS et le compte machine du serveur est « serveur est « trusted for delegationtrusted for delegation » dans AD » dans AD Déchiffrement, transport en clair, et rechiffrement sur le Déchiffrement, transport en clair, et rechiffrement sur le

serveurserveur

Options ligne de commande pour permettre la Options ligne de commande pour permettre la copie vers une destination en claircopie vers une destination en clair Copie /DCopie /D Xcopy /GXcopy /G

Page 12: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

API de programmationAPI de programmation FILE_ATTRIBUTE_ENCRYPTED (0x00000040)FILE_ATTRIBUTE_ENCRYPTED (0x00000040)

GetFileAttributeGetFileAttribute//SetFileAttributeSetFileAttribute (ne chiffre pas) (ne chiffre pas) CreateFileCreateFile FILE_ATTRIBUTE_ENCRYPTED (chiffre) FILE_ATTRIBUTE_ENCRYPTED (chiffre)

EncryptFileEncryptFile//DecryptFileDecryptFile (chiffre/déchiffre) (chiffre/déchiffre) FileEncryptionStatusFileEncryptionStatus

FILE_ENCRYPTABLE, FILE_IS_ENCRYPTED, FILE_SYSTEM_ATTRFILE_ENCRYPTABLE, FILE_IS_ENCRYPTED, FILE_SYSTEM_ATTR AddUsersToEncryptedFileAddUsersToEncryptedFile, , QueryUsersOnEncryptedFileQueryUsersOnEncryptedFile QueryRecoveryAgentsOnEncryptedFileQueryRecoveryAgentsOnEncryptedFile SetUserFileEncryptionKeySetUserFileEncryptionKey EncryptionDisableEncryptionDisable

Désactive chiffrement sur un répertoireDésactive chiffrement sur un répertoire EncryptFile échoueraEncryptFile échouera FileEncryptionStatus ne retournera pas FILE_ENCRYPTABLEFileEncryptionStatus ne retournera pas FILE_ENCRYPTABLE

ReadEncryptedFileRawReadEncryptedFileRaw, , WriteEncryptedFileRawWriteEncryptedFileRaw Backup, non documenté Plateform SDKBackup, non documenté Plateform SDK

Page 13: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

OutilsOutils CipherCipher

Chiffrement/déchiffrementChiffrement/déchiffrement Lister et localiser les fichiers chiffrésLister et localiser les fichiers chiffrés Mise à jour des fichiers pour une nouvelle clé EFS et agents de Mise à jour des fichiers pour une nouvelle clé EFS et agents de

récupération (touch)récupération (touch) Remise à zéro de l’espace disque non utiliséRemise à zéro de l’espace disque non utilisé Obtenir un nouveau certificat EFS d’une CA en ligneObtenir un nouveau certificat EFS d’une CA en ligne

EFSInfoEFSInfo Windows Support ToolsWindows Support Tools Affichage des utilisateurs pour des fichiers/dossiersAffichage des utilisateurs pour des fichiers/dossiers Affichage des « thumbprint » des certificats pour des Affichage des « thumbprint » des certificats pour des

fichiers/dossiersfichiers/dossiers Affichage du « thumbprint » du certificat EFS courantAffichage du « thumbprint » du certificat EFS courant

HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys\CertificateHashCurrentKeys\CertificateHash

Affichage agents de recovery pour des fichiers/dossiersAffichage agents de recovery pour des fichiers/dossiers

Page 14: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

RévocationRévocation

Vérification de la révocation lors de l’ajout de Vérification de la révocation lors de l’ajout de certificats sur un fichier chiffrécertificats sur un fichier chiffré Si le certificat s’avère être révoqué, il est rejetéSi le certificat s’avère être révoqué, il est rejeté

Pas de vérification si l’utilisateur possède la clé Pas de vérification si l’utilisateur possède la clé privée correspondante au certificatprivée correspondante au certificat

Pas de vérification de révocation si le certificat ne Pas de vérification de révocation si le certificat ne contient pas de CDPcontient pas de CDP

Si le certificat est « self-signed », on demande à Si le certificat est « self-signed », on demande à l’utilisateur s’il veut y faire confiance et l’utiliserl’utilisateur s’il veut y faire confiance et l’utiliser Rajout du certificat dans le store « trusted people »Rajout du certificat dans le store « trusted people »

Page 15: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

ArchitectureArchitecture

Page 16: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

EFS - ArchitectureEFS - Architecture

User ModeKernel Mode

EFS Layered Driverefs.sys

EFS Layered Driverefs.sys

NTFS Driverntfs.sys

NTFS Driverntfs.sys

Partition Disk

Crypto API

Application (Explorer)

LSASS

feclient.dllfeclient.dll

kernel32.dll

API Win32

Service EFSlsasrv.dll

CreateFileReadFile/WriteFileDeviceIOControl

DeviceIOControl• FSCTL_ENCRYPTION_FCTL_IO

• EFS_SET_ENCRYPT

CertificatClé Privée

FILE_ATTRIBUTE_ENCRYPTED

EncryptFileDecryptFile

Callouts (FSRTL):• EfsRead/EfsWrite• EfsOpenFile• EfsFileControl

ChiffrementRSA (PKI)

ChiffrementSymmétrique

advapi32.dlladvapi32.dll

LPCefsadu.dllefsadu.dll

Page 17: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Protection de la clé privéeProtection de la clé privéeCSP logicielCSP logiciel

Chiffrement via DPAPI (Data Protection API)Chiffrement via DPAPI (Data Protection API) CryptProtectData, CryptUnprotectDataCryptProtectData, CryptUnprotectData Seul le même utilisateur peut retrouver l’information en Seul le même utilisateur peut retrouver l’information en

clair – c’est le même utilisateur qui doit invoquer protect clair – c’est le même utilisateur qui doit invoquer protect et unprotectet unprotect

Source d’entropieSource d’entropie CrédentielsCrédentiels de l’utilisateur (NTHash du mot de passe) de l’utilisateur (NTHash du mot de passe) Entropie supplémentaire spécifique à l’informationEntropie supplémentaire spécifique à l’information

Phrase secrète utilisateurPhrase secrète utilisateur Non utilisé par EFS (transparence)Non utilisé par EFS (transparence)

Gestion des changements de mot de passeGestion des changements de mot de passe Implications syskeyImplications syskey

Stockage du « blob » DPAPI dans le profil de Stockage du « blob » DPAPI dans le profil de l’utilisateurl’utilisateur c:\Documents and Settings\<username>\Application c:\Documents and Settings\<username>\Application

Data\Microsoft\Protect\<textual user SID>Data\Microsoft\Protect\<textual user SID>

Page 18: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

DPAPIDPAPIPrincipe de fonctionnementPrincipe de fonctionnement

Chiffrement 3DESChiffrement 3DES Clé dérivée d’un secret maîtreClé dérivée d’un secret maître

Unique à chaque protection par l’ajout d’aléa et de l’entropie Unique à chaque protection par l’ajout d’aléa et de l’entropie additionnelleadditionnelle

Secret maîtreSecret maître Stocké dans le profil utilisateurStocké dans le profil utilisateur Chiffrement 3DES avec clé dérivée du NTHash du compteChiffrement 3DES avec clé dérivée du NTHash du compte

SHA-1 et PBKDF2SHA-1 et PBKDF2 Pour machines domaine, chiffrement une deuxième foisPour machines domaine, chiffrement une deuxième fois

RSA avec clé publique du DCRSA avec clé publique du DC

Renouvellement du secrets maîtres tous les trois Renouvellement du secrets maîtres tous les trois moismois Historique des secrets maîtres (fichiers)Historique des secrets maîtres (fichiers)

Secret maître identifié par GUIDSecret maître identifié par GUID GUID fait partie du blob DPAPIGUID fait partie du blob DPAPI

Page 19: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

DPAPIDPAPIChangement de mot de passeChangement de mot de passe

Machine hors domaine (compte local)Machine hors domaine (compte local) DPAPI utilise l’événement de changement de mot de passeDPAPI utilise l’événement de changement de mot de passe Le secret maître est déchiffré avec l’ancien NTHash, Le secret maître est déchiffré avec l’ancien NTHash,

rechiffré avec le nouveau NTHashrechiffré avec le nouveau NTHash En case de perte de mot de passeEn case de perte de mot de passe

Utiliser le Password Recovery DiskUtiliser le Password Recovery Disk

Machine du domaineMachine du domaine Scénario pour lequel le mot de passe a été changé à partir Scénario pour lequel le mot de passe a été changé à partir

d’une autre machined’une autre machine Nouveau NTHash ne permet pas de déchiffrer le secret Nouveau NTHash ne permet pas de déchiffrer le secret

maîtremaître DPAPI invoque le DC, lui fournit le secret maître chiffré, et le DPAPI invoque le DC, lui fournit le secret maître chiffré, et le

DC renvoie le secret maître déchiffréDC renvoie le secret maître déchiffré DPAPI rechiffre le secret maître avec le nouveau NTHashDPAPI rechiffre le secret maître avec le nouveau NTHash Fonctionne en cas de perte de mot de passeFonctionne en cas de perte de mot de passe

Reset du mot de passe par l’administrateurReset du mot de passe par l’administrateur

Page 20: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

SyskeySyskey

Chiffrement des NTHash dans la SAM et/ou ADChiffrement des NTHash dans la SAM et/ou AD RC4 128/MD5RC4 128/MD5 Clé unique à chaque champ, toutefois dérivée d’une clé Clé unique à chaque champ, toutefois dérivée d’une clé

de boot: « de boot: « syskeysyskey » »

SYSKEY mode 1SYSKEY mode 1 La clé de boot est dissimulée et éparpillée sur le disqueLa clé de boot est dissimulée et éparpillée sur le disque

Permet le démarrage sans intervention de l’utilisateurPermet le démarrage sans intervention de l’utilisateur

SYSKEY mode 2SYSKEY mode 2 La clé est dérivée d’un mot de passe de démarrage, que La clé est dérivée d’un mot de passe de démarrage, que

l’utilisateur doit connaître et saisirl’utilisateur doit connaître et saisir

SYSKEY mode 3SYSKEY mode 3 La clé est générée par le système et stockée sur une La clé est générée par le système et stockée sur une

disquettedisquette Nécessite la disquette pour démarrerNécessite la disquette pour démarrer

Page 21: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

SyskeySyskey

Protection de la clé EFSProtection de la clé EFS

DPAPI avec un compte local à la machineDPAPI avec un compte local à la machine Le NTHash de compte se trouve sur le disque de la Le NTHash de compte se trouve sur le disque de la

machinemachine Syskey mode 1 vulnérableSyskey mode 1 vulnérable Il faut appliquer Syskey en mode 2 ou 3Il faut appliquer Syskey en mode 2 ou 3

DPAPI avec un compte du domaineDPAPI avec un compte du domaine Le NTHash du compte ne se trouve pas sur le disque de la Le NTHash du compte ne se trouve pas sur le disque de la

machine*machine*

*Sauf Smartcard logon, en quel cas le NTHash se trouve sur le disque sous sa forme chiffrée *Sauf Smartcard logon, en quel cas le NTHash se trouve sur le disque sous sa forme chiffrée RSA avec la clé publique de la SmartcardRSA avec la clé publique de la Smartcard

Page 22: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Mise en œuvre d’EFSMise en œuvre d’EFS

Page 23: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Gestion certificats et clésGestion certificats et clés

Notion de certificat/clé courantNotion de certificat/clé courant HKCU\Software\Microsoft\Windows NT\CurrentVersion\HKCU\Software\Microsoft\Windows NT\CurrentVersion\

EFS\CurrentKeys\CertificateHashEFS\CurrentKeys\CertificateHash EFSINFO /YEFSINFO /Y

Stores utilisésStores utilisés MyMy Trusted PeopleTrusted People

Trust explicite de certificats self-signedTrust explicite de certificats self-signed Other PeopleOther People

Office de cacheOffice de cache Typiquement les certificats émis par une CATypiquement les certificats émis par une CA Obtenus depuis l’annuaire Active Directory (userCertificate), Obtenus depuis l’annuaire Active Directory (userCertificate),

sont conservés dans ce storesont conservés dans ce store

Page 24: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Gestion certificats et clésGestion certificats et clésMachines hors domaineMachines hors domaine

Lors d’un chiffrement de fichier…Lors d’un chiffrement de fichier…

S’il y a un certificat courant, EFS l’utiliseS’il y a un certificat courant, EFS l’utilise S’il n’y a pas de certificat courant, ou le certificat S’il n’y a pas de certificat courant, ou le certificat

courant n’existe pas, EFS recherche un certificat courant n’existe pas, EFS recherche un certificat acceptable (Application Policy/EKU)acceptable (Application Policy/EKU) S’il en trouve un, il l’utiliseS’il en trouve un, il l’utilise Il le configure comme certificat courantIl le configure comme certificat courant

Si aucun certificat EFS n’existe, une paire de clé et Si aucun certificat EFS n’existe, une paire de clé et un certificat auto-signé sont créésun certificat auto-signé sont créés Mise à jour du certificat courant dans le registreMise à jour du certificat courant dans le registre

Page 25: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Gestion certificats et clésGestion certificats et clésMachines du domaineMachines du domaine

Lors d’un chiffrement de fichier…Lors d’un chiffrement de fichier…

S’il y a un certificat courant, EFS l’utiliseS’il y a un certificat courant, EFS l’utilise S’il n’y a pas de certificat courant, ou le certificat courant S’il n’y a pas de certificat courant, ou le certificat courant

n’existe pas, EFS recherche un certificat acceptable n’existe pas, EFS recherche un certificat acceptable (Application Policy/EKU)(Application Policy/EKU) S’il en trouve un, il l’utiliseS’il en trouve un, il l’utilise Il le configure comme certificat courantIl le configure comme certificat courant

Sinon, EFS tente de localiser une CA d’Entreprise et d’enrôler Sinon, EFS tente de localiser une CA d’Entreprise et d’enrôler un certificat EFSun certificat EFS Il faut qu’une CA d’Entreprise « serve » une template EFS et que Il faut qu’une CA d’Entreprise « serve » une template EFS et que

la template ait l’ACE « Enroll » pour l’utilisateurla template ait l’ACE « Enroll » pour l’utilisateur Mise à jour du certificat courant dans le registreMise à jour du certificat courant dans le registre

Finalement, lorsque les étapes ci-dessus ont échoué, une Finalement, lorsque les étapes ci-dessus ont échoué, une paire de clé et un certificat auto-signé sont crééspaire de clé et un certificat auto-signé sont créés Mise à jour du certificat courant dans le registreMise à jour du certificat courant dans le registre

Page 26: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Déploiement de certificats EFSDéploiement de certificats EFS Auto-EnrôlementAuto-Enrôlement

Positionner les droits « Positionner les droits « EnrollEnroll » et «  » et « AutoEnrollAutoEnroll » sur une  » sur une template EFS dans Active Directorytemplate EFS dans Active Directory

Enrôlement par EFSEnrôlement par EFS S’assurer des droits « S’assurer des droits « EnrollEnroll » sur une template EFS dans Active  » sur une template EFS dans Active

DirectoryDirectory

Templates de base supportant EFSTemplates de base supportant EFS UserUser AdministratorAdministrator Basic EFSBasic EFS

Dans les deux cas, s’assurer qu’une CA Entreprise joignable Dans les deux cas, s’assurer qu’une CA Entreprise joignable « serve » cette/ces templates« serve » cette/ces templates

Si l’utilisateur a déjà un ou des certificats EFS, il y a de fortes Si l’utilisateur a déjà un ou des certificats EFS, il y a de fortes chances pour que l’enrôlement EFS ne se déclenche pas, ou chances pour que l’enrôlement EFS ne se déclenche pas, ou que le certificat obtenu par Auto-Enrôlement ne soit pas que le certificat obtenu par Auto-Enrôlement ne soit pas utiliséutilisé Forcer le certificat courant par script de logonForcer le certificat courant par script de logon

Page 27: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Politique de récupérationPolitique de récupération Politique de récupération = mise en place et Politique de récupération = mise en place et

utilisation de un ou plusieurs agents de récupération utilisation de un ou plusieurs agents de récupération (DRA)(DRA) DRA matérialisé par un certificat/clé privéeDRA matérialisé par un certificat/clé privée

A chaque ouverture de fichier chiffré, EFS applique A chaque ouverture de fichier chiffré, EFS applique la politique en vigueurla politique en vigueur S’assure que les DRF existent pour chaque DRA défini par S’assure que les DRF existent pour chaque DRA défini par

la politiquela politique Cipher /UCipher /U

L’existence d’une politique de récupération est L’existence d’une politique de récupération est facultative sur Windows XP/Windows 2003facultative sur Windows XP/Windows 2003 Un fichier peut être chiffré sans DRAUn fichier peut être chiffré sans DRA

Risque de perte des informationsRisque de perte des informations Sur Windows 2000, elle est obligatoireSur Windows 2000, elle est obligatoire

L’absence d’agent de récupération désactive EFSL’absence d’agent de récupération désactive EFS Pour créer l’équivalent d’un chiffrement sans politique de Pour créer l’équivalent d’un chiffrement sans politique de

récupération, on peut utiliser un DRA pour lequel la clé privée récupération, on peut utiliser un DRA pour lequel la clé privée a été détruitea été détruite

Page 28: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Politique de récupérationPolitique de récupérationMachine hors domaineMachine hors domaine

Pas de politique de récupération par défautPas de politique de récupération par défaut Windows XP/2003 ne crée pas d’agent de récupération Windows XP/2003 ne crée pas d’agent de récupération

lors de l’installation ou du premier logonlors de l’installation ou du premier logon Ce n’était pas le cas pour Windows 2000Ce n’était pas le cas pour Windows 2000

Pour mettre en œuvre un agent de récupérationPour mettre en œuvre un agent de récupération Utiliser Utiliser Local Security SettingsLocal Security Settings (secpol.msc) (secpol.msc)

Public Key Policies/Encrypting File SystemPublic Key Policies/Encrypting File System On désigne un ou des certificats d’agents de récupération On désigne un ou des certificats d’agents de récupération

sur le disque (fichiers CER)sur le disque (fichiers CER) CIPHER /RCIPHER /R

Crée une paire de clés et certificat auto-signé correspondantCrée une paire de clés et certificat auto-signé correspondant Génère un fichier PFX et un fichier CERGénère un fichier PFX et un fichier CER Mettre le fichier PFX en sécurité, et installer le fichier CER en Mettre le fichier PFX en sécurité, et installer le fichier CER en

tant qu’agent de récupérationtant qu’agent de récupération

Page 29: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Politique de récupérationPolitique de récupérationDomaineDomaine

Définie par stratégie de groupe (Group Policy)Définie par stratégie de groupe (Group Policy) S’applique aux machines sous son influenceS’applique aux machines sous son influence

Site, Domaine, OUSite, Domaine, OU Précédence OU, Domaine, SitePrécédence OU, Domaine, Site

Distinction policy vide vs pas de policyDistinction policy vide vs pas de policy Créée automatiquement lors du premier logon de Créée automatiquement lors du premier logon de

l’administrateurl’administrateur Désigne l’administrateur du domaine en tant que DRADésigne l’administrateur du domaine en tant que DRA

Certificat auto-signé au nom de l’administrateurCertificat auto-signé au nom de l’administrateur Clé privée dans le profil de l’administrateurClé privée dans le profil de l’administrateur

L’administrateur peut modifier la stratégie de groupe L’administrateur peut modifier la stratégie de groupe (dompol.msc)(dompol.msc) Public Key Policies/Encrypting File SystemPublic Key Policies/Encrypting File System Rajouter des DRA en désignant des certificats d’agents de Rajouter des DRA en désignant des certificats d’agents de

récupérationrécupération Fichiers CER sur le disqueFichiers CER sur le disque userCertificate dans Active DirectoryuserCertificate dans Active Directory

Supprimer des DRASupprimer des DRA Supprimer la policy/Créer une policy videSupprimer la policy/Créer une policy vide Créer un DRA le désignantCréer un DRA le désignant

Certification par une CA d’Entreprise plutôt que auto-signéCertification par une CA d’Entreprise plutôt que auto-signé

Page 30: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Désactiver EFSDésactiver EFS

Machine du domaineMachine du domaine Stratégie de groupe (Group Policy)Stratégie de groupe (Group Policy)

Public Key Policies/Encrypting File System/PropertiesPublic Key Policies/Encrypting File System/Properties Allow users to encrypt files using EFSAllow users to encrypt files using EFS

Machine hors domaineMachine hors domaine Utiliser clé registreUtiliser clé registre

HKLM\Software\Microsoft\Windows NT\CurrentVersion\EFSHKLM\Software\Microsoft\Windows NT\CurrentVersion\EFS Valeur EfsConfiguration DWORD 0x1Valeur EfsConfiguration DWORD 0x1

Page 31: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

RécupérationRécupérationMise en œuvreMise en œuvre

Agent de récupération déchiffre le fichier avec Agent de récupération déchiffre le fichier avec l’explorateur Windows ou la commande Cipherl’explorateur Windows ou la commande Cipher

Station de récupération centraliséeStation de récupération centralisée Si suffisamment en sécurité, la clé privée de l’agent de Si suffisamment en sécurité, la clé privée de l’agent de

récupération peut s’y trouver en permanencerécupération peut s’y trouver en permanence Sinon, au moment d’effectuer des récupérations:Sinon, au moment d’effectuer des récupérations:

Importer la cléImporter la clé Effectuer les récupérationsEffectuer les récupérations Exporter la cléExporter la clé

Les utilisateurs doivent faire un backup (NTBackup) du Les utilisateurs doivent faire un backup (NTBackup) du fichier EFS et le déposer sur un sharefichier EFS et le déposer sur un share L’agent de récupération obtient le fichier de backup, le L’agent de récupération obtient le fichier de backup, le

restore sur la station, vérifie les droits de l’utilisateur, puis restore sur la station, vérifie les droits de l’utilisateur, puis déchiffre le fichierdéchiffre le fichier

Intervention sur site de l’agent de récupérationIntervention sur site de l’agent de récupération Accède à la station, importe la clé, effectue la Accède à la station, importe la clé, effectue la

récupération, exporte la clérécupération, exporte la clé

Page 32: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Chiffrement sur serveur SMBChiffrement sur serveur SMBGlobalement complexeGlobalement complexe

Chiffrement sur le serveur, pour le compte de l’utilisateurChiffrement sur le serveur, pour le compte de l’utilisateur Transport en clair, utiliser IPSECTransport en clair, utiliser IPSEC Délégation KerberosDélégation Kerberos

Serveur « trusted for delegation »Serveur « trusted for delegation » Compte utilisateur n’est pas « sensitive and cannot be delegated »Compte utilisateur n’est pas « sensitive and cannot be delegated »

Si profile errant, le serveur l’utiliseSi profile errant, le serveur l’utilise Sinon, le serveur crée un profile pour l’utilisateurSinon, le serveur crée un profile pour l’utilisateur Contient le certificat et clé privéeContient le certificat et clé privée

Logique d’enrôlement (CA d’Entreprise ou auto-signé) identique à celle Logique d’enrôlement (CA d’Entreprise ou auto-signé) identique à celle d’une stationd’une station

Support des technologies cluster (Windows 2003)Support des technologies cluster (Windows 2003) Nécessite profiles errants (clé unique)Nécessite profiles errants (clé unique)

Support multi-utilisateursSupport multi-utilisateurs Nécessite profiles errantsNécessite profiles errants

Mise en cache des Mise en cache des handleshandles (CryptoAPI) de clés de utilisateurs (CryptoAPI) de clés de utilisateurs Par défaut 15, paramétrable registrePar défaut 15, paramétrable registre

Pas de support cross forestPas de support cross forest Méthode préférée reste WebDAVMéthode préférée reste WebDAV

Nécessite stations Windows XPNécessite stations Windows XP

Page 33: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Fichiers hors ligneFichiers hors ligne

Client Side Caching (CSC)Client Side Caching (CSC) Base unique sur la stationBase unique sur la station

Contient tous les fichiers de tous les utilisateursContient tous les fichiers de tous les utilisateurs Accès aux fichiers sous contrôle des ACLAccès aux fichiers sous contrôle des ACL

Affichage reproduit la structure des répertoires et Affichage reproduit la structure des répertoires et fichiers du serveurfichiers du serveur

Chiffrement EFS pour le compte local SYSTEMChiffrement EFS pour le compte local SYSTEM

Ne pas utiliser pour des informations sensibles, à Ne pas utiliser pour des informations sensibles, à moins d’être prêt a passer en SYSKEY mode 2 ou 3moins d’être prêt a passer en SYSKEY mode 2 ou 3

Page 34: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Best PracticesBest PracticesChiffrement EFSChiffrement EFS

Chiffrement au niveau des dossiersChiffrement au niveau des dossiers Utiliser des dossiers chiffrés, plutôt que conversion d’un Utiliser des dossiers chiffrés, plutôt que conversion d’un

fichier de clair en chiffré (problème copie en texte clair fichier de clair en chiffré (problème copie en texte clair lors de la conversion, dont les blocs restent sur la lors de la conversion, dont les blocs restent sur la partition NTFS)partition NTFS) My DocumentsMy Documents RootDirectoryRootDirectory\Temp\Temp %systemroot%\system32\spool%systemroot%\system32\spool

Activer la purge du fichier de paginationActiver la purge du fichier de pagination Utilisation de mémoire non-paginée pour le driver – pas Utilisation de mémoire non-paginée pour le driver – pas

de pagination des clés (FEK)de pagination des clés (FEK) Cependant les données en clair peuvent être paginées Cependant les données en clair peuvent être paginées

(applications)(applications) Policy de groupe ou locale « Security Options »Policy de groupe ou locale « Security Options »

« Shutdown: Clear virtual memory pagefile »« Shutdown: Clear virtual memory pagefile » Utiliser Cipher /W (wipe)Utiliser Cipher /W (wipe)

S’il y a eu des conversions (clair -> chiffré)S’il y a eu des conversions (clair -> chiffré)

Page 35: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Best PracticesBest PracticesComptes utilisateursComptes utilisateurs

Utiliser des comptes du domaine, et non des Utiliser des comptes du domaine, et non des comptes locauxcomptes locaux Protection effective même en SYSKEY mode 1Protection effective même en SYSKEY mode 1 Si le chiffrement est mis en œuvre avec des comptes Si le chiffrement est mis en œuvre avec des comptes

locaux, utiliser SYSKEY mode 2 ou 3locaux, utiliser SYSKEY mode 2 ou 3

Mettre en œuvre une politique de mots de passe Mettre en œuvre une politique de mots de passe renforcéerenforcée Longueur minimum, historique, caractères spéciaux, etc…Longueur minimum, historique, caractères spéciaux, etc… Le mot de passe est le maillon faible du chiffrement EFSLe mot de passe est le maillon faible du chiffrement EFS

Page 36: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Best PracticesBest PracticesPolitique de récupérationPolitique de récupération

Mettre en œuvre une politique de récupération au Mettre en œuvre une politique de récupération au niveau du domaineniveau du domaine

Séparer les rôles d’agents de récupération des Séparer les rôles d’agents de récupération des administrateurs du domaineadministrateurs du domaine Changer la politique par défautChanger la politique par défaut

Mettre à l’abri les clés des agents de récupérationMettre à l’abri les clés des agents de récupération Copies hors siteCopies hors site

Pour les agents de récupération, utiliser des Pour les agents de récupération, utiliser des certificats émis par une CA, plutôt que auto-signécertificats émis par une CA, plutôt que auto-signé

Contrôler/maîtriser les droits d’enrôlement sur les Contrôler/maîtriser les droits d’enrôlement sur les templates d’agents de récupérationtemplates d’agents de récupération

Page 37: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Best PracticesBest PracticesPolitique de récupérationPolitique de récupération

Définir précisément la procédure de récupérationDéfinir précisément la procédure de récupération Utiliser une station centrale sécuriséeUtiliser une station centrale sécurisée

Ne pas importer de clé de récupération sur les stations Ne pas importer de clé de récupération sur les stations des utilisateursdes utilisateurs

Tester la capacité à dérouler la procédure et à Tester la capacité à dérouler la procédure et à effectuer la récupérationeffectuer la récupération

Limiter nombre d’agents de récupérationLimiter nombre d’agents de récupération Lors de changements de la politique de Lors de changements de la politique de

récupération mettre à jour les fichiers utilisateursrécupération mettre à jour les fichiers utilisateurs Cipher /UCipher /U

Page 38: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Best PracticesBest Practices

Data recovery vs key recoveryData recovery vs key recovery

Data recovery est spécifique à EFSData recovery est spécifique à EFS Ne nécessite pas d’infra PKI (certificats auto-signés)Ne nécessite pas d’infra PKI (certificats auto-signés) Récupération fichier par fichierRécupération fichier par fichier

Key recovery est une fonction de l’infrastructure PKIKey recovery est une fonction de l’infrastructure PKI CA WindowsCA Windows Récupération globaleRécupération globale

On peut cumuler les deux fonctionsOn peut cumuler les deux fonctions CA d’EntrepriseCA d’Entreprise

Auto-enrolement pour les certificats EFS avec séquestre des clésAuto-enrolement pour les certificats EFS avec séquestre des clés

Ou n’en mettre en œuvre aucuneOu n’en mettre en œuvre aucune Selon la politique de l’entrepriseSelon la politique de l’entreprise

Page 39: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

RéférencesRéférences Encrypting File System in Windows XP and Windows Server Encrypting File System in Windows XP and Windows Server

20032003 http://http://www.microsoft.comwww.microsoft.com//technettechnet//prodtechnolprodtechnol//winxpprowinxppro//deploydeploy//

cryptfs.mspxcryptfs.mspx

The Windows Server 2003 Family Encrypting File SystemThe Windows Server 2003 Family Encrypting File SystemNetwork Associates LaboratoriesNetwork Associates Laboratories http://msdn.microsoft.com/library/default.asp?url=/library/en-us/http://msdn.microsoft.com/library/default.asp?url=/library/en-us/

dnsecure/html/winnetsrvr-encryptedfilesystem.aspdnsecure/html/winnetsrvr-encryptedfilesystem.asp

Windows Data ProtectionWindows Data ProtectionNetwork Associates LaboratoriesNetwork Associates Laboratories http://msdn.microsoft.com/library/default.asp?url=/library/en-us/http://msdn.microsoft.com/library/default.asp?url=/library/en-us/

dnsecure/html/windataprotection-dpapi.aspdnsecure/html/windataprotection-dpapi.asp

Windows NT Magazine. Mark Russinovich. Articles reproduits Windows NT Magazine. Mark Russinovich. Articles reproduits dans MSND:dans MSND: Inside Encrypting File System, Part 1Inside Encrypting File System, Part 1

http://http://winntmag.comwinntmag.com/articles//articles/print.cfmprint.cfm??articleidarticleid=5387=5387 Inside Encrypting File System, Part 2Inside Encrypting File System, Part 2

http://winntmag.com/articles/print.cfm?articleid=5592http://winntmag.com/articles/print.cfm?articleid=5592

Page 40: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Questions?Questions?

Page 41: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft
Page 42: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Transparents supplémentairesTransparents supplémentairesPour référencePour référence

Page 43: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

EFS - ArchitectureEFS - Architecture Service EFS – lsass.exe (lsasrv.dll)Service EFS – lsass.exe (lsasrv.dll)

Au sens Win32, c’est en fait le serviceAu sens Win32, c’est en fait le serviceSecurity Account Manager (SAM)Security Account Manager (SAM)

Gestion de la clé FEKGestion de la clé FEK Chiffrement/déchiffrement RSA pour FEKChiffrement/déchiffrement RSA pour FEK

Gestion/formatage des DDF/DRF pour le Key RingGestion/formatage des DDF/DRF pour le Key Ring Application des policiesApplication des policies Implémentation/exécution de l’API EFSImplémentation/exécution de l’API EFS N’invoque que NTFSN’invoque que NTFS

ApplicationsApplications N’invoquent que NTFS et le service EFSN’invoquent que NTFS et le service EFS API cliente spécifique EFS advapi32.dllAPI cliente spécifique EFS advapi32.dll

Invocation service EFS via LPCInvocation service EFS via LPC API fichiers classique kernel32.dllAPI fichiers classique kernel32.dll

Invocation driver noyau NTFSInvocation driver noyau NTFS Driver EFSDriver EFS

Chiffrement symétrique des donnéesChiffrement symétrique des données N’est invoqué que par le driver NTFS (appel direct sur les callbacks)N’est invoqué que par le driver NTFS (appel direct sur les callbacks)

S’enregistre auprès de NTFS au démarrage (NtOfsRegsiterCallbacks)S’enregistre auprès de NTFS au démarrage (NtOfsRegsiterCallbacks) Invoque le service EFS pour chiffrement/déchiffrement FEKInvoque le service EFS pour chiffrement/déchiffrement FEK

LPC ksecdd.sys – messages LPC sécurisésLPC ksecdd.sys – messages LPC sécurisés

Page 44: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

EFS – Chiffrement d’un fichierEFS – Chiffrement d’un fichier

Application invoque EncryptFileApplication invoque EncryptFile Advapi32.dll -> feclient.dllAdvapi32.dll -> feclient.dll LPC message vers LSASRV ->EfsRpcEncryptFileSrvLPC message vers LSASRV ->EfsRpcEncryptFileSrv

LSASRV - préliminaireLSASRV - préliminaire Impersonne l’appelantImpersonne l’appelant Crée fichier journal pour la conversion clair - chiffrésCrée fichier journal pour la conversion clair - chiffrés

Efs[n].logEfs[n].log Charge profile utilisateur si nécessaireCharge profile utilisateur si nécessaire Invoque NTFS pour connaître les streams présents dans le Invoque NTFS pour connaître les streams présents dans le

fichier (il faudra chiffrer tous les streams)fichier (il faudra chiffrer tous les streams)

Page 45: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

EFS - Chiffrement d’un fichierEFS - Chiffrement d’un fichier

LSASRVLSASRV Invoque CryptoAPI pour générer une FEKInvoque CryptoAPI pour générer une FEK

Provider RSA par défautProvider RSA par défaut CryptGenRandom 16 octets = 128 bitsCryptGenRandom 16 octets = 128 bits

Obtient certificat/clé privée EFS de l’utilisateur pour Obtient certificat/clé privée EFS de l’utilisateur pour chiffrementchiffrement HKCU\Software\Microsoft\Windows NT\CurrentVersion\HKCU\Software\Microsoft\Windows NT\CurrentVersion\

EFS\CurrentKeys\CertificateHashEFS\CurrentKeys\CertificateHash Si existe, retrouve certificat dans le store personnel (My)Si existe, retrouve certificat dans le store personnel (My)

Retrouve nom du container pour la clé privéeRetrouve nom du container pour la clé privée Sinon, crée paire de clé RSA et obtient certificatSinon, crée paire de clé RSA et obtient certificat

Génération paire de clés dans un container du CSPGénération paire de clés dans un container du CSP Si Enterprise CA de localisée -> obtention auprès de cette CASi Enterprise CA de localisée -> obtention auprès de cette CA Sinon, construit et self-signe un certificatSinon, construit et self-signe un certificat Stocke certificat dans le store personnel, positionne clé Stocke certificat dans le store personnel, positionne clé

registryregistry

Page 46: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

EFS - Chiffrement d’un fichierEFS - Chiffrement d’un fichier

LSASRVLSASRV Construit DDF KeyRingConstruit DDF KeyRing

DDF: User SID, Provider/Container, EFS Certficate Hash, DDF: User SID, Provider/Container, EFS Certficate Hash, FEK chiffrée avec RSAFEK chiffrée avec RSA

Retrouve les agents de recovery de la policy en coursRetrouve les agents de recovery de la policy en cours Construit DRF KeyRingConstruit DRF KeyRing

Retrouve les certificats des agentsRetrouve les certificats des agents DRF: même format que DDFDRF: même format que DDF

Sérialise les rings dans un stream ($EFS) avec Sérialise les rings dans un stream ($EFS) avec checksums MD5 (un pour chaque keyring)checksums MD5 (un pour chaque keyring)

Crée une copie temporaire du fichierCrée une copie temporaire du fichier efs[n].tmpefs[n].tmp

On copiera de la copie temporaire vers le fichier pour le On copiera de la copie temporaire vers le fichier pour le chiffrementchiffrement

Page 47: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

EFS - Chiffrement d’un fichierEFS - Chiffrement d’un fichier LSASRVLSASRV

LSASRV invoque le driver efs.sys pour transmettre les metadata et la LSASRV invoque le driver efs.sys pour transmettre les metadata et la clé FEKclé FEK Le message est chiffré avec DESLe message est chiffré avec DES Clé de session échangée lors d’une initialisation antérieureClé de session échangée lors d’une initialisation antérieure

Invocation par l’intermédiaire de NTFSInvocation par l’intermédiaire de NTFS DeviceIOControl: FSCTL_ENCRYPTION_FCTL_IO

• Commande pour efs.sys: EFS_SET_ENCRYPT

Efs.sys Invoque NTFS pour rajouter le stream $EFS au fichierrajouter le stream $EFS au fichier

Fonctions internes NTFS mode noyau: NtOfsCreateAttributeEx, etc…Fonctions internes NTFS mode noyau: NtOfsCreateAttributeEx, etc… En retour passe un contexte pour ce fichier a NTFSEn retour passe un contexte pour ce fichier a NTFS

Le contexte contient la clé FEKLe contexte contient la clé FEK Le contexte sera fourni a efs.sys a chaque invocation ultérieureLe contexte sera fourni a efs.sys a chaque invocation ultérieure

LSASRVLSASRV Copie contenu du fichier vers la copie temporaireCopie contenu du fichier vers la copie temporaire Invoque NTFS pour le chiffrement du fichierInvoque NTFS pour le chiffrement du fichier

NTFSNTFS Efface le contenu du fichierEfface le contenu du fichier Copie le contenu de la copie vers le fichierCopie le contenu de la copie vers le fichier Puisque le fichier est chiffrée chaque écriture engendre le chiffrementPuisque le fichier est chiffrée chaque écriture engendre le chiffrement

Invocation de EfsWrite sur efs.sys avec le contexte (FEK)Invocation de EfsWrite sur efs.sys avec le contexte (FEK)

Page 48: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

CredhistCredhist

Comptes locaux seulementComptes locaux seulement Fonction de robustesse uniquementFonction de robustesse uniquement

Reprise sur échecReprise sur échec Lors du rechiffrement des master keys avec un nouveau Lors du rechiffrement des master keys avec un nouveau

NTHash, en cas d’échec il faut pouvoir repartir des NTHash, en cas d’échec il faut pouvoir repartir des NTHash precedentsNTHash precedents

Contient les hash des mots de passe précédentsContient les hash des mots de passe précédents Chaque précédent chiffré avec courantChaque précédent chiffré avec courant

Page 49: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Secrets LSASecrets LSA

SCM utilise les secrets LSA pour stocker les mots de passe SCM utilise les secrets LSA pour stocker les mots de passe des comptes de servicedes comptes de service

LSAStorePrivateData, LSARetrievePrivateDataLSAStorePrivateData, LSARetrievePrivateData API conçue pour le stockage des secrets par les services API conçue pour le stockage des secrets par les services

Win32Win32 Stockage des secrets d’une machine, pas d’un utilisateurStockage des secrets d’une machine, pas d’un utilisateur

$MACHINE.ACC$MACHINE.ACC Accès privilégié (Administrator, SYSTEM)Accès privilégié (Administrator, SYSTEM) Registry HKLM/SECURITY/Policy/SecretsRegistry HKLM/SECURITY/Policy/Secrets

Chiffrement DES avec une constanteChiffrement DES avec une constante Deplombable! Mais pas d’outil, à ma connaissanceDeplombable! Mais pas d’outil, à ma connaissance

Protégé par SYSKEYProtégé par SYSKEY Il faut appliquer SYSKEY!Il faut appliquer SYSKEY!

Les secrets LSA ne sont pas secret pour l’administrateurLes secrets LSA ne sont pas secret pour l’administrateur

Page 50: Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft

Cache de Cache de crédentielscrédentiels de logon sur une de logon sur une stationstation

Permet le logon interactif avec un compte du domaine lorsque aucun Permet le logon interactif avec un compte du domaine lorsque aucun contrôleur n’est accessiblecontrôleur n’est accessible

Entrée du cache contient un vérificateur pour le mot de passe d’un Entrée du cache contient un vérificateur pour le mot de passe d’un compte du domainecompte du domaine Ne contient ni le mot de passe, ni le NTHashNe contient ni le mot de passe, ni le NTHash Le vérificateur est MD4( NTHash)Le vérificateur est MD4( NTHash)

On ne peut dériver le NTHash du vérificateurOn ne peut dériver le NTHash du vérificateur Le vérificateur est Le vérificateur est saltedsalted

Deux utilisateurs avec même mot de passe n’ont pas le même vérificateurDeux utilisateurs avec même mot de passe n’ont pas le même vérificateur L’attaque de dictionnaire contre le vérificateur reste possibleL’attaque de dictionnaire contre le vérificateur reste possible

Vérificateur, user et groupes sont conservés dans le registreVérificateur, user et groupes sont conservés dans le registre Permet de créer un Permet de créer un tokentoken lors de l’ouverture de session lors de l’ouverture de session HKLM/SECURITY/Cache/NL$1, etc…HKLM/SECURITY/Cache/NL$1, etc… Ce cache ne fait pas partie des secrets LSA – pas de protection SyskeyCe cache ne fait pas partie des secrets LSA – pas de protection Syskey Chiffrement RC4 128 bit avec clé dérivée d’une clé maîtreChiffrement RC4 128 bit avec clé dérivée d’une clé maître Clé maître conservée en tant que secret LSA Clé maître conservée en tant que secret LSA NL$KmNL$Km

HKLM/SECURITY/Policy/SecretsHKLM/SECURITY/Policy/Secrets Secrets LSA sont protégés par SyskeySecrets LSA sont protégés par Syskey

Cas Smartcard/KerberosCas Smartcard/Kerberos Le cache contient bien le NTHash, mais protegé par PKI (déchiffrable avec la Le cache contient bien le NTHash, mais protegé par PKI (déchiffrable avec la

clé privée)clé privée) Mettre en œuvre une politique de logon par Smartcard, et affecter aux Mettre en œuvre une politique de logon par Smartcard, et affecter aux

utilisateurs des mots de passe aléatoires et robustes dont il n’ont pas utilisateurs des mots de passe aléatoires et robustes dont il n’ont pas connaissanceconnaissance