Zum Inhalt springen
ecdsa.com

SSHSIG (SSH-Signaturen)

Das Format von OpenSSH zum Signieren beliebiger Daten mit SSH-Schlüsseln (ssh-keygen -Y sign), das jede Signatur an einen Namespace bindet und die Grundlage für per SSH signierte Git-Commits und die Prüfung gegen eine Allowed-Signers-Datei bildet.
Auch geschrieben alsSSHSIGssh-keygen -Y signSSH signaturePROTOCOL.sshsig

Signiert werden die 6 Byte lange Kennung (Magic) SSHSIG, der Namespace-String (etwa git oder file), ein reserviertes Feld, der Hashalgorithmus (sha256 oder sha512) und der Digest der Nachricht; der Namespace verhindert, dass eine für einen Zweck erstellte Signatur für einen anderen Zweck wiederverwendet wird. Die Ausgabe steht in ASCII-Armor zwischen -----BEGIN SSH SIGNATURE----- und -----END SSH SIGNATURE----- und enthält den öffentlichen Schlüssel; Verifizierer müssen ihn daher gegen eine vertrauenswürdige Liste prüfen, statt den eingebetteten Schlüssel zu akzeptieren.

Der Befehl ssh-keygen -Y verify -f allowed_signers -I identity -n namespace -s file.sig prüft eine Signatur; -Y find-principals ordnet eine Signatur Identitäten zu. Unterstützt werden Ed25519, ECDSA, RSA (mit rsa-sha2-*) und FIDO-Schlüssel (sk-), sodass ein Sicherheitsschlüssel Commits mit einer Berührung signieren kann. Der SSH-Signatur-Verifizierer führt dieselben Prüfungen lokal aus.

Standards und Quellen

Alle Begriffe