AD CS

Les services de certificats Active Directory (AD CS) fournissent des services personnalisables pour l’émission et la gestion de certificats qui sont utilisés dans les systèmes de sécurité logiciels employant des technologies de clé publique.

 

Fonctionnalités des services AD CS

Autorités de certification :

Les autorités de certification racines et secondaires sont utilisés pour émettre des certificats aux utilisateurs, aux ordinateurs et aux services, ainsi que pour gérer la validité des certificats.

 

Inscription d’autorité de certification via le Web:

L’inscription via le Web permet aux utilisateurs de se connecter à une autorité de certification au moyen d’un navigateur Web afin de demander des certificats et de récupérer des listes de révocation de certificats.

Répondeur en ligne :

Le service Répondeur en ligne accepte les demandes d’état de révocation pour des certificats spécifiques, évalue l’état de ces certificats et renvoie une réponse signée contenant les informations demandées sur l’état des certificats.

 

Les applications prises en charge par les services AD CS incluent les extensions S/MIME (Secure/Multipurpose Internet Mail Extensions), les réseaux sans fil sécurisés, les réseaux privés virtuels (VPN), la sécurité du protocole Internet (IPsec), le système de fichiers EFS, l’ouverture de session par carte à puce, SSL/TLS (Secure Socket Layer/Transport Layer Security) et les signatures numériques.

 

Standards PKCS

PKCS#7

Standard de syntaxe de message cryptographique

Cf.RFC 2315. Utilisé pour signer et/ou chiffrer des messages dans le cadre d'unePKI. Sert également à la transmission de certificats (notamment en réponse à un message PKCS#10). À l'origine deS/MIME, qui est désormais décrit sous le nom Cryptographic Message Syntax (CMS) dans laRFC 5652.

PKCS#8

Standard de syntaxe d'information de clé privée

Cf.RFC 5958.

PKCS#10

Standard de requête de certificat

Cf.RFC 2986. Format des messages envoyés à uneautorité de certificationet demandant la signature d'une paire de clés.

PKCS#12

Standard de syntaxe d'information personnelle

Cf. RFC 7292. Définit un format de fichier généralement utilisé pour stocker la clé privée et le certificat de clé publique correspondant en les protégeant par un mot de passe.

 

Disponibilité de l’infrastructure

L’infrastructure PKI est séparée en différents composants, chacun ayant son propre SLA (service-level agreement).

Enrôlement :

Cette fonctionnalité est considérée comme non critique au sein de l’infrastructure au regard de l’usage des certificats. Un enrôlement échoué pourra toujours être reporté.

 

Révocation :

Cette fonctionnalité est critique. Un certificat compromis doit être révoqué aussi rapidement que possible. Le SLA de cette fonctionnalité dépend également de la fonctionnalité de vérification des statuts en raison du fait que l’information de révocation est donnée par la CRL (ou le jeton d’un répondeur OCSP si disponible).

Vérification du statut :

La vérification du statut d’un certificat dépend de la disponibilité d’une CRL valide. Ce qui signifie qu’à minima un fichier CRL doit être disponible et valide.

     

AC Racine

DN

Taille de la clé

Algorithme de signature

Période de validité

Validité de la CRL

CN = CAROOT

O = CONTOSO

L = EMEA

C = FR

4096

SHA 256

20 ans

20 ans

 

AC intermédiaire

DN

Taille de la clé

Algorithme de signature

Période de validité

Validité de la CRL

CN = CAINTER

O = CONTOSO

L = EMEA

C = FR

2048

SHA 256

10 ans

14 jours

 

CRL

La CRL doit être accessible par les porteurs de certificats afin de valider ces derniers. La publication est réalisée à partir de la CA Intermédiaire et copiée sur deux serveurs IIS paramétrés derrière une VIP en mode round robin.

Autorité

Type

Point d’accès

AC Racine CONTOSO

HTTP

http://crl.contoso.local/pki/CAROOT.crl

AC Intermédiaire CONTOSO

HTTP

http://crl.contoso.local/pki/CAINTER.crl

 

AIA

La publication AIA contenant chaque autorité est mutualisée avec le point de publication de la CRL sur deux serveurs IIS paramétrés derrière une VIP en mode failover.

Autorité

Type

Point d’accès

AC Racine

HTTP

http://crl.contoso.local/pki/CAROOT.crt

AC Intermédiaire

HTTP

http://crl.contoso.local/pki/CAINTER.crt

 

Matrice de flux

Protocole

Port

Source

Destination

Action

Kerberos Password v5

TCP 464

Autorité de Certificat

Contrôleurs de domaine

Allow

LDAP

TCP 389

Autorité de Certificat

Contrôleurs de domaine

Allow

LDAP GC

TCP 3268

Autorité de Certificat

Contrôleurs de domaine

Allow

LDAPS

TCP 636

Autorité de Certificat

Contrôleurs de domaine

Allow

LDAPS GC

TCP 3269

Autorité de Certificat

Contrôleurs de domaine

Allow

Kerberos

TCP & UDP 88

Autorité de Certificat

Contrôleurs de domaine

Allow

Netbios Session

UDP 137

Autorité de Certificat

Contrôleurs de domaine

Allow

NetBios Datagram

UDP 138

Autorité de Certificat

Contrôleurs de domaine

Allow

SMTP

TCP 25

Autorité de Certificat

Relai SMTP

Allow

DNS

UDP 53

Autorité de Certificat

Serveurs DNS

Allow

NTP

UDP 123

Autorité de Certificat

Serveurs NTP

Allow

File Sharing

TCP 139

TCP/UDP 445

Autorité de Certificat

IIS

Allow

DCOM / RPC

TCP / UDP 49152 - 65535

Tous les clients Microsoft

Autorité de Certificat

 

Allow

RPC Call

TCP 135

Tous les clients

Autorité de Certificat

 

Allow

HTTPS

TCP 443

Tous les clients

Autorité de Certificat

 

Allow

HTTP

TCP 80

Tous les clients

Autorité de Certificat

 

Allow

Prérequis

Afin de permettre l’installation de l’infrastructure de certificats, il est impératif de mettre en œuvre les prérequis suivants:

Un utilisateur du domaine avec le droit «enterprise admin», toutes les actions doivent être réalisées avec ce compte sur la CA intermédiaire.

Installer un serveur en mode autonome. Ce serveur sera le serveur racine de l’infrastructure de la PKI Microsoft.

Définir le nom de la racine de certificat: RootCA <Nomduclientouserviceinfra>

Choisir l’emplacement de la liste de révocation (Alias + répertoire virtuel IIS vers le serveur intermédiaire de la PKI)

Définir le niveau d’encryptions de la PKI (SHA256 / 2048)

La périodicité de renouvellement du certificat (10 ans, 20 ans, etc …)

CAPolicy

Ce fichier de configuration permet de paramétrer et restreindre la configuration de la PKI pour son installation ou le renouvellement de certificat. Le fichier CAPolicy.inf doit être encodé en AINSI et enregistré dans le répertoire d’installation Windows (exemple «C:\Windows\»). Ce fichier n’est pas obligatoire pour l’installation d’une PKI.

Exemple de CAPolicy pour la CA Racine:

[Version]  

Signature="$Windows NT$"  

[PolicyStatementExtension]  

Policies=InternalPolicy  

[Certsrv_Server]  

RenewalKeyLength=4096  

RenewalValidityPeriod=Years  

RenewalValidityPeriodUnits=20  

CRLPeriod=weeks  

CRLPeriodUnits=12  

CRLDeltaPeriod=Hours  

CRLDeltaPeriodUnits=0  

LoadDefaultTemplates=0  

AlternateSignatureAlgorithm=1

Exemple de CAPolicy pour la CA Intermédiaire:

[Version]  

Signature="$Windows NT$"  

[PolicyStatementExtension]  

Policies=InternalPolicy  

[Certsrv_Server]  

RenewalKeyLength=2048  

RenewalValidityPeriod=Years  

RenewalValidityPeriodUnits=5

CRLPeriod=weeks  

CRLPeriodUnits=20

CRLDeltaPeriod=Years

LoadDefaultTemplates=0  

AlternateSignatureAlgorithm=1  

 

Syntaxe

Vous pouvez trouver des explications sur la syntaxe du fichier CAPolicy.inf sur le site suivant:

https://blogs.technet.microsoft.com/askds/2009/10/15/windows-server-2008-r2-capolicy-inf-syntax/

Installation et configuration serveur IIS publication CRL/AIA

Sur les serveurs dédiés à la publication de la liste de révocation et des certificats, il faut installer le rôles «Web Server» avec les options suivantes:

 

cid:image001.png@01D28CFE.EECBA130

 

Configuration IIS – répertoire virtuel

Remarques

Captures

Ouvrir la console IIS et ajouter un répertoire virtuel à partir du site par défaut

Configurer le répertoire virtuel

cid:image002.png@01D28D00.173F3360

Ajoutez les droits NTFS suivants

<DOMAIN>\Cert Publishers   Modify


IIS AppPool\DefaultAppPool   Read&execute, Read, List


icacls D:\DATA\PKI /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)

 

Dans le volet options du répertoire virtuel (PKI), double cliquer sur «request filtering»

cid:image003.png@01D28D00.173F3360

Dans la colonne Actions, cliquez sur «Edit Feature Settings…»

Cochez l’option «Allow double escaping»

 

Validez en cliquant sur le bouton «OK»

«Allow double escaping» en ligne de commande, exécutez la commande suivante à partir du chemin:

 

«%windir%\system32\inetsrv»

 

Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True

Ouvrez une fenêtre de commandes DOS, exécutez la commande «IISRESET»

cid:image006.png@01D28D00.173F3360

 

Création de l’alias DNS

Dans la console DNS, il faut créer un enregistrement de type CNAME qui pointe vers le serveur IIS sur lequel est installé la publication de la CRL et de l’AIA:

 

Installation de la AC Racine

Commandes PowerShell.

Commentaires

Captures

Ajout du rôle et des outils de management

Add-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools

 

Installation du rôle

Install-AdcsCertificationAuthority –CAType StandaloneRootCA –CACommonName "CAROOT,O=CONTOSO,L=EMEA,C=FR" –KeyLength 4096 -ValidityPeriod Years -ValidityPeriodUnits 20 –HashAlgorithm SHA256 –CryptoProviderName "RSA#Microsoft Software Key Storage Provider" -OverwriteExistingKey

Paramétrages CRL

Commentaires

Captures

Paramétrage de la CRL

$crllist = Get-CACrlDistributionPoint; foreach ($crl in $crllist) {Remove-CACrlDistributionPoint $crl.uri -Force}

Add-CACRLDistributionPoint -Uri D:\DATA\PKI\%3%8.crl -PublishToServer -Force

Add-CACRLDistributionPoint -Uri http://crl.contoso.local/pki/%3%8.crl -AddToCertificateCDP -Force

 

Paramétrage AIA

$aialist = Get-CAAuthorityInformationAccess; foreach ($aia in $aialist) {Remove-CAAuthorityInformationAccess $aia.uri -Force}

Paramétrage temps de validité de la CRL

certutil -setreg CA\CRLPeriod Years

certutil -setreg CA\CRLPeriodUnits 20

Paramétrage du temps de validité des certificats émis

Certutil -setreg CA\ValidityPeriodUnits10

Certutil -setreg CA\ValidityPeriod "Years"

Configuration de la CA dans la base de registre et mise à jour du fichier CRL

 

certutil -setreg "CA\DSConfigDN" "CN=Configuration,DC=<Domain>,DC=local"

restart-service certsvc

Start-sleep 30

certutil –crl

 

Préparation pour l’export des fichiers crt et crl

Sur le serveur baissé le niveau de sécurité des partages pour permettre la connexion au partage en mode anonyme

Créer un répertoire et le partager
  New-item -path c:\echange -type directory -verbose
  new-smbshare -name echange c:\echange -FullAccess SYSTEM, EVERYONE

 Copier les fichiers
  
Copy-item c:\windows\system32\certsrv\certenroll\*.cr* c:\echange -verbose

Publication du certificat RootCA dans Active Directory

A partir de la AC intermédiaire, se connecter au partage de la AC Racine et copier les fichiers dans un répertoire temporaire.

 

 Ouvrir une fenêtre de commandes DOS (en mode administrateur UAC) et exécuter les  commandes suivantes:

  certutil -dspublish -f <
Nom_du_certificat_root>.crt RootCA

  certutil -addstore -f root <
Nom_du_certificat_root>.crt

  certutil –addstore -f root <
nom_du_fichier_crl>.crl

Supprimez le répertoire temporaire

Cette configuration inscrit des informations dans la partition configuration d’Active Directory

error,warning,alert,wrong,exclamation

Ces commandes doivent être exécutées avec un compte ayant comme privilèges «Enterprise Admin»

Installation de la AC intermédiaire

Il est possible d’installer le rôle Certification Authority, soit par l’interface graphique ou par ligne de commandes PowerShell (en mode administrateur). Ces commandes doivent être exécutées avec un compte ayant les droits «Enterprise Admin».

Commandes PowerShell.

Commentaires

Captures

Ajout du rôle et des outils de management

Add-WindowsFeature Adcs-Cert-Authority –IncludeManagementTools

Installation du rôle

Install-AdcsCertificationAuthority -CAType EnterpriseSubordinateCA -CACommonName "CAINTER,O=CONTOSO,L=EMEA,C=FR" -KeyLength 2048 -HashAlgorithmName SHA256 -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" -OutputCertRequestFile "c:\ResquestPKI.req"

 

Validation de la demande de certificat auprès de la CARoot

Commentaires

Captures / Commandes

Copiez la demande de certificat vers la RootCA

 

A partir de la RootCA, soumettre la requête

certreq -submit <Path>\<Nom_du_fichier_de_la_CA_inter>.req

Validez la demande

Ouvrez la mmc de l’autorité de certificats et validez la demande en cours

Exportez le certificat

certreq -retrieve <ID_Request> <Path>\ <Nom_du_fichier_de_la_CA_inter>.crt

 

 

 

Copiez le fichier crt vers la CA intermédiaire et exécutez les commandes ci-dessous

 

Installer le certificat

certutil -installcert <Path>\<Nom_du_fichier_de_la_CA_inter>.crt

Démarrez la CA

 

Start-service certsvc

Copie des fichiers crt et crl vers l’emplacement de publication

copy-item c:\windows\system32\certsrv\certenroll\*.cr* D:\DATA\PKI\

 

Paramétrage AC Intermédiaire

Commentaires

Captures / Commandes

Configuration AIA et CPD

CDP:

 

$crllist = Get-CACrlDistributionPoint; foreach ($crl in $crllist) {Remove-CACrlDistributionPoint $crl.uri -Force};

Add-CACRLDistributionPoint -Uri C:\PKI\%3%8.crl -PublishToServer –Force

Add-CACRLDistributionPoint -Uri C:\PKI\%3%8%9.crl -PublishDeltaToServer –Force

Add-CACRLDistributionPoint -Uri http://crl.contoso.local/pki/%3%8.crl -AddToCertificateCDP –Force

Add-CACRLDistributionPoint -Uri http://crl.contoso.local/pki/%3%8%9.crl -AddToCertificateCDP –Force

AIA:

$aialist = Get-CAAuthorityInformationAccess; foreach ($aia in $aialist) {Remove-CAAuthorityInformationAccess $aia.uri -Force};

Add-CAAuthorityInformationAccess -AddToCertificateAia http://crl.contoso.local/pki/%3%4.crt –Force

 

Configuration options CA CRL

Certutil -setreg CA\CRLPeriodUnits 2

Certutil -setreg CA\CRLPeriod "Weeks"

Certutil -setreg CA\CRLDeltaPeriodUnits 1

Certutil -setreg CA\CRLDeltaPeriod "Days"

Certutil -setreg CA\CRLOverlapPeriodUnits 12

Certutil -setreg CA\CRLOverlapPeriod "Hours"

 

Certutil -setreg CA\ValidityPeriodUnits 5

Certutil -setreg CA\ValidityPeriod "Years"

restart-service certsvc

Start-Sleep 20

certutil –crl

 

Création modèle de certificat

Nous allons dans ce chapitre décrire la création d’un modèle de certificat.

Pour se faire, il faut ouvrir la MMC «Certification Auhority» sur la CA intermédiaire

    Dans la console, faire un clic droit sur le dossier nommé «Certificate Template»

    Sélectionnez dans le menu déroulant, sélectionnez «Manage», Afin d’ouvrir les templates de certificats gérés par le serveur

    Sélectionnez dans la liste des modèles, le modèle «Domain Controller Authentication»