Ich verstehe die Mathematik hinter RSA, Elgamal, AES, SHA ziemlich gut, aber nicht, wie die Dinge in der Praxis verwendet werden. Wie unterscheiden sich Unterschlüssel vom Hauptschlüssel? Ich verstehe seinen Zweck von verschiedenen Websites, aber wie wird es intern implementiert? Wie ist es an den Hauptschlüssel gebunden? Ist es eine OpenPGP-Terminologie?
Kommentare
- Dies hat mir sehr geholfen: wiki.debian .org / Unterschlüssel
Antwort
Diese Beitrag von Benutzer rjh aus dem Jahr 2008 im Enigmail-Forum beantwortet es gut:
Ursprünglich in PGP 2.6, Anfang der 90er Jahre, Sie hatten nur ein Schlüsselpaar und es wurde sowohl für die Verschlüsselung als auch für die Signatur verwendet. Die Möglichkeit, zusätzliche Schlüsselpaare zu haben, war mit einigen technischen Herausforderungen verbunden. Letztendlich wurde entschieden, dass die zusätzlichen Schlüsselpaare „Unterschlüssel“ genannt werden, obwohl sie nichts „Unterschlüssel“ enthalten. Ebenso ist das, was Sie Ihren „Schlüssel“ nennen, überhaupt kein Schlüssel – die Terminologie ist ein Überbleibsel aus der Zeit, als ein Schlüssel wirklich ein Schlüssel war. Heutzutage ist ein Schlüssel wirklich eine Sammlung von Schlüsseln, zusammen mit einigen Metadaten für Benutzerkennungen, Signaturen usw.
ZB hat mein „Schlüssel“ vier Schlüsselpaare: 5B8709EB , D0C6AAE4, 71E177DB und 8DB02BBB3.
Was GnuPG Ihren „öffentlichen Schlüssel“ nennt, ist wirklich der älteste Signaturschlüssel in der Sammlung. Da 5B8709EB beispielsweise zuerst erstellt wurde, nennt GnuPG den gesamten Satz von Schlüsseln und Metadaten „5B8709EB-Schlüssel“.
Es ist also möglich, einen Schlüssel zu haben, der ohne Verschlüsselung und Signatur verwendet wird Unterschlüssel überhaupt? „Die Antwort hier lautet Nein, da alle Schlüsselpaare auf einem Schlüssel Unterschlüssel sind. Auch wenn es nur einen davon gibt.
Antwort
Unterschlüssel
Unterschlüsselpakete werden in RFC 4880, OpenPGP, 5.5 Schlüsselmaterialpaket . Sie werden nur durch eine andere Paket-ID unterschieden und erfordern eine verbindliche Signatur, um tatsächlich nützlich zu sein (siehe unten).
Ein Public-Subkey-Paket (Tag) 14) hat genau das gleiche Format wie ein Public-Key-Paket, bezeichnet jedoch einen Unterschlüssel.
Verwendung von Unterschlüsseln
OpenPGP-Unterschlüssel sind Wird für verschiedene Zwecke verwendet:
- Sie können den Primärschlüssel offline oder auf einem sichereren Gerät speichern. Wenn ein Computer mit einem Unterschlüssel beschädigt ist, können Sie den Unterschlüssel problemlos widerrufen, ohne dass Sie ihn widerrufen müssen Ihr Primärschlüssel (Freigeben eines neuen Schlüssels, Abrufen neuer Signaturen, …).
- Verschiedene Unterschlüssel auf verschiedenen Computern, z. B. ein signierender Unterschlüssel auf einem Build-Server. Auch hier ist das Widerrufen einzelner Schlüssel einfach.
- Verwenden eines größeren Primärschlüssels für eine lange Lebensdauer und kürzerer, aber schnellerer Unterschlüssel für den täglichen Gebrauch.
- Einige Algorithmen unterstützen nicht sowohl das Verschlüsseln als auch das Signieren. Ein DSA-Primärschlüssel erfordert einen anderen Schlüssel für die Verschlüsselung ption, normalerweise gepaart mit ElGamal.
Signaturen binden
Es gibt spezielle Signatur-Subtypen zum Binden von Unterschlüsseln an Primärschlüssel (und umgekehrt), die in RFC 4880, OpenPGP, 5.2.1 Signaturtypen :
0x18: Unterschlüsselbindungssignatur
Diese Signatur ist eine Anweisung des Signaturschlüssels der obersten Ebene, die angibt, dass sie den Unterschlüssel besitzt. Diese Signatur wird direkt auf dem Primärschlüssel und dem Unterschlüssel berechnet und nicht auf einer Benutzer-ID oder anderen Paketen. Eine Signatur, die einen signierenden Unterschlüssel bindet, MUSS ein Unterpaket für eingebettete Signaturen in dieser Bindungssignatur enthalten, das eine 0x19-Signatur enthält, die vom signierenden Unterschlüssel auf dem Primärschlüssel und dem Unterschlüssel erstellt wurde.
0x19: Primärschlüssel-Bindungssignatur
Diese Signatur ist eine Anweisung eines signierenden Unterschlüssels, die angibt, dass sie dem Primärschlüssel und dem Unterschlüssel gehört. Diese Signatur wird auf die gleiche Weise wie eine 0x18-Signatur berechnet: direkt auf dem Primärschlüssel und dem Unterschlüssel und nicht auf einer Benutzer-ID oder anderen Paketen.