Network Working Group L. Zhu Request for Comments: 4556 Microsoft Corporation Category: Standards Track B. Tung Aerospace Corporation June 2006
Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)
Status of This Memo
このメモのステータス
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
この文書は、インターネットコミュニティのためのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態と状態への「インターネット公式プロトコル標準」(STD 1)の最新版を参照してください。このメモの配布は無制限です。
Copyright Notice
著作権表示
Copyright (C) The Internet Society (2006).
著作権(C)インターネット協会(2006)。
Abstract
抽象
This document describes protocol extensions (hereafter called PKINIT) to the Kerberos protocol specification. These extensions provide a method for integrating public key cryptography into the initial authentication exchange, by using asymmetric-key signature and/or encryption algorithms in pre-authentication data fields.
この文書では、Kerberosプロトコル仕様に(以下、PKINITと呼ばれる)プロトコルの拡張機能について説明します。これらの拡張は、事前認証データフィールドに非対称鍵署名および/または暗号化アルゴリズムを使用して、初期認証交換中に公開鍵暗号を統合するための方法を提供します。
Table of Contents
目次
1. Introduction ....................................................2 2. Conventions Used in This Document ...............................4 3. Extensions ......................................................5 3.1. Definitions, Requirements, and Constants ...................6 3.1.1. Required Algorithms .................................6 3.1.2. Recommended Algorithms ..............................6 3.1.3. Defined Message and Encryption Types ................7 3.1.4. Kerberos Encryption Types Defined for CMS Algorithm Identifiers ...............................8 3.2. PKINIT Pre-authentication Syntax and Use ...................9 3.2.1. Generation of Client Request ........................9 3.2.2. Receipt of Client Request ..........................14 3.2.3. Generation of KDC Reply ............................18 3.2.3.1. Using Diffie-Hellman Key Exchange .........21 3.2.3.2. Using Public Key Encryption ...............23
3.2.4. Receipt of KDC Reply ...............................25 3.3. Interoperability Requirements .............................26 3.4. KDC Indication of PKINIT Support ..........................27 4. Security Considerations ........................................27 5. Acknowledgements ...............................................30 6. References .....................................................30 6.1. Normative References ......................................30 6.2. Informative References ....................................32 Appendix A. PKINIT ASN.1 Module ..................................33 Appendix B. Test Vectors .........................................38 Appendix C. Miscellaneous Information about Microsoft Windows PKINIT Implementations ...............................40
The Kerberos V5 protocol [RFC4120] involves use of a trusted third party known as the Key Distribution Center (KDC) to negotiate shared session keys between clients and services and provide mutual authentication between them.
Kerberos V5プロトコル[RFC4120]は、クライアントとサービスの間で共有したセッション鍵を交渉し、それらの間の相互認証を提供するために、キー配布センター(KDC)として知られる信頼できるサードパーティの使用を含みます。
The corner-stones of Kerberos V5 are the Ticket and the Authenticator. A Ticket encapsulates a symmetric key (the ticket session key) in an envelope (a public message) intended for a specific service. The contents of the Ticket are encrypted with a symmetric key shared between the service principal and the issuing KDC. The encrypted part of the Ticket contains the client principal name, among other items. An Authenticator is a record that can be shown to have been recently generated using the ticket session key in the associated Ticket. The ticket session key is known by the client who requested the ticket. The contents of the Authenticator are encrypted with the associated ticket session key. The encrypted part of an Authenticator contains a timestamp and the client principal name, among other items.
ケルベロスV5のコーナーストーンは、チケットと認証されています。チケットは、特定のサービスのために意図した封筒に対称鍵(チケットのセッション鍵)(公共のメッセージ)をカプセル化します。チケットの内容は、サービス主体と発行KDC間で共有される対称鍵を用いて暗号化されています。チケットの暗号化された部分は、他の項目の中で、クライアントのプリンシパル名が含まれています。オーセンティケータは最近、関連するチケットでチケットセッションキーを使用して生成されていることを示すことができる記録です。チケットセッションキーは、チケットを要求したクライアントによって知られています。オーセンティケータの内容は、関連するチケットセッション鍵で暗号化されています。認証の暗号化された部分は、他の項目の中で、タイムスタンプとクライアントのプリンシパル名が含まれています。
As shown in Figure 1, below, the Kerberos V5 protocol consists of the following message exchanges between the client and the KDC, and the client and the application service:
図1に示すように、以下、Kerberos V5プロトコルは、クライアントとKDC、クライアントとアプリケーションサービスとの間の次のメッセージ交換で構成されています。
- The Authentication Service (AS) Exchange
- 認証サービス(AS)交換
The client obtains an "initial" ticket from the Kerberos authentication server (AS), typically a Ticket Granting Ticket (TGT). The AS-REQ message and the AS-REP message are the request and the reply message, respectively, between the client and the AS.
クライアントがKerberos認証サーバ(AS)から「初期」のチケットを取得し、一般的にチケット許可チケット(TGT)。 AS-REQメッセージとAS-REPメッセージは、クライアントとASの間で、それぞれ、要求と応答メッセージです。
- The Ticket Granting Service (TGS) Exchange
- チケット認可サービス(TGS)交換
The client subsequently uses the TGT to authenticate and request a service ticket for a particular service, from the Kerberos ticket-granting server (TGS). The TGS-REQ message and the TGS-REP message are the request and the reply message respectively between the client and the TGS.
クライアントはその後の認証とKerberosチケット認可サーバー(TGS)から、特定のサービスのサービスチケットを要求するためTGTを使用しています。 TGS-REQメッセージ及びTGS-REPメッセージはそれぞれ、クライアントとTGSの間で要求および応答メッセージです。
- The Client/Server Authentication Protocol (AP) Exchange
- クライアント/サーバー認証プロトコル(AP)交流
The client then makes a request with an AP-REQ message, consisting of a service ticket and an authenticator that certifies the client's possession of the ticket session key. The server may optionally reply with an AP-REP message. AP exchanges typically negotiate session-specific symmetric keys.
次に、クライアントはサービスチケットからなるAP-REQメッセージ、およびチケットのセッションキーのクライアントの所有を証明する認証システムとの要求を行います。サーバは、必要に応じてAP-REPメッセージで応答することができます。 AP交換は、典型的には、セッション固有の対称鍵を交渉します。
Usually, the AS and TGS are integrated in a single device also known as the KDC.
通常、ASおよびTGSはまた、KDCとして知られている、単一のデバイスに統合されています。
+--------------+ +--------->| KDC | AS-REQ / +-------| | / / +--------------+ / / ^ | / |AS-REP / | | | / TGS-REQ + TGS-REP | | / / | | / / | | / +---------+ | | / / | | / / | | / / | v / v ++-------+------+ +-----------------+ | Client +------------>| Application | | | AP-REQ | Server | | |<------------| | +---------------+ AP-REP +-----------------+
Figure 1: The Message Exchanges in the Kerberos V5 Protocol
図1:Kerberos V5プロトコルでのメッセージ交換
In the AS exchange, the KDC reply contains the ticket session key, among other items, that is encrypted using a key (the AS reply key) shared between the client and the KDC. The AS reply key is typically derived from the client's password for human users. Therefore, for human users, the attack resistance strength of the Kerberos protocol is no stronger than the strength of their passwords.
AS交換では、KDC応答は、他の項目の中で、それはクライアントとKDCとの間で共有されるキーを(ASキー返信)を使用して暗号化され、チケットセッションキーが含まれています。 ASの応答キーは、一般的に人間のユーザのためのクライアントのパスワードから導出されます。そのため、人間のユーザのために、Kerberosプロトコルの攻撃耐性の強さは、自分のパスワードの強度よりも強いではありません。
The use of asymmetric cryptography in the form of X.509 certificates [RFC3280] is popular for facilitating data origin authentication and perfect secrecy. An established Public Key Infrastructure (PKI) provides key management and key distribution mechanisms that can be used to establish authentication and secure communication. Adding public-key cryptography to Kerberos provides a nice congruence to public-key protocols, obviates the human users' burden to manage strong passwords, and allows Kerberized applications to take advantage of existing key services and identity management.
X.509証明書[RFC3280]の形で、非対称暗号の使用は、データ発信元認証と完全秘匿を容易にするために人気があります。確立公開鍵基盤(PKI)は、認証と安全な通信を確立するために使用することができ、鍵管理と鍵配布メカニズムを提供します。ケルベロスに公開鍵暗号を追加すると、公開鍵プロトコルに素敵な合同を提供し、強力なパスワードを管理するために、人間のユーザの負担をなくし、およびKerberos対応アプリケーションは、既存の主要なサービスとアイデンティティ管理を利用することができます。
The advantage afforded by the Kerberos TGT is that the client exposes his long-term secrets only once. The TGT and its associated session key can then be used for any subsequent service ticket requests. One result of this is that all further authentication is independent of the method by which the initial authentication was performed. Consequently, initial authentication provides a convenient place to integrate public-key cryptography into Kerberos authentication. In addition, the use of symmetric cryptography after the initial exchange is preferred for performance.
ケルベロスTGTによってもたらされる利点は、クライアントが一度だけ彼の長期的な秘密を公開するということです。 TGTとそれに関連するセッション鍵は、その後、後続のサービスチケット要求に使用することができます。これの一つの結果は、すべてのさらなる認証が初期認証が実行された方法とは無関係であるということです。その結果、最初の認証は、Kerberos認証に公開鍵暗号方式を統合するための便利な場所を提供します。加えて、初期の交換後、対称暗号の使用は、性能のために好ましいです。
This document describes the methods and data formats using which the client and the KDC can use public and private key pairs to mutually authenticate in the AS exchange and negotiate the AS reply key, known only by the client and the KDC, to encrypt the AS-REP sent by the KDC.
この文書は、クライアントとKDCが相互AS交換で認証するために、公開鍵と秘密鍵のペアを使用し、ASはAS-を暗号化するために、唯一のクライアントとKDCで知られ、鍵を返信交渉することができた使用方法やデータ形式を記述するREPは、KDCによって送られました。
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
この文書のキーワード "MUST"、 "MUST NOT"、 "REQUIRED"、、、、 "べきではない" "べきである" "ないもの" "ものとし"、 "推奨"、 "MAY"、および "OPTIONAL" はあります[RFC2119]に記載されているように解釈されます。
In this protocol, both the client and the KDC have a public-private key pair in order to prove their identities to each other over the open network. The term "signature key" is used to refer to the private key of the key pair being used.
このプロトコルでは、クライアントとKDCの両方が開いて、ネットワークを介して相互に身元を証明するために、公開鍵と秘密鍵のペアを持っています。用語「署名鍵」を使用している鍵ペアの秘密鍵を参照するために使用されます。
The encryption key used to encrypt the enc-part field of the KDC-REP in the AS-REP [RFC4120] is referred to as the AS reply key.
AS-REP [RFC4120]にKDC-REPのENC-一部のフィールドを暗号化するために使用される暗号鍵は、ASキーを応答と呼ばれます。
An empty sequence in an optional field can be either included or omitted: both encodings are permitted and considered equivalent.
オプションフィールドに空シーケンスが含ま又は省略することができる次のいずれかの両方のエンコーディングを許可と同等であると考えられます。
The term "Modular Exponential Diffie-Hellman" is used to refer to the Diffie-Hellman key exchange, as described in [RFC2631], in order to differentiate it from other equivalent representations of the same key agreement algorithm.
[RFC2631]に記載されているように、用語「モジュラ指数ディフィー・ヘルマン」は同じ鍵合意アルゴリズムの他の等価な表現と区別するために、ディフィー・ヘルマン鍵共有を指すために使用されます。
This section describes extensions to [RFC4120] for supporting the use of public-key cryptography in the initial request for a ticket.
このセクションでは、チケットの最初の要求に公開鍵暗号の使用を支援するために、[RFC4120]の拡張機能について説明します。
Briefly, this document defines the following extensions to [RFC4120]:
簡単に言えば、このドキュメントは[RFC4120]に次の拡張子を定義します。
1. The client indicates the use of public-key authentication by including a special preauthenticator in the initial request. This preauthenticator contains the client's public-key data and a signature.
1.クライアントが最初の要求で特別preauthenticatorを含むことにより、公開鍵認証を使用することを示します。このpreauthenticatorは、クライアントの公開鍵データと署名が含まれています。
2. The KDC tests the client's request against its authentication policy and trusted Certification Authorities (CAs).
2. KDCは、その認証ポリシーと信頼できる証明機関(CA)に対するクライアントの要求をテストします。
3. If the request passes the verification tests, the KDC replies as usual, but the reply is encrypted using either:
3.要求が検証テストに合格した場合、KDCは、いつものように返答したが、返事はどちらか使用して暗号化されています。
a. a key generated through a Diffie-Hellman (DH) key exchange [RFC2631] [IEEE1363] with the client, signed using the KDC's signature key; or
A。クライアントとディフィー・ヘルマン(DH)鍵交換[RFC2631] [IEEE1363]を介して生成された鍵は、KDCの署名鍵を用いて署名しました。または
b. a symmetric encryption key, signed using the KDC's signature key and encrypted using the client's public key.
B。対称暗号鍵は、KDCの署名キーを使用して署名し、クライアントの公開鍵を使って暗号化。
Any keying material required by the client to obtain the encryption key for decrypting the KDC reply is returned in a pre-authentication field accompanying the usual reply.
KDC応答を復号化するための暗号鍵を取得するためにクライアントに必要な鍵材料は、通常の応答を伴う事前認証フィールドに返されます。
4. The client validates the KDC's signature, obtains the encryption key, decrypts the reply, and then proceeds as usual.
4.クライアントは、KDCの署名を検証し、暗号化キーを取得し、返信を解読して、いつものように進行します。
Section 3.1 of this document enumerates the required algorithms and necessary extension message types. Section 3.2 describes the extension messages in greater detail.
このドキュメントのセクション3.1が必要なアルゴリズムや、必要な拡張メッセージの種類を列挙します。 3.2節では、より詳細に拡張メッセージについて説明します。
All PKINIT implementations MUST support the following algorithms:
すべてのPKINITの実装は、次のアルゴリズムをサポートしなければなりません:
o AS reply key enctypes: aes128-cts-hmac-sha1-96 and aes256-cts-hmac-sha1-96 [RFC3962].
O応答キーenctypes AS:AES128-CTS-HMAC-SHA1-96とAES256-CTS-HMAC-SHA1-96 [RFC3962]。
o Signature algorithm: sha-1WithRSAEncryption [RFC3370].
O署名アルゴリズム:SHA-1WithRSAEncryption [RFC3370]。
o AS reply key delivery method: the Diffie-Hellman key delivery method, as described in Section 3.2.3.1.
セクション3.2.3.1に記載されているように、ディフィー・ヘルマン鍵配送方法:O ASキー配信方法を返信。
In addition, implementations of this specification MUST be capable of processing the Extended Key Usage (EKU) extension and the id-pkinit-san (as defined in Section 3.2.2) otherName of the Subject Alternative Name (SAN) extension in X.509 certificates [RFC3280].
また、この仕様の実装は、拡張キー使用法(EKU)拡張及びID-PKINITさんを処理することができなければなりません(セクション3.2.2で定義されるように)サブジェクト代替名のotherName(SAN)X.509に拡張証明書[RFC3280]。
All PKINIT implementations SHOULD support the following algorithm:
すべてのPKINITの実装は次のアルゴリズムをサポートする必要があります。
o AS reply key delivery method: the public key encryption key delivery method, as described in Section 3.2.3.2.
3.2.3.2項で説明したように、公開鍵暗号鍵配送方法:O ASは、鍵配送方法を返信します。
For implementations that support the public key encryption key delivery method, the following algorithms MUST be supported:
公開鍵暗号鍵配送方式をサポートする実装のために、次のアルゴリズムをサポートしなければなりません。
a) Key transport algorithms identified in the keyEncryptionAlgorithm field of the type KeyTransRecipientInfo [RFC3852] for encrypting the temporary key in the encryptedKey field [RFC3852] with a public key, as described in Section 3.2.3.2: rsaEncryption (this is the RSAES-PKCS1-v1_5 encryption scheme) [RFC3370] [RFC3447].
a)の3.2.3.2項で説明したように、公開鍵とEncryptedKeyにフィールド[RFC3852]で一時鍵を暗号化するためのタイプKeyTransRecipientInfo [RFC3852]のkeyEncryptionAlgorithmフィールドで識別キートランスポートアルゴリズム:rsaEncryptionは(これはRSAES-PKCS1です-v1_5暗号化方式)[RFC3370] [RFC3447]。
b) Content encryption algorithms identified in the contentEncryptionAlgorithm field of the type EncryptedContentInfo [RFC3852] for encrypting the AS reply key with the temporary key contained in the encryptedKey field of the type KeyTransRecipientInfo [RFC3852], as described in Section 3.2.3.2: des-ede3-cbc (three-key 3DES, CBC mode) [RFC3370].
b)はASを暗号化するためのタイプEncryptedContentInfo [RFC3852]のcontentEncryptionAlgorithmフィールドで識別されるコンテンツの暗号化アルゴリズムは、3.2.3.2項で説明したように、タイプKeyTransRecipientInfo [RFC3852]のEncryptedKeyにフィールドに含まれる一時キーとキーを返信:デスEDE3-CBC(三キー3DES、CBCモード)[RFC3370]。
PKINIT makes use of the following new pre-authentication types:
PKINITは、以下の新しい事前認証タイプを使用します:
PA_PK_AS_REQ 16 PA_PK_AS_REP 17
PKINIT also makes use of the following new authorization data type:
PKINITは、次の新しい認証データタイプを使用します:
AD_INITIAL_VERIFIED_CAS 9
AD_INITIAL_VERIFIED_CAS 9
PKINIT introduces the following new error codes:
PKINITは、次の新しいエラーコードが導入されています。
KDC_ERR_CLIENT_NOT_TRUSTED 62 KDC_ERR_INVALID_SIG 64 KDC_ERR_DH_KEY_PARAMETERS_NOT_ACCEPTED 65 KDC_ERR_CANT_VERIFY_CERTIFICATE 70 KDC_ERR_INVALID_CERTIFICATE 71 KDC_ERR_REVOKED_CERTIFICATE 72 KDC_ERR_REVOCATION_STATUS_UNKNOWN 73 KDC_ERR_CLIENT_NAME_MISMATCH 75 KDC_ERR_INCONSISTENT_KEY_PURPOSE 77 KDC_ERR_DIGEST_IN_CERT_NOT_ACCEPTED 78 KDC_ERR_PA_CHECKSUM_MUST_BE_INCLUDED 79 KDC_ERR_DIGEST_IN_SIGNED_DATA_NOT_ACCEPTED 80 KDC_ERR_PUBLIC_KEY_ENCRYPTION_NOT_SUPPORTED 81
PKINIT uses the following typed data types for errors:
PKINITは、エラーのタイプされた次のデータ型を使用します。
TD_TRUSTED_CERTIFIERS 104 TD_INVALID_CERTIFICATES 105 TD_DH_PARAMETERS 109
The ASN.1 module for all structures defined in this document (plus IMPORT statements for all imported structures) is given in Appendix A.
このドキュメント(すべての輸入構造のためのプラスIMPORT文)で定義されているすべての構造体のためのASN.1モジュールは、付録Aに記載されています
All structures defined in or imported into this document MUST be encoded using Distinguished Encoding Rules (DER) [X680] [X690] (unless otherwise noted). All data structures carried in OCTET STRINGs MUST be encoded according to the rules specified in the specifications defining each data structure; a reference to the appropriate specification is provided for each data structure.
すべての構造で定義されているか、またはこの文書にインポートは、識別符号化規則(DER)を用いて符号化されなければならない[X680] [X690](特に断りのない限り)。 OCTETストリングで運ばすべてのデータ構造は、各データ構造を定義する仕様で指定された規則に従って符号化されなければなりません。適切な仕様を参照し、各データ構造のために提供されます。
Interoperability note: Some implementations may not be able to decode wrapped Cryptographic Message Syntax (CMS) [RFC3852] objects encoded with BER; specifically, they may not be able to decode indefinite-length encodings. To maximize interoperability, implementers SHOULD encode CMS objects used in PKINIT with DER.
相互運用性注:一部の実装では、BERで符号化包ま暗号メッセージ構文(CMS)[RFC3852]オブジェクトをデコードすることができないかもしれません。具体的には、不定長エンコーディングをデコードすることができないかもしれません。相互運用性を最大化するために、実装は、DERとPKINITで使用されるCMSオブジェクトをエンコードする必要があります。
PKINIT defines the following Kerberos encryption type numbers [RFC3961], which can be used in the etype field of the AS-REQ [RFC4120] message to indicate to the KDC the client's acceptance of the corresponding algorithms (including key transport algorithms [RFC3370], content encryption algorithms [RFC3370], and signature algorithms) for use with Cryptographic Message Syntax (CMS) [RFC3852] [RFC3370].
PKINITは、キートランスポートアルゴリズムを含む、対応するアルゴリズム([RFC3370]のKDCクライアントの受け入れに示すためにAS-REQ [RFC4120]メッセージのETYPEフィールドで使用することができる、[RFC3961]以下のKerberos暗号化タイプの番号を定義し、暗号メッセージ構文(CMS)[RFC3852]、[RFC3370]で使用するためのコンテンツ暗号化アルゴリズム[RFC3370]、および署名アルゴリズム)。
Per [RFC4120], the encryption types in the etype field are in the decreasing preference order of the client. Note that there is no significance in the relative order between any two of different types of algorithms: key transport algorithms, content encryption algorithms, and signature algorithms.
[RFC4120]あたり、ETYPEフィールドに暗号化タイプは、クライアントの減少優先順位です。キートランスポートアルゴリズム、コンテンツの暗号化アルゴリズム、署名アルゴリズム:アルゴリズムの異なるタイプのうちのいずれか2つの間の相対的な順序には意味がないことに留意されたいです。
The presence of each of these encryption types in the etype field is equivalent to the presence of the corresponding algorithm Object Identifier (OID) in the supportedCMSTypes field as described in Section 3.2.1. And the preference order expressed in the supportedCMSTypes field would override the preference order listed in the etype field.
セクション3.2.1に記載したようにETYPE分野におけるこれらの暗号化タイプのそれぞれの存在はsupportedCMSTypesフィールドに対応するアルゴリズムのオブジェクト識別子(OID)が存在することと等価です。そしてsupportedCMSTypesフィールドに発現優先順位はETYPEフィールドにリストされている優先順位を上書きすることになります。
Kerberos Encryption Type Name Num Corresponding Algorithm OID ============================== === =============================== id-dsa-with-sha1-CmsOID 9 id-dsa-with-sha1 [RFC3370] md5WithRSAEncryption-CmsOID 10 md5WithRSAEncryption [RFC3370] sha-1WithRSAEncryption-CmsOID 11 sha-1WithRSAEncryption [RFC3370] rc2-cbc-EnvOID 12 rc2-cbc [RFC3370] rsaEncryption-EnvOID 13 rsaEncryption [RFC3447][RFC3370] id-RSAES-OAEP-EnvOID 14 id-RSAES-OAEP [RFC3447][RFC3560] des-ede3-cbc-EnvOID 15 des-ede3-cbc [RFC3370]
The above encryption type numbers are used only to indicate support for the use of the corresponding algorithms in PKINIT; they do not correspond to actual Kerberos encryption types [RFC3961] and MUST NOT be used in the etype field of the Kerberos EncryptedData type [RFC4120]. The practice of assigning Kerberos encryption type numbers to indicate support for CMS algorithms is considered deprecated, and new numbers should not be assigned for this purpose. Instead, the supportedCMSTypes field should be used to identify the algorithms supported by the client and the preference order of the client.
上記暗号化タイプ番号がPKINITの対応するアルゴリズムを使用するためのサポートを示すためにのみ使用されます。彼らは、実際のKerberos暗号化タイプ[RFC3961]に対応していないとKerberosはEncryptedDataタイプ[RFC4120]のETYPEフィールドで使用してはいけません。 CMSアルゴリズムのサポートを示すためのKerberos暗号化タイプ番号を割り当てるの実施は非推奨とみなされ、新しい番号は、この目的のために割り当てられるべきではありません。代わりに、supportedCMSTypesフィールドは、クライアントとクライアントの優先順位によってサポートされるアルゴリズムを識別するために使用されるべきです。
For maximum interoperability, however, PKINIT clients wishing to indicate to the KDC the support for one or more of the algorithms listed above SHOULD include the corresponding encryption type number(s) in the etype field of the AS-REQ.
最大の相互運用性のために、しかし、PKINITクライアントは、上記のアルゴリズムの一つ以上のサポートはAS-REQのETYPEフィールドに対応する暗号化の種類の数(S)を含むべきであるKDCに指示することを望みます。
This section defines the syntax and use of the various pre-authentication fields employed by PKINIT.
このセクションでは、PKINITによって使用される様々な事前認証フィールドの構文と使用を規定します。
The initial authentication request (AS-REQ) is sent as per [RFC4120]; in addition, a pre-authentication data element, whose padata-type is PA_PK_AS_REQ and whose padata-value contains the DER encoding of the type PA-PK-AS-REQ, is included.
(AS-REQ)初期認証要求は[RFC4120]に従って送信されます。加えて、そのPADATA型PA_PK_AS_REQとPADATA値型PA-PK-AS-REQのDER符号化を含んでいる、事前認証データ要素、含まれています。
PA-PK-AS-REQ ::= SEQUENCE { signedAuthPack [0] IMPLICIT OCTET STRING, -- Contains a CMS type ContentInfo encoded -- according to [RFC3852]. -- The contentType field of the type ContentInfo -- is id-signedData (1.2.840.113549.1.7.2), -- and the content field is a SignedData. -- The eContentType field for the type SignedData is -- id-pkinit-authData (1.3.6.1.5.2.3.1), and the -- eContent field contains the DER encoding of the -- type AuthPack. -- AuthPack is defined below. trustedCertifiers [1] SEQUENCE OF ExternalPrincipalIdentifier OPTIONAL, -- Contains a list of CAs, trusted by the client, -- that can be used to certify the KDC. -- Each ExternalPrincipalIdentifier identifies a CA -- or a CA certificate (thereby its public key). -- The information contained in the -- trustedCertifiers SHOULD be used by the KDC as
-- hints to guide its selection of an appropriate -- certificate chain to return to the client. kdcPkId [2] IMPLICIT OCTET STRING OPTIONAL, -- Contains a CMS type SignerIdentifier encoded -- according to [RFC3852]. -- Identifies, if present, a particular KDC -- public key that the client already has. ... }
- クライアントに返す証明書チェーン - 適切なのその選択を導くためにヒント。 kdcPkId [2] IMPLICIT OCTET STRINGのOPTIONALは、 - [RFC3852]に従って - 符号化されたCMS型SignerIdentifierを含みます。 - 識別、存在する場合、特定のKDC - クライアントがすでに持っている公開鍵。 ...}
DHNonce ::= OCTET STRING
ExternalPrincipalIdentifier ::= SEQUENCE { subjectName [0] IMPLICIT OCTET STRING OPTIONAL, -- Contains a PKIX type Name encoded according to -- [RFC3280]. -- Identifies the certificate subject by the -- distinguished subject name. -- REQUIRED when there is a distinguished subject -- name present in the certificate. issuerAndSerialNumber [1] IMPLICIT OCTET STRING OPTIONAL, -- Contains a CMS type IssuerAndSerialNumber encoded -- according to [RFC3852]. -- Identifies a certificate of the subject. -- REQUIRED for TD-INVALID-CERTIFICATES and -- TD-TRUSTED-CERTIFIERS. subjectKeyIdentifier [2] IMPLICIT OCTET STRING OPTIONAL, -- Identifies the subject's public key by a key -- identifier. When an X.509 certificate is -- referenced, this key identifier matches the X.509 -- subjectKeyIdentifier extension value. When other -- certificate formats are referenced, the documents -- that specify the certificate format and their use -- with the CMS must include details on matching the -- key identifier to the appropriate certificate -- field. -- RECOMMENDED for TD-TRUSTED-CERTIFIERS. ... }
AuthPack ::= SEQUENCE { pkAuthenticator [0] PKAuthenticator, clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL, -- Type SubjectPublicKeyInfo is defined in -- [RFC3280]. -- Specifies Diffie-Hellman domain parameters -- and the client's public key value [IEEE1363].
-- The DH public key value is encoded as a BIT -- STRING according to [RFC3279]. -- This field is present only if the client wishes -- to use the Diffie-Hellman key agreement method. supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier OPTIONAL, -- Type AlgorithmIdentifier is defined in -- [RFC3280]. -- List of CMS algorithm [RFC3370] identifiers -- that identify key transport algorithms, or -- content encryption algorithms, or signature -- algorithms supported by the client in order of -- (decreasing) preference. clientDHNonce [3] DHNonce OPTIONAL, -- Present only if the client indicates that it -- wishes to reuse DH keys or to allow the KDC to -- do so (see Section 3.2.3.1). ... }
- [RFC3279]に従ってSTRING - DH公開鍵値をビットとして符号化されます。 - のDiffie-Hellman鍵方式を使用する - このフィールドは、クライアントが希望する場合にのみ存在しています。 supportedCMSTypesのAlgorithmIdentifier OPTIONAL [2]配列は、 - [RFC3280] - タイプのAlgorithmIdentifierがで定義されています。 - (減少)嗜好 - のために、クライアントによってサポートされるアルゴリズム - 主要な輸送アルゴリズムを識別する、または - - コンテンツ暗号化アルゴリズム、または署名CMSアルゴリズム[RFC3370]識別子のリスト。 clientDHNonceは、[3] DHNonceオプション、 - 現在のクライアントがそれていることを示している場合にのみ - (セクション3.2.3.1を参照)そう - DHキーを再利用するか、KDCができるように願っています。 ...}
PKAuthenticator ::= SEQUENCE { cusec [0] INTEGER (0..999999), ctime [1] KerberosTime, -- cusec and ctime are used as in [RFC4120], for -- replay prevention. nonce [2] INTEGER (0..4294967295), -- Chosen randomly; this nonce does not need to -- match with the nonce in the KDC-REQ-BODY. paChecksum [3] OCTET STRING OPTIONAL, -- MUST be present. -- Contains the SHA1 checksum, performed over -- KDC-REQ-BODY. ... }
The ContentInfo [RFC3852] structure contained in the signedAuthPack field of the type PA-PK-AS-REQ is encoded according to [RFC3852] and is filled out as follows:
タイプPA-PK-AS-REQのsignedAuthPackフィールドに含まContentInfo [RFC3852]構造は、[RFC3852]に従って符号化され、次のように記入されています。
1. The contentType field of the type ContentInfo is id-signedData (as defined in [RFC3852]), and the content field is a SignedData (as defined in [RFC3852]).
1.タイプContentInfoのcontentTypeのフィールドは、ID-たsignedData([RFC3852]で定義されるように)であり、コンテンツフィールドはSignedDataの([RFC3852]で定義されるように)です。
2. The eContentType field for the type SignedData is id-pkinit-authData: { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2) pkinit(3) authData(1) }. Notes to CMS implementers: the signed attribute content-type MUST be present in this SignedData instance, and its value is id-pkinit-authData according to [RFC3852].
2.型のSignedDataのためのeContentTypeフィールドは、ID-PKINIT-authDataある:{ISO(1)ORG(3)DOD(6)インターネット(1)セキュリティ(5)kerberosv5(2)PKINIT(3)authData(1)} 。 CMSの実装に関する注記:署名された属性のコンテンツ・タイプは、このSignedDataのインスタンス内に存在していなければなりません、その値は[RFC3852]に従ってID-PKINIT-authDataあります。
3. The eContent field for the type SignedData contains the DER encoding of the type AuthPack.
3タイプのSignedDataのためのe-コンテンツフィールドは、タイプAuthPackのDER符号化を含んでいます。
4. The signerInfos field of the type SignedData contains a single signerInfo, which contains the signature over the type AuthPack.
4種類のSignedDataのsignerInfosフィールドは、タイプAuthPack上署名を含む単一のSignerInfoは、含まれています。
5. The AuthPack structure contains a PKAuthenticator, the client public key information, the CMS encryption types supported by the client, and a DHNonce. The pkAuthenticator field certifies to the KDC that the client has recent knowledge of the signing key that authenticates the client. The clientPublicValue field specifies Diffie-Hellman domain parameters and the client's public key value. The DH public key value is encoded as a BIT STRING according to [RFC3279]. The clientPublicValue field is present only if the client wishes to use the Diffie-Hellman key agreement method. The supportedCMSTypes field specifies the list of CMS algorithm identifiers that are supported by the client in order of (decreasing) preference, and can be used to identify a signature algorithm or a key transport algorithm [RFC3370] in the keyEncryptionAlgorithm field of the type KeyTransRecipientInfo, or a content encryption algorithm [RFC3370] in the contentEncryptionAlgorithm field of the type EncryptedContentInfo [RFC3852] when encrypting the AS reply key as described in Section 3.2.3.2. However, there is no significance in the relative order between any two of different types of algorithms: key transport algorithms, content encryption algorithms, and signature algorithms. The clientDHNonce field is described later in this section.
5. AuthPack構造はPKAuthenticator、クライアントの公開鍵情報、クライアントでサポートされているCMSの暗号化タイプ、およびDHNonceが含まれています。 pkAuthenticatorフィールドは、クライアントがクライアントを認証する署名キーの最近の知識を持っていることをKDCに証明します。 clientPublicValueフィールドはのDiffie-Hellmanドメインパラメータとクライアントの公開鍵の値を指定します。 DH公開鍵値は、[RFC3279]に記載のビット列として符号化されます。 clientPublicValueフィールドは、クライアントがのDiffie-Hellman鍵方式を使用したい場合にのみ存在しています。 supportedCMSTypesフィールドは、(減少)優先のために、クライアントによってサポートされているCMSアルゴリズム識別子のリストを指定し、タイプKeyTransRecipientInfoのkeyEncryptionAlgorithmフィールドの署名アルゴリズム又は鍵輸送アルゴリズム[RFC3370]を識別するために使用することができます3.2.3.2項で説明したように、またはASを暗号化タイプEncryptedContentInfo [RFC3852]のcontentEncryptionAlgorithmフィールドのコンテンツ暗号化アルゴリズム[RFC3370]キーを返信します。キートランスポートアルゴリズム、コンテンツ暗号化アルゴリズム、及び署名アルゴリズム:ただし、アルゴリズムの異なるタイプのうちのいずれか2つの間の相対的な順序には意味がありません。 clientDHNonceフィールドは、このセクションで後述します。
6. The ctime field in the PKAuthenticator structure contains the current time on the client's host, and the cusec field contains the microsecond part of the client's timestamp. The ctime and cusec fields are used together to specify a reasonably accurate timestamp [RFC4120]. The nonce field is chosen randomly. The paChecksum field MUST be present and it contains a SHA1 checksum that is performed over the KDC-REQ-BODY [RFC4120]. In order to ease future migration from the use of SHA1, the paChecksum field is made optional syntactically: when the request is extended to negotiate hash algorithms, the new client wishing not to use SHA1 will send the request in the extended message syntax without the paChecksum field. The KDC conforming to this specification MUST return a KRB-ERROR [RFC4120] message with the code KDC_ERR_PA_CHECKSUM_MUST_BE_INCLUDED (see Section 3.2.3). That will allow a new client to retry with SHA1 if allowed by the local policy.
6. PKAuthenticator構造のctimeのフィールドは、クライアントのホスト上で現在の時刻が含まれており、cusecフィールドは、クライアントのタイムスタンプのマイクロ秒の部分が含まれています。 CTIMEとcusecフィールドは、合理的に正確タイムスタンプ[RFC4120]を指定するために一緒に使用されます。ナンスフィールドがランダムに選択されます。 paChecksumフィールドが存在する必要があり、それはKDC-REQ-BODY [RFC4120]にわたって行われるSHA1チェックサムを含んでいます。 SHA1を使用することから、将来の移行を容易にするためには、paChecksumフィールドは、オプションの構文的に構成されています。リクエストはハッシュアルゴリズムを交渉するように拡張されている場合、新しいクライアントがpaChecksumせずに拡張メッセージ構文でリクエストを送信しますSHA1を使用しないことを希望しますフィールド。コードKDC_ERR_PA_CHECKSUM_MUST_BE_INCLUDED有するKRB-ERROR [RFC4120]メッセージを返さなければならないこの仕様に準拠するKDC(セクション3.2.3を参照します)。これは、ローカルポリシーで許可されていれば、新しいクライアントはSHA1で再試行することができます。
7. The certificates field of the type SignedData contains certificates intended to facilitate certification path construction, so that the KDC can verify the signature over the type AuthPack. For path validation, these certificates SHOULD be sufficient to construct at least one certification path from the client certificate to one trust anchor acceptable by the KDC [RFC4158]. The client MUST be capable of including such a set of certificates if configured to do so. The certificates field MUST NOT contain "root" CA certificates.
KDCは、タイプAuthPack上の署名を検証することができるように、7種類のSignedDataの証明書フィールドは、認証パス構築を容易にすることを意図した証明書が含まれています。パス検証のために、これらの証明書は、KDC [RFC4158]によって許容1つのトラストアンカーにクライアント証明書から少なくとも1つの証明書パスを構築するために十分なものでなければなりません。クライアントがそうするように構成されている場合、証明書のようなセットを含むことができなければなりません。証明書フィールドは、「ルート」CA証明書を含めることはできません。
8. The client's Diffie-Hellman public value (clientPublicValue) is included if and only if the client wishes to use the Diffie-Hellman key agreement method. The Diffie-Hellman domain parameters [IEEE1363] for the client's public key are specified in the algorithm field of the type SubjectPublicKeyInfo [RFC3279], and the client's Diffie-Hellman public key value is mapped to a subjectPublicKey (a BIT STRING) according to [RFC3279]. When using the Diffie-Hellman key agreement method, implementations MUST support Oakley 1024-bit Modular Exponential (MODP) well-known group 2 [RFC2412] and Oakley 2048-bit MODP well-known group 14 [RFC3526] and SHOULD support Oakley 4096-bit MODP well-known group 16 [RFC3526].
8.クライアントのディフィー-Hellman公開値(clientPublicValue)は、クライアントがのDiffie-Hellman鍵方式を使用したい場合にのみ含まれています。クライアントの公開鍵のためのDiffie-Hellmanドメインパラメタ[IEEE1363]はタイプSubjectPublicKeyInfoで[RFC3279]のアルゴリズムフィールドに指定され、そしてクライアントのディフィー - ヘルマン公開鍵値に応じのsubjectPublicKey(ビット列)にマップされています[ RFC3279]。ディフィー・ヘルマン鍵合意の方法を使用する場合、実装がサポートしなければならないオークリー1024ビット周知のモジュラ指数(MODP)グループ2 [RFC2412]とオークリー2048ビットMODP周知群14 [RFC3526]とオークリーをサポートすべきです4096-ビットMODP周知群16 [RFC3526]。
The Diffie-Hellman field size should be chosen so as to provide sufficient cryptographic security [RFC3766].
When MODP Diffie-Hellman is used, the exponents should have at least twice as many bits as the symmetric keys that will be derived from them [ODL99].
MODPディフィー - ヘルマンを使用する場合、指数は[ODL99]それらから誘導される対称鍵と少なくとも2倍の数のビットを有するべきです。
9. The client may wish to reuse DH keys or to allow the KDC to do so (see Section 3.2.3.1). If so, then the client includes the clientDHNonce field. This nonce string MUST be as long as the longest key length of the symmetric key types that the client supports. This nonce MUST be chosen randomly.
9.クライアントは、DHキーを再利用するか(セクション3.2.3.1を参照)KDCがそうすることを許可したいことがあります。もしそうなら、クライアントはclientDHNonceフィールドを含みます。このナンス文字列は、クライアントがサポートしている対称鍵タイプの最長キーの長さと同じ長さでなければなりません。このナンスは、無作為に選ばなければなりません。
The ExternalPrincipalIdentifier structure is used in this document to identify the subject's public key thereby the subject principal. This structure is filled out as follows:
ExternalPrincipalIdentifier構造がそれによって対象主要被写体の公開鍵を識別するために、本書で使用されています。以下のように、この構造が記入されています。
1. The subjectName field contains a PKIX type Name encoded according to [RFC3280]. This field identifies the certificate subject by the distinguished subject name. This field is REQUIRED when there is a distinguished subject name present in the certificate being used.
1. SubjectName項目は、[RFC3280]に従って符号化PKIXタイプ名が含まれています。このフィールドは、識別対象名で、証明書のサブジェクトを識別します。使用されている証明書の識別サブジェクト名が存在したときに、このフィールドは必須です。
2. The issuerAndSerialNumber field contains a CMS type IssuerAndSerialNumber encoded according to [RFC3852]. This field identifies a certificate of the subject. This field is REQUIRED for TD-INVALID-CERTIFICATES and TD-TRUSTED-CERTIFIERS (both structures are defined in Section 3.2.2).
2. issuerAndSerialNumberフィールドは、[RFC3852]に従って符号化されたCMS型IssuerAndSerialNumberを含有します。このフィールドには、サブジェクトの証明書を識別します。このフィールドは、TD-INVALID-証明書およびTD-信頼できる認証機関(両方の構造は、3.2.2項で定義されている)のために必要です。
3. The subjectKeyIdentifier [RFC3852] field identifies the subject's public key by a key identifier. When an X.509 certificate is referenced, this key identifier matches the X.509 subjectKeyIdentifier extension value. When other certificate formats are referenced, the documents that specify the certificate format and their use with the CMS must include details on matching the key identifier to the appropriate certificate field. This field is RECOMMENDED for TD-TRUSTED-CERTIFIERS (as defined in Section 3.2.2).
3. subjectKeyIdentifier [RFC3852]フィールドはキー識別子によって対象の公開鍵を識別する。 X.509証明書が参照されている場合、このキー識別子はX.509 subjectKeyIdentifier拡張値と一致します。他の証明書の形式が参照されている場合は、証明書のフォーマットとCMSとの使用を指定する文書は、適切な証明書のフィールドにキー識別子をマッチングに関する詳細を含める必要があります。 (セクション3.2.2で定義されるように)このフィールドは、TD-信頼できる認証機関に推奨されます。
The trustedCertifiers field of the type PA-PK-AS-REQ contains a list of CAs, trusted by the client, that can be used to certify the KDC. Each ExternalPrincipalIdentifier identifies a CA or a CA certificate (thereby its public key).
タイプPA-PK-AS-REQのtrustedCertifiersフィールドは、KDCを証明するために使用することができ、クライアントによって信頼され、CAのリストが含まれています。各ExternalPrincipalIdentifierは、CAまたはCA証明書(それによりその公開鍵)を識別する。
The kdcPkId field of the type PA-PK-AS-REQ contains a CMS type SignerIdentifier encoded according to [RFC3852]. This field identifies, if present, a particular KDC public key that the client already has.
タイプPA-PK-AS-REQのkdcPkIdフィールドは、[RFC3852]に従って符号化されたCMS型SignerIdentifierを含有します。存在する場合、このフィールドは、クライアントがすでに持っている特定のKDCの公開鍵を識別します。
Upon receiving the client's request, the KDC validates it. This section describes the steps that the KDC MUST (unless otherwise noted) take in validating the request.
クライアントの要求を受信すると、KDCはそれを検証します。このセクションでは、(特に断りのない限り)KDCが要求を検証に必要な手順を記載しています。
The KDC verifies the client's signature in the signedAuthPack field according to [RFC3852].
KDCは、[RFC3852]に従っsignedAuthPackフィールドに、クライアントの署名を検証します。
If, while validating the client's X.509 certificate [RFC3280], the KDC cannot build a certification path to validate the client's certificate, it sends back a KRB-ERROR [RFC4120] message with the code KDC_ERR_CANT_VERIFY_CERTIFICATE. The accompanying e-data for this error message is a TYPED-DATA (as defined in [RFC4120]) that contains an element whose data-type is TD_TRUSTED_CERTIFIERS, and whose data-value contains the DER encoding of the type TD-TRUSTED-CERTIFIERS:
クライアントのX.509証明書[RFC3280]を検証しながら、KDCはクライアントの証明書を検証する証明書パスを構築できない場合は、コードKDC_ERR_CANT_VERIFY_CERTIFICATEとKRB-ERROR [RFC4120]メッセージを送り返します。このエラーメッセージの添付電子データは、データ型TD_TRUSTED_CERTIFIERS要素が含ま型付きDATA([RFC4120]で定義されるように)であり、そしてそのデータ値型TD-信頼できる認証機関のDER符号化を含んでいます:
TD-TRUSTED-CERTIFIERS ::= SEQUENCE OF ExternalPrincipalIdentifier -- Identifies a list of CAs trusted by the KDC. -- Each ExternalPrincipalIdentifier identifies a CA -- or a CA certificate (thereby its public key).
Each ExternalPrincipalIdentifier (as defined in Section 3.2.1) in the TD-TRUSTED-CERTIFIERS structure identifies a CA or a CA certificate (thereby its public key) trusted by the KDC.
TD-信頼できる認証機関構造の各ExternalPrincipalIdentifier(セクション3.2.1で定義されるように)CA又はKDCによって信頼できるCA証明書(それによりその公開鍵)を識別する。
Upon receiving this error message, the client SHOULD retry only if it has a different set of certificates (from those of the previous requests) that form a certification path (or a partial path) from one of the trust anchors acceptable by the KDC to its own certificate.
このエラーメッセージを受信すると、クライアントは認証パス(または部分的なパス)を形成する(前の要求のものから)の証明書の異なるセットを持っている場合にのみ、再試行するべきであるのにKDCによって許容されるトラストアンカーの一つから独自の証明書。
If, while processing the certification path, the KDC determines that the signature on one of the certificates in the signedAuthPack field is invalid, it returns a KRB-ERROR [RFC4120] message with the code KDC_ERR_INVALID_CERTIFICATE. The accompanying e-data for this error message is a TYPED-DATA that contains an element whose data-type is TD_INVALID_CERTIFICATES, and whose data-value contains the DER encoding of the type TD-INVALID-CERTIFICATES:
認証パスの処理中に、KDCはsignedAuthPackフィールドの証明書のいずれかの署名が無効であると判断した場合、それは、コードKDC_ERR_INVALID_CERTIFICATE有するKRB-ERROR [RFC4120]メッセージを返します。このエラーメッセージの添付電子データは、データ型データ値型TD-INVALID-の証明書のDER符号化を含まTD_INVALID_CERTIFICATES、および要素が含ま型付き-DATAです。
TD-INVALID-CERTIFICATES ::= SEQUENCE OF ExternalPrincipalIdentifier -- Each ExternalPrincipalIdentifier identifies a -- certificate (sent by the client) with an invalid -- signature.
Each ExternalPrincipalIdentifier (as defined in Section 3.2.1) in the TD-INVALID-CERTIFICATES structure identifies a certificate (that was sent by the client) with an invalid signature.
TD-INVALID-証明書構造における各ExternalPrincipalIdentifier(セクション3.2.1で定義されるように)無効な署名付き証明書を(それはクライアントにより送信された)を識別する。
If more than one X.509 certificate signature is invalid, the KDC MAY include one IssuerAndSerialNumber per invalid signature within the TD-INVALID-CERTIFICATES.
複数のX.509証明書の署名が無効である場合、KDCは、TD-INVALID-CERTIFICATES内の無効な署名につき1 IssuerAndSerialNumberを含むかもしれません。
The client's X.509 certificate is validated according to [RFC3280].
クライアントのX.509証明書は、[RFC3280]に従って検証されます。
Depending on local policy, the KDC may also check whether any X.509 certificates in the certification path validating the client's certificate have been revoked. If any of them have been revoked, the KDC MUST return an error message with the code KDC_ERR_REVOKED_CERTIFICATE; if the KDC attempts to determine the revocation status but is unable to do so, it SHOULD return an error message with the code KDC_ERR_REVOCATION_STATUS_UNKNOWN. The certificate or certificates affected are identified exactly as for the error code KDC_ERR_INVALID_CERTIFICATE (see above).
ローカルポリシーに応じて、KDCは、クライアントの証明書を検証する証明書パス内のすべてのX.509証明書が失効しているかどうかを確認します。それらのいずれかが失効した場合、KDCは、コードKDC_ERR_REVOKED_CERTIFICATEとエラーメッセージを返さなければなりません。 KDCは、失効状態を判断しようと試みるが、そうすることができない場合、それは、コードKDC_ERR_REVOCATION_STATUS_UNKNOWNとエラーメッセージを返すべきです。影響を受けた証明書または証明書(上記参照)を正確にエラーコードKDC_ERR_INVALID_CERTIFICATE用として識別されます。
Note that the TD_INVALID_CERTIFICATES error data is only used to identify invalid certificates sent by the client in the request.
TD_INVALID_CERTIFICATES誤差データのみの要求でクライアントから送信された無効な証明書を識別するために使用されることに注意してください。
The client's public key is then used to verify the signature. If the signature fails to verify, the KDC MUST return an error message with the code KDC_ERR_INVALID_SIG. There is no accompanying e-data for this error message.
クライアントの公開鍵は、署名を検証するために使用されます。署名が検証に失敗した場合、KDCは、コードKDC_ERR_INVALID_SIGとエラー・メッセージを返さなければなりません。このエラーメッセージには添付の電子データはありません。
In addition to validating the client's signature, the KDC MUST also check that the client's public key used to verify the client's signature is bound to the client principal name specified in the AS-REQ as follows:
クライアントの署名の検証に加えて、KDCはまた、次のようにクライアントの署名を検証するために使用されるクライアントの公開鍵は、AS-REQで指定されたクライアントプリンシパル名にバインドされていることをチェックしなければなりません:
1. If the KDC has its own binding between either the client's signature-verification public key or the client's certificate and the client's Kerberos principal name, it uses that binding.
1. KDCは、クライアントの署名検証公開鍵またはクライアントの証明書とクライアントのKerberosプリンシパル名のいずれかとの間の結合、自身を持っている場合は、それが結合することを使用しています。
2. Otherwise, if the client's X.509 certificate contains a Subject Alternative Name (SAN) extension carrying a KRB5PrincipalName (defined below) in the otherName field of the type GeneralName [RFC3280], it binds the client's X.509 certificate to that name.
クライアントのX.509証明書タイプのGeneralName [RFC3280]のotherName分野でKRB5PrincipalName(以下に定義)を運ぶサブジェクトの別名(SAN)拡張子が含まれている場合2.そうでない場合は、その名前にクライアントのX.509証明書をバインドします。
The type of the otherName field is AnotherName. The type-id field of the type AnotherName is id-pkinit-san:
otherNameフィールドのタイプはAnotherNameです。タイプAnotherNameの種類-idフィールドは、ID-PKINITさんです。
id-pkinit-san OBJECT IDENTIFIER ::= { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2) x509SanAN (2) }
And the value field of the type AnotherName is a KRB5PrincipalName.
そして、型AnotherNameの値フィールドはKRB5PrincipalNameです。
KRB5PrincipalName ::= SEQUENCE { realm [0] Realm, principalName [1] PrincipalName }
If the Kerberos client name in the AS-REQ does not match a name bound by the KDC (the binding can be in the certificate, for example, as described above), or if there is no binding found by the KDC, the KDC MUST return an error message with the code KDC_ERR_CLIENT_NAME_MISMATCH. There is no accompanying e-data for this error message.
AS-REQでKerberosクライアント名は、KDCに縛ら名前と一致しない場合(前述したように、例えば、証明書にあることができる結合しない)、またはKDC、KDCのMUSTで見つけバインディング何がされている場合コードKDC_ERR_CLIENT_NAME_MISMATCHとエラーメッセージを返します。このエラーメッセージには添付の電子データはありません。
Even if the certification path is validated and the certificate is mapped to the client's principal name, the KDC may decide not to accept the client's certificate, depending on local policy.
証明書パスが検証され、証明書がクライアントのプリンシパル名にマップされている場合でも、KDCは、ローカルポリシーに応じて、クライアントの証明書を受け入れないことを決定することができます。
The KDC MAY require the presence of an Extended Key Usage (EKU) KeyPurposeId [RFC3280] id-pkinit-KPClientAuth in the extensions field of the client's X.509 certificate:
KDCは、クライアントのX.509証明書の拡張フィールドの拡張キー使用法(EKU)KeyPurposeId [RFC3280] ID-PKINIT-KPClientAuthの存在を必要とする場合があります。
id-pkinit-KPClientAuth OBJECT IDENTIFIER ::= { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2) pkinit(3) keyPurposeClientAuth(4) } -- PKINIT client authentication. -- Key usage bits that MUST be consistent: -- digitalSignature.
The digitalSignature key usage bit [RFC3280] MUST be asserted when the intended purpose of the client's X.509 certificate is restricted with the id-pkinit-KPClientAuth EKU.
クライアントのX.509証明書の使用目的は、ID-PKINIT-KPClientAuth EKUで制限されたときにデジタル署名キー使用ビット[RFC3280]はアサートする必要があります。
If this EKU KeyPurposeId is required but it is not present, or if the client certificate is restricted not to be used for PKINIT client authentication per Section 4.2.1.13 of [RFC3280], the KDC MUST return an error message of the code KDC_ERR_INCONSISTENT_KEY_PURPOSE. There is no accompanying e-data for this error message. KDCs implementing this requirement SHOULD also accept the EKU KeyPurposeId id-ms-kp-sc-logon (1.3.6.1.4.1.311.20.2.2) as meeting the requirement, as there are a large number of X.509 client certificates deployed for use with PKINIT that have this EKU.
このEKU KeyPurposeIdが必要な場合は、それが存在しない場合、またはクライアント証明書は、[RFC3280]のセクション4.2.1.13あたりPKINITクライアント認証のために使用することがないように制限されている場合、KDCは、コードKDC_ERR_INCONSISTENT_KEY_PURPOSEのエラーメッセージを返さなければなりません。このエラーメッセージには添付の電子データはありません。使用のために配備さX.509クライアント証明書の数が多いとしても、要件を満たすようにEKU KeyPurposeId ID-MS-KP-SC-ログオン(1.3.6.1.4.1.311.20.2.2)を受け入れる必要があり、この要件を実現するのKDCこのEKUを持っているPKINITと。
As a matter of local policy, the KDC MAY decide to reject requests on the basis of the absence or presence of other specific EKU OIDs.
ローカルポリシーの問題として、KDCは、他の特定のEKUのOIDの有無に基づいて要求を拒否することもできます。
If the digest algorithm used in generating the CA signature for the public key in any certificate of the request is not acceptable by the KDC, the KDC MUST return a KRB-ERROR [RFC4120] message with the code KDC_ERR_DIGEST_IN_CERT_NOT_ACCEPTED. The accompanying e-data MUST be encoded in TYPED-DATA, although none is defined at this point.
要求の証明書の公開鍵のためのCAの署名を生成する際に使用されるダイジェストアルゴリズムはKDCによって受け入れられない場合、KDCはKDC_ERR_DIGEST_IN_CERT_NOT_ACCEPTEDコードでKRB-ERROR [RFC4120]メッセージを返さなければなりません。何もこの時点で定義されていないが、添付の電子データは、型付き-DATAで符号化されなければなりません。
If the client's public key is not accepted with reasons other than those specified above, the KDC returns a KRB-ERROR [RFC4120] message with the code KDC_ERR_CLIENT_NOT_TRUSTED. There is no accompanying e-data currently defined for this error message.
クライアントの公開鍵は、上記以外の理由で受け入れられない場合、KDCは、コードKDC_ERR_CLIENT_NOT_TRUSTEDとKRB-ERROR [RFC4120]メッセージを返します。現在、このエラーメッセージに定義された添付の電子データはありません。
The KDC MUST check the timestamp to ensure that the request is not a replay, and that the time skew falls within acceptable limits. The recommendations for clock skew times in [RFC4120] apply here. If the check fails, the KDC MUST return error code KRB_AP_ERR_REPEAT or KRB_AP_ERR_SKEW, respectively.
KDCは、要求が再生されず、時間のずれが許容範囲内に収まることをことを保証するためにタイムスタンプをチェックしなければなりません。 [RFC4120]でクロック・スキューの時間のための勧告が適用されます。チェックが失敗した場合、KDCはそれぞれ、エラーコードKRB_AP_ERR_REPEATまたはKRB_AP_ERR_SKEWを返さなければなりません。
If the clientPublicValue is filled in, indicating that the client wishes to use the Diffie-Hellman key agreement method, the KDC SHOULD check to see if the key parameters satisfy its policy. If they do not, it MUST return an error message with the code KDC_ERR_DH_KEY_PARAMETERS_NOT_ACCEPTED. The accompanying e-data is a TYPED-DATA that contains an element whose data-type is TD_DH_PARAMETERS, and whose data-value contains the DER encoding of the type TD-DH-PARAMETERS:
clientPublicValueは、クライアントがディフィー・ヘルマン鍵合意方式を使用することを望んでいることを示し、入力されている場合、KDCは、主要なパラメータはそのポリシーを満たすかどうかを確認すべきです。そうでない場合は、それがコードKDC_ERR_DH_KEY_PARAMETERS_NOT_ACCEPTEDと、エラーメッセージを返さなければなりません。付随する電子データは、データ型データ値型TD-DH-PARAMETERSのDER符号化を含まTD_DH_PARAMETERS、および要素が含ま型付き-DATAです。
TD-DH-PARAMETERS ::= SEQUENCE OF AlgorithmIdentifier -- Each AlgorithmIdentifier specifies a set of -- Diffie-Hellman domain parameters [IEEE1363]. -- This list is in decreasing preference order.
TD-DH-PARAMETERS contains a list of Diffie-Hellman domain parameters that the KDC supports in decreasing preference order, from which the client SHOULD pick one to retry the request.
TD-DHパラメータは、クライアントが要求を再試行するために、1つを選択する必要があり、そこからKDCは、優先順にサポートのDiffie-Hellmanドメインパラメータのリストが含まれています。
The AlgorithmIdentifier structure is defined in [RFC3280] and is filled in according to [RFC3279]. More specifically, Section 2.3.3 of [RFC3279] describes how to fill in the AlgorithmIdentifier structure in the case where MODP Diffie-Hellman key exchange is used.
AlgorithmIdentifier構造は、[RFC3280]で定義され、[RFC3279]に従って充填されます。より具体的には、[RFC3279]のセクション2.3.3はMODPのDiffie-Hellman鍵交換を使用する場合にのAlgorithmIdentifier構造に充填する方法について説明します。
If the client included a kdcPkId field in the PA-PK-AS-REQ and the KDC does not possess the corresponding key, the KDC MUST ignore the kdcPkId field as if the client did not include one.
クライアントはPA-PK-AS-REQとKDCでkdcPkIdフィールドが含まれている場合、対応するキーを持たないクライアントは1が含まれていなかったかのように、KDCはkdcPkIdフィールドを無視しなければなりません。
If the digest algorithm used by the id-pkinit-authData is not acceptable by the KDC, the KDC MUST return a KRB-ERROR [RFC4120] message with the code KDC_ERR_DIGEST_IN_SIGNED_DATA_NOT_ACCEPTED. The accompanying e-data MUST be encoded in TYPED-DATA, although none is defined at this point.
ID-PKINIT-authDataによって使用されるダイジェストアルゴリズムはKDCによって受け入れられない場合、KDCはコードKDC_ERR_DIGEST_IN_SIGNED_DATA_NOT_ACCEPTED有するKRB-ERROR [RFC4120]メッセージを返さなければなりません。何もこの時点で定義されていないが、添付の電子データは、型付き-DATAで符号化されなければなりません。
If the paChecksum filed in the request is not present, the KDC conforming to this specification MUST return a KRB-ERROR [RFC4120] message with the code KDC_ERR_PA_CHECKSUM_MUST_BE_INCLUDED. The accompanying e-data MUST be encoded in TYPED-DATA (no error data is defined by this specification).
要求で提出paChecksumが存在しない場合、KDCは、コードKDC_ERR_PA_CHECKSUM_MUST_BE_INCLUDEDとKRB-ERROR [RFC4120]メッセージを返さなければならないこの仕様に準拠します。付随する電子データ型付き-DATA(エラーデータがこの仕様で定義されていない)で符号化されなければなりません。
Assuming that the client's request has been properly validated, the KDC proceeds as per [RFC4120], except as follows.
クライアントの要求が適切に検証されたと仮定すると、KDCは次のように除いて、[RFC4120]に従って進行します。
The KDC MUST set the initial flag and include an authorization data element of ad-type [RFC4120] AD_INITIAL_VERIFIED_CAS in the issued ticket. The ad-data [RFC4120] field contains the DER encoding of the type AD-INITIAL-VERIFIED-CAS:
KDCは、最初のフラグを設定し、発行されたチケットで広告型[RFC4120] AD_INITIAL_VERIFIED_CASの承認データ要素を含まなければなりません。広告データ[RFC4120]フィールド型AD-INITIAL検証-CASのDER符号化を含んでいます。
AD-INITIAL-VERIFIED-CAS ::= SEQUENCE OF ExternalPrincipalIdentifier -- Identifies the certification path with which -- the client certificate was validated. -- Each ExternalPrincipalIdentifier identifies a CA -- or a CA certificate (thereby its public key).
The AD-INITIAL-VERIFIED-CAS structure identifies the certification path with which the client certificate was validated. Each ExternalPrincipalIdentifier (as defined in Section 3.2.1) in the AD-INITIAL-VERIFIED-CAS structure identifies a CA or a CA certificate (thereby its public key).
AD-INITIAL検証-CAS構造は、クライアント証明書が検証されたと証明書パスを識別する。各AD-INITIAL検証-CASにおけるExternalPrincipalIdentifier(セクション3.2.1で定義されるように)構造は、CAまたはCA証明書(それによりその公開鍵)を識別する。
Note that the syntax for the AD-INITIAL-VERIFIED-CAS authorization data does permit empty SEQUENCEs to be encoded. Such empty sequences may only be used if the KDC itself vouches for the user's certificate.
AD-INITIAL - VERIFIED - CASの認証データの構文は、符号化される空のシーケンスを許可しないことに注意してください。 KDC自体がユーザーの証明書を保証する場合、このような空のシーケンスにのみ使用することができます。
The AS wraps any AD-INITIAL-VERIFIED-CAS data in AD-IF-RELEVANT containers if the list of CAs satisfies the AS' realm's local policy (this corresponds to the TRANSITED-POLICY-CHECKED ticket flag [RFC4120]). Furthermore, any TGS MUST copy such authorization data from tickets used within a PA-TGS-REQ of the TGS-REQ into the resulting ticket. If the list of CAs satisfies the local KDC's realm's policy, the TGS MAY wrap the data into the AD-IF-RELEVANT container; otherwise, it MAY unwrap the authorization data out of the AD-IF-RELEVANT container.
CAのリスト(これはTRANSITED-POLICY-CHECKEDチケットフラグ[RFC4120]に相当)AS」領域のローカルポリシーを満たしているかのようにAD-IF関連コンテナ内の任意のAD-INITIAL検証-CASデータをラップします。さらに、任意のTGSは、得られたチケットにTGS-REQのPA-TGS-REQ内で使用されるチケットから、このような認証データをコピーする必要があります。 CAのリストは、ローカルKDCのレルムのポリシーを満たしていれば、TGSは、AD-IF関連コンテナにデータをラップしてもよい(MAY)。それ以外の場合は、AD-IF関連容器の外に認証データをアンラップするかもしれません。
Application servers that understand this authorization data type SHOULD apply local policy to determine whether a given ticket bearing such a type *not* contained within an AD-IF-RELEVANT container is acceptable. (This corresponds to the AP server's checking the transited field when the TRANSITED-POLICY-CHECKED flag has not been set [RFC4120].) If such a data type is contained within an AD-IF-RELEVANT container, AP servers MAY apply local policy to determine whether the authorization data is acceptable.
この認証データのタイプを理解し、アプリケーションサーバは、* * AD-IF関連の容器内に含まれていないようなタイプのベアリング与えられたチケットが受け入れられるかどうかを判断するために、ローカルポリシーを適用する必要があります。このようなデータ型はAD-IF関連の容器内に含まれている場合(これは遷移-POLICY確認済みフラグは[RFC4120]を設定されていない場合、APサーバのは、遷移フィールドをチェックに相当する。)、APサーバは、ローカルポリシーを適用することができます認証データが受け入れられるかどうかを判断します。
A pre-authentication data element, whose padata-type is PA_PK_AS_REP and whose padata-value contains the DER encoding of the type PA-PK-AS-REP (defined below), is included in the AS-REP [RFC4120].
そのPADATA型事前認証データ要素は、そのPADATA値タイプ(以下に定義)PA-PK-AS-REP、AS-REP [RFC4120]に含まれているのDER符号化を含まPA_PK_AS_REPとなります。
PA-PK-AS-REP ::= CHOICE { dhInfo [0] DHRepInfo, -- Selected when Diffie-Hellman key exchange is -- used. encKeyPack [1] IMPLICIT OCTET STRING, -- Selected when public key encryption is used. -- Contains a CMS type ContentInfo encoded
-- according to [RFC3852]. -- The contentType field of the type ContentInfo is -- id-envelopedData (1.2.840.113549.1.7.3). -- The content field is an EnvelopedData. -- The contentType field for the type EnvelopedData -- is id-signedData (1.2.840.113549.1.7.2). -- The eContentType field for the inner type -- SignedData (when unencrypted) is -- id-pkinit-rkeyData (1.3.6.1.5.2.3.3) and the -- eContent field contains the DER encoding of the -- type ReplyKeyPack. -- ReplyKeyPack is defined in Section 3.2.3.2. ... }
- [RFC3852]に従います。 - タイプContentInfoのcontentTypeのフィールドは、 - ID-EnvelopedDataの(1.2.840.113549.1.7.3)。 - コンテンツ分野はEnvelopedDataのです。 - タイプEnvelopedDataののContentTypeフィールドは、 - ID-たsignedData(1.2.840.113549.1.7.2)です。 - インナータイプのフィールドのeContentType - ID-PKINIT-rkeyData(1.3.6.1.5.2.3.3)および - - のSignedDataは、(暗号化されていない)である式ReplyKeyPack - e-コンテンツフィールドは、DER符号化を含んでいます。 - ReplyKeyPackは、3.2.3.2項で定義されています。 ...}
DHRepInfo ::= SEQUENCE { dhSignedData [0] IMPLICIT OCTET STRING, -- Contains a CMS type ContentInfo encoded according -- to [RFC3852]. -- The contentType field of the type ContentInfo is -- id-signedData (1.2.840.113549.1.7.2), and the -- content field is a SignedData. -- The eContentType field for the type SignedData is -- id-pkinit-DHKeyData (1.3.6.1.5.2.3.2), and the -- eContent field contains the DER encoding of the -- type KDCDHKeyInfo. -- KDCDHKeyInfo is defined below. serverDHNonce [1] DHNonce OPTIONAL, -- Present if and only if dhKeyExpiration is -- present in the KDCDHKeyInfo. ... }
KDCDHKeyInfo ::= SEQUENCE { subjectPublicKey [0] BIT STRING, -- The KDC's DH public key. -- The DH public key value is encoded as a BIT -- STRING according to [RFC3279]. nonce [1] INTEGER (0..4294967295), -- Contains the nonce in the pkAuthenticator field -- in the request if the DH keys are NOT reused, -- 0 otherwise. dhKeyExpiration [2] KerberosTime OPTIONAL, -- Expiration time for KDC's key pair, -- present if and only if the DH keys are reused. -- If present, the KDC's DH public key MUST not be -- used past the point of this expiration time. -- If this field is omitted then the serverDHNonce
-- field MUST also be omitted. ... }
- フィールドも省略しなければなりません。 ...}
The content of the AS-REP is otherwise unchanged from [RFC4120]. The KDC encrypts the reply as usual, but not with the client's long-term key. Instead, it encrypts it with either a shared key derived from a Diffie-Hellman exchange or a generated encryption key. The contents of the PA-PK-AS-REP indicate which key delivery method is used.
AS-REPの内容は、[RFC4120]からそうでない場合は変更されていません。 KDCは、クライアントの長期キーでいつものように返事を暗号化しますが、ありません。代わりに、それはのDiffie-Hellman交換から派生共有鍵または生成された暗号鍵のいずれかでそれを暗号化します。 PA-PK-AS-REPの内容は、鍵配送方法が使用されているかを示します。
If the client does not wish to use the Diffie-Hellman key delivery method (the clientPublicValue field is not present in the request) and the KDC does not support the public key encryption key delivery method, the KDC MUST return an error message with the code KDC_ERR_PUBLIC_KEY_ENCRYPTION_NOT_SUPPORTED. There is no accompanying e-data for this error message.
クライアントがディフィー・ヘルマン鍵配送方法を使用したくない場合は(clientPublicValueフィールドがリクエストに存在しない)と、KDCは、公開鍵暗号鍵配送方式をサポートしていない、KDCは、コードとエラーメッセージを返さなければなりませんKDC_ERR_PUBLIC_KEY_ENCRYPTION_NOT_SUPPORTED。このエラーメッセージには添付の電子データはありません。
In addition, the lifetime of the ticket returned by the KDC MUST NOT exceed that of the client's public-private key pair. The ticket lifetime, however, can be shorter than that of the client's public-private key pair. For the implementations of this specification, the lifetime of the client's public-private key pair is the validity period in X.509 certificates [RFC3280], unless configured otherwise.
また、KDCによって返されたチケットの有効期間は、クライアントの公開鍵と秘密鍵のペアのことを超えてはなりません。チケットの有効期間は、しかし、クライアントの公開鍵と秘密鍵のペアのそれよりも短くすることができます。特に構成されていない限り、この仕様の実装では、クライアントの公開鍵と秘密鍵のペアの寿命は、X.509証明書[RFC3280]で有効期間です。
In this case, the PA-PK-AS-REP contains a DHRepInfo structure.
この場合は、PA-PK-AS-REPはDHRepInfo構造が含まれています。
The ContentInfo [RFC3852] structure for the dhSignedData field is filled in as follows:
dhSignedDataフィールドのContentInfo [RFC3852]構造は、以下のように充填されます。
1. The contentType field of the type ContentInfo is id-signedData (as defined in [RFC3852]), and the content field is a SignedData (as defined in [RFC3852]).
1.タイプContentInfoのcontentTypeのフィールドは、ID-たsignedData([RFC3852]で定義されるように)であり、コンテンツフィールドはSignedDataの([RFC3852]で定義されるように)です。
2. The eContentType field for the type SignedData is the OID value for id-pkinit-DHKeyData: { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2) pkinit(3) DHKeyData(2) }. Notes to CMS implementers: the signed attribute content-type MUST be present in this SignedData instance, and its value is id-pkinit-DHKeyData according to [RFC3852].
{ISO(1)ORG(3)DOD(6)インターネット(1)セキュリティ(5)kerberosv5(2)PKINIT(3)DHKeyData:2型のSignedDataのためのeContentTypeフィールドは、ID-PKINIT-DHKeyDataのOID値であります(2)}。 CMSの実装に関する注記:署名された属性のコンテンツ・タイプは、このSignedDataのインスタンス内に存在していなければなりません、その値は[RFC3852]に従ってID-PKINIT-DHKeyDataあります。
3. The eContent field for the type SignedData contains the DER encoding of the type KDCDHKeyInfo.
3タイプのSignedDataのためのe-コンテンツフィールドは、タイプKDCDHKeyInfoのDER符号化を含んでいます。
4. The KDCDHKeyInfo structure contains the KDC's public key, a nonce, and, optionally, the expiration time of the KDC's DH key being reused. The subjectPublicKey field of the type
4. KDCDHKeyInfo構造は、KDCの公開鍵、ナンス、および、任意で、KDCのDHキーが再利用されているの有効期限が含まれています。タイプのフィールドのsubjectPublicKey
KDCDHKeyInfo field identifies KDC's DH public key. This DH public key value is encoded as a BIT STRING according to [RFC3279]. The nonce field contains the nonce in the pkAuthenticator field in the request if the DH keys are NOT reused. The value of this nonce field is 0 if the DH keys are reused. The dhKeyExpiration field is present if and only if the DH keys are reused. If the dhKeyExpiration field is present, the KDC's public key in this KDCDHKeyInfo structure MUST NOT be used past the point of this expiration time. If this field is omitted, then the serverDHNonce field MUST also be omitted.
5. The signerInfos field of the type SignedData contains a single signerInfo, which contains the signature over the type KDCDHKeyInfo.
5種類のSignedDataのsignerInfosフィールドはタイプKDCDHKeyInfo上署名を含む単一のSignerInfoは、含まれています。
6. The certificates field of the type SignedData contains certificates intended to facilitate certification path construction, so that the client can verify the KDC's signature over the type KDCDHKeyInfo. The information contained in the trustedCertifiers in the request SHOULD be used by the KDC as hints to guide its selection of an appropriate certificate chain to return to the client. This field may be left empty if the KDC public key specified by the kdcPkId field in the PA-PK-AS-REQ was used for signing. Otherwise, for path validation, these certificates SHOULD be sufficient to construct at least one certification path from the KDC certificate to one trust anchor acceptable by the client [RFC4158]. The KDC MUST be capable of including such a set of certificates if configured to do so. The certificates field MUST NOT contain "root" CA certificates.
クライアントがタイプKDCDHKeyInfo上でKDCの署名を検証できるように、6種類のSignedDataの証明書フィールドは、証明書パスの構築を容易にすることを意図した証明書が含まれています。要求にtrustedCertifiersに含まれる情報は、クライアントに返すために適切な証明書チェーンのその選択を導くためにヒントとしてKDCによって使用されるべきです。 PA-PK-AS-REQでkdcPkIdフィールドで指定されたKDC公開鍵が署名に使用された場合、このフィールドは空のままにすることができます。それ以外の場合は、パス検証のために、これらの証明書はクライアント[RFC4158]によって許容1つのトラストアンカーにKDC証明書から少なくとも1つの証明書パスを構築するのに十分であるべきです。 KDCは、そうするように構成されている場合、証明書のようなセットを含むことができなければなりません。証明書フィールドは、「ルート」CA証明書を含めることはできません。
7. If the client included the clientDHNonce field, then the KDC may choose to reuse its DH keys. If the server reuses DH keys, then it MUST include an expiration time in the dhKeyExpiration field. Past the point of the expiration time, the signature over the type DHRepInfo is considered expired/invalid. When the server reuses DH keys then, it MUST include a serverDHNonce at least as long as the length of keys for the symmetric encryption system used to encrypt the AS reply. Note that including the serverDHNonce changes how the client and server calculate the key to use to encrypt the reply; see below for details. The KDC SHOULD NOT reuse DH keys unless the clientDHNonce field is present in the request.
7.クライアントがclientDHNonceフィールドが含まれている場合、KDCは、そのDHキーを再利用することもできます。サーバがDHキーを再利用する場合、それはdhKeyExpirationフィールドに有効期限を含まなければなりません。有効期限の点を越え、タイプDHRepInfoを超える署名が無効/有効期限が切れたと考えられています。サーバは、次に、DHキーを再利用する場合、それは、少なくとも限り応答を暗号化するために使用される対称暗号化システムの鍵の長さとしてserverDHNonceを含まなければなりません。 serverDHNonceを含むことは、クライアントとサーバーが応答を暗号化するために使用するキーの計算方法を変更することに注意してください。詳細については、以下を参照してください。 clientDHNonceフィールドがリクエストに存在しない限り、KDCは、DHキーを再利用すべきではありません。
The AS reply key is derived as follows:
次のようにAS回答キーが導出されます。
1. Both the KDC and the client calculate the shared secret value as follows:
1.次のようにKDCとクライアントの両方が共有秘密値を計算します。
a) When MODP Diffie-Hellman is used, let DHSharedSecret be the shared secret value. DHSharedSecret is the value ZZ, as described in Section 2.1.1 of [RFC2631].
DHSharedSecret is first padded with leading zeros such that the size of DHSharedSecret in octets is the same as that of the modulus, then represented as a string of octets in big-endian order.
DHSharedSecretは、最初のオクテットでDHSharedSecretのサイズは、次にビッグエンディアン順におけるオクテットの文字列として表さ弾性率と同じであるように、先行ゼロが埋め込まれています。
Implementation note: Both the client and the KDC can cache the triple (ya, yb, DHSharedSecret), where ya is the client's public key and yb is the KDC's public key. If both ya and yb are the same in a later exchange, the cached DHSharedSecret can be used.
実装上の注意:クライアントとKDCの両方が屋は、クライアントの公開鍵であり、YBは、KDCの公開鍵であるトリプル(YA、YB、DHSharedSecret)を、キャッシュすることができます。 YAとYBの両方が後で交換で同じである場合は、キャッシュされたDHSharedSecretを使用することができます。
2. Let K be the key-generation seed length [RFC3961] of the AS reply key whose enctype is selected according to [RFC4120].
2.そのENCTYPE [RFC4120]に従って選択されたキーを返信Kは、ASの鍵生成シード長[RFC3961]とします。
octetstring2key(x) == random-to-key(K-truncate( SHA1(0x00 | x) | SHA1(0x01 | x) | SHA1(0x02 | x) | ... ))
where x is an octet string; | is the concatenation operator; 0x00, 0x01, 0x02, etc. are each represented as a single octet; random-to-key() is an operation that generates a protocol key from a bitstring of length K; and K-truncate truncates its input to the first K bits. Both K and random-to-key() are as defined in the kcrypto profile [RFC3961] for the enctype of the AS reply key.
ここで、xは、オクテットストリングです。 |連結演算子です。等は0x00、0x01の、0×02は、それぞれ単一のオクテットとして表されます。ランダム・ツー・キー()長さKのビット列からプロトコル・キーを生成する操作です。そしてK-切り捨ては、第Kビットにその入力を切り捨て。 K及びランダム・ツー・キー()ASのENCTYPEためkcryptoプロファイル[RFC3961]で定義されるようにともにキーを返信。
4. When DH keys are reused, let n_c be the clientDHNonce and n_k be the serverDHNonce; otherwise, let both n_c and n_k be empty octet strings.
4. DHキーが再利用されている場合は、clientDHNonceことN_CとserverDHNonceことn_kてみましょう。それ以外の場合は、N_Cとn_kの両方が空オクテット文字列とします。
5. The AS reply key k is: k = octetstring2key(DHSharedSecret | n_c | n_k)
5. ASがキーkは返信:K = octetstring2key(DHSharedSecret | N_C | n_k)
In this case, the PA-PK-AS-REP contains the encKeyPack field where the AS reply key is encrypted.
この場合は、PA-PK-AS-REPは、ASは、キーが暗号化された返信encKeyPackフィールドが含まれています。
The ContentInfo [RFC3852] structure for the encKeyPack field is filled in as follows:
encKeyPackフィールドのContentInfo [RFC3852]構造は、以下のように充填されます。
1. The contentType field of the type ContentInfo is id-envelopedData (as defined in [RFC3852]), and the content field is an EnvelopedData (as defined in [RFC3852]).
1.タイプContentInfoのcontentTypeのフィールドは、ID-EnvelopedDataの([RFC3852]で定義されるように)であり、及びコンテンツフィールドがEnvelopedDataの([RFC3852]で定義されるように)です。
2. The contentType field for the type EnvelopedData is id-signedData: { iso (1) member-body (2) us (840) rsadsi (113549) pkcs (1) pkcs7 (7) signedData (2) }.
2.タイプEnvelopedDataののContentTypeフィールドがID-たsignedDataである:{ISO(1)部材本体(2)米国(840)RSADSI(113549)PKCS(1)PKCS7(7)たsignedData(2)}。
3. The eContentType field for the inner type SignedData (when decrypted from the encryptedContent field for the type EnvelopedData) is id-pkinit-rkeyData: { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2) pkinit(3) rkeyData(3) }. Notes to CMS implementers: the signed attribute content-type MUST be present in this SignedData instance, and its value is id-pkinit-rkeyData according to [RFC3852].
3.インナータイプ(タイプEnvelopedDataのための暗号化コンテンツフィールドから復号化)のSignedDataのためのeContentTypeフィールドは、ID-PKINIT-rkeyDataある:{ISO(1)ORG(3)DOD(6)インターネット(1)セキュリティ(5) kerberosv5(2)PKINIT(3)rkeyData(3)}。 CMSの実装に関する注記:署名された属性のコンテンツ・タイプは、このSignedDataのインスタンス内に存在していなければなりません、その値は[RFC3852]に従ってID-PKINIT-rkeyDataあります。
4. The eContent field for the inner type SignedData contains the DER encoding of the type ReplyKeyPack (as described below).
(後述のように)4.インナータイプのSignedDataのためのe-コンテンツフィールドは、タイプReplyKeyPackのDER符号化を含んでいます。
5. The signerInfos field of the inner type SignedData contains a single signerInfo, which contains the signature for the type ReplyKeyPack.
前記インナータイプのSignedDataのsignerInfosフィールドはタイプReplyKeyPackの署名を含む単一のSignerInfoを含んでいます。
6. The certificates field of the inner type SignedData contains certificates intended to facilitate certification path construction, so that the client can verify the KDC's signature for the type ReplyKeyPack. The information contained in the trustedCertifiers in the request SHOULD be used by the KDC as hints to guide its selection of an appropriate certificate chain to return to the client. This field may be left empty if the KDC public key specified by the kdcPkId field in the PA-PK-AS-REQ was used for signing. Otherwise, for path validation, these certificates SHOULD be sufficient to construct at least one certification path from the KDC certificate to one trust anchor acceptable by the client [RFC4158]. The KDC MUST be capable of including such a set of certificates if configured to do so. The certificates field MUST NOT contain "root" CA certificates.
クライアントがタイプReplyKeyPackのためにKDCの署名を検証できるように6.インナータイプのSignedDataの証明書フィールドは、証明書パスの構築を容易にすることを意図した証明書が含まれています。要求にtrustedCertifiersに含まれる情報は、クライアントに返すために適切な証明書チェーンのその選択を導くためにヒントとしてKDCによって使用されるべきです。 PA-PK-AS-REQでkdcPkIdフィールドで指定されたKDC公開鍵が署名に使用された場合、このフィールドは空のままにすることができます。それ以外の場合は、パス検証のために、これらの証明書はクライアント[RFC4158]によって許容1つのトラストアンカーにKDC証明書から少なくとも1つの証明書パスを構築するのに十分であるべきです。 KDCは、そうするように構成されている場合、証明書のようなセットを含むことができなければなりません。証明書フィールドは、「ルート」CA証明書を含めることはできません。
7. The recipientInfos field of the type EnvelopedData is a SET that MUST contain exactly one member of type KeyTransRecipientInfo. The encryptedKey of this member contains the temporary key that is encrypted using the client's public key.
7. EnvelopedDataのののrecipientInfosフィールドはタイプKeyTransRecipientInfoの正確に一つのメンバーを含まなければなりません設定されています。このメンバーのEncryptedKeyには、クライアントの公開鍵を使って暗号化された一時鍵が含まれています。
8. The unprotectedAttrs or originatorInfo fields of the type EnvelopedData MAY be present.
8. EnvelopedDataののunprotectedAttrs又はoriginatorInfoフィールドが存在してもよいです。
If there is a supportedCMSTypes field in the AuthPack, the KDC must check to see if it supports any of the listed types. If it supports more than one of the types, the KDC SHOULD use the one listed first. If it does not support any of them, it MUST return an error message with the code KDC_ERR_ETYPE_NOSUPP [RFC4120].
supportedCMSTypesフィールドがAuthPackであった場合、KDCはそれが記載されているタイプのいずれかをサポートしているかどうかを確認する必要があります。それはタイプの複数をサポートしている場合、KDCは、最初にリストされているものを使用すべきです。それはそれらのいずれかをサポートしていない場合は、コードKDC_ERR_ETYPE_NOSUPP [RFC4120]でエラーメッセージを返さなければなりません。
Furthermore, the KDC computes the checksum of the AS-REQ in the client request. This checksum is performed over the type AS-REQ, and the protocol key [RFC3961] of the checksum operation is the replyKey, and the key usage number is 6. If the replyKey's enctype is "newer" [RFC4120] [RFC4121], the checksum operation is the required checksum operation [RFC3961] of that enctype.
さらに、KDCはクライアントの要求にAS-REQのチェックサムを計算します。このチェックサムはタイプAS-REQにわたって行い、チェックサム演算のプロトコルキー[RFC3961]はreplyKeyであり、そしてreplyKeyのENCTYPEが「新しい」[RFC4120]、[RFC4121]である場合、キー使用数が、6でありますチェックサム演算は、ENCTYPEの必要なチェックサム操作[RFC3961]です。
ReplyKeyPack ::= SEQUENCE { replyKey [0] EncryptionKey, -- Contains the session key used to encrypt the -- enc-part field in the AS-REP, i.e., the -- AS reply key. asChecksum [1] Checksum, -- Contains the checksum of the AS-REQ -- corresponding to the containing AS-REP. -- The checksum is performed over the type AS-REQ. -- The protocol key [RFC3961] of the checksum is the -- replyKey and the key usage number is 6. -- If the replyKey's enctype is "newer" [RFC4120] -- [RFC4121], the checksum is the required -- checksum operation [RFC3961] for that enctype. -- The client MUST verify this checksum upon receipt -- of the AS-REP. ... }
Implementations of this RSA encryption key delivery method are RECOMMENDED to support RSA keys at least 2048 bits in size.
このRSA暗号鍵配送方式の実装は、RSA鍵サイズが少なくとも2048ビットをサポートするために推奨されています。
Upon receipt of the KDC's reply, the client proceeds as follows. If the PA-PK-AS-REP contains the dhSignedData field, the client derives the AS reply key using the same procedure used by the KDC, as defined in Section 3.2.3.1. Otherwise, the message contains the encKeyPack field, and the client decrypts and extracts the temporary key in the encryptedKey field of the member KeyTransRecipientInfo and then uses that as the AS reply key.
次のようにKDCの応答を受信すると、クライアントが進行します。 PA-PK-AS-REPがdhSignedDataフィールドが含まれている場合、クライアントはASを導出節3.2.3.1で定義されるように、KDCが使用するのと同じ手順を使用してキーを返信します。そうしないと、メッセージはencKeyPackフィールドが含まれており、クライアントが復号化し、メンバーKeyTransRecipientInfoのEncryptedKeyにフィールドで一時鍵を抽出し、ASは、キーを返信としてその使用しています。
If the public key encryption method is used, the client MUST verify the asChecksum contained in the ReplyKeyPack.
公開鍵暗号方式を使用する場合、クライアントはReplyKeyPackに含まれるasChecksumを確かめなければなりません。
In either case, the client MUST verify the signature in the SignedData according to [RFC3852]. The KDC's X.509 certificate MUST be validated according to [RFC3280]. In addition, unless the client can otherwise verify that the public key used to verify the KDC's signature is bound to the KDC of the target realm, the KDC's X.509 certificate MUST contain a Subject Alternative Name extension [RFC3280] carrying an AnotherName whose type-id is id-pkinit-san (as defined in Section 3.2.2) and whose value is a KRB5PrincipalName that matches the name of the TGS of the target realm (as defined in Section 7.3 of [RFC4120]).
いずれの場合も、クライアントは、[RFC3852]に記載のSignedDataで署名を検証しなければなりません。 KDCのX.509証明書は、[RFC3280]に従って検証しなければなりません。また、しない限り、クライアントが他の公開鍵は、ターゲット領域のKDCに結合しているKDCの署名を検証するために使用されることを確認することができ、KDCのX.509証明書は、タイプAnotherNameを運ぶサブジェクト代替名の拡張[RFC3280]を含まなければなりません-idは、ID-PKINIT-SAN(セクション3.2.2で定義されるように)、その値が目標領域のTGS([RFC4120]のセクション7.3で定義されている)の名前と一致KRB5PrincipalNameです。
Unless the client knows by some other means that the KDC certificate is intended for a Kerberos KDC, the client MUST require that the KDC certificate contains the EKU KeyPurposeId [RFC3280] id-pkinit-KPKdc:
いくつかの他は、KDC証明書がKerberosのKDCのために意図されていることを意味することで、クライアントが知っている場合を除き、クライアントは、KDC証明書がEKU KeyPurposeId [RFC3280] ID-PKINIT-KPKdcが含まれていることを必要としなければなりません:
id-pkinit-KPKdc OBJECT IDENTIFIER ::= { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2) pkinit(3) keyPurposeKdc(5) } -- Signing KDC responses. -- Key usage bits that MUST be consistent: -- digitalSignature.
The digitalSignature key usage bit [RFC3280] MUST be asserted when the intended purpose of the KDC's X.509 certificate is restricted with the id-pkinit-KPKdc EKU.
KDCのX.509証明書の使用目的は、ID-PKINIT-KPKdc EKUで制限されたときにデジタル署名キー使用ビット[RFC3280]はアサートする必要があります。
If the KDC certificate contains the Kerberos TGS name encoded as an id-pkinit-san SAN, this certificate is certified by the issuing CA as a KDC certificate, therefore the id-pkinit-KPKdc EKU is not required.
KDC証明書がID-PKINITさんSANとしてエンコードケルベロスTGS名が含まれている場合、この証明書は、したがって、ID-PKINIT-KPKdc EKUが必要とされない、KDC証明書として発行CAによって認定されます。
If all applicable checks are satisfied, the client then decrypts the enc-part field of the KDC-REP in the AS-REP, using the AS reply key, and then proceeds as described in [RFC4120].
すべての適用可能なチェックが満たされた場合、クライアントは、次に、ASを使用して、AS-REPでKDC-REPのENC-一部のフィールドを復号する鍵を返信し、[RFC4120]に記載のように進行します。
The client MUST be capable of sending a set of certificates sufficient to allow the KDC to construct a certification path for the client's certificate, if the correct set of certificates is provided through configuration or policy.
クライアントは、証明書の正しいセットを設定またはポリシーを介して提供された場合、KDCは、クライアントの証明書用の証明書パスを構築することを可能にするのに十分な証明書のセットを送ることができなければなりません。
If the client sends all the X.509 certificates on a certification path to a trust anchor acceptable by the KDC, and if the KDC cannot verify the client's public key otherwise, the KDC MUST be able to process path validation for the client's certificate based on the certificates in the request.
クライアントは、KDCによって許容トラストアンカーへの証明経路上のすべてのX.509証明書を送信し、KDCは、そうでない場合は、クライアントの公開鍵を確認できない場合、KDCは、に基づいて、クライアントの証明書パス検証を処理できなければならない場合要求内の証明書。
The KDC MUST be capable of sending a set of certificates sufficient to allow the client to construct a certification path for the KDC's certificate, if the correct set of certificates is provided through configuration or policy.
KDCは、証明書の正しいセットを設定またはポリシーを介して提供された場合、クライアントは、KDCの証明書用の証明書パスを構築することを可能にするのに十分な証明書のセットを送ることができなければなりません。
If the KDC sends all the X.509 certificates on a certification path to a trust anchor acceptable by the client, and the client can not verify the KDC's public key otherwise, the client MUST be able to process path validation for the KDC's certificate based on the certificates in the reply.
KDCは、クライアントによる許容トラストアンカーへの証明書パス上のすべてのX.509証明書を送信し、クライアントはそれ以外のKDCの公開鍵を検証することはできません、クライアントは上のベースKDCの証明書のパス検証を処理できなければならない場合応答内の証明書。
If pre-authentication is required but was not present in the request, per [RFC4120] an error message with the code KDC_ERR_PREAUTH_FAILED is returned, and a METHOD-DATA object will be stored in the e-data field of the KRB-ERROR message to specify which pre-authentication mechanisms are acceptable. The KDC can then indicate the support of PKINIT by including an empty element whose padata-type is PA_PK_AS_REQ in that METHOD-DATA object.
事前認証は必要なく、要求に存在していなかった場合、コードのKDC_ERR_PREAUTH_FAILEDと[RFC4120]あたりのエラーメッセージが返され、メソッド・データ・オブジェクトは、にKRB-ERRORメッセージの電子データフィールドに格納されます事前認証メカニズムが許容されるかを指定します。 KDCは、次いで、そのPADATA型そのメソッド・データ・オブジェクトにPA_PK_AS_REQある空の要素を含むことにより、PKINITのサポートを示すことができます。
Otherwise if it is required by the KDC's local policy that the client must be pre-authenticated using the pre-authentication mechanism specified in this document, but no PKINIT pre-authentication was present in the request, an error message with the code KDC_ERR_PREAUTH_FAILED SHOULD be returned.
それは、クライアントは、この文書で指定された事前認証メカニズムを使用して事前に認証されなければならないことをKDCのローカルポリシーで必要とされるが、ないPKINITの事前認証が要求に存在していない場合はそれ以外の場合は、コードKDC_ERR_PREAUTH_FAILEDとエラーメッセージがあるべきです戻ってきた。
KDCs MUST leave the padata-value field of the PA_PK_AS_REQ element in the KRB-ERROR's METHOD-DATA empty (i.e., send a zero-length OCTET STRING), and clients MUST ignore this and any other value. Future extensions to this protocol may specify other data to send instead of an empty OCTET STRING.
KDCは空(すなわち、長さゼロのオクテット文字列を送信する)KRB-ERRORのMETHOD-DATAにPA_PK_AS_REQ要素のPADATA値フィールドを残しておく必要があり、クライアントはこれと他の値を無視しなければなりません。このプロトコルの将来の拡張は、空のオクテット文字列の代わりに送信するために他のデータを指定することもできます。
The security of cryptographic algorithms is dependent on generating secret quantities [RFC4086]. The number of truly random bits is extremely important in determining the attack resistance strength of the cryptosystem; for example, the secret Diffie-Hellman exponents must be chosen based on n truly random bits (where n is the system security requirement). The security of the overall system is significantly weakened by using insufficient random inputs: a sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.
暗号アルゴリズムの安全性は、秘密量[RFC4086]を生成するに依存しています。真にランダムなビットの数は、暗号の攻撃抵抗力を決定する上で極めて重要です。例えば、秘密のDiffie-Hellman指数(Nはシステムのセキュリティ要件である)真にランダムなnビットに基づいて選択しなければなりません。全体の数量を検索するよりも、洗練された攻撃者は、それが簡単に秘密量を生産環境を再現すると可能性の結果の小さなセットを検索するために見つけることがあります。システム全体のセキュリティが大幅に不足し、ランダムな入力を使用することによって弱められます潜在的な数のスペース。
Kerberos error messages are not integrity protected; as a result, the domain parameters sent by the KDC as TD-DH-PARAMETERS can be tampered with by an attacker so that the set of domain parameters selected could be either weaker or not mutually preferred. Local policy can configure sets of domain parameters acceptable locally, or disallow the negotiation of DH domain parameters.
Kerberosのエラーメッセージは、完全性が保護されていません。選択されたドメインパラメータの組が弱く又は相互に好適ではないのいずれかとすることができるように、結果として、TD-DH-パラメータとしてKDCによって送信されたドメインパラメータは、攻撃者によって改ざんされ得ます。ローカルポリシーは、ローカルに許容可能なドメインパラメータのセットを構成、またはDHドメインパラメータのネゴシエーションを禁止することができます。
The symmetric reply key size and Diffie-Hellman field size or RSA modulus size should be chosen so as to provide sufficient cryptographic security [RFC3766].
十分な暗号のセキュリティ[RFC3766]を提供するように対称応答鍵サイズとのDiffie-HellmanフィールドサイズやRSAモジュラスサイズが選択されるべきです。
When MODP Diffie-Hellman is used, the exponents should have at least twice as many bits as the symmetric keys that will be derived from them [ODL99].
MODPディフィー - ヘルマンを使用する場合、指数は[ODL99]それらから誘導される対称鍵と少なくとも2倍の数のビットを有するべきです。
PKINIT raises certain security considerations beyond those that can be regulated strictly in protocol definitions. We will address them in this section.
PKINITはプロトコル定義に厳密に調節することができるものを超えて、特定のセキュリティ上の考慮事項が発生します。私たちは、このセクションでそれらに対処します。
PKINIT extends the cross-realm model to the public-key infrastructure. Users of PKINIT must understand security policies and procedures appropriate to the use of Public Key Infrastructures [RFC3280].
PKINITは、公開鍵インフラストラクチャにクロスレルムモデルを拡張します。 PKINITのユーザは、[RFC3280]公開鍵インフラストラクチャの使用に適切なセキュリティポリシーと手続きを理解する必要があります。
In order to trust a KDC certificate that is certified by a CA as a KDC certificate for a target realm (for example, by asserting the TGS name of that Kerberos realm as an id-pkinit-san SAN and/or restricting the certificate usage by using the id-pkinit-KPKdc EKU, as described in Section 3.2.4), the client MUST verify that the KDC certificate's issuing CA is authorized to issue KDC certificates for that target realm. Otherwise, the binding between the KDC certificate and the KDC of the target realm is not established.
(例えば、ID-PKINITさんSANとしてそのケルベロスレルムのTGS名をアサートおよび/または、証明書の使用を制限することによって、ターゲットレルムのKDC証明書としてCAによって認定されたKDC証明書を信頼するために3.2.4項で説明したように)、ID-PKINIT-KPKdc EKUを使用して、クライアントがKDC証明書の発行元CAがそのターゲット・レルムのKDC証明書を発行する権限があることを確かめなければなりません。それ以外の場合は、KDC証明書とターゲットレルムのKDCとの間の結合が確立されていません。
How to validate this authorization is a matter of local policy. A way to achieve this is the configuration of specific sets of intermediary CAs and trust anchors, one of which must be on the KDC certificate's certification path [RFC3280], and, for each CA or trust anchor, the realms for which it is allowed to issue certificates.
どのようにこの承認を検証するには、ローカルポリシーの問題です。これを達成するための方法は、KDC証明書の証明書パス上になければならないそのうちの一つの中間CAおよび信頼アンカーの特定のセット、[RFC3280]の設定で、かつ、各CAまたはトラストアンカーのために、それが許可されているため、レルム証明書を発行します。
In addition, if any CA that is trusted to issue KDC certificates can also issue other kinds of certificates, then local policy must be able to distinguish between them; for example, it could require that KDC certificates contain the id-pkinit-KPKdc EKU or that the realm be specified with the id-pkinit-san SAN.
KDC証明書を発行する信頼されている任意のCAはまた、証明書の他の種類を発行することができればまた、ローカルポリシーは、それらを区別することができなければなりません。例えば、それは、KDC証明書は、ID-PKINIT-KPKdc EKUが含まれていることやレルムがID-PKINITさんSANで指定する必要があります。
It is the responsibility of the PKI administrators for an organization to ensure that KDC certificates are only issued to KDCs, and that clients can ascertain this using their local policy.
KDC証明書は唯一のKDCに対して発行されていることを確認するために、組織のPKI管理者の責任である、とクライアントは、ローカルポリシーを使用して、これを確かめることができるという。
Standard Kerberos allows the possibility of interactions between cryptosystems of varying strengths; this document adds interactions with public-key cryptosystems to Kerberos. Some administrative policies may allow the use of relatively weak public keys. When using such weak asymmetric keys to protect/exchange stronger symmetric Keys, the attack resistant strength of the overall system is no better than that of these weak keys [RFC3766].
標準ケルベロスは、様々な強度の暗号システムとの間の相互作用の可能性を可能にします。このドキュメントは、Kerberosの公開鍵暗号との相互作用を追加します。一部の管理ポリシーが比較的弱い、公開鍵の使用を可能にすることができます。 /交換強力な対称鍵を保護するために、このような弱い非対称鍵を使用する場合、システム全体の攻撃耐性の強さは、これらの弱いキー[RFC3766]のものよりも良好ではありません。
PKINIT requires that keys for symmetric cryptosystems be generated. Some such systems contain "weak" keys. For recommendations regarding these weak keys, see [RFC4120].
PKINITは、対称暗号のための鍵が生成されている必要があります。いくつかのこのようなシステムは、「弱い」キーを含みます。これらの弱いキーに関する推奨事項については、[RFC4120]を参照してください。
PKINIT allows the use of the same RSA key pair for encryption and signing when doing RSA encryption-based key delivery. This is not recommended usage of RSA keys [RFC3447]; by using DH-based key delivery, this is avoided.
RSA暗号に基づく鍵配送を行うときPKINITは、暗号化と署名のための同じRSA鍵ペアを使用することができます。これは、RSAキー[RFC3447]の使用をお勧めしません。 DHベースのキーの配信を使用することによって、これを回避することができます。
Care should be taken in how certificates are chosen for the purposes of authentication using PKINIT. Some local policies may require that key escrow be used for certain certificate types. Deployers of PKINIT should be aware of the implications of using certificates that have escrowed keys for the purposes of authentication. Because signing-only certificates are normally not escrowed, by using DH-based key delivery this is avoided.
ケアは、証明書はPKINITを使用して認証する目的のために選択されるかに注意する必要があります。いくつかのローカルポリシーは、キーエスクローは、特定の証明書タイプに使用することを要求することができます。 PKINITのデプロイヤは、認証のために鍵を預託されている証明書を使用した場合の影響に注意する必要があります。署名のみの証明書が正常に預託されていないので、DHベースのキーの配信を使用することによってこれが回避されます。
PKINIT does not provide for a "return routability" test to prevent attackers from mounting a denial-of-service attack on the KDC by causing it to perform unnecessary and expensive public-key operations. Strictly speaking, this is also true of standard Kerberos, although the potential cost is not as great, because standard Kerberos does not make use of public-key cryptography. By using DH-based key delivery and reusing DH keys, the necessary crypto processing cost per request can be minimized.
PKINITは、それが不必要で高価な公開鍵操作を実行させることにより、KDC上のサービス拒否攻撃を仕掛ける攻撃者を防ぐために、「リターン・ルータビリティ」のテストのために用意されていません。標準のKerberosは、公開鍵暗号を利用していないため、潜在的なコストは、のように素晴らしいではありませんが、厳密に言うと、これは、また、標準のKerberosの事実です。 DHベースの鍵配送を使用してDHキーを再利用することにより、要求ごとに必要な暗号処理コストを最小限に抑えることができます。
When the Diffie-Hellman key exchange method is used, additional pre-authentication data [RFC4120] (in addition to the PA_PK_AS_REQ, as defined in this specification) is not bound to the AS_REQ by the mechanisms discussed in this specification (meaning it may be dropped or added by attackers without being detected by either the client or the KDC). Designers of additional pre-authentication data should take that into consideration if such additional pre-authentication data can be used in conjunction with the PA_PK_AS_REQ. The future work of the Kerberos working group is expected to update the hash algorithms specified in this document and provide a generic mechanism to bind additional pre-authentication data with the accompanying AS_REQ.
(本明細書で定義されるように、PA_PK_AS_REQに加えて)のDiffie-Hellman鍵交換法は、追加の事前認証データ[RFC4120]を使用する場合、本明細書で説明したメカニズムによってAS_REQにバインドされていない(それがあってもよい意味クライアントまたはKDC)のいずれかによって検出されずに廃棄されるか、または攻撃者によって追加。そのような追加の事前認証データがPA_PK_AS_REQと共に使用することができる場合には、追加の事前認証データの設計者は考慮それを取るべきです。ケルベロスワーキンググループの今後の作業は、この文書で指定されたハッシュアルゴリズムを更新し、添付AS_REQで追加の事前認証データをバインドするために、一般的なメカニズムを提供することが期待されます。
The key usage number 6 used by the asChecksum field is also used for the authenticator checksum (cksum field of AP-REQ) contained in the PA-TGS-REQ preauthentication data contained in a TGS-REQ [RFC4120]. This conflict is present for historical reasons; the reuse of key usage numbers is strongly discouraged.
asChecksum分野で使用される主要な用法番号6はまた、TGS-REQ [RFC4120]に含まれるPA-TGS-REQ事前認証データに含まれる認証子チェックサム(AP-REQのcksumのフィールド)のために使用されます。この競合は、歴史的な理由のために存在します。鍵の使用番号の再利用を強くお勧めします。
The following people have made significant contributions to this document: Paul Leach, Stefan Santesson, Sam Hartman, Love Hornquist Astrand, Ken Raeburn, Nicolas Williams, John Wray, Tom Yu, Jeffrey Hutzelman, David Cross, Dan Simon, Karthik Jaganathan, Chaskiel M Grundman, and Jeffrey Altman.
ポール・リーチ、ステファンSantesson、サム・ハートマン、愛Hornquist Astrand、ケン・レイバーン、ニコラス・ウィリアムズ、ジョン・レー、トム・ゆう、ジェフリーHutzelman、デヴィッド・クロス、ダン・サイモン、カルティクJaganathan、Chaskiel M:以下の人はこのドキュメントへの重要な貢献をしましたGrundman、およびジェフリー・アルトマン。
Andre Scedrov, Aaron D. Jaggard, Iliano Cervesato, Joe-Kai Tsay, and Chris Walstad discovered a binding issue between the AS-REQ and AS-REP in draft -26; the asChecksum field was added as the result.
アンドレScedrov、アーロンD. Jaggard、Iliano Cervesato、ジョー・カイTsay、そしてクリスWalstadは、ドラフト-26でAS-REQとAS-REP間の結合の問題を発見しました。 asChecksumフィールドは、結果として追加されました。
Special thanks to Clifford Neuman, Matthew Hur, Ari Medvinsky, Sasha Medvinsky, and Jonathan Trostle who wrote earlier versions of this document.
クリフォード・ニューマン、マシュー・ハー、アリMedvinsky、サーシャMedvinsky、およびこのドキュメントの以前のバージョンを書いたジョナサンTrostleに感謝します。
The authors are indebted to the Kerberos working group chair, Jeffrey Hutzelman, who kept track of various issues and was enormously helpful during the creation of this document.
著者は、様々な問題のトラックを維持し、この文書の作成時に非常に役立ちましたケルベロスワーキンググループの議長、ジェフリーHutzelmanにお世話になっています。
Some of the ideas on which this document is based arose during discussions over several years between members of the SAAG, the IETF CAT working group, and the PSRG, regarding integration of Kerberos and SPX. Some ideas have also been drawn from the DASS system. These changes are by no means endorsed by these groups. This is an attempt to revive some of the goals of those groups, and this document approaches those goals primarily from the Kerberos perspective.
このドキュメントの基礎となるアイデアのいくつかはケルベロスとSPXの統合に関しては、SAAG、IETF CATワーキンググループ、およびPSRGのメンバーの間で、数年にわたる議論の間に生まれました。いくつかのアイデアもDASSシステムから引き出されています。これらの変更は、決してこれらのグループによって承認されています。これは、それらのグループの目標の一部を復活しようとする試みであり、この文書は、Kerberosの観点から、主にこれらの目標に近づきます。
Lastly, comments from groups working on similar ideas in DCE have been invaluable.
最後に、DCEで同様の考えにワーキンググループからのコメントは非常に貴重でした。
[IEEE1363] IEEE, "Standard Specifications for Public Key Cryptography", IEEE 1363, 2000.
[IEEE1363] IEEE、 "公開鍵暗号のための標準仕様"、IEEE 1363、2000。
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2119]ブラドナーの、S.、 "要件レベルを示すためにRFCsにおける使用のためのキーワード"、BCP 14、RFC 2119、1997年3月。
[RFC2412] Orman, H., "The OAKLEY Key Determination Protocol", RFC 2412, November 1998.
[RFC2412]オーマン、H.、 "OAKLEYキー決意プロトコル"、RFC 2412、1998年11月。
[RFC2631] Rescorla, E., "Diffie-Hellman Key Agreement Method", RFC 2631, June 1999.
[RFC2631]レスコラ、E.、 "ディフィー・ヘルマン鍵共有方式"、RFC 2631、1999年6月。
[RFC3279] Bassham, L., Polk, W., and R. Housley, "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279, April 2002.
[RFC3279] Bassham、L.、ポーク、W.、およびR. Housley氏、RFC 3279、2002年4月 "インターネットX.509公開鍵暗号基盤証明書と証明書失効リスト(CRL)プロフィールのためのアルゴリズムと識別子"。
[RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3280, April 2002.
[RFC3280] Housley氏、R.、ポーク、W.、フォード、W.、およびD.ソロ、 "インターネットX.509公開鍵暗号基盤証明書と証明書失効リスト(CRL)プロフィール"、RFC 3280、2002年4月。
[RFC3370] Housley, R., "Cryptographic Message Syntax (CMS) Algorithms", RFC 3370, August 2002.
[RFC3370] Housley氏、R.、 "暗号メッセージ構文(CMS)アルゴリズム"、RFC 3370、2002年8月。
[RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1", RFC 3447, February 2003.
[RFC3447]ジョンソン、J.とB. Kaliski、 "公開鍵暗号規格(PKCS)#1:RSA暗号仕様バージョン2.1"、RFC 3447、2003年2月。
[RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)", RFC 3526, May 2003.
[RFC3526] Kivinen、T.およびM.古城、 "インターネット鍵交換のためのより多くのモジュラー指数(MODP)のDiffie-Hellmanグループ(IKE)"、RFC 3526、2003年5月。
[RFC3560] Housley, R., "Use of the RSAES-OAEP Key Transport Algorithm in Cryptographic Message Syntax (CMS)", RFC 3560, July 2003.
[RFC3560] Housley氏、R.、RFC 3560 "暗号メッセージ構文(CMS)でRSAES-OAEPキー交通アルゴリズムの使用"、2003年7月。
[RFC3766] Orman, H. and P. Hoffman, "Determining Strengths For Public Keys Used For Exchanging Symmetric Keys", BCP 86, RFC 3766, April 2004.
[RFC3766]オーマン、H.、およびP.ホフマン、 "対称鍵を交換するために使用公開鍵の強さを測定"、BCP 86、RFC 3766、2004年4月。
[RFC3852] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3852, July 2004.
[RFC3852] Housley氏、R.、 "暗号メッセージ構文(CMS)"、RFC 3852、2004年7月。
[RFC3961] Raeburn, K., "Encryption and Checksum Specifications for Kerberos 5", RFC 3961, February 2005.
[RFC3961]レイバーン、K.、 "暗号化とケルベロス5チェックサムの仕様"、RFC 3961、2005年2月。
[RFC3962] Raeburn, K., "Advanced Encryption Standard (AES) Encryption for Kerberos 5", RFC 3962, February 2005.
[RFC3962]レイバーン、K.、 "Kerberos 5のためのAdvanced Encryption Standard(AES)暗号化"、RFC 3962、2005年2月。
[RFC4086] Eastlake, D., 3rd, Schiller, J., and S. Crocker, "Randomness Requirements for Security", BCP 106, RFC 4086, June 2005.
[RFC4086]イーストレーク、D.、3、シラー、J.、およびS.クロッカー、 "セキュリティのためのランダム要件"、BCP 106、RFC 4086、2005年6月。
[RFC4120] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos Network Authentication Service (V5)", RFC 4120, July 2005.
[RFC4120]ノイマン、C.、ゆう、T.、ハルトマン、S.、およびK.レイバーン、 "ケルベロスネットワーク認証サービス(V5)"、RFC 4120、2005年7月。
[X680] ITU-T Recommendation X.680 (2002) | ISO/IEC 8824-1:2002, Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation.
[X680] ITU-T勧告X.680(2002)| ISO / IEC 8824から1:2002、情報技術 - 抽象構文記法1(ASN.1):基本的な記法の仕様。
[X690] ITU-T Recommendation X.690 (2002) | ISO/IEC 8825-1:2002, Information technology - ASN.1 encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER).
[X690] ITU-T勧告X.690(2002)| ISO / IEC 8825から1:2002、情報技術 - ASN.1エンコーディングルール:基本符号化規則(BER)の仕様、Canonicalの符号化規則(CER)、および顕著な符号化規則(DER)。
[ODL99] Odlyzko, A., "Discrete logarithms: The past and the future, Designs, Codes, and Cryptography (1999)". April 1999.
【ODL99] Odlyzko、A.、 "離散対数:過去と未来、デザイン、コード、及び暗号化(1999)"。 1999年4月。
[RFC4121] Zhu, L., Jaganathan, K., and S. Hartman, "The Kerberos Version 5 Generic Security Service Application Program Interface (GSS-API) Mechanism: Version 2", RFC 4121, July 2005.
[RFC4121]朱、L.、Jaganathan、K.、およびS.ハートマン、 "Kerberosバージョン5の汎用セキュリティサービスアプリケーションプログラムインタフェース(GSS-API)メカニズム:バージョン2"、RFC 4121、2005年7月。
[RFC4158] Cooper, M., Dzambasow, Y., Hesse, P., Joseph, S., and R. Nicholas, "Internet X.509 Public Key Infrastructure: Certification Path Building", RFC 4158, September 2005.
[RFC4158]クーパー、M.、Dzambasow、Y.、ヘッセン、P.、ジョセフ、S.、およびR.ニコラス、 "X.509のインターネット公開鍵は構造nfra:建物の証明のパス"、RFC 4158、2005年9月を。
Appendix A. PKINIT ASN.1 Module
付録A. PKINIT ASN.1モジュール
KerberosV5-PK-INIT-SPEC { iso(1) identified-organization(3) dod(6) internet(1) security(5) kerberosV5(2) modules(4) pkinit(5) } DEFINITIONS EXPLICIT TAGS ::= BEGIN
IMPORTS
輸入
SubjectPublicKeyInfo, AlgorithmIdentifier FROM PKIX1Explicit88 { iso (1) identified-organization (3) dod (6) internet (1) security (5) mechanisms (5) pkix (7) id-mod (0) id-pkix1-explicit (18) } -- As defined in RFC 3280.
KerberosTime, PrincipalName, Realm, EncryptionKey, Checksum FROM KerberosV5Spec2 { iso(1) identified-organization(3) dod(6) internet(1) security(5) kerberosV5(2) modules(4) krb5spec2(2) }; -- as defined in RFC 4120.
KerberosTime、のPrincipalName、レルム、EncryptionKey、チェックサムKerberosV5Spec2 FROM {ISO(1)同定された組織(3)DOD(6)インターネット(1)セキュリティ(5)kerberosV5(2)モジュール(4)krb5spec2(2)}。 - RFC 4120で定義されています。
id-pkinit OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) dod(6) internet(1) security(5) kerberosv5(2) pkinit (3) }
id-pkinit-authData OBJECT IDENTIFIER ::= { id-pkinit 1 } id-pkinit-DHKeyData OBJECT IDENTIFIER ::= { id-pkinit 2 } id-pkinit-rkeyData OBJECT IDENTIFIER ::= { id-pkinit 3 } id-pkinit-KPClientAuth OBJECT IDENTIFIER ::= { id-pkinit 4 } id-pkinit-KPKdc OBJECT IDENTIFIER ::= { id-pkinit 5 }
id-pkinit-san OBJECT IDENTIFIER ::= { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2) x509SanAN (2) }
pa-pk-as-req INTEGER ::= 16 pa-pk-as-rep INTEGER ::= 17
ad-initial-verified-cas INTEGER ::= 9
td-trusted-certifiers INTEGER ::= 104 td-invalid-certificates INTEGER ::= 105 td-dh-parameters INTEGER ::= 109
PA-PK-AS-REQ ::= SEQUENCE { signedAuthPack [0] IMPLICIT OCTET STRING, -- Contains a CMS type ContentInfo encoded
-- according to [RFC3852]. -- The contentType field of the type ContentInfo -- is id-signedData (1.2.840.113549.1.7.2), -- and the content field is a SignedData. -- The eContentType field for the type SignedData is -- id-pkinit-authData (1.3.6.1.5.2.3.1), and the -- eContent field contains the DER encoding of the -- type AuthPack. -- AuthPack is defined below. trustedCertifiers [1] SEQUENCE OF ExternalPrincipalIdentifier OPTIONAL, -- Contains a list of CAs, trusted by the client, -- that can be used to certify the KDC. -- Each ExternalPrincipalIdentifier identifies a CA -- or a CA certificate (thereby its public key). -- The information contained in the -- trustedCertifiers SHOULD be used by the KDC as -- hints to guide its selection of an appropriate -- certificate chain to return to the client. kdcPkId [2] IMPLICIT OCTET STRING OPTIONAL, -- Contains a CMS type SignerIdentifier encoded -- according to [RFC3852]. -- Identifies, if present, a particular KDC -- public key that the client already has. ... }
- [RFC3852]に従います。 - タイプContentInfoのcontentTypeのフィールドが - 、ID-たsignedData(1.2.840.113549.1.7.2) - であり、コンテンツフィールドはSignedDataのです。 - ID-PKINIT-authData(1.3.6.1.5.2.3.1)、および - - タイプのSignedDataのためのeContentTypeフィールドがあるタイプAuthPack - e-コンテンツフィールドは、DER符号化を含んでいます。 - AuthPackを以下に定義されます。クライアントによって信頼されたCAのリストを含みます - - ExternalPrincipalIdentifierオプションの順序は、[1] trustedCertifiers KDCを認証するために使用することができます。 - またはCA証明書(それによってその公開鍵) - 各ExternalPrincipalIdentifierは、CAを識別する。 - 中に含まれている情報 - クライアントに返す証明書チェーン - 適切なその選択を導くためにヒント - trustedCertifiersはとしてKDCによって使用されるべきです。 kdcPkId [2] IMPLICIT OCTET STRINGのOPTIONALは、 - [RFC3852]に従って - 符号化されたCMS型SignerIdentifierを含みます。 - 識別、存在する場合、特定のKDC - クライアントがすでに持っている公開鍵。 ...}
DHNonce ::= OCTET STRING
ExternalPrincipalIdentifier ::= SEQUENCE { subjectName [0] IMPLICIT OCTET STRING OPTIONAL, -- Contains a PKIX type Name encoded according to -- [RFC3280]. -- Identifies the certificate subject by the -- distinguished subject name. -- REQUIRED when there is a distinguished subject -- name present in the certificate. issuerAndSerialNumber [1] IMPLICIT OCTET STRING OPTIONAL, -- Contains a CMS type IssuerAndSerialNumber encoded -- according to [RFC3852]. -- Identifies a certificate of the subject. -- REQUIRED for TD-INVALID-CERTIFICATES and -- TD-TRUSTED-CERTIFIERS. subjectKeyIdentifier [2] IMPLICIT OCTET STRING OPTIONAL, -- Identifies the subject's public key by a key -- identifier. When an X.509 certificate is -- referenced, this key identifier matches the X.509
-- subjectKeyIdentifier extension value. When other -- certificate formats are referenced, the documents -- that specify the certificate format and their use -- with the CMS must include details on matching the -- key identifier to the appropriate certificate -- field. -- RECOMMENDED for TD-TRUSTED-CERTIFIERS. ... }
- subjectKeyIdentifier拡張値。証明書フォーマット、文書を参照されている - - その他の場合には、証明書の形式とその使用を指定 - フィールド - 適切な証明書をキー識別子 - CMSとのマッチングについての詳細を含める必要があります。 - TD-信頼できる認証機関のためにお勧めします。 ...}
AuthPack ::= SEQUENCE { pkAuthenticator [0] PKAuthenticator, clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL, -- Type SubjectPublicKeyInfo is defined in -- [RFC3280]. -- Specifies Diffie-Hellman domain parameters -- and the client's public key value [IEEE1363]. -- The DH public key value is encoded as a BIT -- STRING according to [RFC3279]. -- This field is present only if the client wishes -- to use the Diffie-Hellman key agreement method. supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier OPTIONAL, -- Type AlgorithmIdentifier is defined in -- [RFC3280]. -- List of CMS algorithm [RFC3370] identifiers -- that identify key transport algorithms, or -- content encryption algorithms, or signature -- algorithms supported by the client in order of -- (decreasing) preference. clientDHNonce [3] DHNonce OPTIONAL, -- Present only if the client indicates that it -- wishes to reuse DH keys or to allow the KDC to -- do so. ... }
PKAuthenticator ::= SEQUENCE { cusec [0] INTEGER (0..999999), ctime [1] KerberosTime, -- cusec and ctime are used as in [RFC4120], for -- replay prevention. nonce [2] INTEGER (0..4294967295), -- Chosen randomly; this nonce does not need to -- match with the nonce in the KDC-REQ-BODY. paChecksum [3] OCTET STRING OPTIONAL, -- MUST be present. -- Contains the SHA1 checksum, performed over
-- KDC-REQ-BODY. ... }
- KDC-REQ-BODY。 ...}
TD-TRUSTED-CERTIFIERS ::= SEQUENCE OF ExternalPrincipalIdentifier -- Identifies a list of CAs trusted by the KDC. -- Each ExternalPrincipalIdentifier identifies a CA -- or a CA certificate (thereby its public key).
TD-INVALID-CERTIFICATES ::= SEQUENCE OF ExternalPrincipalIdentifier -- Each ExternalPrincipalIdentifier identifies a -- certificate (sent by the client) with an invalid -- signature.
KRB5PrincipalName ::= SEQUENCE { realm [0] Realm, principalName [1] PrincipalName }
AD-INITIAL-VERIFIED-CAS ::= SEQUENCE OF ExternalPrincipalIdentifier -- Identifies the certification path based on which -- the client certificate was validated. -- Each ExternalPrincipalIdentifier identifies a CA -- or a CA certificate (thereby its public key).
PA-PK-AS-REP ::= CHOICE { dhInfo [0] DHRepInfo, -- Selected when Diffie-Hellman key exchange is -- used. encKeyPack [1] IMPLICIT OCTET STRING, -- Selected when public key encryption is used. -- Contains a CMS type ContentInfo encoded -- according to [RFC3852]. -- The contentType field of the type ContentInfo is -- id-envelopedData (1.2.840.113549.1.7.3). -- The content field is an EnvelopedData. -- The contentType field for the type EnvelopedData -- is id-signedData (1.2.840.113549.1.7.2). -- The eContentType field for the inner type -- SignedData (when unencrypted) is -- id-pkinit-rkeyData (1.3.6.1.5.2.3.3) and the -- eContent field contains the DER encoding of the -- type ReplyKeyPack. -- ReplyKeyPack is defined below. ...
}
}
DHRepInfo ::= SEQUENCE { dhSignedData [0] IMPLICIT OCTET STRING, -- Contains a CMS type ContentInfo encoded according -- to [RFC3852]. -- The contentType field of the type ContentInfo is -- id-signedData (1.2.840.113549.1.7.2), and the -- content field is a SignedData. -- The eContentType field for the type SignedData is -- id-pkinit-DHKeyData (1.3.6.1.5.2.3.2), and the -- eContent field contains the DER encoding of the -- type KDCDHKeyInfo. -- KDCDHKeyInfo is defined below. serverDHNonce [1] DHNonce OPTIONAL, -- Present if and only if dhKeyExpiration is -- present. ... }
KDCDHKeyInfo ::= SEQUENCE { subjectPublicKey [0] BIT STRING, -- The KDC's DH public key. -- The DH public key value is encoded as a BIT -- STRING according to [RFC3279]. nonce [1] INTEGER (0..4294967295), -- Contains the nonce in the pkAuthenticator field -- in the request if the DH keys are NOT reused, -- 0 otherwise. dhKeyExpiration [2] KerberosTime OPTIONAL, -- Expiration time for KDC's key pair, -- present if and only if the DH keys are reused. -- If present, the KDC's DH public key MUST not be -- used past the point of this expiration time. -- If this field is omitted then the serverDHNonce -- field MUST also be omitted. ... }
ReplyKeyPack ::= SEQUENCE { replyKey [0] EncryptionKey, -- Contains the session key used to encrypt the -- enc-part field in the AS-REP, i.e., the -- AS reply key. asChecksum [1] Checksum, -- Contains the checksum of the AS-REQ -- corresponding to the containing AS-REP. -- The checksum is performed over the type AS-REQ.
-- The protocol key [RFC3961] of the checksum is the -- replyKey and the key usage number is 6. -- If the replyKey's enctype is "newer" [RFC4120] -- [RFC4121], the checksum is the required -- checksum operation [RFC3961] for that enctype. -- The client MUST verify this checksum upon receipt -- of the AS-REP. ... }
replyKeyのENCTYPEが「新しい」[RFC4120]の場合 - - - チェックサムのプロトコルキー[RFC3961]はさ - replyKeyとキー使用数が6である[RFC4121]、チェックサムが必要です - そのENCTYPEのチェックサム操作[RFC3961]。 - AS-REPの - クライアントが受信したときに、このチェックサムを確かめなければなりません。 ...}
TD-DH-PARAMETERS ::= SEQUENCE OF AlgorithmIdentifier -- Each AlgorithmIdentifier specifies a set of -- Diffie-Hellman domain parameters [IEEE1363]. -- This list is in decreasing preference order. END
Appendix B. Test Vectors
付録B.テストベクトル
Function octetstring2key() is defined in Section 3.2.3.1. This section describes a few sets of test vectors that would be useful for implementers of octetstring2key().
機能octetstring2key()は、セクション3.2.3.1で定義されています。このセクションでは、octetstring2key()の実装のために有用であろうテストベクトルのいくつかのセットを記述する。
Set 1: ===== Input octet string x is:
1に設定します。=====入力オクテット文字列xは次のとおりです。
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Output of K-truncate() when the key size is 32 octets:
キーのサイズが32オクテットであるK-TRUNCATE()の出力:
5e e5 0d 67 5c 80 9f e5 9e 4a 77 62 c5 4b 65 83 75 47 ea fb 15 9b d8 cd c7 5f fc a5 91 1e 4c 41
5E E5 0D ZZ 5 80 YAF E5八重のCHAのZZ 62 5 BW 65 83 75 chshtのFA UB 15のYb D8 UG tssht 5F FC A5 91 41 1E 4C
Set 2: ===== Input octet string x is:
セット2:=====入力オクテット文字列xは次のとおりです。
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Output of K-truncate() when the key size is 32 octets:
キーのサイズが32オクテットであるK-TRUNCATE()の出力:
ac f7 70 7c 08 97 3d df db 27 cd 36 14 42 cc fb a3 55 c8 88 4c b4 72 f3 7d a6 36 d0 7d 56 78 7e
36 D0 7D 56 78 7E A6 55 C8 88 4C B4 72のF3 7D A3 27 CD 36 14 42 CCのFB DB DF交流F7 70 7C 08 97 3D
Set 3: ====== Input octet string x is:
3設定します======入力オクテット文字列xは次のとおりです。
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0Dの0E 0F 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08
Output of K-truncate() when the key size is 32 octets:
キーのサイズが32オクテットであるK-TRUNCATE()の出力:
c4 42 da 58 5f cb 80 e4 3b 47 94 6f 25 40 93 e3 73 29 d9 90 01 38 0d b7 83 71 db 3a cf 5c 79 7e
TSCH 42 58 5F 80 CBエッチングのHb chshtのyach SV 25 40貯水池レイクshtz 29寄託TSF 5 79 7E 90 01 38 0D 83 COMMON 71デシベル
Set 4: ===== Input octet string x is:
4設定します。=====入力オクテット文字列xは次のとおりです。
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 00 01 02 03 04 05 06 07 08
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 01 02 03 04 05 06 07 08
Output of K-truncate() when the key size is 32 octets:
キーのサイズが32オクテットであるK-TRUNCATE()の出力:
00 53 95 3b 84 c8 96 f4 eb 38 5c 3f 2e 75 1c 4a 59 0e d6 ff ad ca 6f f6 4f 47 eb eb 8d 78 0f fc
00 53 95 3B 84 C8 96のF4 EB 38 5C 3F 2E 75 1C 4A 59 0E D6のFF広告CA 6F F6 4F 47 EB EB 8D 78の0F FC
Appendix C. Miscellaneous Information about Microsoft Windows PKINIT Implementations
Microsoft WindowsのPKINITの実装については、付録C.その他の情報
Earlier revisions of the PKINIT I-D were implemented in various releases of Microsoft Windows and deployed in fairly large numbers. To enable the community to interoperate better with systems running those releases, the following information may be useful.
PKINIT I-Dの以前のリビジョンは、Microsoft Windowsのさまざまなリリースで実装されており、かなり大量に配備されました。これらのリリースを実行しているシステムとのより良い相互運用するためにコミュニティを有効にするには、以下の情報が有用である可能性があります。
KDC certificates issued by Windows 2000 Enterprise CAs contain a dNSName SAN with the DNS name of the host running the KDC, and the id-kp-serverAuth EKU [RFC3280].
Windows 2000のエンタープライズCAによって発行されたKDC証明書は、KDCを実行しているホストのDNS名でのdNSName SANを含み、及びID-KP-serverAuth EKU [RFC3280]。
KDC certificates issued by Windows 2003 Enterprise CAs contain a dNSName SAN with the DNS name of the host running the KDC, the id-kp-serverAuth EKU, and the id-ms-kp-sc-logon EKU.
Windows 2003のエンタープライズCAによって発行されたKDC証明書は、KDC、ID-KP-serverAuth EKUを実行しているホストのDNS名でのdNSName SANを含み、そしてEKUをID-MS-KP-SCは、ログオンします。
It is anticipated that the next release of Windows is already too far along to allow it to support the issuing KDC certificates with id-pkinit-san SAN as specified in this RFC. Instead, they will have a dNSName SAN containing the domain name of the KDC, and the intended purpose of these KDC certificates will be restricted by the presence of the id-pkinit-KPKdc EKU and id-kp-serverAuth EKU.
Windowsの次のリリースは、このRFCで指定され、それがID-PKINITさんSANを発行するKDC証明書をサポートできるようにするために、あまりにも遠くに沿って、すでにあることが予想されます。その代わりに、彼らは、KDCのドメイン名を含むのdNSName SANを持つことになり、これらのKDC証明書の使用目的は、ID-PKINIT-KPKdc EKUとid-KP-serverAuth EKUの存在によって制限されます。
In addition to checking that the above are present in a KDC certificate, Windows clients verify that the issuer of the KDC certificate is one of a set of allowed issuers of such certificates, so those wishing to issue KDC certificates need to configure their Windows clients appropriately.
上記は、KDC証明書に存在していることを確認することに加えて、Windowsクライアントは、KDC証明書の発行者は、このような証明書の許可の発行体のセットの1つであることを確認し、そのKDC証明書を発行したい方には、適切に自分のWindowsクライアントを設定する必要があります。
Client certificates accepted by Windows 2000 and Windows 2003 Server KDCs must contain an id-ms-san-sc-logon-upn (1.3.6.1.4.1.311.20.2.3) SAN and the id-ms-kp-sc-logon EKU. The id-ms-san-sc-logon-upn SAN contains a UTF8-encoded string whose value is that of the Directory Service attribute UserPrincipalName of the client account object, and the purpose of including the id-ms-san-sc-logon-upn SAN in the client certificate is to validate the client mapping (in other words, the client's public key is bound to the account that has this UserPrincipalName value).
Windows 2000およびWindows 2003 ServerのKDCをによって受け入れられたクライアント証明書が含まれている必要がありますID-MS-SAN-SC-ログオン-UPN(1.3.6.1.4.1.311.20.2.3)SANとid-MS-KP-SC-ログオンEKU。 ID-MS-SAN-SC-ログオン-UPN SANは、その値がディレクトリサービスのクライアントアカウントオブジェクトのUserPrincipalNameを、とid-MS-SAN-SC-ログオンなどの目的の属性ということであるUTF8でエンコードされた文字列が含まれていますSAN -upnクライアント証明書に(つまり、クライアントの公開鍵がこのUserPrincipalNameを値を持つアカウントにバインドされている)クライアントのマッピングを検証することです。
It should be noted that all Microsoft Kerberos realm names are domain-style realm names and strictly in uppercase. In addition, the UserPrincipalName attribute is globally unique in Windows 2000 and Windows 2003.
すべてのMicrosoftのKerberosレルム名はドメインスタイルのレルム名と厳密に大文字であることに留意すべきです。また、UserPrincipalNameを属性は、Windows 2000およびWindows 2003でグローバルに一意です。
Authors' Addresses
著者のアドレス
Larry Zhu Microsoft Corporation One Microsoft Way Redmond, WA 98052 US
ラリー朱マイクロソフト社1マイクロソフト道、レッドモンド、ワシントン98052米国
EMail: lzhu@microsoft.com
メールアドレス:lzhu@microsoft.com
Brian Tung Aerospace Corporation 2350 E. El Segundo Blvd. El Segundo, CA 90245 US
ブライアン・トゥン・エアロスペース・コーポレーション2350 E.エルセグンドーブルバードエルセグンドー、カリフォルニア州90245米国
EMail: brian@aero.org
メールアドレス:brian@aero.org
Full Copyright Statement
完全な著作権声明
Copyright (C) The Internet Society (2006).
著作権(C)インターネット協会(2006)。
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.
この文書では、BCP 78に含まれる権利と許可と制限の適用を受けており、その中の記載を除いて、作者は彼らのすべての権利を保有します。
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.
この文書とここに含まれている情報は、基礎とCONTRIBUTOR「そのまま」、ORGANIZATION HE / SHEが表すまたはインターネットソサエティおよびインターネット・エンジニアリング・タスク・フォース放棄すべての保証、明示または、(もしあれば)後援ISに設けられています。黙示、情報の利用は、特定の目的に対する権利または商品性または適合性の黙示の保証を侵害しない任意の保証含むがこれらに限定されません。
Intellectual Property
知的財産
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.
IETFは、本書またはそのような権限下で、ライセンスがたりないかもしれない程度に記載された技術の実装や使用に関係すると主張される可能性があります任意の知的財産権やその他の権利の有効性または範囲に関していかなる位置を取りません利用可能です。またそれは、それがどのような権利を確認する独自の取り組みを行ったことを示すものでもありません。 RFC文書の権利に関する手続きの情報は、BCP 78および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.
IPRの開示のコピーが利用できるようにIETF事務局とライセンスの保証に行われた、または本仕様の実装者または利用者がそのような所有権の使用のための一般的なライセンスまたは許可を取得するために作られた試みの結果を得ることができますhttp://www.ietf.org/iprのIETFのオンライン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.
IETFは、その注意にこの標準を実装するために必要とされる技術をカバーすることができる任意の著作権、特許または特許出願、またはその他の所有権を持ってすべての利害関係者を招待します。 ietf-ipr@ietf.orgのIETFに情報を記述してください。
Acknowledgement
謝辞
Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA).
RFCエディタ機能のための資金は、IETF管理サポート活動(IASA)によって提供されます。