it-swarm-eu.dev

Erhöht der Ablauf des OpenPGP-Schlüssels die Sicherheit?

Ich habe einen neuen OpenPGP-Schlüssel erstellt, um ein Softwarepaket in einem Quell-Repository mit einem Ablaufdatum in drei Jahren zu signieren. Es schien eine gute Sicherheitsmaßnahme zu sein, denn wenn der Schlüssel kompromittiert oder gestohlen wird, ist der Schaden begrenzt.

Aber dann dachte ich an den Tag, an dem ich meinen neuen Schlüssel unterschreiben muss. Das Signieren des neuen Schlüssels mit dem alten Schlüssel entspricht dem Beibehalten des alten Schlüssels und trägt somit nicht zur Sicherheit bei.

Verbessert das Festlegen eines Ablaufdatums die Schlüsselsicherheit? Wenn ja, wie lautet die beste Richtlinie für das Ablaufen/Ersetzen von Schlüsseln?

60
Adam Matan

tl; dr : Das Ablaufdatum ist kein vernünftiger Mechanismus, um zu schützen den Primärschlüssel, und Sie sollten einen Widerruf haben Zertifikat zur Hand.


Die etwas längere Version ist, dass die Auswirkung des Ablaufdatums zwischen Primär- und Unterschlüssel unterschiedlich ist und auch, was Sie verhindern möchten.

Unterschlüssel

Bei Unterschlüsseln ist der Effekt recht einfach: Nach einem bestimmten Zeitraum läuft der Unterschlüssel ab. Dieses Ablaufdatum kann nur mit dem Primärschlüssel geändert werden. Wenn ein Angreifer Ihren Unterschlüssel erhält (und nur diesen), wird er nach dem Ablaufdatum automatisch inaktiviert.

Das Ablaufdatum eines Unterschlüssels ist ein großartiges Tool, um anzukündigen, dass Sie Ihre Unterschlüssel regelmäßig wechseln und dass es Zeit für andere ist, Ihren Schlüssel nach einer bestimmten Zeit zu aktualisieren.

Primärschlüssel

Bei Primärschlüsseln ist die Situation anders. Wenn Sie Zugriff auf den privaten Schlüssel haben, können Sie das Ablaufdatum nach Ihren Wünschen ändern . Das heißt, wenn ein Angreifer Zugriff auf Ihren privaten Schlüssel erhält, kann er die Gültigkeitsdauer beliebig verlängern. Im schlimmsten Fall verlieren Sie gleichzeitig den Zugriff auf den privaten Schlüssel, und selbst Sie können den öffentlichen Schlüssel nicht mehr widerrufen (Sie haben ein gedrucktes oder anderweitig offline und sicher gespeichertes Widerrufszertifikat, oder?). Ein Ablaufdatum kann hilfreich sein, wenn Sie nur die Kontrolle über den Schlüssel verlieren (während kein Angreifer die Kontrolle darüber hat). Der Schlüssel läuft nach einer bestimmten Zeit automatisch ab, sodass kein unbrauchbarer Schlüssel mit Ihrem Namen für immer auf den Schlüsselservern gespeichert ist.

Schwache nicht widerrufene Schlüssel wiederherstellen

Schlimmer noch, Ablaufdaten können ein falsches Sicherheitsgefühl vermitteln. Der Schlüssel auf den Schlüsselservern ist abgelaufen. Warum also die Mühe machen, ihn zu widerrufen? Es gibt eine große Anzahl gut verbundener RSA 512-Bit-Schlüssel im Schlüsselservernetzwerk und wahrscheinlich eine vergleichsweise große Anzahl schwacher DSA-Schlüssel (aufgrund der Debian RNG-Probleme). Mit schnelleren Prozessoren und möglicherweise neuen Erkenntnissen über Algorithmusschwächen kann ein Angreifer in Zukunft möglicherweise den abgelaufenen, aber nicht widerrufenen Schlüssel knacken und verwenden!

Bewahren Sie stattdessen ein Widerrufszertifikat sicher auf

Wenn Sie über ein Widerrufszertifikat verfügen und sicher sind, dass Sie niemals gleichzeitig den Zugriff auf Ihren privaten Schlüssel und das Widerrufszertifikat verlieren (Brand, (physischer) Diebstahl, offizielle Einrichtungen, die Ihr Haus durchsuchen), gibt es absolut sinnlos beim Festlegen eines Ablaufdatums abgesehen von möglicher Verwirrung und mehr Arbeit bei der Erweiterung.

69
Jens Erat

Beachten Sie, dass ein Ablaufdatum auf dem Hauptschlüssel nichts für die Sicherheit bedeutet, da jeder, der dies kompromittiert hat, es trotzdem einfach verlängern kann. Siehe http://madduck.net/blog/2006.06.20:expiring-gpg/ .

(Ablaufende Unterschlüssel können dagegen nützlich sein, und die Option bei der Schlüsselerstellung legt das Datum für alle Schlüssel fest.)

7
SamB

Verbessert das Festlegen eines Ablaufdatums die Schlüsselsicherheit?

Ja. Sie haben auch schon gesagt warum:

Es schien eine gute Sicherheitsmaßnahme zu sein, denn wenn der Schlüssel kompromittiert oder gestohlen wird, ist der Schaden begrenzt.

Angenommen, Sie sind kompromittiert und der Schlüssel wurde gestohlen, besteht Ihre erste Aktion darin, den Schlüssel zu widerrufen und einen neuen auszugeben. Es wird jedoch nicht jeder nach widerrufenen Schlüsseln suchen. Sie werden es blind weiter verwenden, bis es ungültig wird.

Wenn Sie kompromittiert werden, kann jemand nur so tun, als wären Sie ein festes Fenster.

Wenn ja, wie lautet die beste Richtlinie zum Ersetzen von Ablaufdaten und Schlüsseln?

Es gibt wirklich keine - die Frage ist eher "Was ist das Beste, was ich angesichts der Einschränkungen X Y Z tun kann". Wenn Sie beispielsweise das Fenster zu klein einstellen, stören Sie die Benutzer. Wenn Sie jedoch zu hoch sind, eröffnen Sie das Risiko, wenn Sie kompromittiert werden. Es kommt wirklich auf eine Entscheidung an - wie empfindlich ist genau das, was Sie schützen, und wie oft/unpraktisch ist es, Schlüssel häufig zu ersetzen?

0
user2213