Comme tout logiciel les services de certificats Microsoft Active Directory sont également soumis à certaines limitesLes produits de la marque sont soumis à des contraintes imposées par leur conception.
Il n'est pas aussi évident de répondre à la question de savoir combien de Noms alternatifs des demandeurs (Subject Alternative Name, SAN) être délivrés avec l'autorité de certification Microsoft.
L'IETF RFC 5280 décrit la structure pour les Subject Alternative Names comme suit :
SubjectAltName ::= GeneralNames
Les GeneralNames sont définis ici comme
GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
Dans l'annexe B, „ASN.1 Notes“, on trouve enfin la définition d'une SEQUENCE de taille „(1..MAX)“ :
The SIZE (1..MAX) construct constrains the sequence to have at least one entry.
MAX indicates that the upper bound is unspecified.
Implementations are free to choose an upper bound that suits their environment.
Ainsi, selon la RFC 5280, il n'y a pas de limite au nombre de Subject Alternative Names dans l'extension de certificat correspondante, ce qui autorise théoriquement un nombre infini de SAN. Mais qu'en est-il de l'autorité de certification Microsoft ?
Pour le savoir, écrivons un petit test avec les PSCertificateEnrollment Module PowerShell qui demande des certificats de manière répétée en augmentant progressivement le nombre de noms alternatifs de demandeurs.
Import-Module PSCertificateEnrollment
1..1000 | ForEach-Object -Process {
$sans = @(1..$_ | % { "san-test-$_.intra.adcslabor.de" })
New-CertificateRequest -Subject "CN=A Test" -Dns $sans | Get-IssuedCertificate -ConfigString "CA02.intra.adcslabor.de\ADCS Labor Issuing CA 1" -CertificateTemplate "ADCSLaborWebServer"
}
Cela se passe bien pendant un certain temps, mais tout à coup, les demandes de certificat sont refusées.

Dans notre test, le dernier certificat délivré avec succès contient 127 noms de demandeurs alternatifs.

L'organisme de certification signale qu'une taille de champ a été dépassée pour toutes les autres demandes de certificat comportant davantage de noms de demandeurs alternatifs.
Field length is greater than maximum 0xc80005e2 (ESE: -1506 JET_errColumnTooBig)

Dans l'affichage des événements, nous trouvons le Événement avec ID 22 de la source Microsoft-Windows-CertificationAuthority avec le même contenu.

Il s'avère que l'autorité de certification n'est pas en mesure de créer une ligne de base de données pour la demande de certificat, car la taille du champ a été dépassée.
Les extensions de certificat sont stockées dans un champ spécifique de la base de données des autorités de certification. Comme on peut le constater, ce champ est limité à 4096 octets, ce qui est dépassé pour d'autres SAN.
certutil -schema Ext

Nous avons donc mal formulé notre question : Il n'y a pas de restriction pour les Nombre des noms alternatifs des demandeurs, mais pour les Taille totale de toutes les extensions de certificat, Le projet Subject Alternative Names est l'un des nombreux projets de ce type.
Le fait que dans mon test, 127 SAN exactement - un nombre qui suggère d'autres clés dans le monde informatique - étaient possibles était plus ou moins le fruit du hasard. Le nombre réellement réalisable dépend du nombre de caractères et d'autres extensions de certificat dans la demande de certificat, comme le montre un nouveau test avec nettement moins de caractères...

Ensuite, je n'enregistre tout simplement pas les demandes de certificat dans la base de données.
Un lecteur m'a suggéré qu'il existe une option permettant de ne pas enregistrer les demandes de certificat dans la base de données des autorités de certification.
Cette option n'est évidemment pas judicieuse dans la plupart des cas, car les certificats correspondants ne peuvent pas être tracés ni révoqués.

Pour que cette option fonctionne, il faut encore activer le paramètre global suivant :
certutil –setreg DBFlags +DBFLAGS_ENABLEVOLATILEREQUESTS
Il est maintenant possible de créer beaucoup plus de SAN ou d'extensions de certificats avant de tomber dans les limites de l'espace de stockage. MS-WCCE protocole en cours.

Le dernier certificat délivré avec succès a une taille d'environ 90 kilo-octets.

Notes
Je suis curieux de savoir si les limitations de la base de données des autorités de certification s'appliquent également aux déclarations sur la la prise en charge future de la cryptographie post-quantique. avec l'autorité de certification Microsoft ont été prises en compte, car on peut supposer que les certificats sont nettement plus importants.
Mise à jour : la taille des champs peut être augmentée
Hans-Joachim Knobloch m'a fait remarquer que Microsoft avait entre-temps a publié un article, qui décrit comment le champ de la base de données peut être agrandi à 16384 octets. De même, cette nouvelle possibilité dans une vidéo YouTube décrites.
Cette possibilité est arrivée pour les systèmes d'exploitation Windows Server à partir de Windows Server 2019 avec un patch en 2022 :
- Windows Server 2019 - Juillet 21, 2022-KB5015880 (OS Build 17763.3232) Preview
- Windows Server 20H2 - July 26, 2022-KB5015878 (OS Builds 19042.1865, 19043.1865, and 19044.1865) Preview
- Windows Server 2022 - Juillet 19, 2022-KB5015879 (OS Build 20348.859) Preview
certutil -setreg DBFlags +0x1000
Comme Microsoft le mentionne dans l'article, il n'est plus possible de restaurer d'anciennes sauvegardes vers l'autorité de certification après avoir modifié le schéma de la base de données. Le paramétrage ne peut pas être annulé.

Après un redémarrage du service d'autorité de certification, nous voyons maintenant que la taille maximale du champ est de 16384 Ko.

Un nouveau test nous permettra de déterminer si nous pouvons désormais accueillir quatre fois plus de SAN, comme nous nous y attendions.

Mais si nous sommes attentifs, nous voyons que 438 n'est pas le quadruple de 127. En effet, la taille totale du certificat est également limitée à 16384KB.
certutil -schema | findstr RawCertificate

Une simple exportation du dernier certificat délivré avec succès confirme notre thèse.

Liens complémentaires :
- Le schéma de la base de données des organismes de certification
- Détails de l'événement avec ID 22 de la source Microsoft-Windows-CertificationAuthority
- Limites des services de certificats Microsoft Active Directory
Sources externes
- Ne croyez pas les mensonges - Microsoft PKI est votre clé pour la crypto-agilité (PKI Solutions LLC)
- Comment mettre en place une AC pour le traitement des certificats non persistants ? (Microsoft)
- Rapport de terrain - Atténuation des risques liés aux modèles d'infrastructure à clés publiques pour les charges de travail éphémères et les postes de travail (PKI Solutions LLC)
- Comment étendre la limite maximale de la taille d'extension dans AD CS ? (Microsoft)
- Améliorations, innovations et sécurité des services de certificats Active Directory (ITOpsTalk sur YouTube)