跳到主要内容
ecdsa.com

分离签名

与所签名的数据分开存放的签名,例如 OpenPGP 的 .sig 或 .asc 文件、SSHSIG 文件,或不含封装内容的 CMS 签名,这样原始文件可以保持不变。
其他写法detached signature.sig file.asc signaturedetached PGP signature

gpg --detach-sign file 会写出 file.sig(二进制),使用 --armor 时则写出 file.asc;用 gpg --verify file.asc file 验证。SSH 签名(ssh-keygen -Y sign)、Sigstore bundle、使用分离载荷的 JWS 以及 S/MIME 的 multipart/signed 部分都采用同样的方式。验证者收到的字节必须与签名时的字节完全相同;换行符的变化或重新压缩都会导致验证失败。

有效的分离签名只能证明某个密钥对这些字节签了名:验证者仍需判断该密钥是否属于预期的发布者,最好依据事先固定的指纹或身份来判断,而不是采信签名自己指明的那个密钥。

标准与参考资料

全部术语