Bei der Planung einer Public Key Infrastruktur kommt naturgemäß die Frage auf, welche Schlüssellängen für Zertifizierungsstellen- und Endzertifikate gewählt werden sollten.
Die Betrachtung von kryptographischen Verfahren und deren Bewertung hinsichtlich ihrer Verwendbarkeit kann immer nur eine Momentaufnahme zum Zeitpunkt der Veröffentlichung des Beitrags sein. Die Bewertung kann zukünftig z.B. aufgrund von Sicherheitsvorfällen oder technischem Fortschritt durchaus überholt sein.
Es gibt auch die Möglichkeit, Zertifikate mit Elliptic Curve Cryptography (ECC) Schlüsseln zu signieren. Da dies in der Praxis bislang aber noch kaum eine Rolle spielt, wurde die Verwendung von ECC nur oberflächlich in die Ausarbeitung aufgenommen.
Einschätzung der Schlüsselstärke
Für ein besseres Verständnis ist es lohnenswert, die RSA-Schlüssellängen mit einem bekannten symmetrischen Verfahren wie AES zu vergleichen. Hierzu finden sich Ausarbeitungen beim amerikanischen National Institute for Standards and Technologies (NIST) sowie dem deutschen Bundesamt für Sicherheit in der Informationstechnik (BSI).
Schlüssellänge (RSA) | Schlüssellänge (ECC) | Vergleichbare symmetische Schlüssellänge |
---|---|---|
1024 | 160 | 80 |
2048 | 224 | 112 |
3072 | 245 | 128 |
7680 | 384 | 192 |
15360 | 512 (521) | 256 |
Empfehlungen
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.
- Das amerikanische National Institute for Standards and Technology (NIST) empfiehlt RSA Schlüssellängen von 2048 Bit, wenn die Schlüssel und die damit geschützten Daten nicht über das Jahr 2030 hinaus verwendet werden sollen.
- Das deutsche Bundesamt für Sicherheit in der Informationstechnik (BSI) empfiehlt RSA Schlüssellängen von 3000 (3072) Bit, wenn die Schlüssel und die damit geschützten Daten über das Jahr 2022 verwendet werden sollen.
- Das derzeit empfohlene Maximum für RSA Schlüssel mit einer Microsoft Zertifizierungsstelle sind 4096 Bit.
Auswahl der Schlüssellänge
Die Wahl der Schlüssellänge hängt von verschiedenen Faktoren ab:
- Wie lange werden die Schlüssel im Umlauf sein?
- Können alle meine Anwendungen mit der gewählten Schlüssellänge umgehen?
- Welcher Rechenaufwand besteht bei der Verwendung der Schlüssel?
Bei der Auswahl von Schlüsselalgorithmus und -länge ist auch die vorgesehende Nutzungszeit zu beachten.
Beispielsweise kann ein S/MIME-Zertifikat nur eine Gültigkeitsdauer von einigen Jahren haben, vielleicht sollen die damit geschützten verschlüsselten Daten aber viel länger geheim gehalten werden.
RSA-Schlüssellängen größer als 4096 Bit sind in den meisten Fällen nicht mehr sinnvoll einsetzbar, da der Rechenaufwand im Vergleich zum Gewinn an Schlüsselstärke überproportional ansteigt. Hier zeigen sich auf elliptischen Kurven basierende Schlüssel als deutlich effizienter, sodass diesen der Vorzug gegeben werden sollte.
Wie ist es um die Anwendungskompatibilität bestellt?
Im Jahr 2020 sollten die meisten Anwendungen in der Lage sein, mit 4096 Bit RSA-Schlüsseln umzugehen. Für größere Schlüssellängen muss dies nicht zwingend der Fall sein.
Alle Microsoft CSP und KSP können RSA-Schlüssel bis zu 16384 Bit erzeugen und verwenden. Die Graphische Installationsroutine für die Microsoft Zertifizierungsstelle wird jedoch Schlüssellängen über 4096 Bit nicht erlauben.
Falls erforderlich können längere Schlüssel durch Installation der Zertifizierungsstelle via PowerShell erzeugt werden. Zu beachten ist jedoch, dass der eingesetzte Key Storage Provider (KSP) (etwa bei Einsatz eines Hardware Security Module) diese Schlüssellängen ebenfalls unterstützen muss.
Ebenfalls ist zu beachten, dass bei RSA-Schlüsseln der Rechenaufwand mit zunehmener Schlüsselgröße extrem annimmt, und größere Schlüssel daher in den wenigsten Fällen sinnvoll sind – es wird definitiv Auswirkungen auf die Performance aller Anwendungen, welche die Zertifikate verden werden, haben.
Zusammenfassung
Folgende Konstellation stellt sich in vielen Fällen als sinnvoll heraus:
- RSA-Schlüssel für Zertifizierungsstellen-Zertifikate sollten aufgrund der erwarteten langen Gültigkeitsdauer der Zertifikate mindestens eine Schlüssellänge von 3072 Bit aufweisen, höchstens jedoch 4096 Bit.
- Sofern die Kompatibilität sichergestellt ist, kann eine (effiziente) höhere Bit-Sicherheit durch den Einsatz von ECC-Schlüsseln erreicht werden.
- RSA-Schlüssel für End-Entitätszertifikate sollten mindestens eine Schlüssellänge von 2048 Bit, besser jedoch 3072 Bit aufweisen.
Weiterführende Links:
- Grundlagen: Cryptographic Service Provider (CSP) und Key Storage Provider (KSP)
- Liste der Use Cases der Zertifikate, für welche die Kompatibilität zu auf elliptischen Kurven (ECC) basierenden Schlüsseln bekannt ist
Externe Quellen
- Recommendation for Key Management, Part 1: General (National Institute for Standards and Technology)
- The Case for Elliptic Curve Cryptography (National Security Agency, Archivlink)
- Maximum key length for cryptographic provider in AD CS 2012R2 (Microsoft Technet Foren)
- BSI TR-02102 Kryptographische Verfahren: Empfehlungen und Schlüssellängen (Bundesamt für Sicherheit in der Informationstechnik)
- CNG Key Storage Providers (Microsoft)
6 Gedanken zu „Welche Schlüssellängen sollten für Zertifizierungsstellen und Zertifikate verwendet werden?“
Kommentare sind geschlossen.