« Active Directory Authentification par cartes à puce CPX » : différence entre les versions
(36 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{Rôles Active Directory}} | {{Rôles Active Directory}} | ||
== Prérequis == | == Prérequis == | ||
Ligne 46 : | Ligne 44 : | ||
## Répéter cette opération pour les 7 certificats restants ''('''ACR-FO.cer''', '''ACR-ST.cer''', '''ACI-EL-ORG.cer''', '''ACI-EL-PP.cer''', '''ACI-FO-PP.cer''', '''ACI-ST-ORG.cer''' et '''ACI-ST-PP.cer''')''.<br />[[Image:MMCGPO_O_WINDOWS_SMARTCARD_EDIT.png]] | ## Répéter cette opération pour les 7 certificats restants ''('''ACR-FO.cer''', '''ACR-ST.cer''', '''ACI-EL-ORG.cer''', '''ACI-EL-PP.cer''', '''ACI-FO-PP.cer''', '''ACI-ST-ORG.cer''' et '''ACI-ST-PP.cer''')''.<br />[[Image:MMCGPO_O_WINDOWS_SMARTCARD_EDIT.png]] | ||
# Sur l’ensemble des contrôleurs de domaines effectuer les opérations suivantes pour vérifier la bonne propagation des certificats : | # Sur l’ensemble des contrôleurs de domaines effectuer les opérations suivantes pour vérifier la bonne propagation des certificats : | ||
## Ouvrir un terminal de '''commande CMD''' puis exécuter la commande {{ | ## Ouvrir un terminal de '''commande CMD''' puis exécuter la commande :<br />{{Commande|gpupdate /force}} | ||
## Une fois l’exécution de la commande terminée, ouvrir une '''console MMC''' puis ajouter le composant logiciel enfichable '''Certificats'''. | ## Une fois l’exécution de la commande terminée, ouvrir une '''console MMC''' puis ajouter le composant logiciel enfichable '''Certificats'''. | ||
## Vérifier la présence des '''8 certificats racines et intermédiaires''' dans le dossier '''Autorité de certification racines de confiance'''.<br />[[Image:MMCCRT_AUTORITE_CERTIFICATION_RACINE_CONFIANCE_VIEW_IGC.png]] | ## Vérifier la présence des '''8 certificats racines et intermédiaires''' dans le dossier '''Autorité de certification racines de confiance'''.<br />[[Image:MMCCRT_AUTORITE_CERTIFICATION_RACINE_CONFIANCE_VIEW_IGC.png]] | ||
Ligne 70 : | Ligne 68 : | ||
# Ouvrir l’utilitaire d’édition du registre '''Regedit'''. | # Ouvrir l’utilitaire d’édition du registre '''Regedit'''. | ||
# Rechercher la clé | # Rechercher la clé :<br />{{Clé de registre|HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings}}. | ||
## Puis, créer la valeur DWORD '''ProxySettingsPerUser'''. | ## Puis, créer la valeur DWORD '''ProxySettingsPerUser'''. | ||
## Et y affecter la valeur '''00000000'''. | ## Et y affecter la valeur '''00000000'''. | ||
# Ouvrir un '''terminal de commande CMD''' puis exécuter la commande {{ | # Ouvrir un '''terminal de commande CMD''' puis exécuter la commande {{Commande|gpupdate /force}} pour appliquer les paramètres. | ||
# Ouvrir la fenêtre de '''Propriétés de : Internet''' depuis la commande '''inetcpl.cpl'''. | # Ouvrir la fenêtre de '''Propriétés de : Internet''' depuis la commande '''inetcpl.cpl'''. | ||
# Cliquer sur l’onglet '''Connexions''' puis sur le bouton {{Bouton|Paramètres réseau}}. | # Cliquer sur l’onglet '''Connexions''' puis sur le bouton {{Bouton|Paramètres réseau}}. | ||
Ligne 100 : | Ligne 98 : | ||
# Depuis la fenêtre '''Ouvrir''', rechercher et sélectionner le certificat '''ACR-EL.cer''' puis cliquer sur le bouton {{Bouton|Ouvrir}}. | # Depuis la fenêtre '''Ouvrir''', rechercher et sélectionner le certificat '''ACR-EL.cer''' puis cliquer sur le bouton {{Bouton|Ouvrir}}. | ||
# Le certificat nouvellement ajouté doit apparaître dans la liste avec le statut '''OK'''. | # Le certificat nouvellement ajouté doit apparaître dans la liste avec le statut '''OK'''. | ||
#* Si ce n’est pas le cas : Passer en revue les opérations décrites dans la section [[: | #* Si ce n’est pas le cas : Passer en revue les opérations décrites dans la section [[:Active_Directory_Authentification_par_cartes_à_puce_CPX#Installation_des_certificats_de_l’IGC-Santé|Installation des certificats de l’IGC-Santé]] .<br />[[Image:MMCPKIENT_MANAGE_CONTENEURS_AD_NTAUTHCERTIFICATE_ADD_AC_RACINE_IGC_ELEM.png]] | ||
# Répéter les étapes _3_ à _5_ pour les certificats '''ACR-FO.cer''', '''ACR-ST.cer''', '''ACI-EL-PP.cer''', '''ACI-FO-PP.cer''', '''ACI-ST-ORG.cer''' et '''ACI-ST-PP.cer'''.<br />[[Image:MMCPKIENT_MANAGE_CONTENEURS_AD_NTAUTHCERTIFICATE_ADD_ALL.png]] | # Répéter les étapes _3_ à _5_ pour les certificats '''ACR-FO.cer''', '''ACR-ST.cer''', '''ACI-EL-PP.cer''', '''ACI-FO-PP.cer''', '''ACI-ST-ORG.cer''' et '''ACI-ST-PP.cer'''.<br />[[Image:MMCPKIENT_MANAGE_CONTENEURS_AD_NTAUTHCERTIFICATE_ADD_ALL.png]] | ||
# Sur l’ensemble des contrôleurs de domaines ainsi que l’Autorité de Certification Entreprise, effectuer les opérations suivantes pour vérifier la bonne propagation des certificats : | # Sur l’ensemble des contrôleurs de domaines ainsi que l’Autorité de Certification Entreprise, effectuer les opérations suivantes pour vérifier la bonne propagation des certificats : | ||
## Ouvrir un terminal de '''commande CMD''' puis exécuter la | ## Ouvrir un terminal de '''commande CMD''' puis exécuter la commande :<br />{{Commande|gpupdate /force}} | ||
## Une fois l’exécution de la commande terminée, ouvrir l’'''éditeur de registre REGEDIT'''. | ## Une fois l’exécution de la commande terminée, ouvrir l’'''éditeur de registre REGEDIT'''. | ||
## Rechercher la '''clé''' :<br /> | ## Rechercher la '''clé''' :<br />{{Clé de registre|HKLM\SOFTWARE\Microsoft\EnterpriseCertificates\NTAuth\Certificates}}<br />Puis vérifier la présence des clés relatives aux certificats de l’'''IGC-Santé''' :<br />[[Image:MMCREGEDIT_HKLM_SOFTWARE_MICROSOFT_ENTERPRISECERTIFICATE_NTAUTH_CERTIFICATES_IGC.png]] | ||
=== Authentification basée sur des comptes AD existants === | === Authentification basée sur des comptes AD existants === | ||
Ligne 114 : | Ligne 112 : | ||
# Ouvrir l’utilitaire d’édition du registre '''Regedit'''. | # Ouvrir l’utilitaire d’édition du registre '''Regedit'''. | ||
# Rechercher la clé :<br />{{ | # Rechercher la clé :<br />{{Clé de registre|HKLM\SYSTEM\CurrentControlSet\Services\kdc}} | ||
## Puis, créer la valeur DWORD : | ## Puis, créer la valeur DWORD : '''UseSubjectAltName'''. | ||
## Et y affecter la valeur : | ## Et y affecter la valeur : '''00000000'''.<br />[[Image:MMCREGEDIT_HKLM_SYSTEM_CURRENTCONTROLSET_SERVICES_KDC_USESUBJECTALTNAME_CREATE.png]] | ||
# Rechercher la clé :<br />{{ | # Rechercher la clé :<br />{{Clé de registre|HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters}} | ||
## Puis, créer la valeur DWORD : | ## Puis, créer la valeur DWORD : '''UseSubjectAltName'''. | ||
## Et y affecter la valeur : | ## Et y affecter la valeur : '''00000000 '''.<br />[[Image:MMCREGEDIT_HKLM_SYSTEM_CURRENTCONTROLSET_CONTROL_LSA_KERBEROS_PARAMETERS_USESUBJECTALTNAME_CREATE.png]] | ||
==== Activation de l’indication du nom d’utilisateur ==== | ==== Activation de l’indication du nom d’utilisateur ==== | ||
Ligne 133 : | Ligne 131 : | ||
## Sélectionner l’option '''Activé''' puis cliquer sur le bouton {{Bouton|OK}}. | ## Sélectionner l’option '''Activé''' puis cliquer sur le bouton {{Bouton|OK}}. | ||
# Sur l’ensemble des contrôleurs de domaines ainsi que l’Autorité de Certification Entreprise, effectuer les opérations suivantes pour forcer l’application des paramètres : | # Sur l’ensemble des contrôleurs de domaines ainsi que l’Autorité de Certification Entreprise, effectuer les opérations suivantes pour forcer l’application des paramètres : | ||
## Ouvrir un '''terminal de commande CMD''' puis exécuter la | ## Ouvrir un '''terminal de commande CMD''' puis exécuter la commande :<br />{{Commande|gpupdate /force}} | ||
== Association d’un certificat à un compte AD == | == Association d’un certificat à un compte AD == | ||
Ligne 139 : | Ligne 137 : | ||
=== Structure de la chaîne de certificat === | === Structure de la chaîne de certificat === | ||
* Adapter la chaîne d’information de certificat suivante :<br/>X509: | * Adapter la chaîne d’information de certificat suivante :<br /><code>X509:<I>C=FR,O=ASIP-SANTE,OU=0002 987654321,OU=IGC-SANTE,CN=AC IGC-SANTE FORT PERSONNES<SR><span style="color:blue">SERIAL</span></code><br />Avec les éléments suivants :<br />• <span style="color:blue">SERIAL :</span> Numéro de série du certificat de la carte CPS. | ||
Récupération du numéro de série de la CPS | Récupération du numéro de série de la CPS | ||
Ligne 227 : | Ligne 225 : | ||
|} | |} | ||
* Voici la chaîne de certificat complète qu’il faudra renseigner dans le profil utilisateur à l’étape suivante : | * Voici la chaîne de certificat complète qu’il faudra renseigner dans le profil utilisateur à l’étape suivante : | ||
X509: | <code>X509:<I>C=FR,O=ASIP-SANTE,OU=0002 987654321,OU=IGC-SANTE,CN=AC IGC-SANTE FORT PERSONNES<SR><span style="color:blue">1512c4173225fb0833a2222cf5414598</span></code> | ||
=== Paramétrage du compte Active Directory === | === Paramétrage du compte Active Directory === | ||
Ligne 259 : | Ligne 257 : | ||
# Connecter une carte CPE/CPS sur le poste. | # Connecter une carte CPE/CPS sur le poste. | ||
# Ouvrir la console '''Gérer les certificats utilisateurs''' depuis la barre de recherche Windows 10. | # Ouvrir la console '''Gérer les certificats utilisateurs''' depuis la barre de recherche Windows 10. | ||
# Se rendre dans le dossier '''Certificats – Utilisateur actuel''' / '''Personnel''' / '''Certificats''' puis faire un clic droit sur le certificat ayant pour rôle '''Authentification du client''' et cliquer sur '''Toutes les tâches''' / '''Exporter…'''.<br />[[Image:]] | # Se rendre dans le dossier '''Certificats – Utilisateur actuel''' / '''Personnel''' / '''Certificats''' puis faire un clic droit sur le certificat ayant pour rôle '''Authentification du client''' et cliquer sur '''Toutes les tâches''' / '''Exporter…'''.<br />[[Image:MMCCERT_PERSONNEL_CERTIFICATS_IGC_EXPORT.png]] | ||
## La fenêtre '''Assistant Exportation du certificat''' s’ouvre. Cliquer sur le bouton {{Bouton|Suivant}} pour poursuivre.<br />[[Image:MMCCERT_PERSONNEL_CERTIFICATS_IGC_EXPORT_STEP1.png]] | |||
## À l’étape '''Exporter la clé privée''', sélectionner l’option '''Non, ne pas exporter la clé privée''' puis cliquer sur le bouton {{Bouton|Suivant}}.<br />[[Image:MMCCERT_PERSONNEL_CERTIFICATS_IGC_EXPORT_STEP2.png]] | |||
## À l’étape '''Format du fichier d’exportation''', sélectionner l’option '''X.509 encodé base 64 ''(*.cer)''''' puis cliquer sur le bouton {{Bouton|Suivant}}.<br />[[Image:MMCCERT_PERSONNEL_CERTIFICATS_IGC_EXPORT_STEP3.png]] | |||
## À l’étape '''Fichier à exporter''', cliquer sur le bouton {{Bouton|Parcourir…}} pour sélection un emplacement et saisir le nom du fichier souhaité. Cliquer sur le bouton {{Bouton|Suivant}} pour valider.<br />[[Image:MMCCERT_PERSONNEL_CERTIFICATS_IGC_EXPORT_STEP4.png]] | |||
## À l’étape '''Fin de l’Assistant Exportation du certificat''', vérifier les informations affichées puis cliquer sur le bouton {{Bouton|Terminer}} pour exporter le certificat.<br />[[Image:MMCCERT_PERSONNEL_CERTIFICATS_IGC_EXPORT_STEP5.png]] | |||
==== Vérifier la chaîne de validité du certificat ==== | |||
* Copier le certificat récupéré à l’étape [[Active_Directory_Authentification_par_cartes_à_puce_CPX#Récupérer_le_certificat_de_la_carte_CPX|Récupérer le certificat de la carte CPX]] sur le contrôleur de domaine puis vérifier sa chaîne de validité à l’aide de la commande :<br />{{Commande|certutil -urlfetch -verify carte_cpe.cer}} | |||
* Le terminal de commande retourne les étapes du processus de validation du certificat. Le paramètre '''dwErrorStatus''' doit être à '''0''' systématiquement. Le cas échéant, il y a un problème de validation du certificat. | |||
Émetteur: | |||
CN=AC IGC-SANTE STANDARD PERSONNES | |||
OU=IGC-SANTE | |||
OU=0002 987654321 | |||
O=ASIP-SANTE | |||
C=FR | |||
Hachage du nom (sha1) : c1***4a***63c***cc**a4b****1***c0e***35* | |||
Hachage du nom (md5) : cd***dd***08***6eb4e***310***3*5 | |||
Objet: | |||
G=DENNIS + SN=NEDRY + CN=3***78**69/****** | |||
T=Personnel santé ou social | |||
OU=1***78**69 | |||
O=C. HOSP. DE *** | |||
S=Aveyron (12) | |||
C=FR | |||
Hachage du nom (sha1) : 2***d74*24****014***9715***bdf***358***5 | |||
Hachage du nom (md5) : ****b*e7b****cc**14b****8***c7db | |||
Numéro de série du certificat : 0***63**71***75*0**260***e****ab | |||
dwFlags = CA_VERIFY_FLAGS_CONSOLE_TRACE (0x20000000) | |||
dwFlags = CA_VERIFY_FLAGS_DUMP_CHAIN (0x40000000) | |||
ChainFlags = CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT (0x40000000) | |||
HCCE_LOCAL_MACHINE | |||
CERT_CHAIN_POLICY_BASE | |||
-------- CERT_CHAIN_CONTEXT -------- | |||
ChainContext.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) | |||
ChainContext.dwRevocationFreshnessTime: 18 Days, 12 Hours, 49 Minutes, 48 Seconds | |||
SimpleChain.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) | |||
SimpleChain.dwRevocationFreshnessTime: 18 Days, 12 Hours, 49 Minutes, 48 Seconds | |||
CertContext[0][0]: dwInfoStatus=102 <span style="color:green">dwErrorStatus=0</span> | |||
Issuer: CN=AC IGC-SANTE STANDARD PERSONNES, OU=IGC-SANTE, OU=0002 987654321, O=ASIP-SANTE, C=FR | |||
NotBefore: 10/02/2021 20:01 | |||
NotAfter: 10/02/2024 20:01 | |||
Subject: G=DENNIS + SN=NEDRY + CN=3***78**69/******/******, T=Personnel santé ou social, OU=1***78**69, O=C. HOSP. DE ***, S=Aveyron (12), C=FR | |||
Serial: 984541f52c22a23308fb253217c41215 | |||
SubjectAltName: Autre nom :Nom principal=3.1***78**69.******@carte-cps.fr | |||
Cert: 47***e48***113***a2f***2fa***913***aa**7 | |||
Element.dwInfoStatus = CERT_TRUST_HAS_KEY_MATCH_ISSUER (0x2) | |||
Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) | |||
---------------- AIA de certificat ---------------- | |||
Vérifié "Certificat (0)" Heure : 0 | |||
[0.0] http://igc-sante.esante.gouv.fr/AC/ACI-ST-PP.cer | |||
---------------- CDP de certificat ---------------- | |||
Vérifié "Liste de révocation des certificats de base (09fe)" Heure : 4 | |||
[0.0] http://igc-sante.esante.gouv.fr/CRL/ACI-ST-PP.crl | |||
Vérifié "Liste de révocation des certificats de base (09fe)" Heure : 4 | |||
[1.0] ldap://annuaire-igc.esante.gouv.fr/cn=AC%20IGC-SANTE%20STANDARD%20PERSONNES,ou=AC%20RACINE%20IGC-SANTE%20STAND | |||
ARD,ou=IGC-SANTE,ou=0002%187512751,o=ASIP-SANTE,c=FR?certificaterevocationlist;binary?base?objectClass=pkiCA | |||
---------------- CDP de liste de révocation des certificats de base ---------------- | |||
Pas d’URL "Aucun" Heure : 0 | |||
---------------- Protocole OCSP du certificat ---------------- | |||
Vérifié "OCSP" Heure : 0 | |||
[0.0] http://ocsp.esante.gouv.fr | |||
-------------------------------- | |||
CRL (null): | |||
Issuer: CN=SERVICE OCSP IGC-SANTE STANDARD PERSONNES, OU=IGC-SANTE + OU=0002 187512751, O=ASIP-SANTE, C=FR | |||
ThisUpdate: 18/12/2022 22:30 | |||
NextUpdate: 19/12/2022 23:00 | |||
CRL: b06e19f63846e01ea51201989fbf7c465fc1969d | |||
Issuance[0] = 1.2.250.1.213.1.7.1.2.1.3.1 | |||
Application[0] = 1.3.6.1.5.5.7.3.2 Authentification du client | |||
Application[1] = 1.3.6.1.4.1.311.20.2.2 Ouverture de session par carte à puce | |||
CertContext[0][1]: dwInfoStatus=102 <span style="color:green">dwErrorStatus=0</span> | |||
Issuer: CN=AC RACINE IGC-SANTE STANDARD, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR | |||
NotBefore: 25/06/2013 01:00 | |||
NotAfter: 24/06/2033 01:00 | |||
Subject: CN=AC IGC-SANTE STANDARD PERSONNES, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR | |||
Serial: 112016654c36f13671b030541f6088ea44c2 | |||
Cert: e0d6e1d8481fed62c65c53ed9dfcda949c3d1d81 | |||
Element.dwInfoStatus = CERT_TRUST_HAS_KEY_MATCH_ISSUER (0x2) | |||
Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) | |||
---------------- AIA de certificat ---------------- | |||
Pas d’URL "Aucun" Heure : 0 | |||
---------------- CDP de certificat ---------------- | |||
Vérifié "Liste de révocation des certificats de base (73)" Heure : 0 | |||
[0.0] http://igc-sante.esante.gouv.fr/CRL/ACR-ST.crl | |||
Vérifié "Liste de révocation des certificats de base (73)" Heure : 0 | |||
[1.0] ldap://annuaire-igc.esante.gouv.fr/CN=AC%20RACINE%20IGC-SANTE%20STANDARD,OU=IGC-SANTE,OU=0002%20187512751,O=ASIP-SANTE,C=FR?certificaterevocationlist;binary?base?objectclass=pkiCa | |||
---------------- CDP de liste de révocation des certificats de base ---------------- | |||
Pas d’URL "Aucun" Heure : 0 | |||
---------------- Protocole OCSP du certificat ---------------- | |||
Pas d’URL "Aucun" Heure : 0 | |||
-------------------------------- | |||
CRL 73: | |||
Issuer: CN=AC RACINE IGC-SANTE STANDARD, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR | |||
ThisUpdate: 01/12/2022 01:00 | |||
NextUpdate: 15/01/2023 01:00 | |||
CRL: 7c2668dac4b660dc0f53be674dece6fcaec5680d | |||
CertContext[0][2]: dwInfoStatus=10a <span style="color:green">dwErrorStatus=0</span> | |||
Issuer: CN=AC RACINE IGC-SANTE STANDARD, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR | |||
NotBefore: 25/06/2013 01:00 | |||
NotAfter: 25/06/2033 01:00 | |||
Subject: CN=AC RACINE IGC-SANTE STANDARD, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR | |||
Serial: 11207f69865cdf9a675f3013640fe1a47805 | |||
Cert: b6ba1d6d5224bceda95a67f6f37b86896edd0006 | |||
Element.dwInfoStatus = CERT_TRUST_HAS_KEY_MATCH_ISSUER (0x2) | |||
Element.dwInfoStatus = CERT_TRUST_IS_SELF_SIGNED (0x8) | |||
Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) | |||
---------------- AIA de certificat ---------------- | |||
Pas d’URL "Aucun" Heure : 0 | |||
---------------- CDP de certificat ---------------- | |||
Pas d’URL "Aucun" Heure : 0 | |||
---------------- Protocole OCSP du certificat ---------------- | |||
Pas d’URL "Aucun" Heure : 0 | |||
-------------------------------- | |||
Exclude leaf cert: | |||
Chain: 136fc23294346c3992f845b1dd22e1038ce7ee87 | |||
Full chain: | |||
Chain: 496e2f5d6dffe10de9e8b249aa81fa8198b8cb01 | |||
------------------------------------ | |||
Stratégies d’émissions vérifiées: | |||
1.2.250.1.213.1.7.1.2.1.3.1 | |||
Stratégies d’application vérifiées: | |||
1.3.6.1.5.5.7.3.2 Authentification du client | |||
1.3.6.1.4.1.311.20.2.2 Ouverture de session par carte à puce | |||
Le certificat est un certificat d’entité de fin | |||
Vérification de révocation du certificat feuille réussie | |||
CertUtil: -verify La commande s’est terminée correctement. | |||
* Depuis les journaux d’activité Windows, il est possible de constater le bon fonctionnement de la chaîne de vérification du certificat. | |||
** Ouvrir la console de l’'''Observateur d’événement'''. | |||
** Depuis la branche '''Journaux des applications et des services''' / '''Microsoft''' / '''Windows''' / '''CAPI2''', faire un clic droit sur le journal '''Opérationnel''' puis '''Activer le journal'''. | |||
** Rejouer la commande :<br />{{Commande|certutil -urlfetch -verify carte_cpe.cer}} | |||
** Puis observer les résultats dans le journal d’évènements Windows.<br />[[Image:EVENTLOG_CAPI12_IGC.png]] | |||
==== En cas d’erreur ==== | |||
* Vérifier que le serveur soit bien autorisé à interroger les serveurs de l’'''Autorité de Certification''' de l’'''IGC-Santé'''. | |||
* Procéder à la purge du cache en lançant les commandes suivantes depuis une console PowerShell : | |||
{{ Box Console | objet=certutil -urlcache crl delete<br /> | |||
certutil -urlcache * delete<br /> | |||
certutil -urlcache crl }} | |||
* Relancer la commande :<br />{{Commande|certutil -urlfetch -verify carte_cpe.cer}} | |||
::pour vérifier la chaîne de validité du certificat. | |||
== Comportements et stratégies de gestion de la carte à puce == | |||
=== Verrouillage du poste lors du retrait de la carte à puce === | |||
# Ouvrir une '''console MMC''' puis ajouter le composant logiciel enfichable '''Gestion des stratégies de groupe'''. | |||
# Editer la GPO '''O_WINDOWS-SMARTCARD''' à la racine du domaine de l’organisation ''(ou créer une nouvelle GPO pour cette occasion)''. | |||
# Editer la stratégie de groupe sélectionnée puis rechercher la clé '''Configuration ordinateur''' / '''Stratégies''' / '''Paramètres Windows''' / '''Paramètres de sécurité''' / '''Stratégies locales''' / '''Options de sécurité''' / '''Ouverture de session interactive : comportement lorsque la carte à puce est retirée'''. | |||
## Faire un clic droit sur cette clé, puis '''Propriétés'''. | |||
## Activer l’option '''Définir ce paramètre de stratégie''' puis sélectionner l’option '''Verrouiller la station de travail'''. Cliquer sur le bouton {{Bouton|OK}} pour enregistrer le paramètre.<br />[[Image:MMCGPO_OUVERTURE_SESSION_INTERACTIVE_COMPORTEMENT_RETRAIT_CARTE_A_PUCE_IGC.png]] | |||
# Editer la stratégie de groupe sélectionnée puis rechercher la clé '''Configuration ordinateur''' / '''Stratégies''' / '''Paramètres Windows''' / '''Paramètres de sécurité''' / '''Services systèmes''' / '''Stratégie de retrait de la carte à puce'''. | |||
## Faire un clic droit sur cette clé, puis '''Propriétés'''. | |||
## Activer l’option '''Définir ce paramètre de stratégie''' puis sélectionner l’option '''Automatique'''. Cliquer sur le bouton {{Bouton|OK}} pour enregistrer le paramètre.<br />[[Image:MMCGPO_STRATEGIE_RETRAIT_CARTE_A_PUCE_IGC.png]] | |||
=== Désactivation du contrôle de la CRL === | |||
Par défaut, '''Active Directory''' effectue un contrôle de la '''CRL''' pour toute demande d’authentification par certificat. Si ce contrôle ne peut pas être effectuée, l’authentification est rejetée. | |||
Si le contrôleur de domaine n’est pas autorisé à interroger les serveurs de l’'''Autorité de Certification de l’IGC-Santé''', ce problème se produira pour chaque demande d’authentification. Lors des phases de test et de validation de l’infrastructure, il peut être intéressant de désactiver temporairement ce contrôle. | |||
# Depuis les contrôleurs de domaine Active Directory, ouvrir l’éditeur de registre '''REGEDIT'''. | |||
# Rechercher la clé :<br />{{Clé de registre|HKLM\SYSTEM\CurrentControlSet\Services\kdc}} | |||
## Puis, créer la valeur DWORD : '''UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors'''. | |||
## Et y affecter la valeur : '''00000001'''. | |||
# Rechercher la clé :<br />{{Clé de registre|HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters}} | |||
## Puis, créer la valeur DWORD : '''UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors'''. | |||
## Et y affecter la valeur : '''00000001'''. | |||
== Installation des pilotes de périphériques clients == | |||
=== Installation du pilote ASIP pour cartes CPX === | |||
# Brancher le '''lecteur de carte''' sur un port USB de libre. | |||
# Insérer la '''carte CPX''' dans le lecteur de carte à puce.<br />[[Image:MMCGESTPERIPH_CARTE_A_PUCE_INCONNUE_IGC.png]] | |||
# Effectuer un clic droit sur le périphérique '''Carte à puce inconnue''' puis cliquer sur l’item '''Mettre à jour le pilote''' depuis le menu contextuel.<br />[[Image:MMCGESTPERIPH_CARTE_A_PUCE_INCONNUE_UPDATE_IGC.png]] | |||
## L’assistant '''Mettre à jour les pilotes''' s’affiche. Cliquer sur l’item '''Parcourir mon poste de travail pour rechercher les pilotes'''.<br />[[Image:MMCGESTPERIPH_CARTE_A_PUCE_INCONNUE_UPDATE_IGC_STEP1.png]] | |||
## Depuis l’écran '''Mettre à jour les pilotes''', cliquer sur le bouton {{Bouton|Parcourir…}} puis sélectionner le Pilotes CPS téléchargé.<br />[[Image:MMCGESTPERIPH_CARTE_A_PUCE_INCONNUE_UPDATE_IGC_STEP2.png]] | |||
## À la fin de l’installation du pilote, vérifier qu’il s’agit bien du pilote '''Carte de Professionnel de Sante CPS3'''.<br />[[Image:MMCGESTPERIPH_CARTE_A_PUCE_INCONNUE_UPDATE_IGC_STEP3.png]] | |||
== Problèmes rencontrés == | |||
=== Problème d’authentification par carte à puce === | |||
==== CRLs invalides ou expirées ==== | |||
* '''Contexte :''' | |||
** Se produit lors de la phase d’authentification par carte à puce depuis l’écran de login Windows. | |||
* '''Erreur(s) rencontré(s) :''' | |||
** L’écran d’ouverture de session interactive Windows retourne l’erreur :<br />[[Image:WIN10_LOGINSCREEN_CRL_STATUS_UNKNOWN.jpg]] | |||
* '''Analyse journaux logs CAPI2 :''' | |||
** L’annuaire '''Active Directory''' remonte une erreur lors de la phase de '''contrôle de la CRL''' après interrogation '''LDAP''' du certificat racine '''IGC-SANTE STANDARD PERSONNES'''.<br />[[Image:EVENTLOG_CAPI12_IGC_CRL_ERROR.png]] | |||
* Reproductibilité du défaut : | |||
** Exécution de la requête LDAP en défaut : | |||
*** À l’aide de l’utilitaire '''certutil''' de Microsoft nous rejouons la commande LDAP en défaut : | |||
{{Box Console | objet=certutil -url "ldap://annuaire-igc.esante.gouv.fr/cn=AC%20IGC-SANTE%20STANDARD%20PERSONNES,ou=AC%20RACINE%20IGC-SANTE%20STANDARD,ou=IGC-SANTE,ou=0002%20187512751,o=ASIP-SANTE,c=FR?deltarevocationlist;binary?base?objectClass=pkiCA" }} | |||
::* La commande nous bascule sur l’'''Outil de récupération d’URL'''. En sélection l’option '''Listes CRL ''(de CDP)''''' puis en cliquant sur le bouton {{Bouton|Extraire}}, nous obtenons en résultat la CRL.<br />[[Image:OUTILRECUPERATIONURL_CRL_CHECK.png]] | |||
::* En effectuant un double clic sur le résultat, nous accédons au détail de la CRL. Nous observons ainsi que le fichier récupéré date du '''07/09/2022'''.<br />[[Image:LISTEREVOCATIONCERTIFICATS_IGC_STATUS.png]] | |||
* '''Domaine de responsabilité :''' | |||
** Dans le cas présent, c'est l'autorité de certification racine IGC-SANTE qui fournit une CRL expirée. | |||
* '''Solution(s) de contournement :''' | |||
** Désactiver le contrôle de CRL via l’éditeur de registre REGEDIT. | |||
** Etendre la durée de l’extension de la période de validité via GPO. |
Dernière version du 14 juillet 2024 à 20:58
Installation du rôle ADDS | Sécuriser son environnement Active Directory | Windows LAPS | gMSA
Archives : Contrôleur de domaine Windows Server 2003 | Intégration Client Ubuntu sur AD Windows Server 2003 | Windows Server 2008
Prérequis
Infrastructure d’authentification
Pour pouvoir mettre en place une authentification par carte à puce, vous devez disposer :
- D’au moins un serveur Active Directory. Dans notre cas, il s’agit du serveur SRVDC1. Le domaine Active Directory s’appelle CNLABS (CNLABS.lan).
- D’une autorité de certification racine d’entreprise pleinement opérationnelle. Dans notre cas, il s’agit du serveur SRVDC1. L’autorité de certification s’appelle CNLABS-CA.
Au niveau des postes clients, il sera nécessaire de disposer :
- De la dernière version cryptolib à jour.
- D’un lecteur de carte à puce compatible.
L’infrastructure présentée ci-dessus – pour illustrer la présente documentation – est purement fictive.
Certificats de l’autorité racine émettant les cartes à puces
- Se rendre sur le site web de l’autorité de certification IGC-Santé accessible depuis le lien http://igc-sante.esante.gouv.fr.
- Télécharger les 8 certificats mis à disposition par l’autorité de certification et correspondant.
- Vérifier les certificats téléchargés :
- ACI-EL-ORG.cer : certificat d’autorité de certification intermédiaire gamme élémentaire domaine organisations.
- ACI-EL-PP.cer : certificat d’autorité de certification intermédiaire gamme élémentaire domaine personnes.
- ACI-FO-PP.cer : certificat d’autorité de certification intermédiaire gamme fort domaine personnes.
- ACI-ST-ORG.cer : certificat d’autorité de certification intermédiaire gamme standard domaine organisations.
- ACI-ST-PP.cer : certificat d’autorité de certification intermédiaire gamme standard domaine personnes.
- ACR-EL.cer : certificat d’autorité de certification racine gamme élémentaire.
- ACR-FO.cer : certificat d’autorité de certification racine gamme fort.
- ACR-ST.cer : certificat d’autorité de certification racine gamme standard.
Installation des certificats de l’IGC-Santé
Les certificats racines et intermédiaires de l’autorité de certification de l’IGC-Santé doivent être installés :
- Sur les contrôleurs de domaine via une GPO.
- Sur le serveur de l’autorité de certification d’entreprise si ce dernier est sur un serveur dédié via une GPO.
- Sur les postes clients via une GPO.
Dans notre usage, nous allons créer la GPO O_WINDOWS_SMARTCARD qui sera liée au groupe Domain Controllers ainsi qu’à la racine de l’organisation.
- Ouvrir une console MMC puis ajouter le composant logiciel enfichable Gestion des stratégies de groupe.
- Créer la GPO O_WINDOWS_SMARTCARD à la racine du domaine de l’organisation (ou créer une nouvelle GPO pour cette occasion). Dans notre cas, cette GPO est liée aux contenants :
- Editer la stratégie de groupe sélectionnée puis rechercher la clé Configuration ordinateur / Stratégies / Paramètres Windows / Paramètres de sécurité / Stratégies de clé publique / Autorités de certification racines de confiance.
- Sur l’ensemble des contrôleurs de domaines effectuer les opérations suivantes pour vérifier la bonne propagation des certificats :
- Ouvrir un terminal de commande CMD puis exécuter la commande :
gpupdate /force
- Une fois l’exécution de la commande terminée, ouvrir une console MMC puis ajouter le composant logiciel enfichable Certificats.
- Vérifier la présence des 8 certificats racines et intermédiaires dans le dossier Autorité de certification racines de confiance.
- Copier les 8 certificats racines et intermédiaires puis les coller dans le dossier Personnel. Cette action est à réaliser sur les Contrôleurs de domaine et l’Autorité de Certification Entreprise (si cette dernière est sur un serveur dédié).
- Ouvrir un terminal de commande CMD puis exécuter la commande :
Paramétrage réseau
Pour vérifier la validité d’un certificat, les serveurs Active Directory ainsi que l’Autorité de Certification d’Entreprise doivent pouvoir communiquer avec les serveurs de l’Autorité de Certification Racine de l’IGC-Santé.
Interrogation directe
Identification des flux à autoriser
Les flux suivants doivent être autorisés en sortie (depuis serveur Active Directory vers Internet):
- Accès au serveur LDAP de l’IGC-Santé : http://annuaire-igc.esante.fr.
- Accès au serveur web OCSP de l’IGC-Santé : http://ocsp.esante.gouv.fr.
- Accès au serveur web du portail de l’Autorité Racine de l’IGC-Santé : http://igc-sante.esante.gouv.fr.
Paramètres proxy
Si le réseau nécessite un accès Internet via un proxy, il sera nécessaire de paramétrer ce dernier sur les serveurs Active Directory ainsi que l’Autorité de Certification d’Entreprise. Par défaut, Windows utilise les paramètres proxy de la session courante. Dans le cas de la phase d’authentification, c’est le processus système lsass.exe qui va essayer de dialoguer avec l’IGC-Santé. Il faut donc basculer sur une configuration proxy par machine.
- Ouvrir l’utilitaire d’édition du registre Regedit.
- Rechercher la clé :
HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
.- Puis, créer la valeur DWORD ProxySettingsPerUser.
- Et y affecter la valeur 00000000.
- Ouvrir un terminal de commande CMD puis exécuter la commande pour appliquer les paramètres.
gpupdate /force
- Ouvrir la fenêtre de Propriétés de : Internet depuis la commande inetcpl.cpl.
- Cliquer sur l’onglet Connexions puis sur le bouton Paramètres réseau.
- Si elle est cochée, décocher les cases Détecter automatiquement les paramètres de connexion et Utiliser un script de configuration automatique.
- Cocher la case Utiliser un serveur proxy puis renseigner dans le champ Adresse l’adresse IP du serveur proxy puis dans le champ Port le numéro du port d’écoute TCP du serveur proxy.
- Cliquer sur le bouton OK pour enregistrer les paramètres.
- Ouvrir un terminal de commande Powershell puis exécuter la commande :
netsh winhttp set proxy IP_PROXY:PORT_PROXY bypass-list=”SRVWSUS”
en remplaçant :- IP_PROXY : par l’adresse IP du serveur proxy.
- PORT_PROXY : par le port TCP d’écoute du serveur proxy.
- LIST_EXCLUSION : par l’adresse du serveur de mise à jour WSUS.
Paramétrage de l’authentification
Ajout des certificats dans le magasin NTAuthCertificates
Le magasin de certificat NTAuthCertificates permet au processus d’authentification Kerberos :
- D’identifier les utilisateurs présentant un certificat signé par une autorité de certification racine.
- Seulement si le certificat de cette autorité de certification racine est présente dans le magasin NTAuthCertificates.
De ce fait, il est donc nécessaire d’ajouter les certificats d’autorité racine et d’autorité racine intermédiaire de l’autorité IGC-Santé dans le magasin NTAuthCertificates de l’Autorité de Certification d’Entreprise.
Dans le cas où l’Autorité de Certification d’Entreprise est installée sur un serveur dédié. Les actions ci-dessous sont donc à réaliser depuis ce serveur. Le cas échéant, ces actions sont à réaliser sur le contrôleur de domaine.
- Ouvrir une console MMC puis ajouter le composant logiciel enfichable PKI d’entreprise.
- Effectuer un clic droit sur l’item PKI d’entreprise puis cliquer sur Gérer les conteneurs Active Directory….
- Cliquer sur l’onglet Conteneur NTAuthCertificates puis sur le bouton Ajouter….
- Depuis la fenêtre Ouvrir, rechercher et sélectionner le certificat ACR-EL.cer puis cliquer sur le bouton Ouvrir.
- Le certificat nouvellement ajouté doit apparaître dans la liste avec le statut OK.
- Si ce n’est pas le cas : Passer en revue les opérations décrites dans la section Installation des certificats de l’IGC-Santé .
- Si ce n’est pas le cas : Passer en revue les opérations décrites dans la section Installation des certificats de l’IGC-Santé .
- Répéter les étapes _3_ à _5_ pour les certificats ACR-FO.cer, ACR-ST.cer, ACI-EL-PP.cer, ACI-FO-PP.cer, ACI-ST-ORG.cer et ACI-ST-PP.cer.
- Sur l’ensemble des contrôleurs de domaines ainsi que l’Autorité de Certification Entreprise, effectuer les opérations suivantes pour vérifier la bonne propagation des certificats :
- Ouvrir un terminal de commande CMD puis exécuter la commande :
gpupdate /force
- Une fois l’exécution de la commande terminée, ouvrir l’éditeur de registre REGEDIT.
- Rechercher la clé :
HKLM\SOFTWARE\Microsoft\EnterpriseCertificates\NTAuth\Certificates
Puis vérifier la présence des clés relatives aux certificats de l’IGC-Santé :
- Ouvrir un terminal de commande CMD puis exécuter la commande :
Authentification basée sur des comptes AD existants
Désactivation du SAN (subjectAltName)
Par défaut, pour pouvoir s’authentifier à l’aide d’un certificat, il est nécessaire de créer un compte utilisateur Active Directory spécifique sur le contrôleur de domaine. Ici, nous souhaitons greffer l’authentification par certificat sur des comptes Active Directory existant.
- Ouvrir l’utilitaire d’édition du registre Regedit.
- Rechercher la clé :
HKLM\SYSTEM\CurrentControlSet\Services\kdc
- Rechercher la clé :
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Activation de l’indication du nom d’utilisateur
Par défaut, pour pouvoir s’authentifier à l’aide d’un certificat, il est nécessaire de créer un compte Active Directory spécifique sur le contrôleur de domaine. Ici, nous souhaitons greffer l’authentification par certificat sur des comptes Active Directory existant.
Dès lors, lors de l’ouverture d’une session à l’aide d’un certificat, il faudra renseigner le nom d’utilisateur Windows pour permettre à Kerberos de vérifier la correspondance entre le certificat présenté et le certificat de l’utilisateur Active Directory enregistré dans l’annuaire.
- Ouvrir une console MMC puis ajouter le composant logiciel enfichable Gestion des stratégies de groupe.
- Créer une GPO spécifique qui va permettre de personnaliser le paramétrage du composant Carte à puce de Windows. Cette GPO devra être appliquée à l’ensemble des postes clients.
- Editer la stratégie de groupe nouvellement créée puis rechercher la clé Configuration ordinateur / Stratégies / Modèle d’administration / Composants Windows / Carte à puce / Autoriser l’indication du nom d’utilisateur.
- Faire un clic droit sur cette clé puis Modifier.
- Sélectionner l’option Activé puis cliquer sur le bouton OK.
- Sur l’ensemble des contrôleurs de domaines ainsi que l’Autorité de Certification Entreprise, effectuer les opérations suivantes pour forcer l’application des paramètres :
- Ouvrir un terminal de commande CMD puis exécuter la commande :
gpupdate /force
- Ouvrir un terminal de commande CMD puis exécuter la commande :
Association d’un certificat à un compte AD
Structure de la chaîne de certificat
- Adapter la chaîne d’information de certificat suivante :
X509:<I>C=FR,O=ASIP-SANTE,OU=0002 987654321,OU=IGC-SANTE,CN=AC IGC-SANTE FORT PERSONNES<SR>SERIAL
Avec les éléments suivants :
• SERIAL : Numéro de série du certificat de la carte CPS.
Récupération du numéro de série de la CPS
- Insérer la carte CPS dans le lecteur de carte à puce de l’ordinateur.
- Après quelques instants, ouvrir la console Gérer les certificats utilisateur de Windows.
- Depuis la console, développer l’arborescence Certificats – Utilisateur actuel / Personnel / Certificat.
- Accéder aux Propriétés du certificat de la carte CPS ayant pour rôle Authentification du client.
- Depuis la boîte de dialogue de Certificat, cliquer sur l’onglet détail puis relever la valeur du champ Numéro de série.
- Ensuite, inverser l’ordre de chaque octet composant le numéro de série. Par exemple, le numéro de série relever à l’étape précédente était :
SN | 98 | 45 | 41 | f5 | 2c | 22 | a2 | 33 | 08 | fb | 25 | 32 | 17 | c4 | 12 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
N° Octet | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
- Une fois sa séquence inversée, cela donne :
SN | 15 | 12 | c4 | 17 | 32 | 25 | fb | 08 | 33 | a2 | 22 | 2c | f5 | 41 | 45 | 98 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
N° Octet | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 |
- Voici la chaîne de certificat complète qu’il faudra renseigner dans le profil utilisateur à l’étape suivante :
X509:<I>C=FR,O=ASIP-SANTE,OU=0002 987654321,OU=IGC-SANTE,CN=AC IGC-SANTE FORT PERSONNES<SR>1512c4173225fb0833a2222cf5414598
Paramétrage du compte Active Directory
- Depuis la console Centre d’administration Active Directory, ouvrir les propriétés du compte utilisateur pour lequel on souhaite paramétrer une authentification par carte CPE.
- Depuis le menu de navigation vertical, cliquer sur l’item Extensions :
- Depuis la boîte de dialogue Editeur de chaînes à valeur multiples, coller la chaîne de caractère construite à l’étape Structure de la chaîne de certificat puis cliquer sur le bouton Ajouter. Cliquer sur le bouton OK pour valider le paramétrage.
Contrôle de validité des certificats
En dehors de la période de validité légal d’un certificat, ce dernier peut être révoqué pour les raison suivantes :
- la carte CPX a été perdue ;
- L’utilisateur de la carte CPX a quitté l’établissement ;
- le professionnel de santé a été radié.
Pour ce genre d’événements, l’autorité de certification met à disposition un fichier de certificat CRL (Certificate Revocation List) listant les certificats qui ont été révoqués avant leur date d’expiration. Sans contrôle de la CRL, il sera toujours possible de s’authentifier à l’aide d’une carte CPX pour laquelle le certificat a été révoqué. Ceci constitue une faille dans la politique de gestion des accès au SI.
Validation de la chaîne de révocation d’un certificat
L’objectif est de reproduire manuellement un test de validation de la chaîne de révocation d’un certificat. Ce test vérifie les points suivants :
- Date d’expiration du certificat ;
- Vérification de la validité de la CRL en cache ;
- Téléchargement de la CRL si besoin ;
- Vérification de la présence du certificat dans la CRL.
Récupérer le certificat de la carte CPX
- Connecter une carte CPE/CPS sur le poste.
- Ouvrir la console Gérer les certificats utilisateurs depuis la barre de recherche Windows 10.
- Se rendre dans le dossier Certificats – Utilisateur actuel / Personnel / Certificats puis faire un clic droit sur le certificat ayant pour rôle Authentification du client et cliquer sur Toutes les tâches / Exporter….
- La fenêtre Assistant Exportation du certificat s’ouvre. Cliquer sur le bouton Suivant pour poursuivre.
- À l’étape Exporter la clé privée, sélectionner l’option Non, ne pas exporter la clé privée puis cliquer sur le bouton Suivant.
- À l’étape Format du fichier d’exportation, sélectionner l’option X.509 encodé base 64 (*.cer) puis cliquer sur le bouton Suivant.
- À l’étape Fichier à exporter, cliquer sur le bouton Parcourir… pour sélection un emplacement et saisir le nom du fichier souhaité. Cliquer sur le bouton Suivant pour valider.
- À l’étape Fin de l’Assistant Exportation du certificat, vérifier les informations affichées puis cliquer sur le bouton Terminer pour exporter le certificat.
- La fenêtre Assistant Exportation du certificat s’ouvre. Cliquer sur le bouton Suivant pour poursuivre.
Vérifier la chaîne de validité du certificat
- Copier le certificat récupéré à l’étape Récupérer le certificat de la carte CPX sur le contrôleur de domaine puis vérifier sa chaîne de validité à l’aide de la commande :
certutil -urlfetch -verify carte_cpe.cer
- Le terminal de commande retourne les étapes du processus de validation du certificat. Le paramètre dwErrorStatus doit être à 0 systématiquement. Le cas échéant, il y a un problème de validation du certificat.
Émetteur: CN=AC IGC-SANTE STANDARD PERSONNES OU=IGC-SANTE OU=0002 987654321 O=ASIP-SANTE C=FR Hachage du nom (sha1) : c1***4a***63c***cc**a4b****1***c0e***35* Hachage du nom (md5) : cd***dd***08***6eb4e***310***3*5 Objet: G=DENNIS + SN=NEDRY + CN=3***78**69/****** T=Personnel santé ou social OU=1***78**69 O=C. HOSP. DE *** S=Aveyron (12) C=FR Hachage du nom (sha1) : 2***d74*24****014***9715***bdf***358***5 Hachage du nom (md5) : ****b*e7b****cc**14b****8***c7db Numéro de série du certificat : 0***63**71***75*0**260***e****ab dwFlags = CA_VERIFY_FLAGS_CONSOLE_TRACE (0x20000000) dwFlags = CA_VERIFY_FLAGS_DUMP_CHAIN (0x40000000) ChainFlags = CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT (0x40000000) HCCE_LOCAL_MACHINE CERT_CHAIN_POLICY_BASE -------- CERT_CHAIN_CONTEXT -------- ChainContext.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) ChainContext.dwRevocationFreshnessTime: 18 Days, 12 Hours, 49 Minutes, 48 Seconds SimpleChain.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) SimpleChain.dwRevocationFreshnessTime: 18 Days, 12 Hours, 49 Minutes, 48 Seconds CertContext[0][0]: dwInfoStatus=102 dwErrorStatus=0 Issuer: CN=AC IGC-SANTE STANDARD PERSONNES, OU=IGC-SANTE, OU=0002 987654321, O=ASIP-SANTE, C=FR NotBefore: 10/02/2021 20:01 NotAfter: 10/02/2024 20:01 Subject: G=DENNIS + SN=NEDRY + CN=3***78**69/******/******, T=Personnel santé ou social, OU=1***78**69, O=C. HOSP. DE ***, S=Aveyron (12), C=FR Serial: 984541f52c22a23308fb253217c41215 SubjectAltName: Autre nom :Nom principal=3.1***78**69.******@carte-cps.fr Cert: 47***e48***113***a2f***2fa***913***aa**7 Element.dwInfoStatus = CERT_TRUST_HAS_KEY_MATCH_ISSUER (0x2) Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) ---------------- AIA de certificat ---------------- Vérifié "Certificat (0)" Heure : 0 [0.0] http://igc-sante.esante.gouv.fr/AC/ACI-ST-PP.cer ---------------- CDP de certificat ---------------- Vérifié "Liste de révocation des certificats de base (09fe)" Heure : 4 [0.0] http://igc-sante.esante.gouv.fr/CRL/ACI-ST-PP.crl Vérifié "Liste de révocation des certificats de base (09fe)" Heure : 4 [1.0] ldap://annuaire-igc.esante.gouv.fr/cn=AC%20IGC-SANTE%20STANDARD%20PERSONNES,ou=AC%20RACINE%20IGC-SANTE%20STAND ARD,ou=IGC-SANTE,ou=0002%187512751,o=ASIP-SANTE,c=FR?certificaterevocationlist;binary?base?objectClass=pkiCA ---------------- CDP de liste de révocation des certificats de base ---------------- Pas d’URL "Aucun" Heure : 0 ---------------- Protocole OCSP du certificat ---------------- Vérifié "OCSP" Heure : 0 [0.0] http://ocsp.esante.gouv.fr -------------------------------- CRL (null): Issuer: CN=SERVICE OCSP IGC-SANTE STANDARD PERSONNES, OU=IGC-SANTE + OU=0002 187512751, O=ASIP-SANTE, C=FR ThisUpdate: 18/12/2022 22:30 NextUpdate: 19/12/2022 23:00 CRL: b06e19f63846e01ea51201989fbf7c465fc1969d Issuance[0] = 1.2.250.1.213.1.7.1.2.1.3.1 Application[0] = 1.3.6.1.5.5.7.3.2 Authentification du client Application[1] = 1.3.6.1.4.1.311.20.2.2 Ouverture de session par carte à puce CertContext[0][1]: dwInfoStatus=102 dwErrorStatus=0 Issuer: CN=AC RACINE IGC-SANTE STANDARD, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR NotBefore: 25/06/2013 01:00 NotAfter: 24/06/2033 01:00 Subject: CN=AC IGC-SANTE STANDARD PERSONNES, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR Serial: 112016654c36f13671b030541f6088ea44c2 Cert: e0d6e1d8481fed62c65c53ed9dfcda949c3d1d81 Element.dwInfoStatus = CERT_TRUST_HAS_KEY_MATCH_ISSUER (0x2) Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) ---------------- AIA de certificat ---------------- Pas d’URL "Aucun" Heure : 0 ---------------- CDP de certificat ---------------- Vérifié "Liste de révocation des certificats de base (73)" Heure : 0 [0.0] http://igc-sante.esante.gouv.fr/CRL/ACR-ST.crl Vérifié "Liste de révocation des certificats de base (73)" Heure : 0 [1.0] ldap://annuaire-igc.esante.gouv.fr/CN=AC%20RACINE%20IGC-SANTE%20STANDARD,OU=IGC-SANTE,OU=0002%20187512751,O=ASIP-SANTE,C=FR?certificaterevocationlist;binary?base?objectclass=pkiCa ---------------- CDP de liste de révocation des certificats de base ---------------- Pas d’URL "Aucun" Heure : 0 ---------------- Protocole OCSP du certificat ---------------- Pas d’URL "Aucun" Heure : 0 -------------------------------- CRL 73: Issuer: CN=AC RACINE IGC-SANTE STANDARD, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR ThisUpdate: 01/12/2022 01:00 NextUpdate: 15/01/2023 01:00 CRL: 7c2668dac4b660dc0f53be674dece6fcaec5680d CertContext[0][2]: dwInfoStatus=10a dwErrorStatus=0 Issuer: CN=AC RACINE IGC-SANTE STANDARD, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR NotBefore: 25/06/2013 01:00 NotAfter: 25/06/2033 01:00 Subject: CN=AC RACINE IGC-SANTE STANDARD, OU=IGC-SANTE, OU=0002 187512751, O=ASIP-SANTE, C=FR Serial: 11207f69865cdf9a675f3013640fe1a47805 Cert: b6ba1d6d5224bceda95a67f6f37b86896edd0006 Element.dwInfoStatus = CERT_TRUST_HAS_KEY_MATCH_ISSUER (0x2) Element.dwInfoStatus = CERT_TRUST_IS_SELF_SIGNED (0x8) Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) ---------------- AIA de certificat ---------------- Pas d’URL "Aucun" Heure : 0 ---------------- CDP de certificat ---------------- Pas d’URL "Aucun" Heure : 0 ---------------- Protocole OCSP du certificat ---------------- Pas d’URL "Aucun" Heure : 0 -------------------------------- Exclude leaf cert: Chain: 136fc23294346c3992f845b1dd22e1038ce7ee87 Full chain: Chain: 496e2f5d6dffe10de9e8b249aa81fa8198b8cb01 ------------------------------------ Stratégies d’émissions vérifiées: 1.2.250.1.213.1.7.1.2.1.3.1 Stratégies d’application vérifiées: 1.3.6.1.5.5.7.3.2 Authentification du client 1.3.6.1.4.1.311.20.2.2 Ouverture de session par carte à puce Le certificat est un certificat d’entité de fin Vérification de révocation du certificat feuille réussie CertUtil: -verify La commande s’est terminée correctement.
- Depuis les journaux d’activité Windows, il est possible de constater le bon fonctionnement de la chaîne de vérification du certificat.
- Ouvrir la console de l’Observateur d’événement.
- Depuis la branche Journaux des applications et des services / Microsoft / Windows / CAPI2, faire un clic droit sur le journal Opérationnel puis Activer le journal.
- Rejouer la commande :
certutil -urlfetch -verify carte_cpe.cer
- Puis observer les résultats dans le journal d’évènements Windows.
En cas d’erreur
- Vérifier que le serveur soit bien autorisé à interroger les serveurs de l’Autorité de Certification de l’IGC-Santé.
- Procéder à la purge du cache en lançant les commandes suivantes depuis une console PowerShell :
|
|
- Relancer la commande :
certutil -urlfetch -verify carte_cpe.cer
- pour vérifier la chaîne de validité du certificat.
Comportements et stratégies de gestion de la carte à puce
Verrouillage du poste lors du retrait de la carte à puce
- Ouvrir une console MMC puis ajouter le composant logiciel enfichable Gestion des stratégies de groupe.
- Editer la GPO O_WINDOWS-SMARTCARD à la racine du domaine de l’organisation (ou créer une nouvelle GPO pour cette occasion).
- Editer la stratégie de groupe sélectionnée puis rechercher la clé Configuration ordinateur / Stratégies / Paramètres Windows / Paramètres de sécurité / Stratégies locales / Options de sécurité / Ouverture de session interactive : comportement lorsque la carte à puce est retirée.
- Editer la stratégie de groupe sélectionnée puis rechercher la clé Configuration ordinateur / Stratégies / Paramètres Windows / Paramètres de sécurité / Services systèmes / Stratégie de retrait de la carte à puce.
Désactivation du contrôle de la CRL
Par défaut, Active Directory effectue un contrôle de la CRL pour toute demande d’authentification par certificat. Si ce contrôle ne peut pas être effectuée, l’authentification est rejetée.
Si le contrôleur de domaine n’est pas autorisé à interroger les serveurs de l’Autorité de Certification de l’IGC-Santé, ce problème se produira pour chaque demande d’authentification. Lors des phases de test et de validation de l’infrastructure, il peut être intéressant de désactiver temporairement ce contrôle.
- Depuis les contrôleurs de domaine Active Directory, ouvrir l’éditeur de registre REGEDIT.
- Rechercher la clé :
HKLM\SYSTEM\CurrentControlSet\Services\kdc
- Puis, créer la valeur DWORD : UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors.
- Et y affecter la valeur : 00000001.
- Rechercher la clé :
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
- Puis, créer la valeur DWORD : UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors.
- Et y affecter la valeur : 00000001.
Installation des pilotes de périphériques clients
Installation du pilote ASIP pour cartes CPX
- Brancher le lecteur de carte sur un port USB de libre.
- Insérer la carte CPX dans le lecteur de carte à puce.
- Effectuer un clic droit sur le périphérique Carte à puce inconnue puis cliquer sur l’item Mettre à jour le pilote depuis le menu contextuel.
- L’assistant Mettre à jour les pilotes s’affiche. Cliquer sur l’item Parcourir mon poste de travail pour rechercher les pilotes.
- Depuis l’écran Mettre à jour les pilotes, cliquer sur le bouton Parcourir… puis sélectionner le Pilotes CPS téléchargé.
- À la fin de l’installation du pilote, vérifier qu’il s’agit bien du pilote Carte de Professionnel de Sante CPS3.
- L’assistant Mettre à jour les pilotes s’affiche. Cliquer sur l’item Parcourir mon poste de travail pour rechercher les pilotes.
Problèmes rencontrés
Problème d’authentification par carte à puce
CRLs invalides ou expirées
- Contexte :
- Se produit lors de la phase d’authentification par carte à puce depuis l’écran de login Windows.
- Analyse journaux logs CAPI2 :
- Reproductibilité du défaut :
- Exécution de la requête LDAP en défaut :
- À l’aide de l’utilitaire certutil de Microsoft nous rejouons la commande LDAP en défaut :
- Exécution de la requête LDAP en défaut :
|
|
- La commande nous bascule sur l’Outil de récupération d’URL. En sélection l’option Listes CRL (de CDP) puis en cliquant sur le bouton Extraire, nous obtenons en résultat la CRL.
- En effectuant un double clic sur le résultat, nous accédons au détail de la CRL. Nous observons ainsi que le fichier récupéré date du 07/09/2022.
- La commande nous bascule sur l’Outil de récupération d’URL. En sélection l’option Listes CRL (de CDP) puis en cliquant sur le bouton Extraire, nous obtenons en résultat la CRL.
- Domaine de responsabilité :
- Dans le cas présent, c'est l'autorité de certification racine IGC-SANTE qui fournit une CRL expirée.
- Solution(s) de contournement :
- Désactiver le contrôle de CRL via l’éditeur de registre REGEDIT.
- Etendre la durée de l’extension de la période de validité via GPO.