Top Page

セキュリティー関連の規格

※ 注意:内容を過信しないで下さい。 ※
あくまでも、自分用にまとめたメモであり、翻訳や調査内容が間違えているかもしれません。
RFCの原文等、正式な標準類文書(英文)を読む際の参考資料程度でお考え下さい。
変な所がありましたら、教えて貰えればと思います。

Abstract Syntax Notation One

セキュリティ関連のデータ構造は、ほとんどが、ASN.1によって定義される。
ASN.1は、データの構造を定義するのみで、プログラミング言語でいう構造体定義みたいなもの。

符号化について

ASN.1によって定義された構造体を持つ、データ・フォーマットが定義される。

バイナリ・データとなる符号化

テキスト・データ

  • XML Encoding Rules (XER)

電子証明書(X.509/旧PKCS#6)

公開鍵証明書

主体者の公開鍵が正当であることを証明するデータ。
公開鍵証明書は、以下の用途などに使われる。

  • 電子署名されたデータが、改ざんされていない事を検証する時。
  • 電子証明書の主体者向けに、データを暗号化する時。
公開鍵証明書の種類
拡張子 ファイルの内容
.cer
.der
X.509形式の、DERで符号化された電子証明書
.crt
.pem
X.509形式の、Base64で符号化された証明書。
"-----BEGIN CERTIFICATE-----"と"-----END -CERTIFICATE-----"で囲まれる。
.p7b
.p7r
.spc
PKCS#7(暗号メッセージ構文)のSigned-data形式で格納し、BERで符号化された証明書。
Signed-dataは電子署名であるが、電子証明書(X.509形式等)のみ内部に持ち、署名するデータと署名値は持たない。
.p7c PKCS#7(暗号メッセージ構文)のSigned-data形式で格納し、mimeで符号化された証明書。
Signed-dataは電子署名であるが、電子証明書(X.509形式等)のみ内部に持ち、署名するデータと署名値は持たない。

X.509 公開鍵証明書の内容

  • Certificate … X.509証明書
    • tbsCertificate … 証明書
      • Version … ヴァージョン
      • serialNumber … シリアル番号
      • signature … 署名アルゴリズム
      • issuer … 発行者(認証局など)
      • validity … 有効期間
        • notBefore … 開始
        • notAfter … 終了
      • subject … サブジェクト(主体者)
      • subjectPublicKeyInfo … 公開鍵の情報
        • algorithm … 暗号アルゴリズム
        • subjectPublicKey … 公開鍵
      • issuerUniqueID … (オプション)
      • subjectUniqueID … (オプション)
      • extensions … 拡張情報(オプション)
    • signatureAlgorithm … 署名アルゴリズム
    • signatureValue … 署名値

暗号メッセージ構文 (CMS/PKCS#7)

暗号メッセージ構文(CMS:Cryptographic Message Syntax)に関する標準。
CMSは、PKCS#7 version 1.5(RFC.2315)を拡張して制定されている。

データ (Data) タイプ

このcontent type"data"は、各タイプのデータ中に含まれる。

電子署名データ (Signed-data) タイプ

データに改ざんが無く、正当である事を証明するデータ。
ダイジェスト(ハッシュ)関数と、公開鍵暗号によって実現される。

封筒化データ (Enveloped-data) タイプ

一般的に使われている暗号データの形式。一般的には、以下の様に使用される。
発信者は、平分の暗号化には共通鍵暗号方式を用いて、共通鍵を受信者の公開鍵で暗号化する。
このデータには、暗号文及び公開鍵暗号方式で暗号化された共通鍵が含まれ、受信者に送信される。
受信者は、自分の秘密鍵で共通鍵暗号の復号に使う鍵を復号し、復号した鍵で更にデータを復号する事で、平文が得られる。

暗号化データ (Encrypted-data) タイプ

暗号文のみを格納するフォーマット。

汎用的に使われるタイプ

属性


秘密鍵構文 (PKCS#8)

秘密鍵構文 (Private-Key)

秘密鍵をそのまま格納する構文。

暗号化秘密鍵構文 (Encrypted Private-Key)

秘密鍵を暗号化して格納する構文。


証明書署名要求 (PKCS#10)

認証局に、公開鍵を署名してもらい、公開鍵証明書を作るときに発行する。

証明書要求の種類
拡張子 ファイルの内容
.p10
.csr
PKCS#10(証明書要求文)形式の、DERで符号化された要求書

個人情報交換構文 (PKCS#12)

公開鍵と秘密鍵のペアを受け渡しする時に持ちいる。

証明書要求の種類
拡張子 ファイルの内容
pfx, IEやNetscapeが使用した「証明書+秘密鍵」ファイルであり、PKCS#12の前身
p12, PKCS#12 形式(個人情報交換構文)の、DERで符号化された証明書。
PKCS#7形式の公開鍵証明書及び、PKCS#8の秘密鍵情報を持つ。