Welche Schlüssellängen sollten für Zertifizierungsstellen und Zertifikate verwendet werden?

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
102416080
2048224112
3072245128
7680384192
15360512 (521)256
Quelle: The Case for Elliptic Curve Cryptography (National Security Agency, Archivlink)

Empfehlungen

  • 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:

Externe Quellen

de_DEDeutsch