Grundlagen: Die Key Usage Zertifikaterweiterung

Zertifikaterweiterungen wurden mit der Version 3 des X.509 Standards eingeführt. Die Key Usage Erweiterung ist eine optionale Zertifikaterweiterung, die im RFC 5280 definiert ist und dazu dient, die erlaubten Verwendungszwecke für einen Schlüssel zu begrenzen.

Es handelt sich hierbei um eine einfache Bitmaske.

KeyUsage ::= BIT STRING {
  digitalSignature (0), 
  nonRepudiation (1), 
  keyEncipherment (2), 
  dataEncipherment (3), 
  keyAgreement (4), 
  keyCertSign (5),
  cRLSign (6), 
  encipherOnly (7), 
  decipherOnly (8)
}

Die Darstellung der Bitmaske erfolgt allerdings üblicherweise in hexadezimaler Form.

BitHexBeschreibungLabel
80x0decipherOnlyNur entschlüsseln, in Verbindung mit keyAgreement
70x1encipherOnlyNur verschlüsseln, in Verbindung mit keyAgreement
60x2cRLSignSignieren von Sperrlisten
50x4keyCertSignSignieren von Zertifikaten
40x8keyAgreementWird beispielsweise bei Datenverschlüsselung mit dem Diffie-Hellman Verfahren verwendet
30x10dataEnciphermentDatenverschlüsselung, direkt mit dem im Zertifikat enthaltenen Schlüssel
20x20keyEnciphermentSchlüsselverschlüsselung, d.h. wenn ein symmetrischer Schlüssel zur Datenverschlüsselung eingesetzt wird und dieser mit dem im Zertifikat enthaltenen Schlüssel verschlüsselt wird
10x40nonRepudiationNichtabstreitbarkeit
00x80digitalSignatureDigitale Signatur

Typische Beispiele gängiger Anwendungsfälle für Zertifikate

Kennen Sie TameMyCerts? TameMyCerts ist ein Add-On für die Microsoft Zertifizierungsstelle (Active Directory Certificate Services). Es erweitert die Funktion der Zertifizierungsstelle und ermöglicht die Anwendung von Regelwerken, um die sichere Automatisierung von Zertifikat-Ausstellungen zu realisieren. TameMyCerts ist einzigartig im Microsoft-Ökosystem, hat sich bereits in unzähligen Unternehmen auf der ganzen Welt bewährt und steht unter einer freien Lizenz. Es kann über GitHub heruntergeladen und kostenlos verwendet werden. Professionelle Wartung wird ebenfalls angeboten.

Zertifizierungsstellen-Zertifikate

Zertifizierungsstellen-Zertifikate müssen gemäß RRC 5280 eine Key Usage Erweiterung besitzen. Diese sollte als kritisch markiert sein. Die Erweiterung wird typischerweise keyCertSign und keyCrlSign beinhalten. Microsoft Active Directory Certificate Services wird außerdem digitalSignature eintragen, was gemäß RFC 5280 aber nicht gemacht werden sollte.

Es gibt die Möglichkeit, die Key Usage Erweiterung bei der Installation einer Zertifizierungsstelle abweichend zu konfigurieren.

TLS Webserver-Zertifikate

Bei TLS Webserver-Zertifikaten kommt es darauf an, welche Art Schlüssel zum Einsatz kommt (siehe RFC 5246 und RFC 4492).

SchlüsselalgorithmusWert
RSASignature and Encryption
ECDSASignature
ECDHSignature and Encryption

S/MIME Zertifikate

Bei den Secure/Multipurpose Internet Mail Extensions (S/MIME) sind im Bezug auf E-Mail Nachrichten grundsätzlich zwei Operationen möglich:

  • Signieren versendeter Nachrichten bzw. überprüfen der Signaturen empfangener Nachrichten
  • Verschlüsseln versendeter Nachrichten bzw. entschlüsseln empfangener Nachrichten

Bei der Konfiguration der Zertifikate hat man die Wahl, ob man ein hybrides Zertifikat (das beide Operationen unterstützt) oder getrennte Zertifikate für beide Operationen einsetzen möchte.

Art des ZertifikatsKey Usage Erweiterung
nur Verschlüsseln/EntschlüsselnkeyEncipherment (0x20)
nur Signieren/VerifizierendigitalSignature (0x80)
beide Operationen (hybrides Zertifikat)digitalSignature, keyEncipherment (0xA0)

Rechnen mit der Key Usage Erweiterung

Eine sehr einfache Möglichkeit, eine Key Usage zu errechnen ist mit der Windows PowerShell möglich.

Ein Beispiel: digitalSignature (0x80) und keyEncipherment (0x20) ergeben zusammen 0xA0.

"{0:x}" -f (0x80 -bor 0x20)

Weiterführende Links

Externe Quellen

de_DEDeutsch