RFC 2985 PKCS #9: Selected Object Classes and Attribute Types Version 2.0 参照
ITU-T X.520 | ISO/IEC 9594-6 RFC 2985
PKCS #9: 選択されたオブジェクトクラスと属性タイプ Version 2.0 このメモのステータス
このメモはインターネットコミュニティ向けの情報を提供するものであり、いかなる種類のインターネット標準も規定するものではありません。このメモの配布は無制限です。
著作権表示
Copyright (C) The Internet Society (2000). All Rights Reserved.
概要
このメモは、RSA Laboratories の公開鍵暗号標準 (PKCS) シリーズの PKCS #9 v2.0 を再発行したものであり、変更管理は PKCS プロセス内で維持されます。セキュリティに関する考慮事項のセクションを除き、この文書の本文は、その仕様から直接引用されています。 このメモは、公開鍵暗号と Lightweight Directory Access Protocol (LDAP) でアクセス可能なディレクトリと組み合わせて使用するオブジェクトクラスと属性タイプの選択肢を提供します。また、すべての構成要素に ASN.1 構文が含まれています。
1. はじめに
この文書では、2つの新しい補助オブジェクトクラス(pkcsEntityとnaturalPerson)と、これらのクラスで使用する属性型を定義します。また、PKCS #7 14(およびS/MIME CMS 3)デジタル署名メッセージ、PKCS #10 16証明書署名要求、PKCS #12 17個人情報交換、およびPKCS #15 18暗号トークンと組み合わせて使用する属性型もいくつか定義します。これらの属性で使用するマッチングルールも、必要に応じて定義します。 2. 定義、表記法、および文書規約
2.1 定義
この文書では、以下の定義を適用する。
属性(Attributes) 属性セット(set of attributes)を指定するASN.1型。各属性は、属性型(オブジェクト識別子で指定)と1つ以上の属性値(attribute values)を含む。属性型によっては、定義上、単一の値しか持てないものもあれば、複数の値を持つものもある。この型は7で定義されている。 CertificationRequestInfo サブジェクト名(subject name)、公開鍵(public key)、および属性セット(set of attributes)を指定するASN.1型。この型は16で定義されています。 ContentInfo エンティティ間で交換されるコンテンツを指定するASN.1型。object-idientifier型のcontentTypeフィールドはコンテンツタイプを指定し、contentTypeフィールドによって型が定義されるcontentフィールドにはコンテンツ値が格納されます。この型は14および3で定義されています。 PrivateKeyInfo 秘密鍵と拡張属性セットを指定する型。この型と関連するEncryptedPrivateKeyInfo型は15で定義されています。 SignerInfo 署名データ(signed-data)コンテンツタイプにおける署名者ごとの情報を指定する型。これには、署名者によって認証された属性セットと、署名者によって認証されていない属性セットが含まれます。この型は14および3で定義されています。 DER 6で定義されているASN.1の識別符号化規則(Distinguished Encoding Rules)。 UCS 11で定義されているユニバーサル・マルチオクテット符号化文字集合(Universal Multiple-Octet Coded Character Set)。 UTF8String UCS変換形式(UCS Transformation Format)で符号化された文字列。UTF-8符号化は11で定義されている。 2.2 表記法と文書規約
本文書では、すべての属性型およびオブジェクトクラスの定義は、5で定義されたASN.1値表記法で記述されています。付録Bには、これらの定義の大部分が2で定義された拡張BNF表記法で記述されています。これは、本文書をLDAP 22開発環境に統合する作業を簡素化するための試みです。 本文書中のキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、「OPTIONAL」は、1で説明されているとおりに解釈されます。 3. 概要
このドキュメントでは、2つの新しい補助オブジェクトクラス(pkcsEntityとnaturalPerson)と、いくつかの新しい属性型(attribute type)およびマッチングルールを規定しています。すべてのASN.1オブジェクトクラス、属性、マッチングルール、および型は、他の環境での使用のためにエクスポートされています。
このドキュメントで定義される属性型のうち、PKCS関連データの保存およびpkcsEntityオブジェクトクラスと組み合わせて有用なものには、PKCS #12 PFX PDU、PKCS #15 トークン、および暗号化された秘密鍵(encrypted private keys)が含まれます。 このドキュメントで定義される属性型のうち、PKCS #10 証明書要求(certificate request)およびnaturalPersonオブジェクトクラスと組み合わせて有用なものには、電子メールアドレス(electronic-mail address)、仮名(pseudonum)、非構造化名(unstructured name)、および非構造化アドレス(unstructured address)が含まれます。 このドキュメントで定義される属性型のうち、PKCS #7 デジタル署名メッセージで有用なものには、コンテンツタイプ(content type)、メッセージダイジェスト(message digest)、署名時刻(signing tiem)、シーケンス番号(sequence number)、ランダムノンス(random nonce)、および副署名(countersignature)が含まれます。これらの属性は、SignerInfo または AuthenticatedData (3) 値の authenticatedAttributes フィールドおよび unauthenticatedAttributes フィールドで使用されます。 PKCS #10 証明書要求(certification requests)で特に有用な属性タイプは、チャレンジパスワード(challenge password)と extension-request 属性です。これらの属性は、CertificationRequestInfo 値の attributes フィールドで使用されます。 注 - 表 1 の属性タイプ (8 より) およびおそらく他のいくつかの属性タイプは、PKCS #10 、PKCS #12 、および PKCS #15 対応アプリケーションでも役立つ可能性があります。 table:表1 PKCS文書で有用なISO/IEC 9594-6 属性タイプ
businessCategory preferredDeliveryMethod
commonName presentationAddress
countryName registeredAddress
description roleOccupant
destinationIndicator serialNumber
facsimileTelephoneNumber stateOrProvinceName
iSDNAddress streetAddress
localityName supportedApplicationContext
member surname
objectClass telephoneNumber
organizationName teletexTerminalIdentifier
physicalDeliveryOfficeName telexNumber
postalAddress title
postalCode x121Address
postOfficeBox
4. 補助オブジェクトクラス
この文書では、2つの新しい補助オブジェクトクラス、pkcsEntityとnaturalPersonを定義します。
4.1 pkcsEntity補助オブジェクトクラス
pkcsEntityオブジェクトクラスは、PKCS関連エンティティに関する属性を保持することを目的とした汎用補助オブジェクトクラスです。このクラスは、PKCS定義属性のサポートが有用であると考えられるLDAPプロトコル22およびX.500ファミリのプロトコルに基づくディレクトリサービス内での使用を目的として設計されています。 code:pkcsEntity
pkcsEntity OBJECT-CLASS ::= {
SUBCLASS OF { top }
KIND auxiliary
MAY CONTAIN { PKCSEntityAttributeSet }
ID pkcs-9-oc-pkcsEntity
}
PKCSEntityAttributeSet ATTRIBUTE ::= {
pKCS7PDU |
userPKCS12 |
pKCS15Token |
encryptedPrivateKeyInfo,
... -- 将来の拡張
}
PKCSEntityAttributeSet 内の属性はセクション 5 で定義されています。
4.2 naturalPerson補助オブジェクトクラス
naturalPersonオブジェクトクラスは、人間に関する属性を保持することを目的とした汎用補助オブジェクトクラスです。このクラスは、LDAPプロトコル22およびX.500プロトコルファミリに基づくディレクトリサービス内での使用を目的として設計されており、これらの属性のサポートは有用であると考えられています。 code:naturalPerson
naturalPerson OBJECT-CLASS ::= {
SUBCLASS OF { top }
KIND auxiliary
MAY CONTAIN { NaturalPersonAttributeSet }
ID pkcs-9-oc-naturalPerson
}
NaturalPersonAttributeSet ATTRIBUTE ::= {
emailAddress |
unstructuredName |
unstructuredAddress |
dateOfBirth |
placeOfBirth |
gender |
countryOfCitizenship |
countryOfResidence |
pseudonym |
serialNumber,
... -- 将来の拡張
}
NaturalPersonAttributeSet の属性はセクション 5 で定義されています。
5. 選択された属性タイプ
5.1 「pkcsEntity」オブジェクトクラスで使用する属性タイプ
PKCS #7 は、エンベロープ化、署名、その他の保護されたデータのための複数の形式を提供します。これらの情報をディレクトリサービスに保存する場合は、pKCS7PDU属性を使用できます。 code:pKCS7PDU
pKCS7PDU ATTRIBUTE ::= {
WITH SYNTAX ContentInfo
ID pkcs-9-at-pkcs7PDU
}
PKCS #12 は、個人識別情報の交換のためのフォーマットを提供します。このような情報をディレクトリサービスに保存する場合は、userPKCS12 属性を使用する必要があります。 code:userPKCS12
userPKCS12 ATTRIBUTE ::= {
WITH SYNTAX PFX
ID pkcs-9-at-userPKCS12
}
PKCS #15 は暗号トークンのフォーマットを提供します。このようなトークンのソフトウェアバリアントをディレクトリサービスに保存する場合は、pKCS15Token 属性を使用する必要があります。 code:pKCS15Token
pKCS15Token ATTRIBUTE ::= {
WITH SYNTAX PKCS15Token
ID pkcs-9-at-pkcs15Token
}
5.1.4 PKCS #8 暗号化された秘密鍵情報 PKCS #8 は、暗号化された秘密鍵のフォーマットを提供します。このような情報をディレクトリサービスに保存する場合は、encryptedPrivateKeyInfo 属性を使用する必要があります。 code:encryptedPrivateKeyInfo
encryptedPrivateKeyInfo ATTRIBUTE ::= {
WITH SYNTAX EncryptedPrivateKeyInfo
ID pkcs-9-at-encryptedPrivateKeyInfo
}
5.2 「naturalPerson」オブジェクトクラスで使用する属性型
5.2.1 電子メールアドレス
emailAddress属性型は、サブジェクトの電子メールアドレス(複数可)を非構造化ASCII文字列として指定します。電子メールアドレスの解釈は証明書発行者等によって指定されることを意図しており、特別な解釈は不要です。
code:emailAddress
emailAddress ATTRIBUTE ::= {
WITH SYNTAX IA5String (SIZE(1..pkcs-9-ub-emailAddress))
EQUALITY MATCHING RULE pkcs9CaseIgnoreMatch
ID pkcs-9-at-emailAdress
}
電子メールアドレス属性は複数の属性値を持つことができます。2つの電子メールアドレスを比較する場合、大文字と小文字は区別されません。pkcs9CaseIgnoreMatch はセクション6で定義されています。
注 - 電子メールシステムを監督する他の標準化団体は、それぞれのシステムに固有の電子メールアドレス属性型を登録する予定、または既に登録している可能性があります。ここで定義される電子メールアドレス属性型は、それらの特定の属性型の短期的な代替として意図されていましたが、後方互換性のためにここに含まれています。
5.2.2 非構造化名
unstructuredName属性型は、サブジェクト名(複数可)を非構造化ASCII文字列として指定します。非構造化名の解釈は証明書発行者等によって指定されることを意図しており、特別な解釈は必須ではありません。
code:unstructuredName
unstructuredName ATTRIBUTE ::= {
WITH SYNTAX PKCS9String {pkcs-9-ub-unstructuredName}
EQUALITY MATCHING RULE pkcs9CaseIgnoreMatch
ID pkcs-9-at-unstructuredName
}
PKCS9String { INTEGER : maxSize} ::= CHOICE {
ia5String IA5String (SIZE(1..maxSize)),
directoryString DirectoryString {maxSize}
}
非構造化名属性は複数の属性値を持つことができます。2つの非構造化名を比較する場合、大文字と小文字は区別されません。
PKCS9String型は、IA5StringとDirectoryStringのいずれかの選択肢として定義されています。アプリケーションは、このドキュメントのこのバージョンに従って属性値を生成する際に、国際化の問題により不可能でない限り、IA5String型を使用すべきです(SHOULD)。国際化の問題により不可能な場合は、DirectoryStringの代わりにUTF8String型を使用することをお勧めします。PKCS #9 属性処理システムは、PKCS9String値のすべての文字列型を認識し、処理できなければなりません(MUST)。 注記 - このドキュメントのバージョン1.1では、unstructuredNameの構文はIA5Stringと定義されていましたが、将来のバージョンでは異なる文字列型を選択できるCHOICEに変更される可能性があることを説明する注記が含まれていました。国際的な名前により適切に対応するために、このドキュメントのこのバージョンでは、この型はディレクトリ文字列も含むように拡張されています。 21 は IA5Strings を含むディレクトリ文字列型をサポートしていないため、別途構文オブジェクト識別子が定義されている(21 および付録 B を参照)。 5.2.3 非構造化アドレス
unstructuredAddress 属性型は、サブジェクトのアドレス(複数可)を非構造化ディレクトリ文字列として指定する。非構造化アドレスの解釈は証明書発行者等によって指定されることを意図しており、特別な解釈は要求されない。8 で定義されている postalAddress 属性型の代替として解釈される可能性が高い。