ネットワーク WG Request for Comments: 3739 廃止: 3039 分類: スタンダードトラック |
S. Santesson Microsoft M. Nystrom RSA Security T. Polk NIST 2004年3月 |
本書は、 インターネット・コミュニティに対してインターネットスタンダードトラックのプロトコルを規定するとともに、 それを改良するための議論や提言を求めるものである。こ のプロトコルの標準化状態およびステータスについては、 「Internet Official Protocol Standards」(STD 1)の最新版を参照していただきたい。 このメモの配布に制限は無い。
Copyright (C) The Internet Society (2004). All Rights Reserved.
本書は、自然人に発行された身分証明の証明書のための、 RFC 3280に基づく証明書プロファイルを規定する。
このプロファイルは、 定義された法的フレームワークの中で特定される証明書である、 適格証明書(Qualified Certificate)と呼ばれる証明書のための明確な規約を定義する。 しかし、このプロファイルは、 そのような適格証明書に対する法的な要件を何ら規定しない。
本書の目的は、ローカルな法的要件とは無関係に、 適格証明書の発行をサポートする証明書プロファイルを定義することである。 しかし、このプロファイルは適格証明書や特定のローカルの要求を促進するプロファイルに限定されるものではない。
本仕様は、 インターネット上のX.509 PKI(公開鍵インフラストラクチャ)標準の体系の一部である。 本仕様は、 本標準の完全な実装のために必要となる証明書フォーマットおよび意味を定義している [X.509] および [RFC 3280] に基づいている。
このプロファイルは、 適格証明書と共に使用することを意図した特定のメカニズムを含んでいる。 適格証明書という用語と、 本書の規定範囲に影響する仮定については2章で論じられる。
3章では、証明書の情報内容に関する要件を定義する。 本仕様では2つの証明書フィールドである発行者(issuer)とサブジェクト(subject)のためのプロファイルを提供する。:
また、RFC 3280で定義されている4つの証明書拡張である「サブジェクト別名(subjectAltName)」、 「サブジェクトディレクトリ属性(subjectDirectoryAttributes)」、 「証明書ポリシー(certificatePolicies)」および「鍵用途(keyUsage)」のためのプロファイルを提供する。 さらに、2つの追加の拡張として、 「バイオメトリック情報(biometoricInformation)」および「適格証明書宣言(qualifiedCertificateStatements)」を定義する。 証明書拡張は、1997 Abstract Syntax Notation One (ASN.1) [X.680] で示されているが、 RFC3280に準拠して、付録Aの1988 ASN.1モジュールは、 すべての規範となる定義を含んでいる。 (付録Aの1997モジュールは、情報提供にすぎない。)
4章では、 この標準を利用した場合のセキュリティ背景を明らかにするために、 いくつかの「セキュリティに関する考慮事項」について検討する。
付録Aでは、 RFC 3280では定義されていないすべての関連するASN.1構造を示す。 付録Bでは、属性に関する注記を示す。 付録Cでは、証明書の例を示す。 付録の章に続いて、参考文献、 著者のアドレス、 著作権表記全文を載せる。
本仕様は、RFC 3039を置き換えるものである。 本仕様は、以下の基本的な分野においてRFC 3039と異なる。:
本書中の(大文字で書かれた)キーワード"MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", "SHALL", "RECOMMENDED", "MAY", "OPTIONAL"は、 BCP 14 [RFC2119] に記述されたように解釈されるべきものである。
「適格証明書(Qualified Certificate)」という用語は、 欧州電子署名法を適用した特定の種類の証明書について言及するために、 「電子署名についての欧州指令(European Directive on Electronic Signature)」 [EU-ESDIR] によって使われている。 この仕様は、 このような種類の証明書をサポートすることを意図されたものではあるが、 その対象範囲は、このような利用に限定するものではない。
この標準において、「適格証明書(Qualified Certificate)」という用語は、 一般的にその主たる目的が高い保証レベルによって個人を識別する証明書を表すために使われる。 この証明書は、「電子署名についての欧州指令」 [EU-ESDIR] といった適用する法的なフレームワークにより規定されるいくつかの資格要件に見合うものである。 特定の法律に従って、 証明書を「適格証明書」と見なすべきか否かを決定する実際のメカニズムは、 この標準の範囲外とする。
特定の適格証明書において、 個人を特定する自然人に対して発行される証明書のフィールドを調和することは、 RFC 3280の範囲外となるいくつかの局面において本質的なものである。 本仕様の範囲に影響する最も重要な観点は、以下のとおりである。:
このプロファイルは、 以下の仮定に基づく適格証明書のプロファイル要件に適応している。:
このプロファイルは、 証明書中でそれが適格証明書であるための目的を果たすことを宣言するための規約を定義する。 これによって、認証局は、 明示的にこの意図を定義することができるようになる。
それゆえ、この宣言の役目は、 適格証明書に基づく署名を生成したり受理したりすることに伴うリスクを評価することに関心のある者を支援することにある。
このプロファイルは、この情報を含めるための2つのやり方を提供する。:
一定のポリシーの観点から、 そのプロファイルが理解され利用されることになっている状況を定義するものとする。 しかし、 このプロファイルに従った証明書を発行したり利用したりするサービスを制御するポリシーや法的な側面を規定することは、 このプロファイルの範囲外である。
しかし、 責任がある発行認証局が自らの義務・実施・手順と矛盾の無い証明書ポリシーに従うことを約束するということは、 このプロファイル中で基礎をなす仮定である。
識別名は、元来、ディレクトリ名の表現として X.501 [X.501] で定義されている。 識別名は、 すべてのオブジェクトの集合中からある特定のオブジェクトを識別する構成子として定義されている。 識別名は、発行者名フィールドにより定義されるひとつの認証局の生存期間中、 その認証局によって保証される個々のサブジェクトエンティティに対して一意でなければならない(MUST) 。
本章では、証明書プロファイルの規約を既定する。 プロファイルは、 X.509バージョン3フォーマットに基づくインターネット証明書プロファイルRFC 3280に基づいている。 本章の完全な実装のために、実装者は、 RFC 3280で定義された基本的なフォーマットや意味を考慮することが要求される(REQUIRED)。
本章に関連するRFC 3280では与えられていないASN.1の定義は、 付録Aにおいて提供されている。
本節では、証明書基本フィールドの2つのフィールドの内容に関して、 補足的な詳細を提供する。 2つのフィールドとは、 発行者(Issuer)フィールドとサブジェクト(Subject)フィールドである。
issuerフィールドは、 証明書の発行に対して責任を負う組織を識別するものとする(SHALL)。 名前は、公式に登録された組織の名称である必要がある(SHOULD)。
発行者の識別名は、 次の属性の適切なサブセットを用いて指定されるものとする(SHALL) 。:
domainComponent countryName stateOrProvinceName organizationName localityName serialNumber
domainComponent属性は [RFC 2247] において定義されている。 他のすべての属性は [RFC 3280] および [X.520] において定義されている。
追加的な属性が存在してもよい(MAY)が、その追加的な属性は、 発行する組織を特定するために必要不可欠なものであってはいけない(SHOULD NOT)。
信頼者は、 名前フィールドの意味を確定するために関連付けられた証明書ポリシー、 かつ/または、発行者の CPS を調べる必要がある可能性がある(MAY)。
このプロファイルに準拠する証明書のサブジェクトフィールドは、 サブジェクトの識別名を含むものとする(SHALL)。 (識別名の定義については2.4節参照。)
サブジェクトフィールドは、 以下に示す属性の適切なサブセットを含むものとする(SHALL)。:
domainComponent countryName commonName surname givenName pseudonym serialNumber title organizationName organizationalUnitName stateOrProvinceName localityName.
domainComponent属性は、 [RFC 2247] において定義されている。 他のすべての属性は、[RFC 3280] および [X.520] において定義されている。
他の属性も存在してもよい(MAY)が、他の属性の利用は、 あるサブジェクト名と他のサブジェクト名を区別するために必要であってはならない(MUST NOT)。 すなわち、上述の属性は、 一意なサブジェクト名を保証するのに十分なものである。
これらの属性において、サ ブジェクトフィールドは少なくとも以下のひとつを含むものとする(SHALL)。:
Choice I: commonName Choice II: givenName Choice III: pseudonym
countryName属性の値は、 他の属性を理解するための一般的なコンテキストを指定する。 country属性は、必ずしも、サブジェクトが市民権を持つ国や、 居住国を示さず、また発行した国を示さない。
注意:多くのX.500実装では、DIT中でcountryNameの存在を必要とする。 サブジェクトフィールドで指定されたサブジェクト名が公開されたX.500ディレクトリのエントリを指定する場合、 countryName属性は、常に存在する必要がある(SHOULD)。
commonName属性の値は、存在する場合、 サブジェクトの名前を含むものとする(SHALL)。 これは、サブジェクトが選択したフォーマット、認証局が選択したもの、 あるいは他のフォーマットであってもよい(MAY)。 仮名、ニックネームや登録名により定義されたものと違うスペルの名前を使ってもよい(MAY)。 commonNameで表現される名前の本質を理解するために、標 準準拠したアプリケーションは、 givenNameとsurname属性の値の組み合わせ、 もしくは仮名の属性を検証する必要がある可能性がある(MAY)。
注意:多くのクライアントアプリケーションは、 サブジェクトフィールド中にcommonName属性の値が存在することを前提とし、 givenName、surname、 pseudonym属性の値の存在にかかわらずサブジェクトの名前を表示するために、 この値を用いる。
surnameおよびgivenName属性タイプは、 commonName属性やpseudonym属性が存在しない場合、 サブジェクトフィールドにおいて使うものとする(SHALL)。 サブジェクトがgivenNameしか持たない場合、 surname属性を省略するものとする(SHALL)。
pseudonym属性タイプが存在する場合、 それはサブジェクトの仮名を含むものとする(SHALL)。 pseudonym属性の使用は、surname、かつ/または、 givenName属性のいずれかの使用と組み合わせてはならない(MUST NOT)。
serialNumber属性タイプが存在する場合、 それはサブジェクトフィールドが同一であるような状況で、 名前を区別するのに用いるものとする(SHALL)。 この属性は、サブジェクト名の一意性を保証する他に、 定義された意味を何ら持たない。 これは認証局に割り当てられた数字やコード、 政府や市政当局により割り当てられた識別子をを含むことができる(MAY)。 シリアル番号がサブジェクトの名前の衝突を解決するために十分であることを保証する事については認証局が責任を負う。
title属性タイプが存在する場合、それは、 サブジェクトフィールド中に存在する組織属性により指定される組織の中で、 サブジェクトの任命された地位や役割を格納するために使用されるものとする(SHALL)。 title、サブジェクトおよび組織の間の関連付けは、本書の範囲外である。
organizationNameおよびorganizationalUnitName属性タイプが存在する場合、 それはサブジェクトと結びついている組織の名称および関連情報を格納するために使用されるものとする(SHALL)。 その組織とサブジェクトとの関連の種類については、本書の範囲外である。
stateOrProvinceNameおよびlocalityName属性タイプが存在する場合、 それは、サブジェクトに関連付けられた地理的な情報を格納するために使用されるものとする(SHALL)。 organizationNameの値もまた存在する場合、 stateOrProvinceNameおよびlocalityName属性値は指定されたorganizationに関連づけられるものとする(SHALL)。 stateOrProvinceName、 localityNameとサブジェクトもしくはorganizationNameとの関係は、 本書の範囲外である。
標準に準拠した実装は、 本節で命名された属性を解釈できるものとする(SHALL)。
本節では、RFC 3280で定義された「サブジェクト別名」、 「サブジェクトディレクトリ属性」、 「証明書ポリシー」および「鍵用途」の4つの証明書拡張の内容に関する補足的な詳細を提供する。 本節では、2つの追加的拡張も定義する。:
「バイオメトリック情報」と「QC宣言(qualified certificate statements)」。
サブジェクト別名(subjectAltName)拡張が存在し、 その中にdirectoryNameの名称が存る場合、 directoryNameは、 このプロファイル3.1.2節で規定された規約に従わなければならない(MUST)。
サブジェクトディレクトリ属性(subjectDirectoryAttributes)拡張が在る可能性があり(MAY)、 サブジェクトフィールドおよびサブジェクト別名に存在する情報の補足として、 サブジェクトと関連する追加の属性を含めることができる(MAY)。
この拡張に格納するのにふさわしい属性は、 サブジェクトの識別名の一部ではない属性であるが、この拡張は、 他の目的にも有用である可能性がある(MAY)。(例:認可)
この拡張は、クリティカルフラグを立ててはならない(MUST NOT)。
標準に準拠した実装は以下の属性を解釈できるものとする(SHALL)。:
dateOfBirth placeOfBirth gender countryOfCitizenship countryOfResidence
ローカルの定義に従って、その他の属性を含めることができる(MAY)。
dateOfBirth属性が存在する場合、 サブジェクトの生年月日の値を含むものとする(SHALL)。 サブジェクトに生年月日を関連付ける方法は本書の範囲外である。 生年月日は、GeneralizedTime形式で定義され、 タイムゾーンの調整による偶発的な変更を避けるために、 (訳注:時分秒の部分には)秒の精度でGMT 12.00.00 (正午)を指定する必要がある(SHOULD)。 例えば、 1959年9月27日の誕生日は"19590927120000Z"のようにエンコードされる。 標準に準拠して証明書を構文解析するアプリケーションは、 時分秒のデータを無視し、 単にタイムゾーンの調整をせずに含まれている年月日を表示する必要がある(SHOULD)。
placeOfBirth属性が存在する場合、 サブジェクトの出生地の値が含まれるものとする(SHALL)。 サブジェクトに出生地を関連付ける方法は、本書の範囲外である。
gender属性が存在する場合、 サブジェクトの性別の値が含まれるものとする(SHALL)。 女性の場合"F" (あるいは"f")、 男性の場合"M" (あるいは"m")を値として使用する。 サブジェクトに性別を関連付ける方法は、本書の範囲外である。
countryOfCitizenship属性が存在する場合、 証明書が発行された時点でサブジェクトが市民権を申請した国の少なくともひとつの識別子が含まれるものとする(SHALL)。 市民権を持つ国がひとつ以上指定された場合、 市民権を持つ国それぞれ分離したひとつの値のcountryOfCitizenship属性で指定する必要がある(SHOULD)。 市民権の決定は法的な問題であり、本書の範囲外である。
countryOfResidence属性は存在する場合、 サブジェクトが居住する少なくともひとつの国の値を含むものとする(SHALL)。 ひとつ以上の居住国を指定した場合、 居住国それぞれを分離したひとつの値のcountryOfResidence属性で指定する必要がある(SHOULD)。 居住の決定は法的な問題であり、本書の範囲外である。
証明書ポリシー拡張は、存在するものとし(SHALL)、 認証局によって行われる実施および手順に反映する少なくともひとつの証明書ポリシーの識別子を含むものとする(SHALL)。 証明書ポリシー拡張は、クリティカルにしてもよい(MAY)。
2.2節で言及されるように、 証明書の目的を表す発行者により提供される情報は、 示されるポリシーを通じて明白である必要がある(SHOULD)。
証明書ポリシー拡張は、 認証パス検証で必要となるすべてのポリシー情報を含まなければならない(MUST)。 もしポリシに関連する宣言がQC宣言拡張(3.2.6節参照)に含まれるならば、 これらの宣言はまた、 識別されたポリシーに含まれる必要がある(SHOULD)。
証明書ポリシーは、 RFC 3280で定義される任意の修飾子と組み合わせることができる(MAY)。
鍵用途拡張が存在するものとする(SHALL)。 鍵用途の設定は、 RFC 3280の定義に従って設定されるものとする(SHALL)。 鍵用途の設定に関するさらなる要件は、 ローカルポリシーおよび/もしくはローカルな法的要件により定義することができる(MAY)。
鍵用途拡張は、クリティカルフラグが立っている必要がある(SHOULD)。
本節では、 バイオメトリック情報を保持するためのオプションとしての(OPTIONAL)拡張を定義する。 バイオメトリック情報は、 バイオメトリックテンプレートのハッシュの形式で格納される。
この拡張の目的は、生体情報の認証のための手段を提供することである。 格納されたハッシュに対応する生体情報はこの拡張には格納されないが、 この拡張はこの情報を含むファイルへの参照を示すURI(sourceDataUri)を含めることができる(MAY)。
(URIを)含む場合、URIは、HTTPスキーム(http://) [HTTP/1.1] もしくはHTTPSスキーム(https://) [RFC 2818] を使わなくてはならない(MUST)。 チェックされる識別データ自身がセンシティブな情報であるという事実により、 このメカニズムを利用している者は、 外部の者から検索される自分たちの識別情報を簡単に結びつけれらないようなURIを使用することも考慮することを望む可能性がある。
URIオプションの使用は、 ファイルの内容のデータエンコードフォーマットが、 ファイル名の規約およびファイル中のメタデータのような、こ の仕様の範囲外の手段を通して決定されると見なす。 このURIオプションの使用は、 この情報にアクセスする唯一の手段であることを意味するものではない。
この拡張における生体情報は、 人間の検証にふさわしい情報の種類に限定することが推奨される(RECOMMENDED)。 すなわち、 その情報がサブジェクトの適切な表現になっているかどうかという決定が本来、 人間によって検証が行なわれるようにすることである。 これは、例えば、 検証者に対して生体情報がグラフィカルイメージディスプレイに表示されるような場合、 検証者がサブジェクトの識別を強化するために使用できる(MAY)ことを意味する。
この拡張は、クリティカルフラグを立ててはならない(MUST NOT)。
biometricInfo EXTENSION ::= { SYNTAX BiometricSyntax IDENTIFIED BY id-pe-biometricInfo } id-pe-biometricInfo OBJECT IDENTIFIER ::= {id-pe 2} BiometricSyntax ::= SEQUENCE OF BiometricData BiometricData ::= SEQUENCE { typeOfBiometricData TypeOfBiometricData, hashAlgorithm AlgorithmIdentifier, biometricDataHash OCTET STRING, sourceDataUri IA5String OPTIONAL } TypeOfBiometricData ::= CHOICE { predefinedBiometricType PredefinedBiometricType, biometricDataID OBJECT IDENTIFIER } PredefinedBiometricType ::= INTEGER { picture(0), handwritten-signature(1)} (picture|handwritten-signature,...)
あらかじめ定義されたバイオメトリクスタイプ'picture'が存在する場合、 元の画像がサブジェクトの表示可能な画像イメージの形式で格納されていることを確認するものとする(SHALL)。 画像イメージのハッシュは参照される画像ファイル全体から計算されるものとする(SHALL)。
あらかじめ定義されたバイオメトリクスタイプ'handwritten-signature'が存在する場合、 元のデータが、サブジェクトによる手書きした署名の表示可能な画像イメージの形式で格納されていることを確認するものとする(SHALL)。 画像イメージのハッシュは、 参照される画像ファイル全体から計算されるものとする(SHALL)。
本節では、 証明書の明示的な特性を定義する宣言を含めるためのオプションとしての(OPTIONAL)拡張を定義する。
個々の宣言は、宣言のオブジェクト識別子を含めるものとし(SHALL)、 また、statementInfoパラメータ中に含まれる修飾するデータのオプションも含めることができる(MAY)。
statementInfoパラメータが含まれる場合、宣言のオブジェクト識別子は、 シンタックスを定義するものとし(SHALL)、 このパラメータの意味を定義する必要がある(SHOULD)。 そのオブジェクト識別子が意味を定義しない場合、 検証者は正確な意味を決めるために、 関連する証明書ポリシーやCPSを参照しなければならない。
この拡張は、クリティカルである可能性があるが、そうでない可能性もある。 拡張がクリティカルの場合これは、 拡張に含まれるすべての宣言は、 クリティカルであると見なされることを意味する。
qcStatements EXTENSION ::= { SYNTAX QCStatements IDENTIFIED BY id-pe-qcStatements }
注意: この拡張は、 クリティカルとそうでないQC宣言を混在させることはできない。す べての宣言がクリティカルであるか、す べての宣言がクリティカルでないかのいずれかでなければならない。
id-pe-qcStatements OBJECT IDENTIFIER ::= { id-pe 3 } QCStatements ::= SEQUENCE OF QCStatement QCStatement ::= SEQUENCE { statementId QC-STATEMENT.&Id({SupportedStatements}), statementInfo QC-STATEMENT.&Type ({SupportedStatements}{@statementId}) OPTIONAL } SupportedStatements QC-STATEMENT ::= { qcStatement-1,...}
この拡張に含めるのに相応しい宣言は、 (2.2節で議論するような)特定の法制度に従って適格証明書として発行される証明書の発行者による宣言とすることができる(MAY)。
この拡張に含めるのに相応しいもうひとつの宣言は、 証明書が発行される適用法の管轄権に関する宣言とすることができる(MAY)。 例として、 これは認証局の義務に関する制限を示す証明書に最大の信用限度を含めることができる(MAY) 。
証明書宣言(id-qcs-pkixQCSyntax-v1)は、 廃止されたRFC 3039(バージョン1)で定義された要件に準拠していることを識別する。 それゆえ、本宣言は、 RFC 3039に準拠して発行された古い証明書を識別するために提供される。 このプロファイルに準拠して発行された証明書に本宣言を含めてはならない(MUST NOT)。
このプロファイルは、 このプロファイルで定義された要件へ準拠していることを識別する(OID id-qcs-pkixQCSyntax-v2で識別される)新しいQC宣言を含む。 本適格証明書プロファイルは、 RFC 3039がバージョン1として参照されるのに対し、 バージョン2として参照される。
qcStatement-1 QC-STATEMENT ::= { SYNTAX SemanticsInformation IDENTIFIED BY id-qcs-pkixQCSyntax-v1 }
この宣言は、RFC 3039 (バージョン1)で定義された要件への準拠性を識別する。 本宣言は、オプションとして、 以下に述べるような追加の意味情報を含めることができる。
qcStatement-2 QC-STATEMENT ::= { SYNTAX SemanticsInformation IDENTIFIED BY id-qcs-pkixQCSyntax-v2 }
この宣言は、 本適格証明書プロファイル(バージョン2)で定義された要件への準拠性を識別する。 この宣言は、オプションとして、 以下に述べるような追加の意味情報を含めることができる。
SemanticsInformation ::= SEQUENCE { semanticsIdentifier OBJECT IDENTIFIER OPTIONAL, nameRegistrationAuthorities NameRegistrationAuthorities OPTIONAL } (WITH COMPONENTS {..., semanticsIdentifier PRESENT}| WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT}) NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF GeneralName
id-qcs-pkixQCSyntax-v1により識別されるSementicsInformationコンポーネントは、 意味識別子を含むことができ(MAY)、 ひとつ以上の名前登録局(name registration authority)を識別することができる(MAY)。
semanticsIdentifierコンポーネントが存在する場合、それは、 証明書基本フィールドおよび証明書拡張フィールド中の属性および名前に対する意味を定義するOIDを含むものとする(SHALL)。 OIDは、 すべての存在する属性および/もしくは名前のうちの全体もしくは一部の意味を定義することができる。
NameRegistrationAuthoritiesコンポーネントが存在する場合、 ひとつ以上の名前登録局の名前を含むものとする(SHALL)。 名前登録局はサブジェクトと関係付けられた属性や名前の登録に関して責任を負う。 識別された名前登録局と存在する属性との間の関連付けは、 意味識別子のOID、証明書ポリシー(あるいはCPS)、 もしくは何らかの暗黙的な要素により定義することができる(MAY)。
statementIDコンポーネントにid-qcs-pkix-QCSyntax-v1もしくはid-qcs-pkix-QCSyntax-v2が設定されているQCStatement中に、 SemanticsInformationタイプの値が存在する場合、これが示す通り、 少なくともsemanticsIdentifier もしくは nameRegistrationAuthorities のいずれかのフィールドが存在しなければならない。 statementIDコンポーネントにid-qcs-pkix-QCSyntax-v1もしくはid-qcs-pkix-QCSyntax-v2が設定されていたとしても、 QCStatement値の中に statementInfoが存在する必要はないことに注意しなければならない。
適格証明書により検証される電子署名の法的な価値は、 関連するプライベート鍵の使用法を統括するポリシーに大いに依存する。 プライベート鍵の保持者と同様に検証者の両者が、 正当な鍵の保有者の合意の下にのみプライベート鍵が使われることを確認する必要がある。
公開鍵は、関係する機関の法的関連性と共に公用のものであるので、 認証局が適格証明書として証明書を発行する以前に、 ある条件が存在する必要がある。 関連するプライベート鍵はサブジェクト毎に一意でなければならず、 サブジェクト単独の制御の下で管理されなければならない。 すなわち、プライベート鍵を使用する手段が意図しない使用に対して保護されてない場合には、 認証局は適格証明書を発行してはならない。 これは、認証局がサブジェクトの暗号モジュールに関する何らかの情報を持っていることを意味する。
認証局は、さらに、 証明書に含まれる公開鍵が正しくサブジェクトを表していることを検証しなければならない。
認証局は、これらの条件に合致しない限り、 他の認証局のポリシーの受理を示すためのポリシーマッピング拡張を伴う認証局証明書を発行してはならない。
鍵用途(keyUsage)証明書拡張において、 nonRepudiationビットを他のkeyUsageビットと組み合わせることは、 その証明書が使われることになっている状況に依存するセキュリティ上の関連があるかもしれない。 そのような証明書に基づいた電子署名を検証するアプリケーションは、 存在する鍵用途の組み合わせがその使用に対して適切であるかどうかを確かめる必要がある。
2つの適格証明書が同一の物理的なエンティティを表す場合、 これらを比較する能力はサブジェクトの名前の意味に依存する。 特定の属性の意味は、異なる発行者毎に異なる可能性がある。 これらの特定の証明書における名前の意味の知識無しに名前を比較することは、 誤った結果を導くことになる可能性がある。
この仕様は、RFC 3280のプロファイルである。 RFC 3280文書の「セキュリティに関する考慮事項」の章は、 この仕様に対しても同様に適用される。
RFC 3280のように、ASN.1モジュールは、 ASN.1シンタックスの2つの異なる流儀で提供される。
付録A.1は、 1988シンタックスによるものであり、マクロを使っていない。 しかし、このモジュールは、 完全に1988シンタックスではないRFC 3280中のモジュールから型定義をインポートしているので、 その使用に関するRFC 3280中の同じコメントが、ここでも同様に適用される。
付録A.2は、 1997シンタックスで記されている。
これらのモジュール間での食い違いがある場合、 1988モジュールが規範的なものとなる。
PKIXqualified88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-qualified-cert(31) } DEFINITIONS EXPLICIT TAGS ::= BEGIN -- EXPORTS ALL -- IMPORTS GeneralName FROM PKIX1Implicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19)} AlgorithmIdentifier, DirectoryString, AttributeType, id-pkix, id-pe FROM PKIX1Explicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18)}; -- Locally defined OIDs -- Arc for QC personal data attributes id-pda OBJECT IDENTIFIER ::= { id-pkix 9 } -- Arc for QC statements id-qcs OBJECT IDENTIFIER ::= { id-pkix 11 } -- Personal data attributes id-pda-dateOfBirth AttributeType ::= { id-pda 1 } DateOfBirth ::= GeneralizedTime id-pda-placeOfBirth AttributeType ::= { id-pda 2 } PlaceOfBirth ::= DirectoryString id-pda-gender AttributeType ::= { id-pda 3 } Gender ::= PrintableString (SIZE(1)) -- "M", "F", "m" or "f" id-pda-countryOfCitizenship AttributeType ::= { id-pda 4 } CountryOfCitizenship ::= PrintableString (SIZE (2)) -- ISO 3166 Country Code id-pda-countryOfResidence AttributeType ::= { id-pda 5 } CountryOfResidence ::= PrintableString (SIZE (2)) -- ISO 3166 Country Code -- Certificate extensions -- Biometric info extension id-pe-biometricInfo OBJECT IDENTIFIER ::= {id-pe 2} BiometricSyntax ::= SEQUENCE OF BiometricData BiometricData ::= SEQUENCE { typeOfBiometricData TypeOfBiometricData, hashAlgorithm AlgorithmIdentifier, biometricDataHash OCTET STRING, sourceDataUri IA5String OPTIONAL } TypeOfBiometricData ::= CHOICE { predefinedBiometricType PredefinedBiometricType, biometricDataOid OBJECT IDENTIFIER } PredefinedBiometricType ::= INTEGER { picture(0), handwritten-signature(1)} (picture|handwritten-signature) -- QC Statements Extension -- NOTE: This extension does not allow to mix critical and -- non-critical Qualified Certificate Statements. Either all -- statements must be critical or all statements must be -- non-critical. id-pe-qcStatements OBJECT IDENTIFIER ::= { id-pe 3} QCStatements ::= SEQUENCE OF QCStatement QCStatement ::= SEQUENCE { statementId OBJECT IDENTIFIER, statementInfo ANY DEFINED BY statementId OPTIONAL} -- QC statements id-qcs-pkixQCSyntax-v1 OBJECT IDENTIFIER ::= { id-qcs 1 } -- This statement identifies conformance with requirements -- defined in RFC 3039 (Version 1). This statement may -- optionally contain additional semantics information as specified -- below. id-qcs-pkixQCSyntax-v2 OBJECT IDENTIFIER ::= { id-qcs 2 } -- This statement identifies conformance with requirements -- defined in this Qualified Certificate profile -- (Version 2). This statement may optionally contain -- additional semantics information as specified below. SemanticsInformation ::= SEQUENCE { semanticsIndentifier OBJECT IDENTIFIER OPTIONAL, nameRegistrationAuthorities NameRegistrationAuthorities OPTIONAL } -- At least one field shall be present NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF GeneralName END
PKIXqualified97 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-qualified-cert-97(35) } DEFINITIONS EXPLICIT TAGS ::= BEGIN -- EXPORTS ALL -- IMPORTS informationFramework, certificateExtensions, selectedAttributeTypes, authenticationFramework, upperBounds, id-at FROM UsefulDefinitions {joint-iso-itu-t(2) ds(5) module(1) usefulDefinitions(0) 3 } ub-name FROM UpperBounds upperBounds GeneralName FROM CertificateExtensions certificateExtensions ATTRIBUTE, AttributeType FROM InformationFramework informationFramework DirectoryString FROM SelectedAttributeTypes selectedAttributeTypes AlgorithmIdentifier, Extension, EXTENSION FROM AuthenticationFramework authenticationFramework id-pkix, id-pe FROM PKIX1Explicit88 { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18) }; -- Locally defined OIDs -- Arc for QC personal data attributes id-pda OBJECT IDENTIFIER ::= { id-pkix 9 } -- Arc for QC statements id-qcs OBJECT IDENTIFIER ::= { id-pkix 11 } -- Personal data attributes id-pda-dateOfBirth AttributeType ::= { id-pda 1 } id-pda-placeOfBirth AttributeType ::= { id-pda 2 } id-pda-gender AttributeType ::= { id-pda 3 } id-pda-countryOfCitizenship AttributeType ::= { id-pda 4 } id-pda-countryOfResidence AttributeType ::= { id-pda 5 } -- Certificate extensions id-pe-biometricInfo OBJECT IDENTIFIER ::= { id-pe 2 } id-pe-qcStatements OBJECT IDENTIFIER ::= { id-pe 3 } -- QC statements id-qcs-pkixQCSyntax-v1 OBJECT IDENTIFIER ::= { id-qcs 1 } id-qcs-pkixQCSyntax-v2 OBJECT IDENTIFIER ::= { id-qcs 2 } -- Personal data attributes dateOfBirth ATTRIBUTE ::= { WITH SYNTAX GeneralizedTime ID id-pda-dateOfBirth } placeOfBirth ATTRIBUTE ::= { WITH SYNTAX DirectoryString {ub-name} ID id-pda-placeOfBirth } gender ATTRIBUTE ::= { WITH SYNTAX PrintableString (SIZE(1) ^ FROM("M"|"F"|"m"|"f")) ID id-pda-gender } countryOfCitizenship ATTRIBUTE ::= { WITH SYNTAX PrintableString (SIZE (2)) (CONSTRAINED BY { -- ISO 3166 codes only -- }) ID id-pda-countryOfCitizenship } countryOfResidence ATTRIBUTE ::= { WITH SYNTAX PrintableString (SIZE (2)) (CONSTRAINED BY { -- ISO 3166 codes only -- }) ID id-pda-countryOfResidence } -- Certificate extensions -- Biometric info extension biometricInfo EXTENSION ::= { SYNTAX BiometricSyntax IDENTIFIED BY id-pe-biometricInfo } BiometricSyntax ::= SEQUENCE OF BiometricData BiometricData ::= SEQUENCE { typeOfBiometricData TypeOfBiometricData, hashAlgorithm AlgorithmIdentifier, biometricDataHash OCTET STRING, sourceDataUri IA5String OPTIONAL, ... -- For future extensions -- } TypeOfBiometricData ::= CHOICE { predefinedBiometricType PredefinedBiometricType, biometricDataOid OBJECT IDENTIFIER } PredefinedBiometricType ::= INTEGER { picture(0), handwritten-signature(1)} (picture|handwritten-signature,...) -- QC Statements Extension -- NOTE: This extension does not allow to mix critical and -- non-critical Qualified Certificate Statements. Either all -- statements must be critical or all statements must be -- non-critical. qcStatements EXTENSION ::= { SYNTAX QCStatements IDENTIFIED BY id-pe-qcStatements } QCStatements ::= SEQUENCE OF QCStatement QCStatement ::= SEQUENCE { statementId QC-STATEMENT.&id({SupportedStatements}), statementInfo QC-STATEMENT.&Type ({SupportedStatements}{@statementId}) OPTIONAL } QC-STATEMENT ::= CLASS { &id OBJECT IDENTIFIER UNIQUE, &Type OPTIONAL } WITH SYNTAX { [SYNTAX &Type] IDENTIFIED BY &id } qcStatement-1 QC-STATEMENT ::= { SYNTAX SemanticsInformation IDENTIFIED BY id-qcs-pkixQCSyntax-v1} -- This statement identifies conformance with requirements -- defined in RFC 3039 (Version 1). This statement -- may optionally contain additional semantics information -- as specified below. qcStatement-2 QC-STATEMENT ::= { SYNTAX SemanticsInformation IDENTIFIED BY id-qcs-pkixQCSyntax-v2} -- This statement identifies conformance with requirements -- defined in this Qualified Certificate profile -- (Version 2). This statement may optionally contain -- additional semantics information as specified below. SemanticsInformation ::= SEQUENCE { semanticsIdentifier OBJECT IDENTIFIER OPTIONAL, nameRegistrationAuthorities NameRegistrationAuthorities OPTIONAL }(WITH COMPONENTS {..., semanticsIdentifier PRESENT}| WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT}) NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF GeneralName -- The following information object set is defined to constrain the -- set of attributes applications are required to recognize as QCSs. SupportedStatements QC-STATEMENT ::= { qcStatement-1 | qcStatement-2 , ... -- For future extensions -- } END
本書では、 発行された証明書のサブジェクト(subject)フィールドおよびサブジェクトディレクトリ属性(subjectDirectoryAttributes)拡張の双方で使われるいくつかの新しい属性を定義する。 (マッチングルールを含む)これらの新しい属性の完全な定義は、 LDAPでアクセス可能なディレクトリでサポートするためのオブジェクトクラスと共にPKCS 9 [RFC 2985] で示されている。
本節では、ASN.1構造、 ASN.1ダンプおよびこのプロファイルに準拠して発行されたDERエンコードされた証明書を含む。 この例はOSS ASN.1コンパイラの協力により生成された。 証明書は、下記の特性をもっている。 :
生年月日: 1971年10月14日
出生地: Darmstadt
市民権のある国:ドイツ
性別: 女性
署名される構造中に置かれた際に、 拡張は既にDERエンコードされているので、 [X.680] で定義された値の表記を用いて、 明確にするためにこれらを示す。
certSubjDirAttrs AttributesSyntax ::= { { type id-pda-countryOfCitizenship, values { PrintableString : "DE" } }, { type id-pda-gender, values { PrintableString : "F" } }, { type id-pda-dateOfBirth, values { GeneralizedTime : "197110141200Z" } }, { type id-pda-placeOfBirth, values { DirectoryString : utf8String : "Darmstadt" } } }
certKeyUsage KeyUsage ::= {nonRepudiation}
certCertificatePolicies CertificatePoliciesSyntax ::= { { policyIdentifier {1 3 36 8 1 1} } }
certQCStatement QCStatements ::= { { statementId id-qcs-pkixQCSyntax-v2, statementInfo SemanticsInformation : { nameRegistrationAuthorities { rfc822Name : "municipality@darmstadt.de" } } } }
certAKI AuthorityKeyIdentifier ::= { keyIdentifier '000102030405060708090A0B0C0D0E0FFEDCBA98'H }
[X.680] で定義された値表記で証明書の署名されたものをここに示す。 この構造中で、拡張の値は、 既にDER エンコードされていることに注意されたい。 いくつかの値は、読みやすさを目的として切捨てている。
certCertInfo CertificateInfo ::= { version v3, serialNumber 1234567890, signature { algorithm { 1 2 840 113549 1 1 5 }, parameters RSAParams : NULL }, issuer rdnSequence : { { { type { 2 5 4 6 }, value PrintableString : "DE" } }, { { type { 2 5 4 10 }, value UTF8String : } } }, validity { notBefore utcTime : "040201100000Z", notAfter utcTime : "080201100000Z" }, subject rdnSequence : { { { type { 2 5 4 6 }, value PrintableString : "DE" } }, { { type { 2 5 4 10 }, value UTF8String : "GMD Forschungszentrum Informationstechnik GmbH" } }, { { type { 2 5 4 4 }, value UTF8String : "Barzin" }, { type { 2 5 4 42 }, value UTF8String : "Petra" } } }, subjectPublicKeyInfo { algorithm { algorithm { 1 2 840 113549 1 1 1 }, parameters RSAParams : NULL }, subjectPublicKey '30818902818100DCE74CD5...0203010001'H }, extensions { { extnId { 2 5 29 9 }, -- subjectDirectoryAttributes extnValue '305B301006082B0601050507090...7374616474'H }, { extnId { 2 5 29 15 }, -- keyUsage critical TRUE, extnValue '03020640'H }, { extnId { 2 5 29 32 }, -- certificatePolicies extnValue '3009300706052B24080101'H }, { extnId { 2 5 29 35 }, -- authorityKeyIdentifier extnValue '30168014000102030405060708090A0B0C0D0E0FFEDCBA98'H }, { extnId { 1 3 6 1 5 5 7 1 3 }, -- qcStatements extnValue '302B302906082B06010505070B0...4742E6465 'H } } }
本節では、証明書の署名されたものであるASN.1ダンプを示す。 いくつかの値は、読みやすさのために切捨てている。
CertificateInfo SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 633 version : tag = [0] constructed; length = 3 Version INTEGER: tag = [UNIVERSAL 2] primitive; length = 1 2 serialNumber CertificateSerialNumber INTEGER: tag = [UNIVERSAL 2] primitive; length = 4 1234567890 signature AlgorithmIdentifier SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 13 algorithm OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 9 { 1 2 840 113549 1 1 5 } parameters OpenType NULL issuer Name CHOICE rdnSequence RDNSequence SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 72 RelativeDistinguishedName SET OF: tag = [UNIVERSAL 17] constructed; length = 11 AttributeTypeAndValue SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 9 type OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 4 6 } -- id-at-countryName value PrintableString "DE" RelativeDistinguishedName SET OF: tag = [UNIVERSAL 17] constructed; length = 57 AttributeTypeAndValue SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 55 type OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 4 10 } -- id-at-organizationName value UTF8String "GMD Forschungszentrum Informationstechnik GmbH" validity Validity SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 30 notBefore Time CHOICE utcTime UTCTime: tag = [UNIVERSAL 23] primitive; length = 13 040201100000Z notAfter Time CHOICE utcTime UTCTime: tag = [UNIVERSAL 23] primitive; length = 13 080201100000Z subject Name CHOICE rdnSequence RDNSequence SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 101 RelativeDistinguishedName SET OF: tag = [UNIVERSAL 17] constructed; length = 11 AttributeTypeAndValue SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 9 type OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 4 6 } -- id-at-countryName value PrintableString "DE" RelativeDistinguishedName SET OF: tag = [UNIVERSAL 17] constructed; length = 55 AttributeTypeAndValue SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 53 type OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 4 10 } -- id-at-organizationName value UTF8String "GMD Forschungszentrum Informationstechnik GmbH" RelativeDistinguishedName SET OF: tag = [UNIVERSAL 17] constructed; length = 29 AttributeTypeAndValue SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 13 type OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 4 4 } -- id-at-surname value UTF8String "Barzin" AttributeTypeAndValue SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 12 type OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 4 42 } -- id-at-givenName value UTF8String "Petra" subjectPublicKeyInfo SubjectPublicKeyInfo SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 159 algorithm AlgorithmIdentifier SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 13 algorithm OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 9 { 1 2 840 113549 1 1 1 } -- rsaEncryption parameters OpenType NULL subjectPublicKey BIT STRING: tag = [UNIVERSAL 3] primitive; length = 141 0x0030818902818100dce74cd5a1d55aeb01cf5ecc20f3c3fca787... extensions : tag = [3] constructed; length = 233 Extensions SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 230 Extension SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 100 extnId OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 29 9 } -- id-ce-subjectDirectoryAttributes extnValue OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 93 0x305b301006082b06010505070904310413024445300f06082... Extension SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 14 extnId OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 29 15 } -- id-ce-keyUsage critical BOOLEAN: tag = [UNIVERSAL 1] primitive; length = 1 TRUE extnValue OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 4 0x03020640 Extension SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 18 extnId OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 29 32 } -- id-ce-certificatePolicies extnValue OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 11 0x3009300706052b24080101 Extension SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 31 extnId OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 3 { 2 5 29 35 } -- id-ce-authorityKeyIdentifier extnValue OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 24 0x30168014000102030405060708090a0b0c0d0e0ffedcba98 Extension SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 57 extnId OBJECT IDENTIFIER: tag = [UNIVERSAL 6] primitive; length = 8 { 1 3 6 1 5 5 7 1 3 } -- id-pe-qcStatements extnValue OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 45 0x302b302906082b06010505070b02301d301b81196d756e696...
本節では、DERエンコードされた証明書全体を16進数表記で示す。
30820310 30820279 A0030201 02020449 9602D230 0D06092A 864886F7 0D010105 05003048 310B3009 06035504 06130244 45313930 37060355 040A0C30 474D4420 2D20466F 72736368 756E6773 7A656E74 72756D20 496E666F 726D6174 696F6E73 74656368 6E696B20 476D6248 301E170D 30343032 30313130 30303030 5A170D30 38303230 31313030 3030305A 3065310B 30090603 55040613 02444531 37303506 0355040A 0C2E474D 4420466F 72736368 756E6773 7A656E74 72756D20 496E666F 726D6174 696F6E73 74656368 6E696B20 476D6248 311D300C 06035504 2A0C0550 65747261 300D0603 5504040C 06426172 7A696E30 819F300D 06092A86 4886F70D 01010105 0003818D 00308189 02818100 DCE74CD5 A1D55AEB 01CF5ECC 20F3C3FC A787CFCB 571A21AA 8A20AD5D FF015130 DE724E5E D3F95392 E7BB16C4 A71D0F31 B3A9926A 8F08EA00 FDC3A8F2 BB016DEC A3B9411B A2599A2A 8CB655C6 DFEA25BF EDDC73B5 94FAA0EF E595C612 A6AE5B8C 7F0CA19C EC4FE7AB 60546768 4BB2387D 5F2F7EBD BC3EF0A6 04F6B404 01176925 02030100 01A381E9 3081E630 64060355 1D09045D 305B3010 06082B06 01050507 09043104 13024445 300F0608 2B060105 05070903 31031301 46301D06 082B0601 05050709 01311118 0F313937 31313031 34313230 3030305A 30170608 2B060105 05070902 310B0C09 4461726D 73746164 74300E06 03551D0F 0101FF04 04030206 40301206 03551D20 040B3009 30070605 2B240801 01301F06 03551D23 04183016 80140001 02030405 06070809 0A0B0C0D 0E0FFEDC BA983039 06082B06 01050507 0103042D 302B3029 06082B06 01050507 0B02301D 301B8119 6D756E69 63697061 6C697479 40646172 6D737461 64742E64 65300D06 092A8648 86F70D01 01050500 03818100 8F8C80BB B2D86B75 F4E21F82 EFE0F20F 6C558890 A6E73118 8359B9C7 8CE71C92 0C66C600 53FBC924 825090F2 95B08826 EAF3FF1F 5917C80B B4836129 CFE5563E 78592B5B B0F9ACB5 2915F0F2 BC36991F 21436520 E9064761 D932D871 F71FFEBD AD648FA7 CF3C1BC0 96F112D4 B882B39F E1A16A90 AE1A80B8 A9676518 B5AA7E97
本節では、 サンプル証明書を署名した認証局のDERエンコードされたRSA公開鍵を示す。 これは、サンプル証明書の検証を簡単にする目的で含めるものである。
30818902818100c88f4bdb66f713ba3dd7a9069880e888d4321acb53cda7fcdf da89b834e25430b956d46a438baa6798035af30db378424e00a8296b012b1b24 f9cf0b3f83be116cd8a36957dc3f54cbd7c58a10c380b3dfa15bd2922ea8660f 96e1603d81357c0442ad607c5161d083d919fd5307c1c3fa6dfead0e6410999e 8b8a8411d525dd0203010001
[RFC 2119] |
Bradner, S., 「RFCにおいて要請の程度を示すために用いるキーワード (Key words for use in RFCs to Indicate Requirement Levels)」, BCP 14, RFC 2119, 1997年3月. |
[RFC 2247] |
Kille, S., Wahl, M., Grimstad, A., Huber R. and S. Sataluri,
"Using Domains in LDAP/X.500 Distinguished Names", RFC 2247, 1998年1月. |
[RFC 2818] |
Rescorla, E., "HTTP Over TLS", RFC 2818, 2000年5月. |
[RFC 2985] |
Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object Classes and Attribute Types Version 2.0", RFC 2985, 2000年11月. |
[RFC 3280] |
Housley, R., Polk, W., Ford, W. and D. Solo, 「インターネットX.509 PKI:証明書とCRLのプロファイル (Internet X.509 Public Key Infrastructure: Certificate and Certificate Revocation List (CRL) Profile)」, RFC 3280(English), 2002年4月. |
[X.509] | ITU-T Recommendation X.509 (2000) | ISO/IEC 9594-8:2001, Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks |
[X.520] | ITU-T Recommendation X.520 (2001) | ISO/IEC 9594-6:2001, Information Technology - Open Systems Interconnection - The Directory: Selected Attribute Types, 2001年. |
[X.680] | ITU-T Recommendation X.680 (2002) | ISO/IEC 8824-1:2002), Information Technology - Abstract Syntax Notation One, 2002年. |
[ISO 3166] | ISO 3166-1:1997, Codes for the representation of names of countries, 1997年. |
[HTTP/1.1] |
Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter,
L., Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, 1999年6月. |
[X.501] | ITU-T recommendation X.501 (2001) | ISO/IEC 9594-2:2001, Information Technology - Open Systems Interconnection - The Directory: Models, 2001年. |
[EU-ESDIR] | Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, 1999年. |
[RFC 2253] |
Wahl, M., Kille, S. and T. Howes, "Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names", RFC 2253, 1997年12月. |
Stefan Santesson
Microsoft Denmark
Tuborg Boulevard 12
DK-2900 Hellerup
Denmark
EMail: stefans@microsoft.com
Tim Polk
NIST
Building 820, Room 426
Gaithersburg, MD 20899, USA
EMail: wpolk@nist.gov
Magnus Nystrom
RSA Security
Box 10704
S-121 29 Stockholm
Sweden
EMail: magnus@rsasecurity.com
漆島 賢二
セコム株式会社 IS 研究所
EMail: k-urushima@secom.co.jp
宮川 寧夫
独立行政法人 情報処理推進機構
セキュリティセンター
EMail: miyakawa@ipa.go.jp
Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78 and except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.
Funding for the RFC Editor function is currently provided by the Internet Society.