X.509
ISO/IEC 9594-8, ANSI X9.55
RFC 6818 Updates to the Internet X.509 公開鍵基盤 証明書と証明書失効リスト (CRL) Profile
RFC 3647 Internet X.509 公開鍵基盤 Certificate Policy and Certification Practices Framework
RFC 9549 Internationalization Updates to RFC 5280
RFC 5755 認可のためのインターネット属性証明書プロファイル An Internet Attribute Certificate Profile for Authorization
RFC 3279 Internet X.509 公開鍵基盤 証明書と証明書失効リスト (CRL) Profile のアルゴリズムと識別子 → Update 8692, 4055, 4491, 5758, 5480
RSA Rivest-Shamir-Adelman DSA Digital Signature Algorithm KEA Key Encryption Algorithm ECDSA Elliptic Curve Signature Algorithm ECDH Elliptic Curve Diffie-Hellman RFC 5280 は X.509v3証明書の内、インターネット用Profile としてまとめたもの
要求方式はSSL用から発展したTLS用とß/MIME用では違う形だったりで手順もいくつかの種類があるよ
RFC 4210 CMP 証明書管理の一部? RFC 4211 CRMFを利用 確認
RFC 6394 Use Cases and Requirements for DNS-Based Authentication of Named Entities (DANE) RFC 6698 The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLS RFC 9525 Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS) 標準的なデータ構造にASN.1 (BER, 最近はDER)を利用する。 ITU-T X.500 シリーズ(LDAP的なもの?)のひとつ
PKIのルールなどを決めたもの
PKCS #6 の拡張は X.509v3 に取り込まれたとか X.509 全体は RFC より広めか?
認証局(CA)と証明書で公開鍵と身元保証的なものをいろいろする仕組み
CA certification authority 認証局
RA registration authority 登録局 (option)
CRL issuer CRL発行者 CRLを生成、署名するシステム
repository リポジトリ
RFC 2560 Online Certificate Status Protocol (OCSP)
rootCAと呼ばれる信用できる認証局(CA)の発行するTrust Anchorとなる証明書からWebなどの証明書まで署名が正しく繋がっていることを検証することで、正規の証明書であることが証明できる。 会員証などの簡易なものの場合、自己署名証明書などをTrust Anchorとして使う場合もあったりなかったり。双方検証できる知識と環境があればそれでもいいよ。
仕組み?
出てくるもの
rootCA (Trust Anchorになる証明書を持っている), rootCAの発行する証明書, Server, Client
アドレスっぽいもの(URNっぽいもの URLではない)
証明書 (中間CA,証明書を除く)
1. 双方で同じrootCAの証明書(Trust Anchor)を知っている(OSやアプリ組み込み、個別配布などでTA証明書を持っている)
2. rootCAがWebの証明書を発行している (Trust Anchorの証明書のアドレスをWebの証明書に書き込み署名する)
3. Webの証明書から署名者がわかり、手持ちのTA証明書まで辿れるのでWebの証明書の真偽確認ができる (有効期限内)
4. 追加で無効化されていないか確認することもある OCSP, CRLなど
ブラウザまたはOSは、定期的に Trust Anchor の更新が必要(定期的にアップデートしないと使える証明書がなくなる)
RFC 1422 PEM証明書階層 (古い例)
インターネットポリシー登録機関 Internet Policy Registration Authority (IPRA): レベル1
ポリシー認証局 Policy Certification Authorities (PCA): レベル2
認証局 Certification Authorities (CAs): レベル3
という制限があった
CA証明書
相互証明書
自己発行証明書 ポリシーなどを決める (CA証明書)
自己署名証明書 CAを検証できる、認証パスの開始点
エンドエンティティ証明書 (別の証明書が発行できない)
証明書失効リスト(CRL) 有効期限内で無効な証明書の番号一覧 v2
RFC 4211 CRMF 証明書要求フォーマット 関連 (アルゴリズム)
RFC 3279 the Internet X.509 公開鍵基盤 証明書と証明書失効リスト (CRL) Profile のアルゴリズムと識別子
RFC 4055 追加アルゴリズムと識別子 for RSA Cryptography for use in the Internet X.509 公開鍵基盤証明書と証明書失効リスト (CRL) Profile → Update 5756
RSA公開鍵 rsaEncryptionの他に RSASSA-PSS, RSAES-OAEP, SHA2の追加 RFC 5756 Updates for RSAES-OAEP and RSASSA-PSS Algorithm Parameters
RSAES-OAEP, RSASSA-PSS パラメータの変更
RFC 4491 Using the GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms with the Internet X.509 公開鍵基盤 証明書と CRL Profile
RFC 5480 楕円曲線暗号主題公開鍵情報 Elliptic Curve Cryptography Subject Public Key Information RFC 8813 Clarifications for Elliptic Curve Cryptography Subject Public Key Information
RFC 5758 Internet X.509 公開鍵基盤: DSAとECDSAの追加アルゴリズムと識別子 RFC 8692 Internet X.509 公開鍵基盤: Additional Algorithm Identifiers for RSASSA-PSS and ECDSA Using SHAKEs RFC 8603 Commercial National Security Algorithm (CNSA) Suite Certificate and Certificate Revocation List (CRL) Profile SHA-384 ぐらいの基準を指定
RFC 9295 Ed25519, Ed448, X25519, and X448 アルゴリズム識別子の説明
RFC 8410 EdDSAはRFC 3279に追加されているわけではない? RFC 8422 TLS v1.2まで には登場する まとめる?
md2 3279
md5 3279
sha1 3279
RSAES-OAEP 4055, 5756
sha1 3279
他
公開鍵と身元確認を認証局で行い、公開鍵と身元を結びつける証明書を発行する。
証明書を(データといっしょに)配ることで身元証明しながら暗号化、署名・検証ができるようになるよ。
身元
メールアドレス、Webサイトのサーバ名のみ確認して発行されるものもある
有償のものは個人、企業の存在証明を含むものもある (公的証明書などを確認して発行する)
"安全"という意味ではなく"存在する"という意味で発行される → 安全でないものは存在証明から法的期間などへ繋げる手段になる
無効化
証明書が期限切れ以外の理由で無効化されたという情報を共有する仕組みがいくつかある
自動更新
RFC 1422 PEM では X.509v1 でいろいろ (旧) RFC 5914 Trust Anchor Format
RFC 5937 Using Trust Anchor Constraints during Certification Path Processing
RFC 9729 The Concealed HTTP Authentication Scheme RFC 9654 オンライン証明書状態プロトコル (OCSP) Nonce 拡張
RFC 9608 No Revocation Available for X.509 Public Key Certificates
RFC 9598 Internationalized Email Addresses in X.509 Certificates
RFC 9549 Internationalization Updates to RFC 5280
RFC 9399 Internet X.509 公開鍵基盤: Logotypes in X.509 Certificates
RFC 9360 CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates RFC 7093 Additional Methods for Generating Key Identifiers Values
RFC 6960 X.509 Internet 公開鍵基盤 オンライン証明書状態プロトコル - OCSP → Update 8954, 9654 RFC 6955 Diffie-Hellman Proof-of-Possession Algorithms
RFC 6495 Subject Key Identifier (SKI) SEcure Neighbor Discovery (SEND) Name Type Fields
RFC 5913 Clearance Attribute and Authority Clearance Constraints Certificate Extension
RFC 5912 X.509 (PKIX)を利用した公開鍵暗号基盤の新しいASN.1モジュール → Update 6960, 9480 RFC 5911 New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME
RFC 5756 Updates for RSAES-OAEP and RSASSA-PSS Algorithm Parameters RFC 5755 An Internet 属性証明書 Profile for Authorization
RFC 5639 Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation
RFC 5276 Using the Server-Based Certificate Validation Protocol (SCVP) to Convey Long-Term Evidence Records
RFC 4212 Alternative Certificate Formats for the 公開鍵基盤 Using X.509 (PKIX) 証明書管理プロトコル RFC 4211 Internet X.509 公開鍵基盤 証明書要求メッセージ形式 (CRMF) RFC 4043 Internet X.509 公開鍵基盤 永久識別子
RFC 3779 X.509 Extensions for IP Addresses and AS Identifiers
RFC 3647 Internet X.509 公開鍵基盤 Certificate Policy and Certification Practices Framework
RFC 2585 Internet X.509 公開鍵基盤 Operational Protocols: FTP and HTTP RFC 5280 4.2.1.12. Extended Key Usage (EKU)
RFC 9809 X.509 Certificate Extended Key Usage (EKU) for Configuration, Updates, and Safety-Critical Communication
RFC 9734 X.509 Certificate Extended Key Usage (EKU) for Instant Messaging URIs
RFC 9509 X.509 Certificate Extended Key Usage (EKU) for 5G Network Functions
RFC 9336 X.509 Certificate General-Purpose Extended Key Usage (EKU) for Document Signing
RFC 5924 Extended Key Usage (EKU) for Session Initiation Protocol (SIP) X.509 Certificates
RFC 9481 証明書管理プロトコル (CMP) アルゴリズム RFC 9480 証明書管理プロトコル (CMP) Updates
RFC 6712 Internet X.509 公開鍵基盤 -- HTTP Transfer for the Certificate Management Protocol (CMP) → Update 9480 RFC 6402 証明書管理 over CMS (CMC) Updates RFC 5274 証明書管理メッセージ over CMS (CMC): Compliance Requirements RFC 5273 証明書管理 over CMS (CMC): Transport Protocols → Update 6402
RFC 5272 証明書管理 over CMS (CMC) → Update 6402 RFC 4210 Internet X.509 公開鍵基盤 証明書管理プロトコル (CMP) → Update 6712, 9480, 9481 RPKI インターネット IPアドレス等リソース用 RFC 9582 A Profile for Route Origin Authorizations (ROAs)
RFC 9286 Manifests for the Resource Public Key Infrastructure (RPKI)
RFC 8360 Resource Public Key Infrastructure (RPKI) Validation Reconsidered
RFC 7935 The Profile for Algorithms and Key Sizes for Use in the Resource Public Key Infrastructure
RFC 6488 Signed Object Template for the Resource Public Key Infrastructure (RPKI)
RFC 6487 A Profile for X.509 PKIX Resource Certificates RFC 6486 (旧) Manifests for the Resource Public Key Infrastructure (RPKI) → 9286
RFC 6485 (旧) The Profile for Algorithms and Key Sizes for Use in the Resource Public Key Infrastructure (RPKI) → 7935
RFC 6484 Certificate Policy (CP) for the Resource Public Key Infrastructure (RPKI)
RFC 6483 Validation of Route Origination Using the Resource Certificate Public Key Infrastructure (PKI) and Route Origin Authorizations (ROAs)
RFC 6482 (旧) A Profile for Route Origin Authorizations (ROAs) → 9582
RFC 6481 A Profile for Resource Certificate Repository Structure
旧
RFC 8954 (旧) オンライン証明書状態プロトコル (OCSP) Nonce 拡張 → 9654
RFC 8399 Internationalization Updates to RFC 5280 → 9549
RFC 6277 (旧) オンライン証明書状態プロトコル Algorithm Agility → 6960
RFC 6170 (旧) Internet X.509 公開鍵基盤 -- Certificate Image → 9399
RFC 5759 (Historic 8423) Suite B Certificate and Certificate Revocation List (CRL) Profile RFC 4325 Internet X.509 公開鍵基盤 Authority Information Access Certificate Revocation List (CRL) Extension → 5280
RFC 3709 (旧) Internet X.509 公開鍵基盤: Logotypes in X.509 Certificates → 9399
RFC 3281 (旧) An Internet Attribute Certificate Profile for Authorization → 5755
RFC 3280 (旧) Internet X.509 公開鍵基盤 証明書と証明書失効リスト (CRL) Profile → 5280
RFC 2875 Diffie-Hellman Proof-of-Possession Algorithms → 6955
RFC 2797 Certificate Management Messages over CMS →5272
RFC 2560 (旧) X.509 Internet 公開鍵基盤 Online Certificate Status Protocol - OCSP → 6960 → Update 6277
RFC 2528 (旧) Internet X.509 公開鍵基盤 → 3279
RFC 2511 (旧) Internet X.509 Certificate Request Message Format → 4211
RFC 2510 (旧) Internet X.509 公開鍵基盤 Certificate Management Protocols → 4210
RFC 2459 (旧) Internet X.509 公開鍵基盤 Certificate and CRL Profile → 3280