X.509証明書
X.509証明書(X.509 Certificate)
デジタル証明書の標準フォーマット
X.509証明書のフォーマットを利用したデジタル証明書の一つがSSLサーバ証明書(SSL/TLSサーバー証明書)
公開鍵情報(subjectPublicKeyInfo)という項目が含まれるぐらいなので、公開鍵暗号方式の仕組みにとても関わりが深い
code:memo
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }
TBSCertificate ::= SEQUENCE {
version 0 EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID 1 IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
subjectUniqueID 2 IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
extensions 3 EXPLICIT Extensions OPTIONAL
-- If present, version MUST be v3
}
Version ::= INTEGER { v1(0), v2(1), v3(2) }
CertificateSerialNumber ::= INTEGER
Validity ::= SEQUENCE {
notBefore Time,
notAfter Time }
Time ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime }
UniqueIdentifier ::= BIT STRING
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING
-- contains the DER encoding of an ASN.1 value
-- corresponding to the extension type identified
-- by extnID
ref: RFC 5280 > Section4.1 Basic Certificate Fields
tbsCertificate: TBSCertificate
バージョン(version)
X.509証明書のバージョン
シリアル番号(serialNumber)
CAによって割り当てられた正の整数
CAは認証局(CA)
署名アルゴリズム(signature): AlgorithmIdentifier
発行者が証明書に署名する際に用いるアルゴリズム(ハッシュ関数:MD5、SHA-1、SHA-2など。署名アルゴリズム:RSA、DSA、ECDSAなど)
証明書発行者(issuer)
証明書に署名して発行した機関の名前
証明書の有効期間(validity)
「有効期間が始まる日付」および「有効期間が終わる日付」を記した、その証明書の有効期間
主体者(subject)
証明書の所有者の名前
主体者の公開鍵情報(subjectPublicKeyInfo)
証明書所有者(主体者)の公開鍵に関する情報
要素
アルゴリズム(algorithm)
主体者公開鍵(subjectPublicKey)
発行者ユニーク識別子(issuerUniqueID)
主体者ユニーク識別子(subjectUniqueID)
拡張(extensions)
証明書の拡張領域
signatureAlgorithm: AlgorithmIdentifier
発行者が証明書に署名する際のアルゴリズム
code:memo
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
signatureValue
tbsCertificateについて計算されるCAの署名
確認用
Q. X.509証明書
参考
X.509とは - @IT
図解 X.509 証明書 - Qiita
RFC 5280 > Section4.1 Basic Certificate Fields
関連
PKI
電子署名(デジタル署名)
メモ
X.509 : Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks