La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft."— Transcription de la présentation:

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

2 Microsoft Confidential 2 Agenda Rappel du fonctionnel Rappel du fonctionnel Architecture Architecture Mise en œuvre/meilleures pratiques Mise en œuvre/meilleures pratiques

3 Microsoft Confidential 3 Point sur le fonctionnel EFS

4 Microsoft Confidential 4 Fonctionnel Protection des fichiers par chiffrement Protection des fichiers par chiffrement Vol de portable, disque dur Vol de portable, disque dur Attaque hors ligne, boot dun autre OS Attaque hors ligne, boot dun autre OS Intégration sécurité Windows et Active Directory Intégration sécurité Windows et Active Directory Chiffrement/Déchiffrement pour des comptes Windows Chiffrement/Déchiffrement pour des comptes Windows Pas de groupes Pas de groupes Mais chiffrement pour plusieurs utilisateurs possible Mais chiffrement pour plusieurs utilisateurs possible Intégré au système de fichiers NTFS Intégré au système de fichiers NTFS EFS est une fonction de NTFS EFS est une fonction de NTFS Transparent pour les programmes et applications Transparent pour les programmes et applications

5 Microsoft Confidential 5 Fonctionnel EFS est une application PKI Chiffrement du contenu AES 256 par défaut Chiffrement du contenu AES 256 par défaut 3DES configurable par Policy 3DES configurable par Policy System cryptography: Use FIPS compliant algorithms for encryption System cryptography: Use FIPS compliant algorithms for encryption HKLM\SYSTEM\CurrentControlSet\Control\LSA\FipsAlgorithmPolicy HKLM\SYSTEM\CurrentControlSet\Control\LSA\FipsAlgorithmPolicy Driver Fips.sys FIPS Driver Fips.sys FIPS DESX pour accès aux fichiers Windows 2000 DESX pour accès aux fichiers Windows 2000 Chiffrement clé de session RSA 1024 par défaut Chiffrement clé de session RSA 1024 par défaut HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS\RSAKeyLength HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS\RSAKeyLength Certificats X509v3 Certificats X509v3 Certificats spécifiques EFS Certificats spécifiques EFS Extensions Application Policy/EKU Extensions Application Policy/EKU Encrypting File System – oid Encrypting File System – oid File Recovery – oid File Recovery – oid EFS ne peut fonctionner quavec les CSP RSA « logiciels » de la plateforme EFS ne peut fonctionner quavec les CSP RSA « logiciels » de la plateforme Pas de certificat EFS sur Smartcard Pas de certificat EFS sur Smartcard

6 Microsoft Confidential 6 Fonctionnel Modèle dit « data recovery » (en contraste avec « key recovery ») Modèle dit « data recovery » (en contraste avec « key recovery ») Mise en œuvre optionnelle dune politique de récupération Mise en œuvre optionnelle dune 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 des n entités qui devront accéder au fichier Chiffrement RSA de la FEK n fois avec clés publiques des n entités qui devront accéder au fichier DDF Key Ring – Data Decryption Field – Utilisateurs DDF Key Ring – Data Decryption Field – Utilisateurs DRF Key Ring – Data Recovery Field – Agents de récupération (DRA) DRF Key Ring – Data Recovery Field – Agents de récupération (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 Chiffrement RSA de la FEK DDF Key Ring

7 Microsoft Confidential 7 Fonctionnel Attribut des dossiers et des fichiers Attribut des dossiers et des fichiers État chiffré ou non chiffré (comme la compression) État chiffré ou non chiffré (comme la compression) E = Encrypted E = Encrypted Explorateur Windows Explorateur Windows Couleur verte Couleur 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 contextuel Menu contextuel HKLM\Software\Microsoft\Windows\Explorer HKLM\Software\Microsoft\Windows\Explorer EncryptionContexteMenu EncryptionContexteMenu Désignation des utilisateurs par leurs certificats Désignation des utilisateurs par leurs certificats Visualisation des agents de récupération Visualisation des agents de récupération Politique de récupération Politique de récupération Scénario typique, et recommandé Scénario typique, et recommandé On active le chiffrement sur un dossier On active le chiffrement sur un dossier On place les fichiers à protéger dans ce dossier On place les fichiers à protéger dans ce dossier

8 Microsoft Confidential 8 Fonctionnel Chiffrement sur serveur du fichiers SMB possible Chiffrement sur serveur du fichiers SMB possible Transport en clair Transport en clair Utiliser IPSEC Utiliser IPSEC Chiffrement redirecteur WebDAV (préféré) Chiffrement redirecteur WebDAV (préféré) Serveur WebDAV Serveur WebDAV Partage de fichier sur HTTP Partage de fichier sur HTTP Alternative à SMB, RFC 2518 Alternative à SMB, RFC 2518 Chiffrement sur la station, transport chiffré Chiffrement sur la station, transport chiffré IIS supporte Webdav de par les Web folders IIS supporte Webdav de par les Web folders SPS ne supporte pas EFS SPS ne supporte pas EFS EFS nest pas adapté pour le partage des fichiers chiffrés EFS nest pas adapté pour le partage des fichiers chiffrés Son rôle premier est la protection contre le vol Son rôle premier est la protection contre le vol Pour la protection dinformations confidentielles à partager, on sorientera vers RMS, et/ou S/MIME Pour la protection dinformations confidentielles à partager, on sorientera vers RMS, et/ou S/MIME

9 Microsoft Confidential 9 Fonctionnel Pas de chiffrement des fichiers et dossiers système Pas de chiffrement des fichiers et dossiers système Logique dinitialisation système et drivers Logique dinitialisation système et drivers %systemroot% %systemroot% Attribut SYSTEM Attribut SYSTEM Pas de chiffrement des fichiers compressés possible Pas de chiffrement des fichiers compressés possible Cest lun ou lautre (chiffrement, ou compression) Cest lun ou lautre (chiffrement, ou compression) Droits propriétaire non nécessaire Droits propriétaire non nécessaire Permission écriture suffisante Permission écriture suffisante API de programmation API de programmation La plus part des opérations EFS peuvent être effectuées par programmation La plus part des opérations EFS peuvent être effectuées par programmation Intégration backup Intégration backup Backup des fichiers sous leur forme chiffrée Backup des fichiers sous leur forme chiffrée

10 Microsoft Confidential 10 Copie et déplacement Opérations locales Opérations locales Shell glisser/déplacer, copier/coller Shell glisser/déplacer, copier/coller Vers un dossier chiffré Vers un dossier chiffré Le fichier arrive chiffré quelque soit son état initial et que lopération soit une copie ou un déplacement Le fichier arrive chiffré quelque soit son état initial et que lopération soit une copie ou un déplacement Vers un dossier non chiffré Vers un dossier non chiffré Le fichier conserve son état Le fichier conserve son état Commande Copy Commande Copy IDEM shell IDEM shell Vers un dossier chiffré Vers un dossier chiffré Le fichier arrive chiffré quelque soit son état initial Le fichier arrive chiffré quelque soit son état initial Vers un dossier non chiffré Vers un dossier non chiffré Le fichier conserve son état Le fichier conserve son état Commande Move Commande Move Le fichier conserve son état Le fichier conserve son état

11 Microsoft Confidential 11 Copie et déplacement Dun fichier chiffré vers un serveur distant (SMB) Le transport est en clair: utiliser IPSEC lorsque possible Serveur ne supporte pas le chiffrement EFS Serveur ne supporte pas le chiffrement EFS Message davertissement (Windows XP/2003) et possibilité pour lutilisateur dannuler lopération Message davertissement (Windows XP/2003) et possibilité pour lutilisateur dannuler lopération Serveur supporte EFS et le compte machine du serveur est « trusted for delegation » dans AD Serveur supporte EFS et le compte machine du serveur est « trusted for delegation » dans AD Déchiffrement, transport en clair, et rechiffrement sur le serveur Déchiffrement, transport en clair, et rechiffrement sur le serveur Options ligne de commande pour permettre la copie vers une destination en clair Options ligne de commande pour permettre la copie vers une destination en clair Copie /D Copie /D Xcopy /G Xcopy /G

12 Microsoft Confidential 12 API de programmation FILE_ATTRIBUTE_ENCRYPTED (0x ) FILE_ATTRIBUTE_ENCRYPTED (0x ) GetFileAttribute/SetFileAttribute (ne chiffre pas) GetFileAttribute/SetFileAttribute (ne chiffre pas) CreateFile FILE_ATTRIBUTE_ENCRYPTED (chiffre) CreateFile FILE_ATTRIBUTE_ENCRYPTED (chiffre) EncryptFile/DecryptFile (chiffre/déchiffre) EncryptFile/DecryptFile (chiffre/déchiffre) FileEncryptionStatus FileEncryptionStatus FILE_ENCRYPTABLE, FILE_IS_ENCRYPTED, FILE_SYSTEM_ATTR FILE_ENCRYPTABLE, FILE_IS_ENCRYPTED, FILE_SYSTEM_ATTR AddUsersToEncryptedFile, QueryUsersOnEncryptedFile AddUsersToEncryptedFile, QueryUsersOnEncryptedFile QueryRecoveryAgentsOnEncryptedFile QueryRecoveryAgentsOnEncryptedFile SetUserFileEncryptionKey SetUserFileEncryptionKey EncryptionDisable EncryptionDisable Désactive chiffrement sur un répertoire Désactive chiffrement sur un répertoire EncryptFile échouera EncryptFile échouera FileEncryptionStatus ne retournera pas FILE_ENCRYPTABLE FileEncryptionStatus ne retournera pas FILE_ENCRYPTABLE ReadEncryptedFileRaw, WriteEncryptedFileRaw ReadEncryptedFileRaw, WriteEncryptedFileRaw Backup, non documenté Plateform SDK Backup, non documenté Plateform SDK

13 Microsoft Confidential 13 Outils Cipher Cipher Chiffrement/déchiffrement Chiffrement/déchiffrement Lister et localiser les fichiers chiffrés Lister et localiser les fichiers chiffrés Mise à jour des fichiers pour une nouvelle clé EFS et agents de récupération (touch) Mise à jour des fichiers pour une nouvelle clé EFS et agents de récupération (touch) Remise à zéro de lespace disque non utilisé Remise à zéro de lespace disque non utilisé Obtenir un nouveau certificat EFS dune CA en ligne Obtenir un nouveau certificat EFS dune CA en ligne EFSInfo EFSInfo Windows Support Tools Windows Support Tools Affichage des utilisateurs pour des fichiers/dossiers Affichage des utilisateurs pour des fichiers/dossiers Affichage des « thumbprint » des certificats pour des fichiers/dossiers Affichage des « thumbprint » des certificats pour des fichiers/dossiers Affichage du « thumbprint » du certificat EFS courant Affichage du « thumbprint » du certificat EFS courant HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys\CertificateHash HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys\CertificateHash Affichage agents de recovery pour des fichiers/dossiers Affichage agents de recovery pour des fichiers/dossiers

14 Microsoft Confidential 14 Révocation Vérification de la révocation lors de lajout de certificats sur un fichier chiffré Vérification de la révocation lors de lajout de certificats sur un fichier chiffré Si le certificat savère être révoqué, il est rejeté Si le certificat savère être révoqué, il est rejeté Pas de vérification si lutilisateur possède la clé privée correspondante au certificat Pas de vérification si lutilisateur possède la clé privée correspondante au certificat Pas de vérification de révocation si le certificat ne contient pas de CDP Pas de vérification de révocation si le certificat ne contient pas de CDP Si le certificat est « self-signed », on demande à lutilisateur sil veut y faire confiance et lutiliser Si le certificat est « self-signed », on demande à lutilisateur sil veut y faire confiance et lutiliser Rajout du certificat dans le store « trusted people » Rajout du certificat dans le store « trusted people »

15 Microsoft Confidential 15 Architecture

16 Microsoft Confidential 16 EFS - Architecture User Mode Kernel Mode EFS Layered Driver efs.sys EFS Layered Driver efs.sys NTFS Driver ntfs.sys NTFS Driver ntfs.sys Partition Disk Crypto API Application (Explorer)LSASS feclient.dll kernel32.dll API Win32 Service EFS lsasrv.dll CreateFile ReadFile/WriteFile DeviceIOControl DeviceIOControl FSCTL_ENCRYPTION_FCTL_IO EFS_SET_ENCRYPT Certificat Clé Privée FILE_ATTRIBUTE_ENCRYPTED EncryptFile DecryptFile Callouts (FSRTL): EfsRead/EfsWrite EfsOpenFile EfsFileControl Chiffrement RSA (PKI) Chiffrement Symmétrique advapi32.dll LPC efsadu.dll

17 Microsoft Confidential 17 Protection de la clé privée CSP logiciel Chiffrement via DPAPI (Data Protection API) Chiffrement via DPAPI (Data Protection API) CryptProtectData, CryptUnprotectData CryptProtectData, CryptUnprotectData Seul le même utilisateur peut retrouver linformation en clair – cest le même utilisateur qui doit invoquer protect et unprotect Seul le même utilisateur peut retrouver linformation en clair – cest le même utilisateur qui doit invoquer protect et unprotect Source dentropie Source dentropie Crédentiels de lutilisateur (NTHash du mot de passe) Crédentiels de lutilisateur (NTHash du mot de passe) Entropie supplémentaire spécifique à linformation Entropie supplémentaire spécifique à linformation Phrase secrète utilisateur Phrase secrète utilisateur Non utilisé par EFS (transparence) Non utilisé par EFS (transparence) Gestion des changements de mot de passe Gestion des changements de mot de passe Implications syskey Implications syskey Stockage du « blob » DPAPI dans le profil de lutilisateur Stockage du « blob » DPAPI dans le profil de lutilisateur c:\Documents and Settings\ \Application Data\Microsoft\Protect\ c:\Documents and Settings\ \Application Data\Microsoft\Protect\

18 Microsoft Confidential 18 DPAPI Principe de fonctionnement Chiffrement 3DES Chiffrement 3DES Clé dérivée dun secret maître Clé dérivée dun secret maître Unique à chaque protection par lajout daléa et de lentropie additionnelle Unique à chaque protection par lajout daléa et de lentropie additionnelle Secret maître Secret maître Stocké dans le profil utilisateur Stocké dans le profil utilisateur Chiffrement 3DES avec clé dérivée du NTHash du compte Chiffrement 3DES avec clé dérivée du NTHash du compte SHA-1 et PBKDF2 SHA-1 et PBKDF2 Pour machines domaine, chiffrement une deuxième fois Pour machines domaine, chiffrement une deuxième fois RSA avec clé publique du DC RSA avec clé publique du DC Renouvellement du secrets maîtres tous les trois mois Renouvellement du secrets maîtres tous les trois mois Historique des secrets maîtres (fichiers) Historique des secrets maîtres (fichiers) Secret maître identifié par GUID Secret maître identifié par GUID GUID fait partie du blob DPAPI GUID fait partie du blob DPAPI

19 Microsoft Confidential 19 DPAPI Changement de mot de passe Machine hors domaine (compte local) Machine hors domaine (compte local) DPAPI utilise lévénement de changement de mot de passe DPAPI utilise lévénement de changement de mot de passe Le secret maître est déchiffré avec lancien NTHash, rechiffré avec le nouveau NTHash Le secret maître est déchiffré avec lancien NTHash, rechiffré avec le nouveau NTHash En case de perte de mot de passe En case de perte de mot de passe Utiliser le Password Recovery Disk Utiliser le Password Recovery Disk Machine du domaine Machine du domaine Scénario pour lequel le mot de passe a été changé à partir dune autre machine Scénario pour lequel le mot de passe a été changé à partir dune autre machine Nouveau NTHash ne permet pas de déchiffrer le secret maître Nouveau NTHash ne permet pas de déchiffrer le secret maître DPAPI invoque le DC, lui fournit le secret maître chiffré, et le DC renvoie le secret maître déchiffré DPAPI invoque le DC, lui fournit le secret maître chiffré, et le DC renvoie le secret maître déchiffré DPAPI rechiffre le secret maître avec le nouveau NTHash DPAPI rechiffre le secret maître avec le nouveau NTHash Fonctionne en cas de perte de mot de passe Fonctionne en cas de perte de mot de passe Reset du mot de passe par ladministrateur Reset du mot de passe par ladministrateur

20 Microsoft Confidential 20 Syskey Chiffrement des NTHash dans la SAM et/ou AD Chiffrement des NTHash dans la SAM et/ou AD RC4 128/MD5 RC4 128/MD5 Clé unique à chaque champ, toutefois dérivée dune clé de boot: « syskey » Clé unique à chaque champ, toutefois dérivée dune clé de boot: « syskey » SYSKEY mode 1 SYSKEY mode 1 La clé de boot est dissimulée et éparpillée sur le disque La clé de boot est dissimulée et éparpillée sur le disque Permet le démarrage sans intervention de lutilisateur Permet le démarrage sans intervention de lutilisateur SYSKEY mode 2 SYSKEY mode 2 La clé est dérivée dun mot de passe de démarrage, que lutilisateur doit connaître et saisir La clé est dérivée dun mot de passe de démarrage, que lutilisateur doit connaître et saisir SYSKEY mode 3 SYSKEY mode 3 La clé est générée par le système et stockée sur une disquette La clé est générée par le système et stockée sur une disquette Nécessite la disquette pour démarrer Nécessite la disquette pour démarrer

21 Microsoft Confidential 21 Syskey Protection de la clé EFS DPAPI avec un compte local à la machine DPAPI avec un compte local à la machine Le NTHash de compte se trouve sur le disque de la machine Le NTHash de compte se trouve sur le disque de la machine Syskey mode 1 vulnérable Syskey mode 1 vulnérable Il faut appliquer Syskey en mode 2 ou 3 Il faut appliquer Syskey en mode 2 ou 3 DPAPI avec un compte du domaine DPAPI avec un compte du domaine Le NTHash du compte ne se trouve pas sur le disque de la machine* Le NTHash du compte ne se trouve pas sur le disque de la machine* *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 Smartcard

22 Microsoft Confidential 22 Mise en œuvre dEFS

23 Microsoft Confidential 23 Gestion certificats et clés Notion de certificat/clé courant Notion de certificat/clé courant HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys\CertificateHash HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys\CertificateHash EFSINFO /Y EFSINFO /Y Stores utilisés Stores utilisés My My Trusted People Trusted People Trust explicite de certificats self-signed Trust explicite de certificats self-signed Other People Other People Office de cache Office de cache Typiquement les certificats émis par une CA Typiquement les certificats émis par une CA Obtenus depuis lannuaire Active Directory (userCertificate), sont conservés dans ce store Obtenus depuis lannuaire Active Directory (userCertificate), sont conservés dans ce store

24 Microsoft Confidential 24 Gestion certificats et clés Machines hors domaine Lors dun chiffrement de fichier… Sil y a un certificat courant, EFS lutilise Sil y a un certificat courant, EFS lutilise Sil ny a pas de certificat courant, ou le certificat courant nexiste pas, EFS recherche un certificat acceptable (Application Policy/EKU) Sil ny a pas de certificat courant, ou le certificat courant nexiste pas, EFS recherche un certificat acceptable (Application Policy/EKU) Sil en trouve un, il lutilise Sil en trouve un, il lutilise Il le configure comme certificat courant Il le configure comme certificat courant Si aucun certificat EFS nexiste, une paire de clé et un certificat auto-signé sont créés Si aucun certificat EFS nexiste, une paire de clé et un certificat auto-signé sont créés Mise à jour du certificat courant dans le registre Mise à jour du certificat courant dans le registre

25 Microsoft Confidential 25 Gestion certificats et clés Machines du domaine Lors dun chiffrement de fichier… Sil y a un certificat courant, EFS lutilise Sil y a un certificat courant, EFS lutilise Sil ny a pas de certificat courant, ou le certificat courant nexiste pas, EFS recherche un certificat acceptable (Application Policy/EKU) Sil ny a pas de certificat courant, ou le certificat courant nexiste pas, EFS recherche un certificat acceptable (Application Policy/EKU) Sil en trouve un, il lutilise Sil en trouve un, il lutilise Il le configure comme certificat courant Il le configure comme certificat courant Sinon, EFS tente de localiser une CA dEntreprise et denrôler un certificat EFS Sinon, EFS tente de localiser une CA dEntreprise et denrôler un certificat EFS Il faut quune CA dEntreprise « serve » une template EFS et que la template ait lACE « Enroll » pour lutilisateur Il faut quune CA dEntreprise « serve » une template EFS et que la template ait lACE « Enroll » pour lutilisateur Mise à jour du certificat courant dans le registre Mise à jour du certificat courant dans le registre Finalement, lorsque les étapes ci-dessus ont échoué, une paire de clé et un certificat auto-signé sont créés Finalement, lorsque les étapes ci-dessus ont échoué, une paire de clé et un certificat auto-signé sont créés Mise à jour du certificat courant dans le registre Mise à jour du certificat courant dans le registre

26 Microsoft Confidential 26 Déploiement de certificats EFS Auto-Enrôlement Auto-Enrôlement Positionner les droits « Enroll » et « AutoEnroll » sur une template EFS dans Active Directory Positionner les droits « Enroll » et « AutoEnroll » sur une template EFS dans Active Directory Enrôlement par EFS Enrôlement par EFS Sassurer des droits « Enroll » sur une template EFS dans Active Directory Sassurer des droits « Enroll » sur une template EFS dans Active Directory Templates de base supportant EFS Templates de base supportant EFS User User Administrator Administrator Basic EFS Basic EFS Dans les deux cas, sassurer quune CA Entreprise joignable « serve » cette/ces templates Dans les deux cas, sassurer quune CA Entreprise joignable « serve » cette/ces templates Si lutilisateur a déjà un ou des certificats EFS, il y a de fortes chances pour que lenrôlement EFS ne se déclenche pas, ou que le certificat obtenu par Auto-Enrôlement ne soit pas utilisé Si lutilisateur a déjà un ou des certificats EFS, il y a de fortes chances pour que lenrôlement EFS ne se déclenche pas, ou que le certificat obtenu par Auto-Enrôlement ne soit pas utilisé Forcer le certificat courant par script de logon Forcer le certificat courant par script de logon

27 Microsoft Confidential 27 Politique de récupération Politique de récupération = mise en place et utilisation de un ou plusieurs agents de récupération (DRA) Politique de récupération = mise en place et utilisation de un ou plusieurs agents de récupération (DRA) DRA matérialisé par un certificat/clé privée DRA matérialisé par un certificat/clé privée A chaque ouverture de fichier chiffré, EFS applique la politique en vigueur A chaque ouverture de fichier chiffré, EFS applique la politique en vigueur Sassure que les DRF existent pour chaque DRA défini par la politique Sassure que les DRF existent pour chaque DRA défini par la politique Cipher /U Cipher /U Lexistence dune politique de récupération est facultative sur Windows XP/Windows 2003 Lexistence dune politique de récupération est facultative sur Windows XP/Windows 2003 Un fichier peut être chiffré sans DRA Un fichier peut être chiffré sans DRA Risque de perte des informations Risque de perte des informations Sur Windows 2000, elle est obligatoire Sur Windows 2000, elle est obligatoire Labsence dagent de récupération désactive EFS Labsence dagent de récupération désactive EFS Pour créer léquivalent dun chiffrement sans politique de récupération, on peut utiliser un DRA pour lequel la clé privée a été détruite Pour créer léquivalent dun chiffrement sans politique de récupération, on peut utiliser un DRA pour lequel la clé privée a été détruite

28 Microsoft Confidential 28 Politique de récupération Machine hors domaine Pas de politique de récupération par défaut Pas de politique de récupération par défaut Windows XP/2003 ne crée pas dagent de récupération lors de linstallation ou du premier logon Windows XP/2003 ne crée pas dagent de récupération lors de linstallation ou du premier logon Ce nétait pas le cas pour Windows 2000 Ce nétait pas le cas pour Windows 2000 Pour mettre en œuvre un agent de récupération Pour mettre en œuvre un agent de récupération Utiliser Local Security Settings (secpol.msc) Utiliser Local Security Settings (secpol.msc) Public Key Policies/Encrypting File System Public Key Policies/Encrypting File System On désigne un ou des certificats dagents de récupération sur le disque (fichiers CER) On désigne un ou des certificats dagents de récupération sur le disque (fichiers CER) CIPHER /R CIPHER /R Crée une paire de clés et certificat auto-signé correspondant Crée une paire de clés et certificat auto-signé correspondant Génère un fichier PFX et un fichier CER Génère un fichier PFX et un fichier CER Mettre le fichier PFX en sécurité, et installer le fichier CER en tant quagent de récupération Mettre le fichier PFX en sécurité, et installer le fichier CER en tant quagent de récupération

29 Microsoft Confidential 29 Politique de récupération Domaine Définie par stratégie de groupe (Group Policy) Définie par stratégie de groupe (Group Policy) Sapplique aux machines sous son influence Sapplique aux machines sous son influence Site, Domaine, OU Site, Domaine, OU Précédence OU, Domaine, Site Précédence OU, Domaine, Site Distinction policy vide vs pas de policy Distinction policy vide vs pas de policy Créée automatiquement lors du premier logon de ladministrateur Créée automatiquement lors du premier logon de ladministrateur Désigne ladministrateur du domaine en tant que DRA Désigne ladministrateur du domaine en tant que DRA Certificat auto-signé au nom de ladministrateur Certificat auto-signé au nom de ladministrateur Clé privée dans le profil de ladministrateur Clé privée dans le profil de ladministrateur Ladministrateur peut modifier la stratégie de groupe (dompol.msc) Ladministrateur peut modifier la stratégie de groupe (dompol.msc) Public Key Policies/Encrypting File System Public Key Policies/Encrypting File System Rajouter des DRA en désignant des certificats dagents de récupération Rajouter des DRA en désignant des certificats dagents de récupération Fichiers CER sur le disque Fichiers CER sur le disque userCertificate dans Active Directory userCertificate dans Active Directory Supprimer des DRA Supprimer des DRA Supprimer la policy/Créer une policy vide Supprimer la policy/Créer une policy vide Créer un DRA le désignant Créer un DRA le désignant Certification par une CA dEntreprise plutôt que auto-signé Certification par une CA dEntreprise plutôt que auto-signé

30 Microsoft Confidential 30 Désactiver EFS Machine du domaine Stratégie de groupe (Group Policy) Stratégie de groupe (Group Policy) Public Key Policies/Encrypting File System/Properties Public Key Policies/Encrypting File System/Properties Allow users to encrypt files using EFS Allow users to encrypt files using EFS Machine hors domaine Utiliser clé registre Utiliser clé registre HKLM\Software\Microsoft\Windows NT\CurrentVersion\EFS HKLM\Software\Microsoft\Windows NT\CurrentVersion\EFS Valeur EfsConfiguration DWORD 0x1 Valeur EfsConfiguration DWORD 0x1

31 Microsoft Confidential 31 Récupération Mise en œuvre Agent de récupération déchiffre le fichier avec lexplorateur Windows ou la commande Cipher Agent de récupération déchiffre le fichier avec lexplorateur Windows ou la commande Cipher Station de récupération centralisée Station de récupération centralisée Si suffisamment en sécurité, la clé privée de lagent de récupération peut sy trouver en permanence Si suffisamment en sécurité, la clé privée de lagent de récupération peut sy trouver en permanence Sinon, au moment deffectuer des récupérations: Sinon, au moment deffectuer des récupérations: Importer la clé Importer la clé Effectuer les récupérations Effectuer les récupérations Exporter la clé Exporter la clé Les utilisateurs doivent faire un backup (NTBackup) du fichier EFS et le déposer sur un share Les utilisateurs doivent faire un backup (NTBackup) du fichier EFS et le déposer sur un share Lagent de récupération obtient le fichier de backup, le restore sur la station, vérifie les droits de lutilisateur, puis déchiffre le fichier Lagent de récupération obtient le fichier de backup, le restore sur la station, vérifie les droits de lutilisateur, puis déchiffre le fichier Intervention sur site de lagent de récupération Intervention sur site de lagent de récupération Accède à la station, importe la clé, effectue la récupération, exporte la clé Accède à la station, importe la clé, effectue la récupération, exporte la clé

32 Microsoft Confidential 32 Chiffrement sur serveur SMB Globalement complexe Chiffrement sur le serveur, pour le compte de lutilisateur Chiffrement sur le serveur, pour le compte de lutilisateur Transport en clair, utiliser IPSEC Transport en clair, utiliser IPSEC Délégation Kerberos Délégation Kerberos Serveur « trusted for delegation » Serveur « trusted for delegation » Compte utilisateur nest pas « sensitive and cannot be delegated » Compte utilisateur nest pas « sensitive and cannot be delegated » Si profile errant, le serveur lutilise Si profile errant, le serveur lutilise Sinon, le serveur crée un profile pour lutilisateur Sinon, le serveur crée un profile pour lutilisateur Contient le certificat et clé privée Contient le certificat et clé privée Logique denrôlement (CA dEntreprise ou auto-signé) identique à celle dune station Logique denrôlement (CA dEntreprise ou auto-signé) identique à celle dune 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-utilisateurs Support multi-utilisateurs Nécessite profiles errants Nécessite profiles errants Mise en cache des handles (CryptoAPI) de clés de utilisateurs Mise en cache des handles (CryptoAPI) de clés de utilisateurs Par défaut 15, paramétrable registre Par défaut 15, paramétrable registre Pas de support cross forest Pas de support cross forest Méthode préférée reste WebDAV Méthode préférée reste WebDAV Nécessite stations Windows XP Nécessite stations Windows XP

33 Microsoft Confidential 33 Fichiers hors ligne Client Side Caching (CSC) Client Side Caching (CSC) Base unique sur la station Base unique sur la station Contient tous les fichiers de tous les utilisateurs Contient tous les fichiers de tous les utilisateurs Accès aux fichiers sous contrôle des ACL Accès aux fichiers sous contrôle des ACL Affichage reproduit la structure des répertoires et fichiers du serveur Affichage reproduit la structure des répertoires et fichiers du serveur Chiffrement EFS pour le compte local SYSTEM Chiffrement EFS pour le compte local SYSTEM Ne pas utiliser pour des informations sensibles, à moins dêtre prêt a passer en SYSKEY mode 2 ou 3 Ne pas utiliser pour des informations sensibles, à moins dêtre prêt a passer en SYSKEY mode 2 ou 3

34 Microsoft Confidential 34 Best Practices Chiffrement EFS Chiffrement au niveau des dossiers Chiffrement au niveau des dossiers Utiliser des dossiers chiffrés, plutôt que conversion dun fichier de clair en chiffré (problème copie en texte clair lors de la conversion, dont les blocs restent sur la partition NTFS) Utiliser des dossiers chiffrés, plutôt que conversion dun fichier de clair en chiffré (problème copie en texte clair lors de la conversion, dont les blocs restent sur la partition NTFS) My Documents My Documents RootDirectory\Temp RootDirectory\Temp %systemroot%\system32\spool %systemroot%\system32\spool Activer la purge du fichier de pagination Activer la purge du fichier de pagination Utilisation de mémoire non-paginée pour le driver – pas de pagination des clés (FEK) Utilisation de mémoire non-paginée pour le driver – pas de pagination des clés (FEK) Cependant les données en clair peuvent être paginées (applications) Cependant les données en clair peuvent être paginées (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) Sil y a eu des conversions (clair -> chiffré) Sil y a eu des conversions (clair -> chiffré)

35 Microsoft Confidential 35 Best Practices Comptes utilisateurs Utiliser des comptes du domaine, et non des comptes locaux Utiliser des comptes du domaine, et non des comptes locaux Protection effective même en SYSKEY mode 1 Protection effective même en SYSKEY mode 1 Si le chiffrement est mis en œuvre avec des comptes locaux, utiliser SYSKEY mode 2 ou 3 Si le chiffrement est mis en œuvre avec des comptes locaux, utiliser SYSKEY mode 2 ou 3 Mettre en œuvre une politique de mots de passe renforcée Mettre en œuvre une politique de mots de passe renforcé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 EFS Le mot de passe est le maillon faible du chiffrement EFS

36 Microsoft Confidential 36 Best Practices Politique de récupération Mettre en œuvre une politique de récupération au niveau du domaine Mettre en œuvre une politique de récupération au niveau du domaine Séparer les rôles dagents de récupération des administrateurs du domaine Séparer les rôles dagents de récupération des administrateurs du domaine Changer la politique par défaut Changer la politique par défaut Mettre à labri les clés des agents de récupération Mettre à labri les clés des agents de récupération Copies hors site Copies hors site Pour les agents de récupération, utiliser des certificats émis par une CA, plutôt que auto-signé Pour les agents de récupération, utiliser des certificats émis par une CA, plutôt que auto-signé Contrôler/maîtriser les droits denrôlement sur les templates dagents de récupération Contrôler/maîtriser les droits denrôlement sur les templates dagents de récupération

37 Microsoft Confidential 37 Best Practices Politique de récupération Définir précisément la procédure de récupération Définir précisément la procédure de récupération Utiliser une station centrale sécurisée Utiliser une station centrale sécurisée Ne pas importer de clé de récupération sur les stations des utilisateurs Ne pas importer de clé de récupération sur les stations des utilisateurs Tester la capacité à dérouler la procédure et à effectuer la récupération Tester la capacité à dérouler la procédure et à effectuer la récupération Limiter nombre dagents de récupération Limiter nombre dagents de récupération Lors de changements de la politique de récupération mettre à jour les fichiers utilisateurs Lors de changements de la politique de récupération mettre à jour les fichiers utilisateurs Cipher /U Cipher /U

38 Microsoft Confidential 38 Best Practices Data recovery vs key recovery Data recovery est spécifique à EFS Data recovery est spécifique à EFS Ne nécessite pas dinfra PKI (certificats auto-signés) Ne nécessite pas dinfra PKI (certificats auto-signés) Récupération fichier par fichier Récupération fichier par fichier Key recovery est une fonction de linfrastructure PKI Key recovery est une fonction de linfrastructure PKI CA Windows CA Windows Récupération globale Récupération globale On peut cumuler les deux fonctions On peut cumuler les deux fonctions CA dEntreprise CA dEntreprise Auto-enrolement pour les certificats EFS avec séquestre des clés Auto-enrolement pour les certificats EFS avec séquestre des clés Ou nen mettre en œuvre aucune Ou nen mettre en œuvre aucune Selon la politique de lentreprise Selon la politique de lentreprise

39 Microsoft Confidential 39 Références Encrypting File System in Windows XP and Windows Server 2003 Encrypting File System in Windows XP and Windows Server ptfs.mspx ptfs.mspx ptfs.mspx ptfs.mspx The Windows Server 2003 Family Encrypting File System Network Associates Laboratories The Windows Server 2003 Family Encrypting File System Network Associates Laboratories us/dnsecure/html/winnetsrvr-encryptedfilesystem.asp us/dnsecure/html/winnetsrvr-encryptedfilesystem.asp us/dnsecure/html/winnetsrvr-encryptedfilesystem.asp us/dnsecure/html/winnetsrvr-encryptedfilesystem.asp Windows Data Protection Network Associates Laboratories Windows Data Protection Network Associates Laboratories us/dnsecure/html/windataprotection-dpapi.asp us/dnsecure/html/windataprotection-dpapi.asp us/dnsecure/html/windataprotection-dpapi.asp us/dnsecure/html/windataprotection-dpapi.asp Windows NT Magazine. Mark Russinovich. Articles reproduits dans MSND: Windows NT Magazine. Mark Russinovich. Articles reproduits dans MSND: Inside Encrypting File System, Part 1 Inside Encrypting File System, Part 1 Inside Encrypting File System, Part 2 Inside Encrypting File System, Part 2

40 Microsoft Confidential 40 Questions?

41 Microsoft Confidential 41

42 Microsoft Confidential 42 Transparents supplémentaires Pour référence

43 Microsoft Confidential 43 EFS - Architecture Service EFS – lsass.exe (lsasrv.dll) Service EFS – lsass.exe (lsasrv.dll) Au sens Win32, cest en fait le service Security Account Manager (SAM) Au sens Win32, cest en fait le service Security Account Manager (SAM) Gestion de la clé FEK Gestion de la clé FEK Chiffrement/déchiffrement RSA pour FEK Chiffrement/déchiffrement RSA pour FEK Gestion/formatage des DDF/DRF pour le Key Ring Gestion/formatage des DDF/DRF pour le Key Ring Application des policies Application des policies Implémentation/exécution de lAPI EFS Implémentation/exécution de lAPI EFS Ninvoque que NTFS Ninvoque que NTFS Applications Applications Ninvoquent que NTFS et le service EFS Ninvoquent que NTFS et le service EFS API cliente spécifique EFS advapi32.dll API cliente spécifique EFS advapi32.dll Invocation service EFS via LPC Invocation service EFS via LPC API fichiers classique kernel32.dll API fichiers classique kernel32.dll Invocation driver noyau NTFS Invocation driver noyau NTFS Driver EFS Driver EFS Chiffrement symétrique des données Chiffrement symétrique des données Nest invoqué que par le driver NTFS (appel direct sur les callbacks) Nest invoqué que par le driver NTFS (appel direct sur les callbacks) Senregistre auprès de NTFS au démarrage (NtOfsRegsiterCallbacks) Senregistre auprès de NTFS au démarrage (NtOfsRegsiterCallbacks) Invoque le service EFS pour chiffrement/déchiffrement FEK Invoque le service EFS pour chiffrement/déchiffrement FEK LPC ksecdd.sys – messages LPC sécurisés LPC ksecdd.sys – messages LPC sécurisés

44 Microsoft Confidential 44 EFS – Chiffrement dun fichier Application invoque EncryptFile Application invoque EncryptFile Advapi32.dll -> feclient.dll Advapi32.dll -> feclient.dll LPC message vers LSASRV ->EfsRpcEncryptFileSrv LPC message vers LSASRV ->EfsRpcEncryptFileSrv LSASRV - préliminaire LSASRV - préliminaire Impersonne lappelant Impersonne lappelant Crée fichier journal pour la conversion clair - chiffrés Crée fichier journal pour la conversion clair - chiffrés Efs[n].log Efs[n].log Charge profile utilisateur si nécessaire Charge profile utilisateur si nécessaire Invoque NTFS pour connaître les streams présents dans le fichier (il faudra chiffrer tous les streams) Invoque NTFS pour connaître les streams présents dans le fichier (il faudra chiffrer tous les streams)

45 Microsoft Confidential 45 EFS - Chiffrement dun fichier LSASRV LSASRV Invoque CryptoAPI pour générer une FEK Invoque CryptoAPI pour générer une FEK Provider RSA par défaut Provider RSA par défaut CryptGenRandom 16 octets = 128 bits CryptGenRandom 16 octets = 128 bits Obtient certificat/clé privée EFS de lutilisateur pour chiffrement Obtient certificat/clé privée EFS de lutilisateur pour chiffrement HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys\CertificateHash HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\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ée Retrouve nom du container pour la clé privée Sinon, crée paire de clé RSA et obtient certificat Sinon, crée paire de clé RSA et obtient certificat Génération paire de clés dans un container du CSP Génération paire de clés dans un container du CSP Si Enterprise CA de localisée -> obtention auprès de cette CA Si Enterprise CA de localisée -> obtention auprès de cette CA Sinon, construit et self-signe un certificat Sinon, construit et self-signe un certificat Stocke certificat dans le store personnel, positionne clé registry Stocke certificat dans le store personnel, positionne clé registry

46 Microsoft Confidential 46 EFS - Chiffrement dun fichier LSASRV LSASRV Construit DDF KeyRing Construit DDF KeyRing DDF: User SID, Provider/Container, EFS Certficate Hash, FEK chiffrée avec RSA DDF: User SID, Provider/Container, EFS Certficate Hash, FEK chiffrée avec RSA Retrouve les agents de recovery de la policy en cours Retrouve les agents de recovery de la policy en cours Construit DRF KeyRing Construit DRF KeyRing Retrouve les certificats des agents Retrouve les certificats des agents DRF: même format que DDF DRF: même format que DDF Sérialise les rings dans un stream ($EFS) avec checksums MD5 (un pour chaque keyring) Sérialise les rings dans un stream ($EFS) avec checksums MD5 (un pour chaque keyring) Crée une copie temporaire du fichier Crée une copie temporaire du fichier efs[n].tmp efs[n].tmp On copiera de la copie temporaire vers le fichier pour le chiffrement On copiera de la copie temporaire vers le fichier pour le chiffrement

47 Microsoft Confidential 47 EFS - Chiffrement dun fichier LSASRV LSASRV LSASRV invoque le driver efs.sys pour transmettre les metadata et la clé FEK LSASRV invoque le driver efs.sys pour transmettre les metadata et la clé FEK Le message est chiffré avec DES Le message est chiffré avec DES Clé de session échangée lors dune initialisation antérieure Clé de session échangée lors dune initialisation antérieure Invocation par lintermédiaire de NTFS Invocation par lintermédiaire de NTFS DeviceIOControl: FSCTL_ENCRYPTION_FCTL_IO Commande pour efs.sys: EFS_SET_ENCRYPT Efs.sys rajouter le stream $EFS au fichier Invoque NTFS pour rajouter 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 NTFS En retour passe un contexte pour ce fichier a NTFS Le contexte contient la clé FEK Le contexte contient la clé FEK Le contexte sera fourni a efs.sys a chaque invocation ultérieure Le contexte sera fourni a efs.sys a chaque invocation ultérieure LSASRV LSASRV Copie contenu du fichier vers la copie temporaire Copie contenu du fichier vers la copie temporaire Invoque NTFS pour le chiffrement du fichier Invoque NTFS pour le chiffrement du fichier NTFS NTFS Efface le contenu du fichier Efface le contenu du fichier Copie le contenu de la copie vers le fichier Copie le contenu de la copie vers le fichier Puisque le fichier est chiffrée chaque écriture engendre le chiffrement Puisque 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)

48 Microsoft Confidential 48 Credhist Comptes locaux seulement Comptes locaux seulement Fonction de robustesse uniquement Fonction de robustesse uniquement Reprise sur échec Reprise sur échec Lors du rechiffrement des master keys avec un nouveau NTHash, en cas déchec il faut pouvoir repartir des NTHash precedents Lors du rechiffrement des master keys avec un nouveau NTHash, en cas déchec il faut pouvoir repartir des NTHash precedents Contient les hash des mots de passe précédents Contient les hash des mots de passe précédents Chaque précédent chiffré avec courant Chaque précédent chiffré avec courant

49 Microsoft Confidential 49 Secrets LSA SCM utilise les secrets LSA pour stocker les mots de passe des comptes de service SCM utilise les secrets LSA pour stocker les mots de passe des comptes de service LSAStorePrivateData, LSARetrievePrivateData LSAStorePrivateData, LSARetrievePrivateData API conçue pour le stockage des secrets par les services Win32 API conçue pour le stockage des secrets par les services Win32 Stockage des secrets dune machine, pas dun utilisateur Stockage des secrets dune machine, pas dun utilisateur $MACHINE.ACC $MACHINE.ACC Accès privilégié (Administrator, SYSTEM) Accès privilégié (Administrator, SYSTEM) Registry HKLM/SECURITY/Policy/Secrets Registry HKLM/SECURITY/Policy/Secrets Chiffrement DES avec une constante Chiffrement DES avec une constante Deplombable! Mais pas doutil, à ma connaissance Deplombable! Mais pas doutil, à ma connaissance Protégé par SYSKEY Protégé par SYSKEY Il faut appliquer SYSKEY! Il faut appliquer SYSKEY! Les secrets LSA ne sont pas secret pour ladministrateur Les secrets LSA ne sont pas secret pour ladministrateur

50 Microsoft Confidential 50 Cache de crédentiels de logon sur une station Permet le logon interactif avec un compte du domaine lorsque aucun contrôleur nest accessible Permet le logon interactif avec un compte du domaine lorsque aucun contrôleur nest accessible Entrée du cache contient un vérificateur pour le mot de passe dun compte du domaine Entrée du cache contient un vérificateur pour le mot de passe dun compte du domaine Ne contient ni le mot de passe, ni le NTHash Ne 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érificateur On ne peut dériver le NTHash du vérificateur Le vérificateur est salted Le vérificateur est salted Deux utilisateurs avec même mot de passe nont pas le même vérificateur Deux utilisateurs avec même mot de passe nont pas le même vérificateur Lattaque de dictionnaire contre le vérificateur reste possible Lattaque de dictionnaire contre le vérificateur reste possible Vérificateur, user et groupes sont conservés dans le registre Vérificateur, user et groupes sont conservés dans le registre Permet de créer un token lors de louverture de session Permet de créer un token lors de louverture 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 Syskey Ce cache ne fait pas partie des secrets LSA – pas de protection Syskey Chiffrement RC4 128 bit avec clé dérivée dune clé maître Chiffrement RC4 128 bit avec clé dérivée dune clé maître Clé maître conservée en tant que secret LSA NL$Km Clé maître conservée en tant que secret LSA NL$Km HKLM/SECURITY/Policy/Secrets HKLM/SECURITY/Policy/Secrets Secrets LSA sont protégés par Syskey Secrets LSA sont protégés par Syskey Cas Smartcard/Kerberos Cas Smartcard/Kerberos Le cache contient bien le NTHash, mais protegé par PKI (déchiffrable avec la clé privée) Le cache contient bien le NTHash, mais protegé par PKI (déchiffrable avec la clé privée) Mettre en œuvre une politique de logon par Smartcard, et affecter aux utilisateurs des mots de passe aléatoires et robustes dont il nont pas connaissance Mettre en œuvre une politique de logon par Smartcard, et affecter aux utilisateurs des mots de passe aléatoires et robustes dont il nont pas connaissance


Télécharger ppt "Microsoft Confidential 1 Architecture et mise en œuvre du chiffrement de fichiers EFS Jean-Yves Poublan Consultant Principal Microsoft."

Présentations similaires


Annonces Google