暗号関連の名称は、発行組織と文書シリーズを示すことがよくあります。プロトコルは、実装する正確なバージョン、 アルゴリズム識別子、パラメーター、エンコーディング規則を明記する必要があります。 「PKCS」や「X.509」のような広いラベルだけでは不十分です。
ITU-T X シリーズと X.509 #
ITU 電気通信標準化部門(ITU-T)は、文字で分類されたシリーズで勧告を発行します。 X シリーズは、データネットワーク、オープンシステム通信、セキュリティを対象とします。 ITU-T X.509 は公開鍵証明書のフレームワークと ASN.1 証明書構造を定義します。 IETF は RFC 5280 で、インターネット利用向けに X.509 証明書のプロファイルを定めています。
X.509 自体は、TLS のホスト名検証、HTTP での利用、特定の認証局ポリシーを定義しません。 これらの意味論は、プロトコル仕様と依存当事者のソフトウェアが適用します。
PKCS 文書 #
Public-Key Cryptography Standards は RSA Laboratories で始まり、異なる形式とアルゴリズムを扱います。
- PKCS #1 は RSA の基本演算とエンコーディングを定義します。
- PKCS #3 は Diffie–Hellman 鍵合意を記述します。
- PKCS #5 は PBKDF2 を含むパスワードベース暗号を定義します。
- PKCS #7 は Cryptographic Message Syntax(CMS)へ発展しました。
- PKCS #8 は秘密鍵情報の構文を定義します。
- PKCS #10 は証明書要求を定義します。
- PKCS #12 は秘密鍵と証明書をパッケージ化します。
一部の PKCS 文書は歴史的な仕様であり、現在の仕様は IETF RFC や他の標準化団体が維持しています。 たとえば CMS は RFC 5652、PKCS #1 v2.2 は RFC 8017 です。
ASN.1、DER、PEM #
ASN.1 は抽象データ型を定義しますが、バイトエンコーディングは選択しません。 Basic Encoding Rules(BER)は値に対して複数のエンコーディングを許します。 Distinguished Encoding Rules(DER)は正規の BER エンコーディングを 1 つ選択します。 署名が正確に 1 つのバイト列を対象とする必要がある場合に DER が求められます。
PEM は ASCII armor の規約です。DER バイトを Base64 エンコードし、
-----BEGIN CERTIFICATE----- のようなラベルで囲みます。PEM はエンコーディング用のコンテナーであり、
証明書の種類ではありません。1 つのファイルに 1 つ以上の PEM ブロックを含められ、
ラベルがエンコードされたオブジェクトの想定型を決定します。
コメント
GitHub で閲覧・コメントする(投稿にはログインが必要です)