L'algorithme de la clé des demandes de certificat n'est pas vérifié par le module Policy de l'autorité de certification.

Supposons le scénario suivant :

  • Es ist eine Zertifikatvorlage für die Verwendung von auf elliptischen Kurven basierenden Schlüsseln konfiguriert (z.B. ECDSA_P256).
  • Als Folge dessen ist eine Mindest-Schlüssellänge von 256 Bit konfiguriert.
  • Es werden dennoch auch Zertifikatanforderungen, die andere ECC-Kurven oder RSA-basierte Schlüssel verwenden, signiert.

Eine Möglichkeit, den Schlüsselalgorithmus bei der Zertifikatausstellung zu identifizieren und dessen korrekte Verwendung zu erzwingen ist mit dem Module de politique TameMyCerts pour Microsoft Active Directory Certificate Services gegeben.

Wie man sieht, ist der „Algorithm Name“ auf ECDSA_P256 eingestellt, man sollte also erwarten, dass nur Zertifikatanforderungen akzeptiert werden, die exakt diesen Schlüsselalgorithmus verwenden.

Überprüfung des Verhaltens

Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.

Um das Verhalten schnell und übersichtlich zu testen, bietet sich das PSCertificateEnrollment Module PowerShell an.

Install-Module PSCertificateEnrollment
Import-Module PSCertificateEnrollment

Mit nachfolgendem Befehl werden insgesamt sieben Zertifikatanforderungen erstellt und unter Verwendung der Zertifikatvorlage „ADCS Labor WebServer ECC“ an die Zertifizierungsstelle gesendet.

Sie verwenden folgende Parameter:

  • Schlüsselalgorithmus ECDSA_P256
  • Schlüsselalgorithmus ECDSA_P384
  • Schlüsselalgorithmus ECDSA_P521
  • Schlüsselalgorithmus ECDH_P256
  • Schlüsselalgorithmus ECDH_P384
  • Schlüsselalgorithmus ECDH_P521
  • Schlüsselalgorithmus RSA (mit Schlüsselgröße 2048 Bit)
(
"ECDSA_P256",
"ECDSA_P384",
"ECDSA_P521",
"ECDH_P256",
"ECDH_P384",
"ECDH_P521",
"RSA"
) | ForEach-Object -Process { 
 New-CertificateRequest -Subject "CN=test" -KeyAlgorithm $_ | 
  Get-IssuedCertificate `
   -ConfigString "ca02.intra.adcslabor.de\ADCS Labor Issuing CA 1" `
   -CertificateTemplate "ADCSLaborWebServerECC" | 
    Select-Object -Property Result
}

Wie man sieht, werden alle Zertifikatanforderungen klaglos von der Zertifizierungsstelle ausgestellt. Eine Prüfung des verwendeten Schlüsselalgorithmus durch das Policy-Modul der Zertifizierungsstelle findet also nicht statt.

Der Schlüsselalgorithmus ist also eher (analog zur Exportierbarkeit des privaten Schlüssels) als Voreinstellung für Zertifikatbeantragungen über die Microsoft Management Console (MMC) oder AutoEnrollment von Clients in einer Active Directory Gesamtstruktur zu verstehen. Die Voreinstellung kommt jedoch bei manuell erzeugten Zertifikatanforderungen, wie sie beispielsweise im Webserver-Fall gängig sind, nicht zur Geltung.

Conclusion

Ein positiver Aspekt dieses Verhaltens ist, dass man (im Fall abseits von AutoEnrollment gestellter Zertifikatanforderungen) für die Ausstellung von Zertifikaten, die sowohl RSA- als auch ECC-Schlüssel verwenden können, unter Umständen nur eine einzige Zertifikatvorlage benötigt. Es reicht dann, die Schlüsselgröße zu reduzieren.

Dies ist allerdings nur möglich, wenn alle verwendeten Schlüsselalgorithmen die gleichen Fähigkeiten in Hinsicht auf Signatur und Verschlüsselung haben wie der in der Zertifikatvorlage konfgurierte (ECDSA beispielsweise kann nur zum Signieren verwendet werden). Die Key Usage Erweiterung der ausgestellten Zertifikate passt sich an die Fähigkeiten des konfigurierten Key Storage Provider an.

Auf der anderen Seite bedeutet dies allerdings auch, dass es zu unerwünschten Fehl-Ausstellungen kommen kann, beispielsweise, wenn Zertifikatanforderungen mit zu geringen RSA-Schlüsselgrößen signiert werden oder die falschen Schlüsselalgorithmen beantragt werden (beispielsweise ECDH Schlüssel für Signaturzertifikate).

Dies kann insbesondere dann auftreten, wenn Zertifikatanträge über die Microsoft Management Console (MMS) gestellt werden, da hier die Standardeinstellungen gewählt werden.

Eine entsprechende Prüfung muss also vorgelagert stattfinden. Es ist außerdem sinnvoll, die Standardeinstellung für den Schlüssel-Algorithmus auf einen auf elliptischen Kurven basierten Algorithmus zu konfigurieren, damit nicht versehentlich RSA-Schlüssel mit zu kurzen Schlüssellänmgen signiert werden.

Les commentaires sont fermés.

fr_FRFrançais