本文へスキップ
ecdsa.com

証明書のシリアル番号

証明書のシリアル番号は、発行者ごとに一意で最大 20 オクテットの正の整数です。CRL、OCSP リクエスト、インシデント報告で、個々の証明書を識別するために使われます。
別表記serialNumbercertificate serial

RFC 5280 §4.1.2.2 は、シリアル番号が正の値で CA ごとに一意であることを求め、長さを 20 オクテットまでに制限しています。ベースライン要件はさらに、公的な TLS 証明書のシリアル番号は連番であってはならず、2¹⁵⁹ 未満で、CSPRNG の出力を 64 ビット以上含まなければならないと定めています。このランダム性によって、証明書の署名に対する選択プレフィックス衝突攻撃は現実的でなくなります。これは、2008年に MD5 を悪用して行われた不正 CA 攻撃から得られた教訓です。

2019年には、複数の CA で、ソフトウェアが生成するランダムなビットが 63 ビットしかないこと(整数を正に保つために最上位ビットがゼロに固定されていました)が判明し、数百万枚の証明書を失効させて置き換えなければなりませんでした。プレ証明書とその最終的な証明書は、同じシリアル番号を持ちます。

シリアル番号は、ほとんどのツール(openssl x509 -serial)で 16 進数で表示されますが、コロンや先頭のゼロの有無はツールによって異なります。システム間でコピーしたシリアル番号が一致しないように見えるのは、多くの場合これが原因です。

規格と参考文献

すべての用語