Aller au contenu
ecdsa.com

SSHSIG (signatures SSH)

Le format d’OpenSSH pour signer des données arbitraires avec des clés SSH (ssh-keygen -Y sign), qui lie un espace de noms à chaque signature et sur lequel reposent les commits Git signés avec SSH et la vérification par liste de signataires autorisés (allowed signers).
Autres graphiesSSHSIGssh-keygen -Y signSSH signaturePROTOCOL.sshsig

Les données signées sont la valeur magique de 6 octets SSHSIG, la chaîne d’espace de noms (par exemple git ou file), un champ réservé, l’algorithme de hachage (sha256 ou sha512) et le condensat du message ; l’espace de noms empêche qu’une signature produite pour un usage soit rejouée dans un autre. La sortie est encapsulée en armure ASCII entre -----BEGIN SSH SIGNATURE----- et -----END SSH SIGNATURE----- et contient la clé publique : les vérificateurs doivent donc contrôler cette clé par rapport à une liste de confiance plutôt que de l’accepter telle quelle.

ssh-keygen -Y verify -f allowed_signers -I identity -n namespace -s file.sig vérifie une signature ; -Y find-principals associe une signature à des identités. Les clés Ed25519, ECDSA, RSA (avec rsa-sha2-*) et FIDO sk- fonctionnent, si bien qu’une clé de sécurité peut signer des commits d’un simple toucher. Le vérificateur de signatures SSH effectue les mêmes contrôles en local.

Normes et références

Tous les termes