retour d’expérience sur la prise en charge des cartes à puce dans windows 7
Post on 21-May-2015
1.242 Views
Preview:
DESCRIPTION
TRANSCRIPT
palais des congrès Paris
7, 8 et 9 février 2012
Retour d’expériences sur la prise en charge des cartes à puce dans Windows 7
Guillaume AUBERTConsultantDivision ServicesMicrosoft France
Philippe BERAUDConsultant ArchitecteDirection Technique et SécuritéMicrosoft France
Jean-Yves GRASSETConsultant ArchitecteDirection Technique et SécuritéMicrosoft France
Code Session : SEC2302
Evolutions introduites sur la plateforme Windows vis-à-vis des cartes à pucesRetours d’expérience avec Windows 7 sur la prise en charge des cartes à puce
Prérequis sur l’infrastructure Exigences vis-à-vis des gabarits/profils des certificats
X.509 v3 Mappage des certificats du porteur avec un compte AD Utilisation de stratégies de groupe
Objectifs et sommaire de la session
Apporter des réponses à des questions récurrentes En voici quelques-unes ;-)
Peut-on forcer l’utilisation de la carte à puce pour ouvrir une session ? Quid de la granularité ? Sur tous les postes de travail, pour tous les
utilisateurs ou vis-à-vis d’une population identifiée ? Est-ce que l’utilisateur à besoin de connaitre son mot de passe ?
Quid de l’accès aux applications nécessitant un mot de passe Est-ce qu’un utilisateur peut ouvrir plusieurs sessions en parallèle ?
Quid du comportement lors du retrait de la carte à puce ? Est-ce qu’une même carte à puce peut authentifier plusieurs utilisateurs ?
(c.à.d. une carte à puce non nominative) ? Est-ce que plusieurs cartes à puce peuvent authentifier un même
utilisateur (c.à.d. un compte d’administration générique) ? Est-ce qu’une carte à puce peut contenir plusieurs certificats d’ouverture
de session (c.à.d. un compte utilisateur et un compte d’administration nominatif) ?
Objectifs et sommaire de la session
Evolutions au niveau de la plateforme Windows
1Smart Card LogonWindows 7
Bus cryptographique ouvert (OCI) CNG (Crypto API Next Generation)Introduction d’une nouvelle architecture facilitant la prise en charge des cartes à puce : Windows Smart Card Framework (WSF)Remplacement de la technologie GINA (Graphical Identification and Authentication) pour notamment faciliter l’usage des cartes à pucesSupport de multiples stratégies de groupes à destination des cartes à puceRefonte des interfaces et API d’enrôlement
Evolutions au niveau de la plateforme Windows
Refonte du moteur de chiffrement Remplacement à long terme et progressif de CAPI 1
Permettre la mise en œuvre et l’utilisation de la crypto d’une manière plus « agile » via plug-ins
Facilité d’introduire de nouveaux algorithmes Facilité de remplacer des implémentations d’algorithmes
par de nouvelles implémentations
Crypto API Next Generation (CNG)Les algorithmes et implémentations dépendent de l’environnementSecteur public, Secteur privé, Défense, Politique, Géographie, etc.
La sureté des algorithmes et implémentations s’altère avec tempsMD5 SHA1 SHA2
RSA ECC
Supporte de base un sur-ensemble des algorithmes déjà offerts par les CSP Microsoft de CAPI 1
Chiffrement symétrique et asymétrique, hachage, RNG, échange de clé, signature
Support PKCS#1 v2.1 pour le wrapping des clés privées Exposant public RSA > 32 bits
Prend en charge de façon native les algorithmes Suite-B Conformité Suite-B et recommandations gouvernements pays OTAN ECDH (échange de clé), ECDSA (signature)
Courbes NIST P-256, P-384, P-521 Implémentation Microsoft Research
SHA-2 (256, 384, 512) AES (128, 192, 256)
Crypto API Next Generation (CNG)
Ensemble de technologies et d’investissements qui sous-tendent l'authentification forte basée sur la carte à puce
Windows Vista et ultérieur Windows Smart Card Technical Reference
Windows Smart Card Framework (WSF)
Windows Smartcar
d Framewo
rk
Qualité
Expérience utilisateur
Technologies de base
Distribution
Marque
WSF – Technologie de base
L/RPC
Contexte Système (Session 0)
Gestionnaire de ressources Cartes à puces (SVCHost.exe)
Pilote Lecteur
Lecteur Carte à puce/Carte à puce
Contexte Utilisateur (Session x)
RPC
CAPI
Application Z
CNG
Base CSP SC KSP
Mini-pilote RSA
Mini-pilote RSA/ECC
Mini-pilote ECC
WinSCard (PC/SC) (WinSCard.dll)
CSP tiers
Application Y, ex. S/MIME
KSP tiers
CAPI 2
Application X
Service de propagation de certificats
Service/Politique de
retrait de carte
CAPI/WinSCard
Pilote USB-CCID natifSupport de Crypto Next Generation (CNG)
Introduction du Microsoft Smart Card Key Storage Provider Enrôlement de certificat ECC (courbe elliptique) sur une carte à
puce Requiert une AC ECC, ex. AD CS Windows Server 2008 R2
Signature ECDSA avec un certificat ECC sur une carte à puce Echanges de clé avec ECDH avec des clés privées sur une carte
à puce Authentification client avec TLS
Support sur la carte des fonctions de dérivation (KDF) en conformité avec FIPS 140-2
Stratégie locale Microsoft Smart Card Key Storage Provider
WSF – Technologies de base
Mini-pilote Carte à puce Factorisation des opérations communes à la gestion des cartes dans la
plateforme Smart Card Base CSP pour CAPI, Smart Card KSP pour CNG
Smart Card Minidriver Specification v.7 API à destination des encarteurs Série de primitives invoquées par le CSP/KSP : un seul et même mini-
pilote pour CAPI et CNG Support de RSA et ECC
CryptoAPI seulement RSA CNG RSA, ECC, ou les deux
Implémente les spécificités de la carte Invoque l’API WinSCard SCRM – Smart Card Resource Manager
Implémentation Microsoft de l’ICC Resource Manager (PC/SC Workgroup Specification 1.0)
WSF – Technologies de base
Programme de certification « Logo Ready » géré par le Microsoft Smart Card Competency Center (SCCC)Suite de tests de certification mini pilote Carte à puce améliorée
Smart Card Minidriver Certification Requirements Mini pilotes Carte à puces certifiés disponible sur le
catalogue Windows Update
WSF – Qualité, Distribution, Marque
Sélection des certificats Suppression des certificats archivés et en double Icônes pour différencier les certificats logiciels des certificats carte à puce
PIN externe Utilisation du Windows Biometric Framework (WBF) pour la collecte et le
traitement des données biométriques pour déverrouiller une carte à puce
Support BitLocker Option Carte à puce pour activer le chiffrement BitLocker Fonctionne avec les volumes de données
Ouverture de session avec carte à puce ECC (courbes elliptiques) Requiert un contrôleur de domaine Windows Server 2008 R2 Enrôlement de certificat ECC sur une carte à puce
WSF Windows 7 - Expérience utilisateur
Cartes à puce comme périphériques Visibles via le gestionnaire de périphériques A même de fonctionner via Windows Update
Support du Plug-and-Play (PnP) Installation du (mini-)pilote basée sur Windows Update et
WSUS/SUS Installation du (mini-)pilote avant l’ouverture de session Aucun accès requis avec des privilèges d’administration Réduction des coûts de déploiement Non interactif
WSF Windows 7 - Distribution
Retours d’expérience avec Windows 7
2Smart Card LogonWindows 7
Ré-architecture pour réduire la surface d’attaque et améliorer globalement les performances du systèmes
Credentials Providers Credential Provider Technical Reference Remplacent GINA (avec Winlogon et LogonUI)
GINA (Graphical Identification and Authentication) n’existe plus (Les Winlogon Notification Packages non plus)
Sont invoqués par LogonUI (ou CredUI) Plusieurs Credential Provider peuvent être opérationnels en même
temps Smartcard Credential Provider, Password Provider, etc.
Ouverture de session (Logon)
Contexte Système (Session 0)
LSASSWinInit
Contexte Utilisateur (Session x)
WinLogon LogonUI
Credential Provider 1
Credential Provider 1
Credential Provider 1
Interfaces Credential Provider
Principes de fonctionnement Permet d’assurer une authentification Kerberos via PKINIT
PKINIT est une extension du protocole Kerberos RFC 4556 Public Key Cryptography for Initial Authentication in
Kerberos (PKINIT) RFC 4557 Online Certificate Status Protocol (OCSP) Support for
Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)
Constitue une authentification mutuelle Le contrôleur de domaine valide le certificat de l’utilisateur Le client valide le certificat du contrôleur de domaine
Associe le porteur de la carte à un compte AD PKINIT peut utiliser différentes méthodes pour associer le
certificat à un compte (mappage)
Ouverture de session par carte à puce
Ouverture de session par carte à puce
1. Insertion de la carte
2. Demande des crédentiels
9. LSALogonUser
5. Clic sur la tuile, entrée du PIN, validation
4. Affichage UI
8. Crédentiels
6. Validation7. Obtention des
crédentiels pour l’ouverture de session
WinLogon
LogonUI
Smartcard Credential Provider
Interfaces Credential Provider
WinSCard (PC/SC) (WinSCard.dll)
Lecteur Carte à puce/Carte à puce
Password Credential Provider
3. Obtention de l’information sur les crédentiels
…
…
LSASS
1
3a. Enumération des lecteurs et cartes à puces
3b. Lecture des certificats
3c. Certification/Validation des certificats
Cf. Public Key Cryptography for Initial Authentication (PKINIT) in Kerberos Protocol Specification
Ouverture de session par carte à puce
12. PA_PK_AS_REQ
Certificat utilisateur signé avec la clé privée
15. PA_PK_AS_REP chiffré avec la clé publique
Contenant: TGT + PAC + clé de session + condensé NTLM du mot de passe
Objet utilisateur: Nom, UPN, Appartenance aux groupes, Publication Certificat
10.11.
17. Le client Kerberos déchiffre la clé de session avec la clé privée
LSASS
2
Kerberos SSP
Gestionnaire de
ressources Cartes à puces
(SVCHost.exe)
CSP/KSP, Base
CSP/KSP
Active Directory Domain Services
KDC Kerberos(CD)
13.
CDP ou OCSP
16.
a. Utilise la clé publique du certificat pour déchiffrer l’AS_REQ
b. (Vérifie le NTAuth)
c. Mappe le compte
d. Créer un TGT
14.
18.
Tous les contrôleurs de domaine (CD) et les postes de travail de la forêt doivent faire confiance à l’autorité racine (AC) de la chaîne de certificat utiliséeL’AC qui a émis le certificat X.509 v3 du porteur doit être déclarée dans le magasin NTAuth d’Active Directory (AD)
Stocké dans la partition de configuration de l’Active Directory
Lors des évènements d’enrôlement automatique, les certificats d’AC contenus dans l’objet DS NTAuth sont téléchargés dans le magasin de certificats NTAuth des postes et des CD
Publication manuelle d’un certificat d’AC dans le magasin NTAuth
Prérequis sur l’infrastructure
CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=<forest>,DC=com
certutil -dspublish -f <name>.crt NTAuthCA
HKLM\Software\Microsoft\Enterprise Certificates\NTAuth\Certificates
Tous les DC doivent posséder un certificat X.509 v3 Nécessaire pour :
S’authentifier auprès du client Permettre les interrogations LDAPS vers AD Sécuriser la réplication d’annuaire en SMTP entre sites (rarement
utilisé) Via l’un des 3 gabarits natifs suivants avec AD CS
Domain Controller Domain Controller Authentifcation Kerberos Authentication
IGC tierce Cf.
Guidelines for Enabling Smart Card Logon with Third-Party Certification (281245)
Prérequis sur l’infrastructure
Prérequis sur l’infrastructure
Attribut Windows 2000 Windows Server 2003 Windows Server 2003 Windows Server 2008 (R2)
Subject CN={FQDN} Empty Empty Empty
Certificate Template DomainController Directory Email Replication Domain Controller Authentication
Kerberos Authentication
Enhanced Key Usage Client Authentication (1.3.6.1.5.5.7.3.2)
Server Authentication (1.3.6.1.5.5.7.3.1)
Directory Service Email Replication (1.3.6.1.4.1.311.21.19)
Client Authentication (1.3.6.1.5.5.7.3.2)
Server Authentication (1.3.6.1.5.5.7.3.1)
Smart Card Logon (1.3.6.1.4.1.311.20.2.2)
Client Authentication (1.3.6.1.5.5.7.3.2)
Server Authentication (1.3.6.1.5.5.7.3.1)
Smart Card Logon (1.3.6.1.4.1.311.20.2.2)
KDC Authentication (1.3.6.1.5.2.3.5)
Subject Alternative Name
Other Name:
1.3.6.1.4.1.311.25.1={GUID}
DNS Name={FQDN}
Other Name:
1.3.6.1.4.1.311.25.1={GUID}
DNS Name={FQDN}
DNS Name={FQDN-hostname}
DNS Name={FQDN-domainname}
DNS Name={NetBIOS-Domain-Name}
Avec le gabarit Kerberos Authentication Possibilité de forcer la validation Kerberos renforcée au niveau
des postes
Validation de KDC Authentication OID (1.3.6.1.5.2.3.5) dans l’extension EKU Nom de domaine dans le champ SAN du certificat du
contrôleur de domaine san=dns.name[&dns=dns.name] Exemple : san=dns=dc1.extranet.fabrikam.com&dns=extranet
Prérequis sur l’infrastructure
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameterskdcvalidation
Un bref rappel des exigences sur Windows XP Le certificat X.509 v3 et la clé privée doivent être nécessairement
dans l’emplacement par défaut de la carte à puce (default container ou Slot 0)
Le certificat doit inclure une extension CRL Distribution Point Le certificat doit contenir les OID suivantes :
Smart Card Logon (1.3.6.1.4.1.311.20.2.2) Client Authentication (1.3.6.1.5.5.7.3.2)
L’UPN de l’utilisateur doit être présent dans le champ Subject Alternative Name (SAN) (ASN1-encoded UTF8)
Clé privée Key Echange (AT_KEYECHANGE) Cf.
Guidelines for Enabling Smart Card Logon with Third-Party Certification (281245)
Gabarit de certificat client
Une flexibilité accrue avec Windows Vista/Windows 7
Le certificat et la clé privée peuvent être dans n’importe quel emplacement.
L’extension CRL Distribution Point n’est plus nécessaire ! Le certificat ne doit pas nécessairement contenir l’OID
Smart Card Logon Seul l’OID est requis Client Authentication
Clé privée Key Echange (AT_KEYECHANGE) ou Signature Only (AT_SIGNATURE)
Gabarit de certificat client
DEMO
Gabarit de certificat client
Smart Card LogonWindows 7
Un bref rappel pour Windows XP Uniquement Mappage implicite (ou mode UPN)
Fondé sur la valeur UPN présente dans l’extension Subject Alternative Name du certificat X.509 V3 du porteur
Mappage avec un compte AD
Une flexibilité accrue avec Windows Vista/Windows 7
Mappage implicite (ou mode UPN) Fondé sur la valeur UPN présente dans l’extension
Subject Alternative Name du certificat Mappage explicite fondé sur l’attribut AltSecID d’un
compte AD Implique le peuplement de l’Issuer <I> et du Subject
<S> dans le compte de l’utilisateur (X509:<I><S>)
Mappage avec un compte AD
Une flexibilité accrue avec Windows Vista/Windows 7 Mappage dynamique
Nécessite un DC Windows Server 2008 ou supérieur Intègre les deux mécanismes de mappage précédents Y ajoute 4 autres méthodes fondées sur les extensions
du certificat
Mappage avec un compte AD
Mode d’association
Attribut AltSecID
UPN -
Subject et Issuer X509:<I>DC=com,DC=fabrikam,CN=fabrikam-FABRIKAMDC1-CA<S>DC=com,DC=fabrikam,CN=Users,CN=Jane Anderson
Subject DN X509:<S>DC=com,DC=fabrikam,CN=Users,CN=Jane Anderson
Subject Key Identifier
X509:<SKI>7d012fef831ef49b1d74628da26a0c52a8fd49e4
Issuer and Serial Number
X509:<I>DC=com,DC=fabrikam,CN=fabrikam-FABRIKAMDC1-CA<SR>110000000000ee7e1561
SHA1 Hash X509:<SHA1-PUKEY>c080c821939e778ae8d9404dfbf501981aaf46bc
RFC822 name X509:<RFC822>jane@fabrikam.com
Mappage avec un compte AD
Mappage dynamique de Windows Vista/Windows 7 Association un certificat à plusieurs utilisateurs
Même attribut AltSecID pour les utilisateurs concernés Utilisation nécessaire d’indices (hints)
L’utilisateur peut indiquer son nom d’utilisateur et/ou son domaine
Mappage avec un compte AD
Computer Configuration\Policies\Administrative Templates: Policy definitions\Windows Components\Smart Card
Allow user name hint
Nécessité dans certains cas d’utiliser une association explicite avec des certificats avec un SAN contenant l’UPN du porteur
Désactivation de l’ association implicite sur les CD
Mappage avec un compte AD
HKLM\SYSTEM\CurrentControlSet\Services\KdcUseSubjectAltName
DEMO
Mappage avec un compte AD
Smart Card LogonWindows 7
En guise de synthèse sur Windows 7
Mappage avec un compte AD – Avantages/inconvénients
Type de mappage
Avantage Inconvénient
Implicite o Simplicité de mise en œuvre
o Déjà mise en œuvre sous Windows XP
o Rapidité
o Nécessite le peuplement du champ SAN (UTF-8)
o Mappage mono utilisateur dans la forêt
Explicite o Alternative lorsque le champ SAN n’est pas peuplé…
o Mappage possible sur plusieurs utilisateurs
o Nécessite le peuplement de l’attribut AltSecID des utilisateurs dans AD
Dynamique o Souplesse accrue dans le mappage
o Utilisation d’indices (hint)
o Mappage possible sur plusieurs utilisateurs
o Nécessite un DC Windows 2008 ou supérieur
o Expérience utilisateur éventuellement complexifiée par l’utilisation d’indices (hint)
Au niveau poste de travail Stratégie de groupe
Ne modifie pas le mot de passe de l’utilisateur
Au niveau utilisateur Attribut « Smart Card Logon is required for interactive logon » du
compte
Remplace le mot de passe de l’utilisateur par une valeur aléatoire (128 bits)
Le mot de passe n’expire jamais
Forcer l’utilisation de la carte à puce
Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security OptionsInteractive Login:Smart Card Required
Stratégies machine exclusivement
Propagation des certificats du porteur et des certificats AC racine Via le Certificate Propagation Service (CertPropSvc)
Affichage de l’interface de déblocage de la carte à puce Smartcard Credential Provider
Prise en charge de multiples certificats sur la même carte pour le logon
Affichage des certificats sans l’EKU Smart Card Logon (1.3.6.1.4.1.311.20.2.2)
Affichage des certificats ECC (Elliptic Curve Cryptography)
Stratégies de groupe Carte à puce
Computer Configuration\Policies\Administrative Templates: Policy definitions\Windows Components\Smart Card
HKLM\SOFTWARE\Policies\Microsoft\Windows\SmartCardCredentialProviderHKLM\SOFTWARE\Policies\Microsoft\Windows\CertProp
Stratégies machine exclusivement
Imposer une ouverture de session par carte à puce Définir le comportement lorsque la carte à puce est
retirée Nécessite le Smart Card Policy Service (SCPolicySvc) Nettoyage possible des certificats AC racine
Stratégies de groupe Carte à puce
Computer Settings\Windows Settings\Security Settings\Local Policies\Security Options
DEMO
Stratégie de groupe Cartes à puce
Smart Card LogonWindows 7
Contact :Nicolas.Girardin@gemalto.com www.gemalto.com/enterprise
MERCI !
Ouverture de session par carte à puce sous Windows 7
Également pour les sessions Remote Desktop Services (RDS)
Les nouveaux modes de mappage offrent la flexibilité nécessaire pour s’adapter dans la majorité des cas aux gabarits/profils des certificats X.509 déjà déployés :)
En guise de conclusion
Windows Vista Smart Card InfrastructureWindows Smart Card Technical Reference
Credential Provider Technical Reference Certificate Revocation and Status Checking
Site TechNet AD CS Blog Windows PKI
Pour aller plus loin
Microsoft France39, quai du président Roosevelt
92130 Issy-Les-Moulineaux
www.microsoft.com/france
top related