4.2 電子証明書拡張情報のデータ形式
電子証明書の拡張情報は、バージョン3の電子証明書にのみ現れるフィールドです。ここでは、そのデータ形式を説明します。CryptoAPIでの取り扱いについては、5.2電子証明書の拡張情報とCryptoAPI[https://www.trustss.co.jp/smnDataFormat520.html]で説明します。
4.2.1 拡張情報
拡張情報は、以下のように規定されています。
extnIDは、拡張情報の種類を表すオブジェクト識別子(Object IDentifier; 以下OIDと記します)です。
criticalは、重要(クリチカル、値はTRUE)もしくは、非重要(ノンクリチカル、値はFALSE)を表しています。もしこの値がクリチカルであった場合は、この電子証明書を利用するシステムは、この拡張情報を理解しなければなりません。もしそれができないばあいは、そのシステムは、この電子証明書の利用を拒絶しなければなりません。しかしながら、ノンクリチカルとされている拡張情報は、システムが理解できなければ無視してもかまいません。
extnValueは、拡張情報の内容です。
以下では、一般的な拡張情報について説明します。
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へのポインターまたは、ユーザー通知の情報を示しています。
以下のように規定されています。
一般には、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であるか否かということと、この電子証明書を含む正当な認証パスの最大の深さを表します。
以下のように規定されています。
pathLenConstraintは、正当な認証パスの中でこの証明書に続く自己署名ではない中間の証明書の最大値を表します。
以下のように規定されています。
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
前のページ[https://www.trustss.co.jp/smnDataFormat410.html] <<< >>> 次のページ[https://www.trustss.co.jp/smnDataFormat430.html]
4.2.10 ご質問・ご要望
ご質問やご要望は、こちらからお送りください。(匿名でも可能です。)