前のページ <<< >>> 次のページ

4.2 電子証明書拡張情報のデータ形式

 電子証明書の拡張情報は、バージョン3の電子証明書にのみ現れるフィールドです。ここでは、そのデータ形式を説明します。CryptoAPIでの取り扱いについては、5.2電子証明書の拡張情報とCryptoAPI[http://www.trustss.co.jp/smnDataFormat520.html]で説明します。

4.2.1 拡張情報

 拡張情報は、以下のように規定されています。
Extentions ::= SEQUENCE SIZE (1..MAX) OF Extention

Extention ::= SEQUENCE {
    extnID       OBJECT IDNTIFIER,
    critical     BOOLEAN DEFAULT FALSE,
    extnValue    OCTET STRING
}
拡張情報(Extentions)は、1つ以上の順序付けられたExtentionデータで構成されています。その内容は、規定上指定されていません。具体的な内容は実装によります。
extnIDは、拡張情報の種類を表すオブジェクト識別子(Object IDentifier; 以下OIDと記します)です。
criticalは、重要(クリチカル、値はTRUE)もしくは、非重要(ノンクリチカル、値はFALSE)を表しています。もしこの値がクリチカルであった場合は、この電子証明書を利用するシステムは、この拡張情報を理解しなければなりません。もしそれができないばあいは、そのシステムは、この電子証明書の利用を拒絶しなければなりません。しかしながら、ノンクリチカルとされている拡張情報は、システムが理解できなければ無視してもかまいません。
extnValueは、拡張情報の内容です。

 以下では、一般的な拡張情報について説明します。

4.2.2 標準拡張情報

 一般的な電子証明書に記載される標準の拡張情報があります。以下では、このような拡張情報について説明しますが、これらは、以下のOIDのメンバーとなります。
id-ce OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 29 }
たとえば、次項のAuthority Key Identifierは、 id-ce 35 ですので、"2.5.29.35"となります。

4.2.3 認証局鍵識別子 (Authority Key Identifier)

 認証局(CA;Certificate Authority)が複数の鍵ペアを保持している場合に、どの私有鍵を使って署名したかがわかるようにするためのものです。RFC3280に従った電子証明書は、このフィールドが含まれることを要求されています。さらに、このフィールドは、クリチカルであってはなりません。
 以下のように規定されています。
id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }

AuthorityKeyIdentifier ::= SEQUENCE {
    keyIdentifier             [0] KeyIdentifier           OPTIONAL,
    authorityCertIssuer       [1] GeneralNames            OPTIONAL,
    authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }

KeyIdentifire ::= OCTET STRING

4.2.4 サブジェクト鍵識別子 (Subject Key Identifier)

 このSubjectが複数の鍵ペアを所有している場合に、公開鍵を区別するために用いられます。実際の値は、公開鍵から算出されたハッシュ値を使うように要求されています。
エンドエンティティの電子証明書には、このフィールドが含まれるべきである、とされています。さらに、このフィールドは、クリチカルであってはなりません。
以下のように規定されています。
id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }

SubjectKeyIdentifier ::= KeyIdentifier
 Key Usageは、電子証明書内の鍵の使用用途(たとえば、暗号化、電子署名など)を表しているものです。利用できる用途をビットごとに組み合わせた値で表します。
このフィールドは、クリチカルであるべきとされています。
以下のように規定されています。
id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }

KeyUsage ::= BIT STRING {
    digitalSignature      (0),
    nonRepudiation        (1),
    keyEncipherment       (2),
    dataEncipherment      (3),
    keyAgreement          (4),
    keyCertSign           (5),
    cRLSign               (6),
    encipherOnly          (7),
    decipherOnly          (8) }
それぞれのビットの意味は、以下のとおりです。
ビット意 味
digitalSignature電子署名 (keyCertSign、cRLSignを除く)
nonRepudiation否認防止サービスの署名検証
keyEncipherment鍵暗号
dataEnciphermentデータ暗号
keyAgreement鍵交換
keyCertSign電子証明書の署名検証
cRLSign証明書執行リスト(CRL)の署名検証
encipherOnly鍵交換時の暗号鍵 (keyAgreementがセットされている場合)
decipherOnly鍵交換時の復号鍵 (keyAgreementがセットされている場合)

4.2.6 証明書ポリシー (Certificate Polices)

 エンド エンティティの証明書では、ポリシー情報項目は、証明書が発行されたときにもとづいたポリシーと証明書が使用されてよい目的を示します。
一般には、CPSへのポインターまたは、ユーザー通知の情報を示しています。
 以下のように規定されています。
id-ce-certificatePolices OBJECT IDENTIFIER ::= { id-ce 32 }

certificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PlicyInformations

PolicyInformations ::= SEQUENCE {
    policyIdentifier    CertPolicyId,
    policyQualifiers    SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo
                                                                OPTIONAL }

CertPolicyId ::= OBJECT IDENTIFIER

PolicyQualifierInfo ::= SEQUENCE {
    policyQualifierId   PolicyQualifierId,
    qualifier           ANY DEFINED BY policyQualifierId }

PolicyQualifierId ::= OBJECT IDENTIFIER { id-qt-cps | id-qt-unotice }

Qualifier ::= CHOICE {
    cPSuri        CPSuri,
    userNotice    UserNotice }

CPSuri ::= IA5String

UserNotice ::= SEQUENCE {
    noticeRef      NoticeReference OPTIONAL,
    explicitText   DisplayText     OPTIONAL }

NoticeReference ::= SEQUENCE {
    organization      DisplayText
    noticeNumbers     SEQUENCE OF INTEGER }

DisplayText ::= CHOICE {
    ia5String         IA5String         (SIZE (1..200)),
    visibleString     VisibleString     (SIZE (1..200)),
    bmpString         BMPString         (SIZE (1..200)),
    utf8String        UTF8String        (SIZE (1..200)) }

4.2.7 サブジェクト代替名 (Subject Altanative Name)

 サブジェクト代替名は、追加の識別情報としてサブジェクトに統合されます。その値は、インターネット電子メール アドレス、DNS 名、IP アドレスおよびURI(uniform resource identifier)です。
電子証明書の唯一のサブジェクトの識別情報が、サブジェクト代替名である場合は、サブジェクトが空シーケンスでなければなりませんし、このフィールドがクリチカルでなければなりません。
 以下ように規定されています。
id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }

SubjectAltName ::= GeneralNames

GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName

GeneralName ::= CHOICE {
    otherName                 [0] OtherName,
    rfc822Name                [1] IA5String,
    dNSName                   [2] IA5String,
    x400Address               [3] ORAddress,
    directoryName             [4] Name,
    ediPartyName              [5] EDIPartyName,
    uniformResourceIdentifier [6] IA5String,
    iPAddress                 [7] OCTET STRING,
    registeredID              [8] OBJECT IDENTIFIER }

OtherName ::= SEQUENCE {
    type-id      OBJECT IDENTIFIER,
    value        [0] EXPLICIT ANY DEFINED BY type-id }

EDIPartyName ::= SEQUENCE {
    nameAssigner [0] DirectoryString OPTIONAL,
    partyName    [1] DirectoryString }

4.2.8 基本制約 (Basic Constraints)

 基本制約は、電子証明書のサブジェクトがCAであるか否かということと、この電子証明書を含む正当な認証パスの最大の深さを表します。
 以下のように規定されています。
id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }

BasicConstraints ::= SEQUENCE {
    cA                   BOOLEAN DEFAULT FALSE,
    pathLenConstraint    INTEGER (0..MAX) OPTIONAL }
cA値は、認証された公開鍵がCAに属すか否かを表します。cA値が真でない場合は、鍵用途拡張のkeyCertSign ビットがセットされてはなりません。
pathLenConstraintは、正当な認証パスの中でこの証明書に続く自己署名ではない中間の証明書の最大値を表します。

4.2.9 拡張鍵用途 (Extended Key Usage)

 拡張鍵用途は、公開鍵の使用目的を表します。この情報は、鍵用途フィールドの追加の情報かまたは、代わりの情報となります。
 以下のように規定されています。
id-ce-extKeyUsage OBJECT IDENTIFIER ::= { id-ce 37 }

ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId

KeyPurposeId ::= OBJECT IDENTIFIER

4.2.10 ご質問・ご要望

 ご質問やご要望は、こちらからお送りください。(匿名でも可能です。)


PDF-Tools
PDFおよびPDF/Aを作成・編集などができるライブラリ
128ビットの暗号化や電子署名に対応
http:
//www.trustss.co.jp/pdf/
4. 各種データ形式
4.1 電子証明書のデータ形式
4.2 電子証明書拡張情報の形式
4.3 電子署名の形式
4.4 暗号化データの形式
4.1 電子証明書のデータ形式
4.1.1 電子証明書の概要
4.1.2 ASN.1フォーマット
4.1.3 電子証明書
4.1.4 CryptoAPIとの関係
4.1.5 証明書情報
4.1.6 Name データ型
4.1.7 UTCTime型
4.1.8 GeneralizedTime型
4.1.9 ご質問・ご要望
4.2 電子証明書拡張情報の形式
4.2.1 拡張情報
4.2.2 標準拡張情報
4.2.3 認証局鍵識別子
4.2.4 サブジェクト鍵識別子
4.2.6 証明書ポリシー
4.2.7 サブジェクト代替名
4.2.8 基本制約
4.2.9 拡張鍵用途
4.2.10 ご質問・ご要望
4.3 電子署名の形式
4.3.1 CMSの概要
4.3.2 ContentInfo 情報
4.3.3 Signed-data 型
4.3.4 EnCapsulatedContentInfo 型
4.3.5 SignerInfo
4.3.6 ご質問・ご要望
4.4 暗号化データの形式
4.4.1 CMSの概要
4.4.2 ContentInfo 情報
4.4.3 暗号化の(内部的な)手順
4.4.4 Enveloped-data 型
4.4.5 受取人情報
4.4.6 公開鍵を使った場合の受取人情報
4.4.7 ご質問・ご要望
株)トラスト・ソフトウェア・システム
暗号化・電子署名・タイムスタンプ ライブラリ作成します。
お問い合わせください。
会員用ログイン
ID:
パスワード:
ログインすると、一般公開していないページを閲覧できます。