跳到主要内容
ecdsa.com

密钥或证书指纹

公钥或证书的简短哈希,用于人工核对或在配置中识别和比较密钥或证书,例如 SSH 密钥的 SHA256:… 或证书 DER 字节的 SHA-256。
其他写法key fingerprintcertificate fingerprintthumbprintSHA256 fingerprint

各个生态系统计算哈希的对象各不相同。OpenSSH 显示 SHA256: 加上密钥 blob 的 SHA-256 的无填充 base64 编码(自 OpenSSH 6.8 起为默认格式;旧版工具输出以冒号分隔的 MD5)。X.509 指纹是整个 DER 证书的哈希,而不是证书中的字段,因此每次续期都会改变。SPKI 指纹(HPKP 固定值、pin-sha256、证书透明度查询)只对 SubjectPublicKeyInfo 计算哈希,用同一密钥续期后保持不变。JWK 指纹(RFC 7638)对必需成员组成的规范化 JSON 计算哈希。OpenPGP v4 指纹是 SHA-1(40 个十六进制数字),v6 指纹是 SHA-256(RFC 9580)。

只有用同一算法对同一编码计算哈希,两个指纹才会相同:SSH 的 SHA256 指纹与 .pub 文件的 sha256sum 不同,同一密钥的证书指纹与 SPKI 固定值也不同。要比较完整的值:攻击者可以通过穷举生成密钥,使其简短前缀或“密钥图案”(key art)与目标相同。

标准与参考资料

全部术语