Перейти к содержимому
ecdsa.com

SSHSIG (SSH-подписи)

Формат OpenSSH для подписи произвольных данных ключами SSH (ssh-keygen -Y sign), который привязывает к каждой подписи пространство имён; на нём основаны подписанные SSH-ключами коммиты Git и проверка по списку allowed signers.
Другие написанияSSHSIGssh-keygen -Y signSSH signaturePROTOCOL.sshsig

Подписываемые данные состоят из 6-байтовой магической строки SSHSIG, строки пространства имён (например, git или file), зарезервированного поля, алгоритма хеширования (sha256 или sha512) и дайджеста сообщения; пространство имён не даёт повторно использовать подпись, созданную для одной цели, в другой. Результат упакован в текстовую обёртку (ASCII armor) между -----BEGIN SSH SIGNATURE----- и -----END SSH SIGNATURE----- и содержит открытый ключ, поэтому проверяющие стороны должны сверять его с доверенным списком, а не принимать встроенный ключ.

ssh-keygen -Y verify -f allowed_signers -I identity -n namespace -s file.sig проверяет подпись, а -Y find-principals находит принципалы, которым соответствует подпись. Поддерживаются ключи Ed25519, ECDSA, RSA (с rsa-sha2-*) и ключи FIDO sk-, поэтому ключ безопасности может подписывать коммиты одним касанием. Инструмент проверки SSH-подписей выполняет те же проверки локально.

Стандарты и ссылки

Все термины