[要約] RFC 4758は、Cryptographic Token Key Initialization Protocol(CT-KIP)のバージョン1.0リビジョン1に関するものです。このプロトコルの目的は、暗号トークンの鍵の初期化を安全かつ効率的に行うことです。

Network Working Group                                        M. Nystroem
Request for Comments: 4758                                  RSA Security
Category: Informational                                    November 2006
        

Cryptographic Token Key Initialization Protocol (CT-KIP) Version 1.0 Revision 1

暗号化トークンキー初期化プロトコル(CT-KIP)バージョン1.0リビジョン1

Status of This Memo

本文書の状態

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

このメモは、インターネットコミュニティに情報を提供します。いかなる種類のインターネット標準も規定していません。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (C) The IETF Trust (2006).

Copyright(C)IETF Trust(2006)。

Abstract

概要

This document constitutes Revision 1 of Cryptographic Token Key Initialization Protocol (CT-KIP) Version 1.0 from RSA Laboratories' One-Time Password Specifications (OTPS) series. The body of this document, except for the intellectual property considerations section, is taken from the CT-KIP Version 1.0 document, but comments received during the IETF review are reflected; hence, the status of a revised version. As no "bits-on-the-wire" have changed, the protocol specified herein is compatible with CT-KIP Version 1.0.

このドキュメントは、RSA Laboratoriesのワンタイムパスワード仕様(OTPS)シリーズの暗号化トークンキー初期化プロトコル(CT-KIP)バージョン1.0のリビジョン1を構成します。このドキュメントの本文は、知的財産の考慮事項のセクションを除いて、CT-KIPバージョン1.0ドキュメントから取得されていますが、IETFレビュー中に受け取ったコメントが反映されています。したがって、改訂版のステータス。 「ビット・オン・ザ・ワイヤー」は変更されていないため、ここで指定されているプロトコルはCT-KIPバージョン1.0と互換性があります。

CT-KIP is a client-server protocol for initialization (and configuration) of cryptographic tokens. The protocol requires neither private-key capabilities in the cryptographic tokens, nor an established public-key infrastructure. Provisioned (or generated) secrets will only be available to the server and the cryptographic token itself.

CT-KIPは、暗号化トークンの初期化(および構成)のためのクライアントサーバープロトコルです。このプロトコルは、暗号化トークンの秘密鍵機能も、確立された公開鍵インフラストラクチャも必要としません。プロビジョニングされた(または生成された)シークレットは、サーバーと暗号化トークン自体でのみ使用できます。

Table of Contents

目次

   1. Introduction ....................................................4
      1.1. Scope ......................................................4
      1.2. Background .................................................4
      1.3. Document Organization ......................................5
   2. Acronyms and Notation ...........................................5
      2.1. Acronyms ...................................................5
      2.2. Notation ...................................................5
   3. CT-KIP ..........................................................6
      3.1. Overview ...................................................6
      3.2. Entities ...................................................7
      3.3. Principles of Operation ....................................7
      3.4. The CT-KIP One-Way Pseudorandom Function, CT-KIP-PRF ......10
           3.4.1. Introduction .......................................10
           3.4.2. Declaration ........................................11
      3.5. Generation of Cryptographic Keys for Tokens ...............11
      3.6. Encryption of Pseudorandom Nonces Sent from the
           CT-KIP Client .............................................12
      3.7. CT-KIP Schema Basics ......................................13
           3.7.1. Introduction .......................................13
           3.7.2. General XML Schema Requirements ....................13
           3.7.3. The AbstractRequestType Type .......................13
           3.7.4. The AbstractResponseType type ......................14
           3.7.5. The StatusCode Type ................................14
           3.7.6. The IdentifierType Type ............................16
           3.7.7. The NonceType Type .................................16
           3.7.8. The ExtensionsType and the
                  AbstractExtensionType Types ........................17
      3.8. CT-KIP Messages ...........................................17
           3.8.1. Introduction .......................................17
           3.8.2. CT-KIP Initialization ..............................17
           3.8.3. The CT-KIP Client's Initial PDU ....................18
           3.8.4. The CT-KIP server's initial PDU ....................20
           3.8.5. The CT-KIP Client's Second PDU .....................23
           3.8.6. The CT-KIP Server's Final PDU ......................24
      3.9. Protocol Extensions .......................................27
           3.9.1. The ClientInfoType Type ............................27
           3.9.2. The ServerInfoType Type ............................28
           3.9.3. The OTPKeyConfigurationDataType Type ...............28
   4. Protocol Bindings ..............................................29
      4.1. General Requirement .......................................29
      4.2. HTTP/1.1 binding for CT-KIP ...............................29
           4.2.1. Introduction .......................................29
           4.2.2. Identification of CT-KIP Messages ..................29
           4.2.3. HTTP Headers .......................................29
           4.2.4. HTTP Operations ....................................30
           4.2.5. HTTP Status Codes ..................................30
        
           4.2.6. HTTP Authentication ................................31
           4.2.7. Initialization of CT-KIP ...........................31
           4.2.8. Example Messages ...................................31
   5. Security considerations ........................................32
      5.1. General ...................................................32
      5.2. Active Attacks ............................................32
           5.2.1. Introduction .......................................32
           5.2.2. Message Modifications ..............................32
           5.2.3. Message Deletion ...................................34
           5.2.4. Message Insertion ..................................34
           5.2.5. Message Replay .....................................34
           5.2.6. Message Reordering .................................35
           5.2.7. Man in the Middle ..................................35
      5.3. Passive Attacks ...........................................35
      5.4. Cryptographic Attacks .....................................35
      5.5. Attacks on the Interaction between CT-KIP and User
           Authentication ............................................36
   6. Intellectual Property Considerations ...........................36
   7. References .....................................................37
      7.1. Normative References ......................................37
      7.2. Informative References ....................................37
   Appendix A. CT-KIP Schema .........................................39
   Appendix B. Examples of CT-KIP Messages ...........................46
      B.1. Introduction ..............................................46
      B.2. Example of a CT-KIP Initialization (Trigger) Message ......46
      B.3. Example of a <ClientHello> Message ........................46
      B.4. Example of a <ServerHello> Message ........................47
      B.5. Example of a <ClientNonce> Message ........................47
      B.6. Example of a <ServerFinished> Message .....................48
   Appendix C. Integration with PKCS #11 .............................48
   Appendix D. Example CT-KIP-PRF Realizations .......................48
      D.1. Introduction ..............................................48
      D.2. CT-KIP-PRF-AES ............................................48
           D.2.1. Identification .....................................48
           D.2.2. Definition .........................................49
           D.2.3. Example ............................................50
      D.3. CT-KIP-PRF-SHA256 .........................................50
           D.3.1. Identification .....................................50
           D.3.2. Definition .........................................51
           D.3.3. Example ............................................52
   Appendix E. About OTPS ............................................53
        
1. Introduction
1. はじめに

Note: This document is Revision 1 of CT-KIP Version 1.0 [12] from RSA Laboratories' OTPS series.

注:このドキュメントは、RSA LaboratoriesのOTPSシリーズのCT-KIPバージョン1.0 [12]のリビジョン1です。

1.1. Scope
1.1. 範囲

This document describes a client-server protocol for initialization (and configuration) of cryptographic tokens. The protocol requires neither private-key capabilities in the cryptographic tokens, nor an established public-key infrastructure.

このドキュメントでは、暗号化トークンの初期化(および構成)のためのクライアントサーバープロトコルについて説明します。このプロトコルは、暗号化トークンの秘密鍵機能も、確立された公開鍵インフラストラクチャも必要としません。

The objectives of this protocol are:

このプロトコルの目的は次のとおりです。

o To provide a secure method of initializing cryptographic tokens with secret keys without exposing generated, secret material to any other entities than the server and the cryptographic token itself,

o サーバーと暗号化トークン自体以外のエンティティに生成された秘密の資料を公開せずに、秘密鍵で暗号化トークンを初期化する安全な方法を提供するには、

o To avoid, as much as possible, any impact on existing cryptographic token manufacturing processes,

o 既存の暗号トークンの製造プロセスへの影響を可能な限り回避するため、

o To provide a solution that is easy to administer and scales well.

o 管理と拡張が容易なソリューションを提供すること。

The mechanism is intended for general use within computer and communications systems employing connected cryptographic tokens (or software emulations thereof).

このメカニズムは、接続された暗号トークン(またはそのソフトウェアエミュレーション)を使用するコンピューターおよび通信システム内での一般的な使用を目的としています。

1.2. Background
1.2. バックグラウンド

A cryptographic token may be a handheld hardware device, a hardware device connected to a personal computer through an electronic interface such as USB, or a software module resident on a personal computer, which offers cryptographic functionality that may be used, e.g., to authenticate a user towards some service. Increasingly, these tokens work in a connected fashion, enabling their programmatic initialization as well as programmatic retrieval of their output values. This document intends to meet the need for an open and interoperable mechanism to programmatically initialize and configure connected cryptographic tokens. A companion document entitled "A PKCS #11 Mechanism for the Cryptographic Token Key Initialization Protocol" [2] describes an application-programming interface suitable for use with this mechanism.

暗号化トークンは、ハンドヘルドハードウェアデバイス、USBなどの電子インターフェイスを介してパーソナルコンピューターに接続されたハードウェアデバイス、またはパーソナルコンピューターに常駐するソフトウェアモジュールで、暗号化機能を提供して、たとえば、いくつかのサービスへのユーザー。これらのトークンはますます連携して機能し、プログラムによる初期化と出力値のプログラムによる取得を可能にします。このドキュメントは、接続された暗号トークンをプログラムで初期化および構成するためのオープンで相互運用可能なメカニズムのニーズを満たすことを目的としています。 「暗号化トークンキー初期化プロトコルのPKCS#11メカニズム」というタイトルの関連ドキュメント[2]は、このメカニズムでの使用に適したアプリケーションプログラミングインターフェイスについて説明しています。

1.3. Document Organization
1.3. ドキュメント編成

The organization of this document is as follows:

このドキュメントの構成は次のとおりです。

o Section 1 is an introduction.

o セクション1は紹介です。

o Section 2 defines some notation used in this document.

o セクション2では、このドキュメントで使用される表記法をいくつか定義します。

o Section 3 defines the protocol mechanism in detail.

o セクション3では、プロトコルメカニズムを詳細に定義します。

o Section 4 defines a binding of the protocol to transports.

o セクション4では、プロトコルのトランスポートへのバインディングを定義します。

o Section 5 provides security considerations.

o セクション5では、セキュリティに関する考慮事項について説明します。

o Appendix A defines the XML schema for the protocol mechanism, Appendix B gives example messages, and Appendix C discusses integration with PKCS #11 [3].

o 付録AはプロトコルメカニズムのXMLスキーマを定義し、付録Bはメッセージの例を示し、付録CはPKCS#11 [3]との統合について説明します。

o Appendix D provides example realizations of an abstract pseudorandom function defined in Section 3.

o 付録Dは、セクション3で定義された抽象疑似ランダム関数の実現例を提供します。

o Appendix E provides general information about the One-Time Password Specifications.

o 付録Eは、ワンタイムパスワードの仕様に関する一般的な情報を提供します。

2. Acronyms and Notation
2. 頭字語と表記
2.1. Acronyms
2.1. 頭字語

MAC Message Authentication Code

MACメッセージ認証コード

PDU Protocol Data Unit

PDUプロトコルデータユニット

PRF Pseudo-Random Function

PRF疑似ランダム関数

CT-KIP Cryptographic Token Key Initialization Protocol (the protocol mechanism described herein)

CT-KIP暗号化トークンキー初期化プロトコル(ここで説明するプロトコルメカニズム)

2.2. Notation
2.2. 表記

|| String concatenation

||文字列の連結

[x] Optional element x

[x] オプション要素x

A ^ B Exclusive-or operation on strings A and B (A and B of equal length)

A ^ B文字列AとBの排他的論理和演算(AとBの長さが等しい)

K_AUTH Secret key used for authentication purposes K_TOKEN Secret key used for token computations, generated in CT-KIP

K_AUTH認証目的で使用される秘密鍵K_TOKEN CT-KIPで生成されたトークン計算に使用される秘密鍵

K_SERVER Public key of CT-KIP server

K_SERVER CT-KIPサーバーの公開鍵

K_SHARED Secret key shared between the cryptographic token and the CT-KIP server

K_SHARED暗号トークンとCT-KIPサーバー間で共有される秘密鍵

K Key used to encrypt R_C (either K_SERVER or K_SHARED)

R_Cの暗号化に使用されるKキー(K_SERVERまたはK_SHARED)

R Pseudorandom value chosen by the cryptographic token and used for MAC computations

R暗号トークンによって選択され、MAC計算に使用される疑似ランダム値

R_C Pseudorandom value chosen by the cryptographic token

R_C暗号トークンによって選択された擬似ランダム値

R_S Pseudorandom value chosen by the CT-KIP server

R_S CT-KIPサーバーによって選択された疑似ランダム値

The following typographical convention is used in the body of the text: <XMLElement>.

テキストの本文では、次の表記規則が使用されています:<XMLElement>。

3. CT-KIP
3. CTチキン
3.1. Overview
3.1. 概観

The CT-KIP is a client-server protocol for the secure initialization of cryptographic tokens. The protocol is meant to provide high assurance for both the server and the client (cryptographic token) that generated keys have been correctly and randomly generated and not exposed to other entities. The protocol does not require the existence of a public-key infrastructure.

CT-KIPは、暗号トークンを安全に初期化するためのクライアントサーバープロトコルです。このプロトコルは、生成されたキーが正しくランダムに生成され、他のエンティティに公開されていないことをサーバーとクライアント(暗号化トークン)の両方に高い保証を提供することを目的としています。このプロトコルは、公開鍵インフラストラクチャの存在を必要としません。

   +---------------+                            +---------------+
   |               |                            |               |
   | CT-KIP client |                            | CT-KIP server |
   |               |                            |               |
   +---------------+                            +---------------+
           |                                            |
           |        [ <---- CT-KIP trigger ---- ]       |
           |                                            |
           |        ------- Client Hello ------->       |
           |                                            |
           |        <------ Server Hello --------       |
           |                                            |
           |        ------- Client Nonce ------->       |
           |                                            |
           |        <----- Server Finished ------       |
        

Figure 1: The 4-pass CT-KIP protocol (with optional preceding trigger)

図1:4パスCT-KIPプロトコル(オプションの先行トリガーあり)

3.2. Entities
3.2. エンティティ

In principle, the protocol involves a CT-KIP client and a CT-KIP server.

原則として、プロトコルにはCT-KIPクライアントとCT-KIPサーバーが含まれます。

It is assumed that a desktop/laptop or a wireless device (e.g., a mobile phone or a PDA) will host an application communicating with the CT-KIP server as well as the cryptographic token, and collectively, the cryptographic token and the communicating application form the CT-KIP client. When there is a need to point out if an action is to be performed by the communicating application or by the token the text will make this explicit.

デスクトップ/ラップトップまたはワイヤレスデバイス(携帯電話やPDAなど)は、CT-KIPサーバーと通信するアプリケーションと暗号化トークン、およびまとめて暗号化トークンと通信するアプリケーションをホストすると想定されていますCT-KIPクライアントを形成します。アクションが通信アプリケーションによって実行されるのか、トークンによって実行されるのかを指摘する必要がある場合、テキストはこれを明示的にします。

The manner in which the communicating application will transfer CT-KIP protocol elements to and from the cryptographic token is transparent to the CT-KIP server. One method for this transfer is described in [2].

通信アプリケーションが暗号化トークンとの間でCT-KIPプロトコル要素を転送する方法は、CT-KIPサーバーに対して透過的です。この転送の1つの方法は、[2]で説明されています。

3.3. Principles of Operation
3.3. 動作原理

To initiate a CT-KIP session, a user may use a browser to connect to a web server running on some host. The user may then identify (and authenticate) herself (through some means that essentially are out of scope for this document) and possibly indicate how the CT-KIP client shall contact the CT-KIP server. There are also other alternatives for CT-KIP session initiation, such as the CT-KIP client being pre-configured to contact a certain CT-KIP server, or the user being informed out-of-band about the location of the CT-KIP server. In any event, once the location of the CT-KIP server is known, the CT-KIP client and the CT-KIP server engage in a 4-pass protocol in which:

CT-KIPセッションを開始するために、ユーザーはブラウザを使用して、一部のホストで実行されているWebサーバーに接続できます。次に、ユーザーは自分自身を識別(および認証)し(このドキュメントでは本質的に範囲外となる何らかの手段によって)、CT-KIPクライアントがCT-KIPサーバーに接続する方法を示す可能性があります。 CT-KIPセッションの開始には他の代替手段もあります。たとえば、CT-KIPクライアントが特定のCT-KIPサーバーに接続するように事前に構成されていたり、ユーザーがCT-KIPの場所についてアウトオブバンドで通知を受けたりしています。サーバ。いずれにせよ、CT-KIPサーバーの場所がわかると、CT-KIPクライアントとCT-KIPサーバーは、次の4パスプロトコルを使用します。

a. The CT-KIP client provides information to the CT-KIP server about the cryptographic token's identity, supported CT-KIP versions, cryptographic algorithms supported by the token and for which keys may be generated using this protocol, and encryption and MAC algorithms supported by the cryptographic token for the purposes of this protocol.

a. CT-KIPクライアントは、暗号化トークンのID、サポートされているCT-KIPバージョン、トークンでサポートされている暗号化アルゴリズム、およびこのプロトコルを使用して生成できるキー、およびでサポートされている暗号化とMACアルゴリズムに関する情報をCT-KIPサーバーに提供しますこのプロトコルの目的のための暗号トークン。

b. Based on this information, the CT-KIP server provides a random nonce, R_S, to the CT-KIP client, along with information about the type of key to generate, the encryption algorithm chosen to protect sensitive data sent in the protocol. In addition, it provides either information about a shared secret key to use for encrypting the cryptographic token's random nonce (see below), or its own public key. The length of the nonce R_S may depend on the selected key type.

b. この情報に基づいて、CT-KIPサーバーは、生成する鍵のタイプ、プロトコルで送信される機密データを保護するために選択された暗号化アルゴリズムに関する情報とともに、ランダムなナンスR_SをCT-KIPクライアントに提供します。さらに、暗号化トークンのランダムナンス(以下を参照)の暗号化に使用する共有秘密鍵に関する情報、または独自の公開鍵のいずれかを提供します。 nonce R_Sの長さは、選択した鍵タイプによって異なる場合があります。

c. The cryptographic token generates a random nonce R_C and encrypts it using the selected encryption algorithm and with a key K that is either the CT-KIP server's public key K_SERVER, or a shared secret key K_SHARED as indicated by the CT-KIP server. The length of the nonce R_C may depend on the selected key type. The CT-KIP client then sends the encrypted random nonce to the CT-KIP server. The token also calculates a cryptographic key K_TOKEN of the selected type from the combination of the two random nonces R_S and R_C, the encryption key K, and possibly some other data, using the CT-KIP-PRF function defined herein.

c. 暗号化トークンはランダムなナンスR_Cを生成し、選択した暗号化アルゴリズムを使用して、CT-KIPサーバーの公開鍵K_SERVER、またはCT-KIPサーバーによって示される共有秘密鍵K_SHAREDである鍵Kを使用して暗号化します。 nonce R_Cの長さは、選択した鍵タイプによって異なる場合があります。次に、CT-KIPクライアントは暗号化されたランダムナンスをCT-KIPサーバーに送信します。トークンは、ここで定義されているCT-KIP-PRF関数を使用して、2つのランダムナンスR_SとR_C、暗号化キーK、および場合によってはその他のデータの組み合わせから、選択したタイプの暗号化キーK_TOKENも計算します。

d. The CT-KIP server decrypts R_C, calculates K_TOKEN from the combination of the two random nonces R_S and R_C, the encryption key K, and possibly some other data, using the CT-KIP-PRF function defined herein. The server then associates K_TOKEN with the cryptographic token in a server-side data store. The intent is that the data store later on will be used by some service that needs to verify or decrypt data produced by the cryptographic token and the key.

d. ここで定義されているCT-KIP-PRF関数を使用して、CT-KIPサーバーはR_Cを復号化し、2つのランダムナンスR_SとR_C、暗号化キーK、およびおそらくその他のデータの組み合わせからK_TOKENを計算します。次に、サーバーはK_TOKENをサーバー側データストアの暗号化トークンに関連付けます。意図は、後でデータストアが、暗号化トークンとキーによって生成されたデータを検証または復号化する必要があるサービスによって使用されることです。

e. Once the association has been made, the CT-KIP server sends a confirmation message to the CT-KIP client. The confirmation message includes an identifier for the generated key and may also contain additional configuration information, e.g., the identity of the CT-KIP server.

e. 関連付けが行われると、CT-KIPサーバーは確認メッセージをCT-KIPクライアントに送信します。確認メッセージには、生成されたキーの識別子が含まれ、CT-KIPサーバーのIDなど、追加の構成情報が含まれる場合もあります。

f. Upon receipt of the CT-KIP server's confirmation message, the cryptographic token associates the provided key identifier with the generated key K_TOKEN, and stores the provided configuration data, if any.

f. 暗号化トークンは、CT-KIPサーバーの確認メッセージを受信すると、提供されたキー識別子を生成されたキーK_TOKENに関連付け、提供された構成データがあればそれを保存します。

Note: Conceptually, although R_C is one pseudorandom string, it may be viewed as consisting of two components, R_C1 and R_C2, where R_C1 is generated during the protocol run, and R_C2 can be generated at the cryptographic token manufacturing time and stored in the cryptographic token. In that case, the latter string, R_C2, should be unique for each cryptographic token for a given manufacturer.

注:概念的には、R_Cは1つの疑似ランダム文字列ですが、R_C1とR_C2の2つのコンポーネントで構成されていると見なすことができます。R_C1はプロトコルの実行中に生成され、R_C2は暗号トークンの製造時に生成され、暗号に保存されます。トークン。その場合、後者の文字列R_C2は、特定の製造元の暗号化トークンごとに一意である必要があります。

   +----------------------+    +-------+     +----------------------+
   |    +------------+    |    |       |     |                      |
   |    | Server key |    |    |       |     |                      |
   | +<-|  Public    |------>------------->-------------+---------+ |
   | |  |  Private   |    |    |       |     |          |         | |
   | |  +------------+    |    |       |     |          |         | |
   | |        |           |    |       |     |          |         | |
   | V        V           |    |       |     |          V         V |
   | |   +---------+      |    |       |     |        +---------+ | |
   | |   | Decrypt |<-------<-------------<-----------| Encrypt | | |
   | |   +---------+      |    |       |     |        +---------+ | |
   | |      |  +--------+ |    |       |     |            ^       | |
   | |      |  | Server | |    |       |     |            |       | |
   | |      |  | Random |--->------------->------+  +----------+  | |
   | |      |  +--------+ |    |       |     |   |  | Client   |  | |
   | |      |      |      |    |       |     |   |  | Random   |  | |
   | |      |      |      |    |       |     |   |  +----------+  | |
   | |      |      |      |    |       |     |   |        |       | |
   | |      V      V      |    |       |     |   V        V       | |
   | |   +------------+   |    |       |     | +------------+     | |
   | +-->| CT-KIP PRF |   |    |       |     | | CT-KIP PRF |<----+ |
   |     +------------+   |    |       |     | +------------+       |
   |           |          |    |       |     |       |              |
   |           V          |    |       |     |       V              |
   |       +-------+      |    |       |     |   +-------+          |
   |       |  Key  |      |    |       |     |   |  Key  |          |
   |       +-------+      |    |       |     |   +-------+          |
   |       +-------+      |    |       |     |   +-------+          |
   |       |Key Id |-------->------------->------|Key Id |          |
   |       +-------+      |    |       |     |   +-------+          |
   +----------------------+    +-------+     +----------------------+
        CT-KIP Server        CT-KIP Client     CT-KIP Client (Token)
                               (PC Host)
        

Figure 2: Principal data flow for CT-KIP key generation - using public server key

図2:CT-KIPキー生成の主要なデータフロー-公開サーバーキーを使用

The inclusion of the two random nonces R_S and R_C in the key generation provides assurance to both sides (the token and the CT-KIP server) that they have contributed to the key's randomness and that the key is unique. The inclusion of the encryption key K ensures that no man-in-the-middle may be present, or else the cryptographic token will end up with a key different from the one stored by the legitimate CT-KIP server.

鍵生成に2つのランダムなナンスR_SおよびR_Cを含めることにより、両側(トークンとCT-KIPサーバー)が鍵のランダム性に寄与し、鍵が一意であることを保証します。暗号化キーKを含めることにより、中間者が存在しないことが保証されます。そうしないと、暗号化トークンが正規のCT-KIPサーバーによって格納されたものとは異なるキーになってしまいます。

Note: A man-in-the middle (in the form of corrupt client software or a mistakenly contacted server) may present his own public key to the token. This will enable the attacker to learn the client's version of K_TOKEN. However, the attacker is not able to persuade the legitimate server to derive the same value for K_TOKEN, since K_TOKEN is a function of the public key involved, and the attacker's public key must be different than the correct server's (or else the attacker would not be able to decrypt the information received from the client). Therefore, once the attacker is no longer "in the middle", the client and server will detect that they are "out of synch" when they try to use their keys. Therefore, in the case of encrypting R_C with K_SERVER, it is important to verify that K_SERVER really is the legitimate server's key. One way to do this is to independently validate a newly generated K_TOKEN against some validation service at the server (e.g., by using a connection independent from the one used for the key generation).

注:中間者(破損したクライアントソフトウェアまたは誤って接続されたサーバーの形式)は、トークンに自分の公開鍵を提示する場合があります。これにより、攻撃者はクライアントのバージョンのK_TOKENを知ることができます。ただし、K_TOKENは関係する公開鍵の関数であり、攻撃者の公開鍵は正しいサーバーのものと異なる必要があるため、攻撃者は正当なサーバーにK_TOKENの同じ値を導出するように仕向けることはできません(そうでない場合、攻撃者はクライアントから受信した情報を復号化できる)。したがって、攻撃者が「中間」から離れると、クライアントとサーバーは、キーを使用しようとしたときに「非同期」であることを検出します。したがって、R_CをK_SERVERで暗号化する場合、K_SERVERが実際に正当なサーバーの鍵であることを確認することが重要です。これを行う1つの方法は、新しく生成されたK_TOKENをサーバーの検証サービスに対して個別に検証することです(たとえば、キーの生成に使用された接続とは独立した接続を使用することにより)。

The CT-KIP server may couple an initial user authentication to the CT-KIP execution in several ways to ensure that a generated K_TOKEN ends up associated with the correct token and user. One way is to provide a one-time value to the user or CT-KIP client after successful user authentication and require this value to be used when contacting the CT-KIP service (in effect coupling the user authentication with the subsequent CT-KIP protocol run). This value could, for example, be placed in a <TriggerNonce> element of the CT-KIP initialization trigger (if triggers are used; see Section 4.2.7). Another way is for the user to provide a token identifier which will later be used in the CT-KIP protocol to the server during the authentication phase. The server may then include this token identifier in the CT-KIP initialization trigger. It is also legitimate for a CT-KIP client to initiate a CT-KIP protocol run without having received an initialization message from a server, but in this case any provided token identifier shall not be accepted by the server unless the server has access to a unique token key for the identified token and that key will be used in the protocol. Whatever the method, the CT-KIP server must ensure that a generated key is associated with the correct token and, if applicable, the correct user. For a further discussion of this and threats related to man-in-the-middle attacks in this context, see Section 5.5.

CT-KIPサーバーは、いくつかの方法で初期ユーザー認証をCT-KIP実行に結合して、生成されたK_TOKENが正しいトークンとユーザーに関連付けられるようにします。 1つの方法は、ユーザー認証が成功した後、ユーザーまたはCT-KIPクライアントに1回限りの値を提供し、CT-KIPサービスに接続するときにこの値を使用することを要求することです(実質的にユーザー認証を後続のCT-KIPプロトコルと結合します)実行)。この値は、たとえば、CT-KIP初期化トリガーの<TriggerNonce>要素に配置できます(トリガーが使用されている場合。セクション4.2.7を参照)。別の方法は、ユーザーがトークンIDを提供することです。このトークンIDは、後で認証フェーズ中にCT-KIPプロトコルでサーバーに使用されます。次に、サーバーはこのトークン識別子をCT-KIP初期化トリガーに含めることができます。サーバーから初期化メッセージを受信せずにCT-KIPクライアントがCT-KIPプロトコルの実行を開始することも正当ですが、この場合、サーバーがサーバーにアクセスできない限り、提供されたトークン識別子はサーバーに受け入れられません。識別されたトークンの一意のトークンキーとそのキーがプロトコルで使用されます。どの方法を使用する場合でも、CT-KIPサーバーは、生成されたキーが正しいトークン、および該当する場合は正しいユーザーに関連付けられていることを確認する必要があります。この状況でのこれと中間者攻撃に関連する脅威の詳細については、セクション5.5を参照してください。

3.4. The CT-KIP One-Way Pseudorandom Function, CT-KIP-PRF
3.4. CT-KIP一方向疑似ランダム関数、CT-KIP-PRF
3.4.1. Introduction
3.4.1. はじめに

The general requirements on CT-KIP-PRF are the same as on keyed hash functions: It shall take an arbitrary length input, and be one-way and collision-free (for a definition of these terms, see, e.g., [4]). Further, the CT-KIP-PRF function shall be capable of generating a variable-length output, and its output shall be unpredictable even if other outputs for the same key are known.

CT-KIP-PRFの一般的な要件は、キー付きハッシュ関数の場合と同じです。これは、任意の長さの入力を受け取り、一方向かつ衝突のないものでなければなりません(これらの用語の定義については、[4]を参照してください) )。さらに、CT-KIP-PRF機能は可変長出力を生成でき、同じキーの他の出力がわかっている場合でも、その出力は予測できません。

It is assumed that any realization of CT-KIP-PRF takes three input parameters: A secret key k, some combination of variable data, and the desired length of the output. Examples of the variable data include, but are not limited to, a current token counter value, the current token time, and a challenge. The combination of variable data can, without loss of generalization, be considered as a salt value (see PKCS #5 Version 2.0 [5], Section 4), and this characterization of CT-KIP-PRF should fit all actual PRF algorithms implemented by tokens. From the point of view of this specification, CT-KIP-PRF is a "black-box" function that, given the inputs, generates a pseudorandom value.

CT-KIP-PRFを実現するには、3つの入力パラメーター(秘密鍵k、変数データのいくつかの組み合わせ、および出力の必要な長さ)が必要であると想定されています。可変データの例には、現在のトークンカウンター値、現在のトークン時間、チャレンジが含まれますが、これらに限定されません。可変データの組み合わせは、一般化を失うことなく、ソルト値と見なすことができ(PKCS#5バージョン2.0 [5]、セクション4を参照)、CT-KIP-PRFのこの特性は、トークン。この仕様の観点から見ると、CT-KIP-PRFは「ブラックボックス」関数であり、入力が与えられると、疑似ランダム値を生成します。

Separate specifications may define the implementation of CT-KIP-PRF for various types of cryptographic tokens. Appendix D contains two example realizations of CT-KIP-PRF.

別の仕様で、さまざまなタイプの暗号トークンのCT-KIP-PRFの実装を定義できます。付録Dには、CT-KIP-PRFの2つの実現例が含まれています。

3.4.2. Declaration
3.4.2. 宣言

CT-KIP-PRF (k, s, dsLen)

CT-KIP-PRF(k、s、dsLen)

Input:

入力:

k secret key in octet string format

kオクテット文字列形式の秘密鍵

s octet string of varying length consisting of variable data distinguishing the particular string being derived

s派生する特定の文字列を区別する可変データで構成される可変長のオクテット文字列

dsLen desired length of the output

dsLen希望する出力の長さ

Output:

出力:

DS pseudorandom string, dsLen-octets long

DS疑似ランダム文字列、dsLen-octets long

For the purposes of this document, the secret key k shall be 16 octets long.

この文書の目的のために、秘密鍵kは16オクテット長でなければならない。

3.5. Generation of Cryptographic Keys for Tokens
3.5. トークンの暗号化キーの生成
   In CT-KIP, keys are generated using the CT-KIP-PRF function, a secret
   random value R_C chosen by the CT-KIP client, a random value R_S
   chosen by the CT-KIP server, and the key k used to encrypt R_C.  The
   input parameter s of CT-KIP-PRF is set to the concatenation of the
   (ASCII) string "Key generation", k, and R_S, and the input parameter
   dsLen is set to the desired length of the key, K_TOKEN (the length of
   K_TOKEN is given by the key's type):
   dsLen = (desired length of K_TOKEN)
        

K_TOKEN = CT-KIP-PRF (R_C, "Key generation" || k || R_S, dsLen)

K_TOKEN = CT-KIP-PRF(R_C、 "鍵生成" || k || R_S、dsLen)

When computing K_TOKEN above, the output of CT-KIP-PRF may be subject to an algorithm-dependent transform before being adopted as a key of the selected type. One example of this is the need for parity in DES keys.

上記のK_TOKENを計算する場合、CT-KIP-PRFの出力は、選択されたタイプのキーとして採用される前に、アルゴリズムに依存する変換を受ける可能性があります。この1つの例は、DESキーでのパリティの必要性です。

3.6. Encryption of Pseudorandom Nonces Sent from the CT-KIP Client
3.6. CT-KIPクライアントから送信された疑似ランダムノンスの暗号化

CT-KIP client random nonce(s) are either encrypted with the public key provided by the CT-KIP server or by a shared secret key. For example, in the case of a public RSA key, an RSA encryption scheme from PKCS #1 [6] may be used.

CT-KIPクライアントのランダムなナンスは、CT-KIPサーバーまたは共有秘密鍵によって提供される公開鍵で暗号化されます。たとえば、公開RSA鍵の場合、PKCS#1 [6]のRSA暗号化方式を使用できます。

In the case of a shared secret key, to avoid dependence on other algorithms, the CT-KIP client may use the CT-KIP-PRF function described herein with the shared secret key K_SHARED as input parameter k (in this case, K_SHARED should be used solely for this purpose), the concatenation of the (ASCII) string "Encryption" and the server's nonce R_S as input parameter s, and dsLen set to the length of R_C:

共有秘密鍵の場合、他のアルゴリズムへの依存を回避するために、CT-KIPクライアントは、共有秘密鍵K_SHAREDを入力パラメーターkとして、ここで説明するCT-KIP-PRF関数を使用できます(この場合、K_SHAREDはこの目的でのみ使用されます)、(ASCII)文字列「暗号化」とサーバーのノンスR_Sを入力パラメーターsとして連結し、dsLenをR_Cの長さに設定します。

dsLen = len(R_C)

dslen =亜麻(P_C)

DS = CT-KIP-PRF(K_SHARED, "Encryption" || R_S, dsLen)

DS = CT-KIP-PRF(K_SHARED、 "暗号化" || R_S、dsLen)

This will produce a pseudorandom string DS of length equal to R_C. Encryption of R_C may then be achieved by XOR-ing DS with R_C:

これにより、R_Cと等しい長さの疑似ランダム文字列DSが生成されます。 R_Cの暗号化は、DSとR_CをXORすることで実現できます。

Enc-R_C = DS ^ R_C

Enc-R_C = DS ^ R_C

The CT-KIP server will then perform the reverse operation to extract R_C from Enc-R_C.

次に、CT-KIPサーバーは逆の操作を実行して、Enc-R_CからR_Cを抽出します。

Note: It may appear that an attacker, who learns a previous value of R_C, may be able to replay the corresponding R_S and, hence, learn a new R_C as well. However, this attack is mitigated by the requirement for a server to show knowledge of K_AUTH (see below) in order to successfully complete a key re-generation.

注:以前のR_Cの値を学習した攻撃者は、対応するR_Sを再生できるため、新しいR_Cも学習できる可能性があります。ただし、この攻撃は、キーの再生成を正常に完了するために、サーバーがK_AUTH(以下を参照)の知識を示す必要があるため緩和されます。

3.7. CT-KIP Schema Basics
3.7. CT-CHICKENスケジュールの基本
3.7.1. Introduction
3.7.1. はじめに

Core parts of the XML schema for CT-KIP, found in Appendix A, are explained in this section. Specific protocol message elements are defined in Section 3.8. Examples can be found in Appendix B.

このセクションでは、付録AにあるCT-KIPのXMLスキーマのコア部分について説明します。特定のプロトコルメッセージ要素は、セクション3.8で定義されています。例は付録Bにあります。

The XML format for CT-KIP messages have been designed to be extensible. However, it is possible that the use of extensions will harm interoperability; therefore, any use of extensions should be carefully considered. For example, if a particular implementation relies on the presence of a proprietary extension, then it may not be able to interoperate with independent implementations that have no knowledge of this extension.

CT-KIPメッセージのXML形式は、拡張可能に設計されています。ただし、拡張機能を使用すると相互運用性が損なわれる可能性があります。したがって、拡張機能の使用については慎重に検討する必要があります。たとえば、特定の実装が独自の拡張機能の存在に依存している場合、この拡張機能を認識していない独立した実装と相互運用できない場合があります。

XML types defined in this sub-section are not CT-KIP messages; rather they provide building blocks that are used by CT-KIP messages.

このサブセクションで定義されているXMLタイプはCT-KIPメッセージではありません。むしろ、CT-KIPメッセージで使用されるビルディングブロックを提供します。

3.7.2. General XML Schema Requirements
3.7.2. 一般的なXMLスキーマの要件

Some CT-KIP elements rely on the parties being able to compare received values with stored values. Unless otherwise noted, all elements in this document that have the XML Schema "xs:string" type, or a type derived from it, must be compared using an exact binary comparison. In particular, CT-KIP implementations must not depend on case-insensitive string comparisons, normalization or trimming of white space, or conversion of locale-specific formats such as numbers.

一部のCT-KIP要素は、受信した値を格納された値と比較できる当事者に依存しています。特に明記しない限り、XMLスキーマの「xs:string」タイプまたはその派生タイプを持つこのドキュメントのすべての要素は、正確なバイナリ比較を使用して比較する必要があります。特に、CT-KIP実装は、大文字と小文字を区別しない文字列比較、空白の正規化またはトリミング、または数値などのロケール固有の形式の変換に依存してはなりません。

Implementations that compare values that are represented using different character encodings must use a comparison method that returns the same result as converting both values to the Unicode character encoding, Normalization Form C [1], and then performing an exact binary comparison.

異なる文字エンコーディングを使用して表される値を比較する実装では、両方の値をUnicode文字エンコーディングである正規化フォームC [1]に変換してから正確なバイナリ比較を実行するのと同じ結果を返す比較メソッドを使用する必要があります。

No collation or sorting order for attributes or element values is defined. Therefore, CT-KIP implementations must not depend on specific sorting orders for values.

属性または要素値の照合またはソート順は定義されていません。したがって、CT-KIP実装は、値の特定のソート順序に依存してはなりません。

3.7.3. The AbstractRequestType Type
3.7.3. AbstractRequestTypeタイプ

All CT-KIP requests are defined as extensions to the abstract AbstractRequestType type. The elements of the AbstractRequestType, therefore, apply to all CT-KIP requests. All CT-KIP requests must contain a Version attribute. For this version of this specification, Version shall be set to "1.0".

すべてのCT-KIP要求は、抽象AbstractRequestTypeタイプの拡張として定義されています。したがって、AbstractRequestTypeの要素は、すべてのCT-KIP要求に適用されます。すべてのCT-KIP要求には、バージョン属性が含まれている必要があります。この仕様のこのバージョンでは、Versionを「1.0」に設定します。

   <xs:complexType name="AbstractRequestType" abstract="true">
     <xs:attribute name="Version" type="VersionType"
      use="required"/>
   </xs:complexType>
        
3.7.4. The AbstractResponseType type
3.7.4. AbstractResponseTypeタイプ

All CT-KIP responses are defined as extensions to the abstract AbstractResponseType type. The elements of the AbstractResponseType, therefore, apply to all CT-KIP responses. All CT-KIP responses contain a Version attribute indicating the version that was used. A Status attribute, which indicates whether the preceding request was successful or not must also be present. Finally, all responses may contain a SessionID attribute identifying the particular CT-KIP session. The SessionID attribute needs only be present if more than one roundtrip is required for a successful protocol run (this is the case with the protocol version described herein).

すべてのCT-KIP応答は、抽象AbstractResponseTypeタイプの拡張として定義されています。したがって、AbstractResponseTypeの要素は、すべてのCT-KIP応答に適用されます。すべてのCT-KIP応答には、使用されたバージョンを示すバージョン属性が含まれています。前のリクエストが成功したかどうかを示すステータス属性も存在する必要があります。最後に、すべての応答には、特定のCT-KIPセッションを識別するSessionID属性が含まれる場合があります。 SessionID属性は、プロトコルの実行を成功させるために複数のラウンドトリップが必要な場合にのみ必要です(これは、ここで説明されているプロトコルバージョンの場合です)。

   <xs:complexType name="AbstractResponseType" abstract="true">
     <xs:attribute name="Version" type="VersionType" use="required"/>
     <xs:attribute name="SessionID" type="IdentifierType"/>
     <xs:attribute name="Status" type="StatusCode" use="required"/>
   </xs:complexType>
        
3.7.5. The StatusCode Type
3.7.5. StatusCodeタイプ

The StatusCode type enumerates all possible return codes:

StatusCodeタイプは、考えられるすべての戻りコードを列挙します。

   <xs:simpleType name="StatusCode">
     <xs:restriction base="xs:string">
       <xs:enumeration value="Continue"/>
       <xs:enumeration value="Success"/>
       <xs:enumeration value="Abort"/>
       <xs:enumeration value="AccessDenied"/>
       <xs:enumeration value="MalformedRequest"/>
       <xs:enumeration value="UnknownRequest"/>
       <xs:enumeration value="UnknownCriticalExtension"/>
       <xs:enumeration value="UnsupportedVersion"/>
       <xs:enumeration value="NoSupportedKeyTypes"/>
       <xs:enumeration value="NoSupportedEncryptionAlgorithms"/>
       <xs:enumeration value="NoSupportedMACAlgorithms"/>
       <xs:enumeration value="InitializationFailed"/>
     </xs:restriction>
   </xs:simpleType>
        

Upon transmission or receipt of a message for which the Status attribute's value is not "Success" or "Continue", the default behavior, unless explicitly stated otherwise below, is that both the CT-KIP server and the CT-KIP client shall immediately terminate the CT-KIP session. CT-KIP servers and CT-KIP clients must delete any secret values generated as a result of failed runs of the CT-KIP protocol. Session identifiers may be retained from successful or failed protocol runs for replay detection purposes, but such retained identifiers shall not be reused for subsequent runs of the protocol.

Status属性の値が「Success」または「Continue」ではないメッセージの送信または受信時のデフォルトの動作は、以下で特に明記されていない限り、CT-KIPサーバーとCT-KIPクライアントの両方が直ちに終了することです。 CT-KIPセッション。 CT-KIPサーバーとCT-KIPクライアントは、CT-KIPプロトコルの実行が失敗した結果として生成された秘密値を削除する必要があります。セッション識別子は、成功または失敗したプロトコルの実行から、リプレイ検出の目的で保持される場合がありますが、保持された識別子は、その後のプロトコルの実行で再利用されません。

When possible, the CT-KIP client should present an appropriate error message to the user.

可能な場合、CT-KIPクライアントは適切なエラーメッセージをユーザーに表示する必要があります。

These status codes are valid in all CT-KIP-Response messages unless explicitly stated otherwise.

これらのステータスコードは、特に明記されていない限り、すべてのCT-KIP-Responseメッセージで有効です。

o "Continue" indicates that the CT-KIP server is ready for a subsequent request from the CT-KIP client. It cannot be sent in the server's final message.

o 「続行」は、CT-KIPサーバーがCT-KIPクライアントからの後続の要求に対して準備ができていることを示します。サーバーの最終メッセージでは送信できません。

o "Success" indicates successful completion of the CT-KIP session. It can only be sent in the server's final message.

o 「成功」は、CT-KIPセッションが正常に完了したことを示します。サーバーの最終メッセージでのみ送信できます。

o "Abort" indicates that the CT-KIP server rejected the CT-KIP client's request for unspecified reasons.

o 「中止」は、CT-KIPサーバーが不特定の理由でCT-KIPクライアントの要求を拒否したことを示します。

o "AccessDenied" indicates that the CT-KIP client is not authorized to contact this CT-KIP server.

o 「AccessDenied」は、CT-KIPクライアントがこのCT-KIPサーバーへの接続を許可されていないことを示します。

o "MalformedRequest" indicates that the CT-KIP server failed to parse the CT-KIP client's request.

o 「MalformedRequest」は、CT-KIPサーバーがCT-KIPクライアントの要求を解析できなかったことを示します。

o "UnknownRequest" indicates that the CT-KIP client made a request that is unknown to the CT-KIP server.

o 「UnknownRequest」は、CT-KIPクライアントがCT-KIPサーバーに認識されていない要求を行ったことを示します。

o "UnknownCriticalExtension" indicates that a critical CT-KIP extension (see below) used by the CT-KIP client was not supported or recognized by the CT-KIP server.

o "UnknownCriticalExtension"は、CT-KIPクライアントによって使用される重要なCT-KIP拡張機能(下記を参照)が、CT-KIPサーバーによってサポートまたは認識されなかったことを示します。

o "UnsupportedVersion" indicates that the CT-KIP client used a CT-KIP protocol version not supported by the CT-KIP server. This error is only valid in the CT-KIP server's first response message.

o 「UnsupportedVersion」は、CT-KIPクライアントがCT-KIPサーバーでサポートされていないCT-KIPプロトコルバージョンを使用したことを示します。このエラーは、CT-KIPサーバーの最初の応答メッセージでのみ有効です。

o "NoSupportedKeyTypes" indicates that the CT-KIP client only suggested key types that are not supported by the CT-KIP server. This error is only valid in the CT-KIP server's first response message. Note that the error will only occur if the CT-KIP server does not support any of the CT-KIP client's suggested key types.

o 「NoSupportedKeyTypes」は、CT-KIPクライアントがCT-KIPサーバーでサポートされていないキータイプのみを提案したことを示します。このエラーは、CT-KIPサーバーの最初の応答メッセージでのみ有効です。このエラーが発生するのは、CT-KIPサーバーがCT-KIPクライアントの推奨キータイプをサポートしていない場合のみであることに注意してください。

o "NoSupportedEncryptionAlgorithms" indicates that the CT-KIP client only suggested encryption algorithms that are not supported by the CT-KIP server. This error is only valid in the CT-KIP server's first response message. Note that the error will only occur if the CT-KIP server does not support any of the CT-KIP client's suggested encryption algorithms.

o 「NoSupportedEncryptionAlgorithms」は、CT-KIPクライアントが、CT-KIPサーバーでサポートされていない暗号化アルゴリズムのみを提案したことを示します。このエラーは、CT-KIPサーバーの最初の応答メッセージでのみ有効です。このエラーは、CT-KIPサーバーがCT-KIPクライアントが推奨する暗号化アルゴリズムをサポートしていない場合にのみ発生することに注意してください。

o "NoSupportedMACAlgorithms" indicates that the CT-KIP client only suggested MAC algorithms that are not supported by the CT-KIP server. This error is only valid in the CT-KIP server's first response message. Note that the error will only occur if the CT-KIP server does not support any of the CT-KIP client's suggested MAC algorithms.

o 「NoSupportedMACAlgorithms」は、CT-KIPクライアントが、CT-KIPサーバーでサポートされていないMACアルゴリズムのみを提案したことを示します。このエラーは、CT-KIPサーバーの最初の応答メッセージでのみ有効です。このエラーは、CT-KIPサーバーがCT-KIPクライアントが推奨するMACアルゴリズムをサポートしていない場合にのみ発生することに注意してください。

o "InitializationFailed" indicates that the CT-KIP server could not generate a valid key given the provided data. When this status code is received, the CT-KIP client should try to restart CT-KIP, as it is possible that a new run will succeed.

o 「InitializationFailed」は、CT-KIPサーバーが、提供されたデータを与えられた有効なキーを生成できなかったことを示します。このステータスコードを受信すると、CT-KIPクライアントはCT-KIPの再起動を試行する必要があります。これは、新しい実行が成功する可能性があるためです。

3.7.6. The IdentifierType Type
3.7.6. IdentifierTypeタイプ

The IdentifierType type is used to identify various CT-KIP elements, such as sessions, users, and services. Identifiers must not be longer than 128 octets.

IdentifierTypeタイプは、セッション、ユーザー、サービスなど、さまざまなCT-KIP要素を識別するために使用されます。識別子は128オクテットを超えてはなりません。

   <xs:simpleType name="IdentifierType">
     <xs:restriction base="xs:string">
       <xs:maxLength value="128"/>
     </xs:restriction>
   </xs:simpleType>
        
3.7.7. The NonceType Type
3.7.7. NonceTypeタイプ

The NonceType type is used to carry pseudorandom values in CT-KIP messages. A nonce, as the name implies, must be used only once. For each CT-KIP message that requires a nonce element to be sent, a fresh nonce shall be generated each time. Nonce values must be at least 16 octets long.

NonceTypeタイプは、CT-KIPメッセージで疑似ランダム値を運ぶために使用されます。 nonceは、その名前が示すように、1回だけ使用する必要があります。ナンス要素の送信を必要とする各CT-KIPメッセージについて、毎回新しいナンスが生成されます。 nonce値は、少なくとも16オクテットでなければなりません。

   <xs:simpleType name="NonceType">
     <xs:restriction base="xs:base64Binary">
       <xs:minLength value="16"/>
     </xs:restriction>
   </xs:simpleType>
        
3.7.8. The ExtensionsType and the AbstractExtensionType Types
3.7.8. ExtensionsTypeおよびAbstractExtensionTypeタイプ

The ExtensionsType type is a list of type-value pairs that define optional CT-KIP features supported by a CT-KIP client or server. Extensions may be sent with any CT-KIP message. Please see the description of individual CT-KIP messages in Section 3.8 of this document for applicable extensions. Unless an extension is marked as Critical, a receiving party need not be able to interpret it. A receiving party is always free to disregard any (non-critical) extensions.

ExtensionsTypeタイプは、CT-KIPクライアントまたはサーバーでサポートされるオプションのCT-KIP機能を定義するタイプと値のペアのリストです。拡張機能は、CT-KIPメッセージで送信できます。該当する拡張子については、このドキュメントのセクション3.8にある個々のCT-KIPメッセージの説明を参照してください。拡張機能がクリティカルとしてマークされていない限り、受信側はそれを解釈する必要はありません。受信側は、(重要でない)拡張機能をいつでも自由に無視できます。

   <xs:complexType name="AbstractExtensionsType">
     <xs:sequence maxOccurs="unbounded">
       <xs:element name="Extension" type="AbstractExtensionType"/>
     </xs:sequence>
   </xs:complexType>
        
   <xs:complexType name="AbstractExtensionType" abstract="true">
     <xs:attribute name="Critical" type="xs:boolean"/>
   </xs:complexType>
        
3.8. CT-KIP Messages
3.8. CT-KIPメッセージ
3.8.1. Introduction
3.8.1. はじめに

In this section, CT-KIP messages, including their parameters, encodings and semantics are defined.

このセクションでは、パラメーター、エンコード、およびセマンティクスを含むCT-KIPメッセージを定義します。

3.8.2. CT-KIP Initialization
3.8.2. CT-KIP初期化

The CT-KIP server may initialize the CT-KIP protocol by sending a <CT-KIPTrigger> message. This message may, e.g., be sent in response to a user requesting token initialization in a browsing session.

CT-KIPサーバーは、<CT-KIPTrigger>メッセージを送信してCT-KIPプロトコルを初期化できます。このメッセージは、たとえば、ブラウジングセッションでトークンの初期化を要求するユーザーに応答して送信されます。

   <xs:complexType name="InitializationTriggerType">
     <xs:sequence>
       <xs:element name="TokenID" type="xs:base64Binary" minOccurs="0"/>
       <xs:element name="KeyID" type="xs:base64Binary" minOccurs="0"/>
       <xs:element name="TokenPlatformInfo"
         type="TokenPlatformInfoType" minOccurs="0"/>
       <xs:element name="TriggerNonce" type="NonceType"/>
       <xs:element name="CT-KIPURL" type="xs:anyURI" minOccurs="0"/>
       <xs:any namespace="##other" processContents="strict"
         minOccurs="0"/>
     </xs:sequence>
     <xs:attribute name="id" type="xs:ID"/>
   </xs:complexType>
        
   <xs:element name="CT-KIPTrigger" type="CT-KIPTriggerType"/>
        
   <xs:complexType name="CT-KIPTriggerType">
     <xs:annotation>
       <xs:documentation xml:lang="en">
          Message used to trigger the device to initiate a
          CT-KIP run.
       </xs:documentation>
     </xs:annotation>
     <xs:sequence>
       <xs:choice>
         <xs:element name="InitializationTrigger"
           type="InitializationTriggerType"/>
         <xs:any nameSpace="##other" processContents="strict"/>
       </xs:choice>
     </xs:sequence>
     <xs:attribute name="Version" type="ct-kip:VersionType"/>
   </xs:complexType>
        

The <CT-KIPTrigger> element is intended for the CT-KIP client and may inform the CT-KIP client about the identifier for the token that is to be initialized, and, optionally, of the identifier for the key on that token. The latter would apply when re-seeding. The trigger always contains a nonce to allow the server to couple the trigger with a later CT-KIP <ClientHello> request. Finally, the trigger may contain a URL to use when contacting the CT-KIP server. The <xs:any> elements are for future extensibility. Any provided <TokenID> or <KeyID> values shall be used by the CT-KIP client in the subsequent <ClientHello> request. The optional <TokenPlatformInfo> element informs the CT-KIP client about the characteristics of the intended token platform, and applies in the public-key variant of CT-KIP in situations when the client potentially needs to decide which one of several tokens to initialize.

<CT-KIPTrigger>要素はCT-KIPクライアントを対象としており、初期化されるトークンの識別子と、オプションでそのトークンのキーの識別子についてCT-KIPクライアントに通知する場合があります。後者は、再シード時に適用されます。トリガーには常にnonceが含まれ、サーバーがトリガーを後のCT-KIP <ClientHello>要求と結合できるようにします。最後に、トリガーには、CT-KIPサーバーに接続するときに使用するURLを含めることができます。 <xs:any>要素は、将来の拡張性のためのものです。提供された<TokenID>または<KeyID>の値は、後続の<ClientHello>リクエストでCT-KIPクライアントによって使用されます。オプションの<TokenPlatformInfo>要素は、意図したトークンプラットフォームの特性についてCT-KIPクライアントに通知し、クライアントが初期化するトークンの1つを決定する必要がある状況で、CT-KIPの公開鍵バリアントに適用されます。

The Version attribute shall be set to "1.0" for this version of CT-KIP.

CT-KIPのこのバージョンでは、Version属性を「1.0」に設定する必要があります。

3.8.3. The CT-KIP Client's Initial PDU
3.8.3. CT-KIPクライアントの初期PDU

This message is the initial message sent from the CT-KIP client to the CT-KIP server.

このメッセージは、CT-KIPクライアントからCT-KIPサーバーに送信される最初のメッセージです。

   <xs:element name="ClientHello" type="ClientHelloPDU"/>
        
   <xs:complexType name="ClientHelloPDU">
     <xs:annotation>
       <xs:documentation xml:lang="en">
          Message sent from CT-KIP client to CT-KIP server to
          initiate a CT-KIP session.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="AbstractRequestType">
         <xs:sequence>
           <xs:element name="TokenID"
             type="xs:base64Binary" minOccurs="0"/>
           <xs:element name="KeyID"
             type="xs:base64Binary" minOccurs="0"/>
           <xs:element name="ClientNonce"
             type="NonceType" minOccurs="0"/>
           <xs:element name= "TriggerNonce"
             type="NonceType" minOccurs="0"/>
           <xs:element name="SupportedKeyTypes"
             type="AlgorithmsType"/>
           <xs:element name="SupportedEncryptionAlgorithms"
             type="AlgorithmsType"/>
           <xs:element name="SupportedMACAlgorithms"
             type="AlgorithmsType"/>
           <xs:element name="Extensions"
             type="ExtensionsType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        

The components of this message have the following meaning:

このメッセージのコンポーネントには次の意味があります。

o Version: (attribute inherited from the AbstractRequestType type) The highest version of this protocol the client supports. Only version one ("1.0") is currently specified.

o バージョン:(AbstractRequestTypeタイプから継承された属性)クライアントがサポートするこのプロトコルの最も高いバージョン。現在、バージョン1( "1.0")のみが指定されています。

o <TokenID>: An identifier for the cryptographic token (allows the server to find, e.g., a correct shared secret for MACing purposes). The identifier shall only be present if such shared secrets exist or if the identifier was provided by the server in a <CT-KIPTrigger> element (see Section 4.2.7 below). In the latter case, it must have the same value as the identifier provided in that element.

o <TokenID>:暗号トークンの識別子(サーバーがMACingの目的で正しい共有シークレットなどを見つけられるようにします)。識別子は、そのような共有シークレットが存在する場合、または識別子が<CT-KIPTrigger>要素でサーバーから提供された場合にのみ存在するものとします(以下のセクション4.2.7を参照)。後者の場合、その要素で提供される識別子と同じ値を持つ必要があります。

o <KeyID>: An identifier for the key that will be overwritten if the protocol run is successful. The identifier shall only be present if the key exists or was provided by the server in a <CT-KIPTrigger> element (see Section 4.2.7 below). In the latter case, it must have the same value as the identifier provided in that element.

o <KeyID>:プロトコルの実行が成功した場合に上書きされるキーの識別子。識別子は、キーが存在するか、サーバーによって<CT-KIPTrigger>要素で提供された場合にのみ存在します(以下のセクション4.2.7を参照)。後者の場合、その要素で提供される識別子と同じ値を持つ必要があります。

o <ClientNonce>: This is the nonce R, which, when present, shall be used by the server when calculating MAC values (see below). It is recommended that clients include this element whenever the <KeyID> element is present.

o <ClientNonce>:これは存在する場合、MAC値を計算するときにサーバーによって使用されるナンスRです(以下を参照)。 <KeyID>要素が存在する場合は常に、クライアントにこの要素を含めることをお勧めします。

o <TriggerNonce>: This optional element shall be present if and only if the CT-KIP run was initialized with a <CT-KIPTrigger> message (see Section 4.2.7 below), and shall, in that case, have the same value as the <TriggerNonce> child of that message. A server using nonces in this way must verify that the nonce is valid and that any token or key identifier values provided in the <CT-KIPTrigger> message match the corresponding identifier values in the <ClientHello> message.

o <TriggerNonce>:このオプションの要素は、CT-KIPの実行が<CT-KIPTrigger>メッセージ(以下のセクション4.2.7を参照)で初期化された場合にのみ存在し、その場合、そのメッセージの<TriggerNonce>子。この方法でナンスを使用するサーバーは、ナンスが有効であること、および<CT-KIPTrigger>メッセージで提供されるトークンまたはキー識別子の値が<ClientHello>メッセージの対応する識別子の値と一致することを確認する必要があります。

o <SupportedKeyTypes>: A sequence of URIs indicating the key types for which the token is willing to generate keys through CT-KIP.

o <SupportedKeyTypes>:トークンがCT-KIPを介してキーを生成しようとするキータイプを示す一連のURI。

o <SupportedEncryptionAlgorithms>: A sequence of URIs indicating the encryption algorithms supported by the cryptographic token for the purposes of CT-KIP. The CT-KIP client may indicate the same algorithm both as a supported key type and as an encryption algorithm.

o <SupportedEncryptionAlgorithms>:CT-KIPの目的で暗号化トークンによってサポートされる暗号化アルゴリズムを示す一連のURI。 CT-KIPクライアントは、サポートされている鍵タイプと暗号化アルゴリズムの両方として同じアルゴリズムを示す場合があります。

   o  <SupportedMACAlgorithms>: A sequence of URIs indicating the MAC
      algorithms supported by the cryptographic token for the purposes
      of CT-KIP.  The CT-KIP client may indicate the same algorithm both
      as an encryption algorithm and as a MAC algorithm (e.g., http://
      www.rsasecurity.com/rsalabs/otps/schemas/2005/12/
      ct-kip#ct-kip-prf-aes defined in Appendix D)
        

o <Extensions>: A sequence of extensions. One extension is defined for this message in this version of CT-KIP: the ClientInfoType (see Section 3.9.1).

o <Extensions>:一連の拡張。このバージョンのCT-KIPでは、このメッセージに対して1つの拡張が定義されています:ClientInfoType(セクション3.9.1を参照)。

3.8.4. The CT-KIP server's initial PDU
3.8.4. CT-KIPサーバーの初期PDU

This message is the first message sent from the CT-KIP server to the CT-KIP client (assuming a trigger message has not been sent to initiate the protocol, in which case, this message is the second message sent from the CT-KIP server to the CT-KIP client). It is sent upon reception of a <ClientHello> message.

このメッセージは、CT-KIPサーバーからCT-KIPクライアントに送信される最初のメッセージです(トリガーメッセージがプロトコルを開始するために送信されていない場合、このメッセージはCT-KIPサーバーから送信される2番目のメッセージです)。 CT-KIPクライアントに)。 <ClientHello>メッセージの受信時に送信されます。

   <xs:element name="ServerHello" type="ServerHelloPDU"/>
        
   <xs:complexType name="ServerHelloPDU">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Message sent from CT-KIP server to CT-KIP
         client in response to a received ClientHello
         PDU.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="AbstractResponseType">
         <xs:sequence minOccurs="0">
           <xs:element name="KeyType"
             type="AlgorithmType"/>
           <xs:element name="EncryptionAlgorithm"
             type="AlgorithmType"/>
           <xs:element name="MacAlgorithm"
             type="AlgorithmType"/>
           <xs:element name="EncryptionKey"
             type="ds:KeyInfoType"/>
           <xs:element name="Payload"
             type="PayloadType"/>
           <xs:element name="Extensions"
             type="ExtensionsType" minOccurs="0"/>
           <xs:element name="Mac" type="MacType"
             minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
   <xs:complexType name="PayloadType">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Currently, only the nonce is defined.  In future versions,
         other payloads may be defined, e.g., for one-roundtrip
         initialization protocols.
       </xs:documentation>
     </xs:annotation>
     <xs:choice>
       <xs:element name="Nonce" type="NonceType"/>
       <any namespace="##other" processContents="strict"/>
     </xs:choice>
   </xs:complexType>
        

<xs:complexType name="MacType"> <xs:simpleContent> <xs:extension base="xs:base64Binary"> <xs:attribute name="MacAlgorithm" type="xs:anyURI"/> </xs:extension> </xs:simpleContent> </xs:complexType> The components of this message have the following meaning:

<xs:complexType name = "MacType"> <xs:simpleContent> <xs:extension base = "xs:base64Binary"> <xs:attribute name = "MacAlgorithm" type = "xs:anyURI" /> </ xs:extension > </ xs:simpleContent> </ xs:complexType>このメッセージのコンポーネントには次の意味があります。

o Version: (attribute inherited from the AbstractResponseType type) The version selected by the CT-KIP server. May be lower than the version indicated by the CT-KIP client, in which case, local policy at the client will determine whether or not to continue the session.

o バージョン:(AbstractResponseTypeタイプから継承された属性)CT-KIPサーバーによって選択されたバージョン。 CT-KIPクライアントによって示されるバージョンよりも低い場合があります。その場合、クライアントのローカルポリシーがセッションを続行するかどうかを決定します。

o SessionID: (attribute inherited from the AbstractResponseType type) An identifier for this session.

o SessionID:(AbstractResponseTypeタイプから継承された属性)このセッションの識別子。

o Status: (attribute inherited from the abstract AbstractResponseType type) Return code for the <ClientHello>. If Status is not "Continue", only the Status and Version attributes will be present; otherwise, all the other elements must be present as well.

o ステータス:(抽象AbstractResponseTypeタイプから継承された属性)<ClientHello>の戻りコード。ステータスが「続行」でない場合は、ステータスとバージョンの属性のみが表示されます。それ以外の場合は、他のすべての要素も存在する必要があります。

o <KeyType>: The type of the key to be generated.

o <KeyType>:生成されるキーのタイプ。

o <EncryptionAlgorithm>: The encryption algorithm to use when protecting R_C.

o <EncryptionAlgorithm>:R_Cを保護するときに使用する暗号化アルゴリズム。

o <MacAlgorithm>: The MAC algorithm to be used by the CT-KIP server.

o <MacAlgorithm>:CT-KIPサーバーが使用するMACアルゴリズム。

o <EncryptionKey>: Information about the key to use when encrypting R_C. It will either be the server's public key (the <ds:KeyValue> alternative of ds:KeyInfoType) or an identifier for a shared secret key (the <ds:KeyName> alternative of ds:KeyInfoType).

o <EncryptionKey>:R_Cを暗号化するときに使用するキーに関する情報。これは、サーバーの公開キー(ds:KeyInfoTypeの<ds:KeyValue>の代替)または共有秘密キーの識別子(ds:KeyInfoTypeの<ds:KeyName>の代替)のいずれかになります。

o <Payload>: The actual payload. For this version of the protocol, only one payload is defined: the pseudorandom string R_S.

o <ペイロード>:実際のペイロード。このバージョンのプロトコルでは、1つのペイロード(疑似ランダム文字列R_S)のみが定義されています。

o <Extensions>: A list of server extensions. Two extensions are defined for this message in this version of CT-KIP: the ClientInfoType and the ServerInfoType (see Section 3.9).

o <Extensions>:サーバー拡張機能のリスト。このバージョンのCT-KIPでは、このメッセージに対して2つの拡張が定義されています。ClientInfoTypeとServerInfoTypeです(セクション3.9を参照)。

o <Mac>: The MAC must be present if the CT-KIP run will result in the replacement of an existing token key with a new one (i.e., if the <KeyID> element was present in the <ClientHello> message). In this case, the CT-KIP server must prove to the cryptographic token that it is authorized to replace it. The MAC value shall be computed on the (ASCII) string "MAC 1 computation", the client's nonce R (if sent), and the server's nonce R_S using an authentication key K_AUTH that should be a special authentication key used only for this purpose but may be the current K_TOKEN.

o <Mac>:CT-KIPの実行により既存のトークンキーが新しいものに置き換えられる場合(つまり、<KeyID>要素が<ClientHello>メッセージに存在する場合)、MACが存在する必要があります。この場合、CT-KIPサーバーは、それを置き換えることが許可されていることを暗号トークンに証明する必要があります。 MAC値は、(ASCII)文字列「MAC 1計算」、クライアントのノンスR(送信された場合)、およびサーバーのノンスR_Sで、この目的でのみ使用される特別な認証キーである認証キーK_AUTHを使用して計算されます。現在のK_TOKENの可能性があります。

The MAC value may be computed by using the CT-KIP-PRF function of Section 3.4, in which case the input parameter s shall be set to the concatenation of the (ASCII) string "MAC 1 computation", R (if sent by the client), and R_S, and k shall be set to K_AUTH. The input parameter dsLen shall be set to the length of R_S:

MAC値は、セクション3.4のCT-KIP-PRF関数を使用して計算できます。この場合、入力パラメータsは、(ASCII)文字列「MAC 1計算」の連結に設定されます。R( client)、R_S、およびkはK_AUTHに設定されます。入力パラメーターdsLenは、R_Sの長さに設定されます。

dsLen = len(R_S)

dslen =亜麻(P_C)

MAC = CT-KIP-PRF (K_AUTH, "MAC 1 computation" || [R ||] R_S, dsLen)

MAC = CT-KIP-PRF(K_AUTH、 "MAC 1計算" || [R ||] R_S、dsLen)

The CT-KIP client must verify the MAC if the successful execution of the protocol will result in the replacement of an existing token key with a newly generated one. The CT-KIP client must terminate the CT-KIP session if the MAC does not verify, and must delete any nonces, keys, and/or secrets associated with the failed run of the CT-KIP protocol.

プロトコルが正常に実行された結果、既存のトークンキーが新しく生成されたものと置き換えられる場合、CT-KIPクライアントはMACを検証する必要があります。 MACが検証しない場合、CT-KIPクライアントはCT-KIPセッションを終了し、CT-KIPプロトコルの実行の失敗に関連するナンス、キー、シークレットを削除する必要があります。

The MacType's MacAlgorithm attribute shall, when present, identify the negotiated MAC algorithm.

MacTypeのMacAlgorithm属性は、存在する場合、ネゴシエートされたMACアルゴリズムを識別します。

3.8.5. The CT-KIP Client's Second PDU
3.8.5. CT-KIPクライアントの2番目のPDU

This message contains the nonce chosen by the cryptographic token, R_C, encrypted by the specified encryption key and encryption algorithm.

このメッセージには、暗号化トークンR_Cによって選択されたナンスが含まれ、指定された暗号化キーと暗号化アルゴリズムによって暗号化されます。

   <xs:element name="ClientNonce" type="ClientNoncePDU"/>
        
   <xs:complexType name="ClientNoncePDU">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Second message sent from CT-KIP client to
         CT-KIP server in a CT-KIP session.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="AbstractRequestType">
         <xs:sequence>
           <xs:element name="EncryptedNonce"
             type="xs:base64Binary"/>
           <xs:element name="Extensions"
             type="ExtensionsType" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="SessionID" type="IdentifierType"
           use="required"/>
       </xs:extension>
     </xs:complexContent>
        
   </xs:complexType>
        

The components of this message have the following meaning:

このメッセージのコンポーネントには次の意味があります。

o Version: (inherited from the AbstractRequestType type) Shall be the same version as in the <ServerHello> message.

o バージョン:(AbstractRequestType型から継承)<ServerHello>メッセージと同じバージョンである必要があります。

o SessionID: Shall have the same value as the SessionID attribute in the received <ServerHello> message.

o SessionID:受信した<ServerHello>メッセージのSessionID属性と同じ値を持つ必要があります。

o <EncryptedNonce>: The nonce generated and encrypted by the token. The encryption shall be made using the selected encryption algorithm and identified key, and as specified in Section 3.4.

o <EncryptedNonce>:トークンによって生成および暗号化されたナンス。暗号化は、選択された暗号化アルゴリズムと識別された鍵を使用して、セクション3.4で指定されたとおりに行われます。

o <Extensions>: A list of extensions. Two extensions are defined for this message in this version of CT-KIP: the ClientInfoType and the ServerInfoType (see Section 3.9).

o <Extensions>:拡張機能のリスト。このバージョンのCT-KIPでは、このメッセージに対して2つの拡張が定義されています。ClientInfoTypeとServerInfoTypeです(セクション3.9を参照)。

3.8.6. The CT-KIP Server's Final PDU
3.8.6. CT-KIPサーバーの最終PDU

This message is the last message of a two roundtrip CT-KIP exchange. The CT-KIP server sends this message to the CT-KIP client in response to the <ClientNonce> message.

このメッセージは、2つの往復CT-KIP交換の最後のメッセージです。 CT-KIPサーバーは、<ClientNonce>メッセージへの応答として、このメッセージをCT-KIPクライアントに送信します。

   <xs:element name="ServerFinished" type="ServerFinishedPDU"/>
        
   <xs:complexType name="ServerFinishedPDU">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Final message sent from CT-KIP server to
         CT-KIP client in a CT-KIP session.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="AbstractResponseType">
         <xs:sequence minOccurs="0">
           <xs:element name="TokenID"
             type="xs:base64Binary"/>
           <xs:element name="KeyID"
             type="xs:base64Binary"/>
           <xs:element name="KeyExpiryDate"
             type="xs:dateTime" minOccurs="0"/>
           <xs:element name="ServiceID"
             type="IdentifierType" minOccurs="0"/>
           <xs:element name="ServiceLogo"
             type="LogoType" minOccurs="0"/>
           <xs:element name="UserID"
             type="IdentifierType" minOccurs="0"/>
        
           <xs:element name="Extensions"
             type="ExtensionsType" minOccurs="0"/>
           <xs:element name="Mac"
             type="MacType"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        

The components of this message have the following meaning:

このメッセージのコンポーネントには次の意味があります。

o Version: (inherited from the AbstractResponseType type) The CT-KIP version used in this session.

o バージョン:(AbstractResponseTypeタイプから継承)このセッションで使用されるCT-KIPバージョン。

o SessionID: (inherited from the AbstractResponseType type) The previously established identifier for this session.

o SessionID:(AbstractResponseTypeタイプから継承)以前に確立されたこのセッションの識別子。

o Status: (inherited from the AbstractResponseType type) Return code for the <ServerFinished> message. If Status is not "Success", only the Status, SessionID, and Version attributes will be present (the presence of the SessionID attribute is dependent on the type of reported error); otherwise, all the other elements must be present as well. In this latter case, the <ServerFinished> message can be seen as a "Commit" message, instructing the cryptographic token to store the generated key and associate the given key identifier with this key.

o ステータス:(AbstractResponseTypeタイプから継承)<ServerFinished>メッセージの戻りコード。 Statusが "Success"でない場合、Status、SessionID、およびVersion属性のみが存在します(SessionID属性の存在は、報告されたエラーのタイプによって異なります)。それ以外の場合は、他のすべての要素も存在する必要があります。この後者の場合、<ServerFinished>メッセージは「Commit」メッセージと見なされ、生成されたキーを保存し、指定されたキー識別子をこのキーに関連付けるように暗号トークンに指示します。

o <TokenID>: An identifier for the token carrying the generated key. Must have the same value as the <TokenID> element of the <ClientHello> message, if one was provided. When assigned by the CT-KIP server, the <TokenID> element shall be unique within the domain of the CT-KIP server.

o <TokenID>:生成されたキーを運ぶトークンの識別子。 <ClientHello>メッセージの<TokenID>要素と同じ値を指定する必要があります(指定されている場合)。 CT-KIPサーバーによって割り当てられた場合、<TokenID>要素はCT-KIPサーバーのドメイン内で一意である必要があります。

o <KeyID>: An identifier for the newly generated key. The identifier shall be globally unique. Must have the same value as any key identifier provided by the CT-KIP client in the <ClientHello> message.

o <KeyID>:新しく生成されたキーの識別子。識別子はグローバルに一意でなければならない。 <ClientHello>メッセージでCT-KIPクライアントによって提供される任意のキー識別子と同じ値を持つ必要があります。

The reason for requiring globally unique key identifiers is that it avoids potential conflicts when associating key holders with key identifiers. One way of achieving global uniqueness with reasonable certainty is to hash the combination of the issuer's fully qualified domain name with an (issuer-specific) serial number, assuming that each issuer makes sure their serial numbers never repeat.

グローバルに一意のキー識別子を要求する理由は、キーホルダーをキー識別子に関連付ける際の潜在的な競合を回避するためです。合理的な確実性をもってグローバルな一意性を達成する1つの方法は、発行者の完全修飾ドメイン名と(発行者固有の)シリアル番号の組み合わせをハッシュすることです。

CT-KIP clients must support key identifiers at least 64 octets long. CT-KIP servers should not generate key identifiers longer than 64 octets.

CT-KIPクライアントは、少なくとも64オクテットの長さのキー識別子をサポートする必要があります。 CT-KIPサーバーは、64オクテットを超えるキー識別子を生成しないでください。

o <KeyExpiryDate>: This optional element provides the date and time after which the generated key should be treated as expired and invalid.

o <KeyExpiryDate>:このオプションの要素は、生成されたキーが期限切れおよび無効として処理されるまでの日時を提供します。

o <ServiceID>: An optional identifier for the service that has stored the generated key. The cryptographic token may store this identifier associated with the key in order to simplify later lookups. The identifier shall be a printable string.

o <ServiceID>:生成されたキーを格納したサービスのオプションの識別子。暗号化トークンは、後の検索を簡略化するために、キーに関連付けられたこの識別子を格納する場合があります。識別子は印刷可能な文字列でなければならない。

o <ServiceLogo>: This optional element provides a graphical logo image for the service that can be displayed in user interfaces, e.g., to help a user select a certain key. The logo should contain an image within the size range of 60 pixels wide by 45 pixels high, and 200 pixels wide by 150 pixels high. The required MimeType attribute of this type provides information about the MIME type of the image. This specification supports both the JPEG and GIF image formats (with MIME types of "image/jpeg" and "image/ gif").

o <ServiceLogo>:このオプションの要素は、ユーザーが特定のキーを選択するのを支援するなど、ユーザーインターフェイスに表示できるサービスのグラフィックロゴ画像を提供します。ロゴには、幅60ピクセル、高さ45ピクセル、幅200ピクセル、高さ150ピクセルのサイズ範囲の画像を含める必要があります。このタイプの必須MimeType属性は、画像のMIMEタイプに関する情報を提供します。この仕様は、JPEGとGIFの両方の画像フォーマットをサポートしています(MIMEタイプが「image / jpeg」と「image / gif」の場合)。

o <UserID>: An optional identifier for the user associated with the generated key in the authentication service. The cryptographic token may store this identifier associated with the generated key in order to enhance later user experiences. The identifier shall be a printable string.

o <UserID>:認証サービスで生成されたキーに関連付けられているユーザーのオプションの識別子。暗号化トークンは、後のユーザーエクスペリエンスを向上させるために、生成されたキーに関連付けられたこの識別子を格納できます。識別子は印刷可能な文字列でなければならない。

o <Extensions>: A list of extensions chosen by the CT-KIP server. For this message, this version of CT-KIP defines two extensions, the OTPKeyConfigurationDataType and the ClientInfoType (see Section 3.9).

o <Extensions>:CT-KIPサーバーが選択した拡張機能のリスト。このメッセージに対して、このバージョンのCT-KIPは、OTPKeyConfigurationDataTypeとClientInfoTypeの2つの拡張を定義しています(セクション3.9を参照)。

o <Mac>: To avoid a false "Commit" message causing the token to end up in an initialized state for which the server does not know the stored key, <ServerFinished> messages must always be authenticated with a MAC. The MAC shall be made using the already established MAC algorithm. The MAC value shall be computed on the (ASCII) string "MAC 2 computation" and R_C using an authentication key K_AUTH. Again, this should be a special authentication key used only for this purpose, but may also be an existing K_TOKEN. (In this case, implementations must protect against attacks where K_TOKEN is used to pre-compute MAC values.) If no authentication key is present in the token, and no K_TOKEN existed before the CT-KIP run, K_AUTH shall be the newly generated K_TOKEN.

o <Mac>:サーバーが格納されたキーを認識しない初期化された状態でトークンが終了するという誤った「コミット」メッセージを回避するには、<ServerFinished>メッセージを常にMACで認証する必要があります。 MACは、すでに確立されているMACアルゴリズムを使用して作成されます。 MAC値は、認証キーK_AUTHを使用して、(ASCII)文字列「MAC 2計算」とR_Cで計算されます。繰り返しますが、これはこの目的のためだけに使用される特別な認証キーである必要がありますが、既存のK_TOKENでもかまいません。 (この場合、実装は、K_TOKENを使用してMAC値を事前計算する攻撃から保護する必要があります。)トークンに認証キーが存在せず、CT-KIPの実行前にK_TOKENが存在しなかった場合、K_AUTHが新しく生成されたK_TOKENになります。 。

If CT-KIP-PRF is used as the MAC algorithm, then the input parameter s shall consist of the concatenation of the (ASCII) string "MAC 2 computation" and R_C, and the parameter dsLen shall be set to the length of R_C:

CT-KIP-PRFがMACアルゴリズムとして使用される場合、入力パラメーターsは(ASCII)文字列「MAC 2計算」とR_Cの連結で構成され、パラメーターdsLenはR_Cの長さに設定されます。

dsLen = len(R_C)

dslen =亜麻(P_C)

MAC = CT-KIP-PRF (K_AUTH, "MAC 2 computation" || R_C, dsLen)

MAC = CT-KIP-PRF(K_AUTH、 "MAC 2計算" || R_C、dsLen)

When receiving a <ServerFinished> message with Status = "Success" for which the MAC verifies, the CT-KIP client shall associate the generated key K_TOKEN with the provided key identifier and store this data permanently. After this operation, it shall not be possible to overwrite the key unless knowledge of an authorizing key is proven through a MAC on a later <ServerHello> (and <ServerFinished>) message.

MACが検証するStatus = "Success"の<ServerFinished>メッセージを受信すると、CT-KIPクライアントは、生成されたキーK_TOKENを提供されたキー識別子に関連付け、このデータを永続的に保存します。この操作の後、認証キーの知識が後の<ServerHello>(および<ServerFinished>)メッセージのMACを通じて証明されない限り、キーを上書きすることはできません。

The CT-KIP client must verify the MAC. The CT-KIP client must terminate the CT-KIP session if the MAC does not verify, and must, in this case, also delete any nonces, keys, and/or secrets associated with the failed run of the CT-KIP protocol.

CT-KIPクライアントはMACを検証する必要があります。 MACが検証しない場合、CT-KIPクライアントはCT-KIPセッションを終了する必要があり、この場合、CT-KIPプロトコルの実行の失敗に関連するナンス、キー、シークレットも削除する必要があります。

The MacType's MacAlgorithm attribute shall, when present, identify the negotiated MAC algorithm.

MacTypeのMacAlgorithm属性は、存在する場合、ネゴシエートされたMACアルゴリズムを識別します。

3.9. Protocol Extensions
3.9. プロトコル拡張
3.9.1. The ClientInfoType Type
3.9.1. ClientInfoTypeタイプ

When present in a <ClientHello> or a <ClientNonce> message, the optional ClientInfoType extension contains CT-KIP client-specific information. CT-KIP servers must support this extension. CT-KIP servers must not attempt to interpret the data it carries and, if received, must include it unmodified in the current protocol run's next server response. Servers need not retain the ClientInfoType's data after that response has been generated.

<ClientHello>または<ClientNonce>メッセージに存在する場合、オプションのClientInfoType拡張にはCT-KIPクライアント固有の情報が含まれます。 CT-KIPサーバーはこの拡張をサポートする必要があります。 CT-KIPサーバーは、それが運ぶデータを解釈しようと試みてはならず、受け取った場合、それを変更せずに現在のプロトコル実行の次のサーバー応答に含める必要があります。サーバーは、応答が生成された後、ClientInfoTypeのデータを保持する必要はありません。

   <xs:complexType name="ClientInfoType">
     <xs:complexContent>
       <xs:extension base="AbstractExtensionType">
         <xs:sequence>
           <xs:element name="Data"
             type="xs:base64Binary"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
3.9.2. The ServerInfoType Type
3.9.2. ServerInfoTypeタイプ

When present, the optional ServerInfoType extension contains CT-KIP server-specific information. This extension is only valid in <ServerHello> messages for which Status = "Continue". CT-KIP clients must support this extension. CT-KIP clients must not attempt to interpret the data it carries and, if received, must include it unmodified in the current protocol run's next client request (i.e., the <ClientNonce> message). CT-KIP clients need not retain the ServerInfoType's data after that request has been generated. This extension may be used, e.g., for state management in the CT-KIP server.

存在する場合、オプションのServerInfoType拡張にはCT-KIPサーバー固有の情報が含まれます。この拡張機能は、Status = "Continue"である<ServerHello>メッセージでのみ有効です。 CT-KIPクライアントはこの拡張をサポートする必要があります。 CT-KIPクライアントは、それが運ぶデータを解釈しようと試みてはならず、受け取った場合、現在のプロトコル実行の次のクライアント要求(つまり、<ClientNonce>メッセージ)に変更されていないデータを含める必要があります。 CT-KIPクライアントは、要求が生成された後、ServerInfoTypeのデータを保持する必要はありません。この拡張機能は、CT-KIPサーバーでの状態管理などに使用できます。

   <xs:complexType name="ServerInfoType">
     <xs:complexContent>
       <xs:extension base="AbstractExtensionType">
         <xs:sequence>
           <xs:element name="Data"
             type="xs:base64Binary"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
3.9.3. The OTPKeyConfigurationDataType Type
3.9.3. OTPKeyConfigurationDataTypeタイプ

The optional OTPKeyConfigurationDataType extension contains additional key configuration data for OTP keys:

オプションのOTPKeyConfigurationDataType拡張には、OTPキーの追加のキー構成データが含まれています。

   <xs:complexType name="OTPKeyConfigurationDataType">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         This extension is only valid in ServerFinished
         PDUs.  It carries additional configuration data
         that an OTP token should use (subject to local
         policy) when generating OTP values with a newly
         generated OTP key.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="ExtensionType">
         <xs:sequence>
           <xs:element name="OTPFormat"
             type="OTPFormatType"/>
           <xs:element name="OTPLength"
             type="xs:positiveInteger"/>
           <xs:element name="OTPMode"
             type="OTPModeType" minOccurs="0"/>
        
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        

This extension is only valid in <ServerFinished> messages. It carries additional configuration data that the cryptographic token should use (subject to local policy) when generating OTP values from the newly generated OTP key. The components of this extension have the following meaning:

この拡張機能は、<ServerFinished>メッセージでのみ有効です。新しく生成されたOTPキーからOTP値を生成するときに暗号トークンが使用する必要がある追加の構成データ(ローカルポリシーに従う)が含まれます。この拡張機能のコンポーネントには次の意味があります。

o OTPFormat: The default format of OTPs produced with this key.

o OTPFormat:このキーで生成されるOTPのデフォルトのフォーマット。

o OTPLength: The default length of OTPs produced with this key.

o OTPLength:このキーで生成されるOTPのデフォルトの長さ。

o OTPMode: The default mode of operation when producing OTPs with this key.

o OTPMode:このキーでOTPを生成するときのデフォルトの操作モード。

4. Protocol Bindings
4. プロトコルバインディング
4.1. General Requirement
4.1. 一般的な要件

CT-KIP assumes a reliable transport.

CT-KIPは信頼できる転送を前提としています。

4.2. HTTP/1.1 binding for CT-KIP
4.2. CT-KIPのHTTP / 1.1バインディング
4.2.1. Introduction
4.2.1. はじめに

This section presents a binding of the previous messages to HTTP/1.1 [7]. Note that the HTTP client normally will be different from the CT-KIP client, i.e., the HTTP client will only exist to "proxy" CT-KIP messages from the CT-KIP client to the CT-KIP server. Likewise, on the HTTP server side, the CT-KIP server may receive CT-KIP PDUs from a "front-end" HTTP server.

このセクションでは、HTTP / 1.1 [7]への前のメッセージのバインディングを示します。 HTTPクライアントは通常、CT-KIPクライアントとは異なることに注意してください。つまり、HTTPクライアントは、CT-KIPクライアントからCT-KIPサーバーへのCT-KIPメッセージを「プロキシ」するためだけに存在します。同様に、HTTPサーバー側では、CT-KIPサーバーは「フロントエンド」HTTPサーバーからCT-KIP PDUを受信する場合があります。

4.2.2. Identification of CT-KIP Messages
4.2.2. CT-KIPメッセージの識別

The MIME-type for all CT-KIP messages shall be

すべてのCT-KIPメッセージのMIMEタイプは、

application/vnd.otps.ct-kip+xml

application / vnd.otps.ct-kip + xml

4.2.3. HTTP Headers
4.2.3. HTTPヘッダー

HTTP proxies must not cache responses carrying CT-KIP messages. For this reason, the following holds: o When using HTTP/1.1, requesters should:

HTTPプロキシは、CT-KIPメッセージを運ぶ応答をキャッシュしてはなりません。このため、次のことが当てはまります。o HTTP / 1.1を使用する場合、要求者は次のことを行う必要があります。

* Include a Cache-Control header field set to "no-cache, no-store".

* 「no-cache、no-store」に設定されたCache-Controlヘッダーフィールドを含めます。

* Include a Pragma header field set to "no-cache".

* 「no-cache」に設定されたPragmaヘッダーフィールドを含めます。

o When using HTTP/1.1, responders should:

o HTTP / 1.1を使用する場合、レスポンダは次のことを行う必要があります。

* Include a Cache-Control header field set to "no-cache, no-must-revalidate, private".

* "no-cache、no-must-revalidate、private"に設定されたCache-Controlヘッダーフィールドを含めます。

* Include a Pragma header field set to "no-cache".

* 「no-cache」に設定されたPragmaヘッダーフィールドを含めます。

* NOT include a Validator, such as a Last-Modified or ETag header.

* Last-ModifiedヘッダーやETagヘッダーなどのバリデーターを含めないでください。

There are no other restrictions on HTTP headers, besides the requirement to set the Content-Type header value to application/ vnd.otps.ct-kip+xml.

Content-Typeヘッダー値をapplication / vnd.otps.ct-kip + xmlに設定する要件以外に、HTTPヘッダーには他の制限はありません。

4.2.4. HTTP Operations
4.2.4. HTTPオペレーション

Persistent connections as defined in HTTP/1.1 are assumed but not required. CT-KIP requests are mapped to HTTP POST operations. CT-KIP responses are mapped to HTTP responses.

HTTP / 1.1で定義されている永続的な接続が想定されていますが、必須ではありません。 CT-KIP要求はHTTP POST操作にマップされます。 CT-KIP応答はHTTP応答にマップされます。

4.2.5. HTTP Status Codes
4.2.5. HTTPステータスコード

A CT-KIP HTTP responder that refuses to perform a message exchange with a CT-KIP HTTP requester should return a 403 (Forbidden) response. In this case, the content of the HTTP body is not significant. In the case of an HTTP error while processing a CT-KIP request, the HTTP server must return a 500 (Internal Server Error) response. This type of error should be returned for HTTP-related errors detected before control is passed to the CT-KIP processor, or when the CT-KIP processor reports an internal error (for example, the CT-KIP XML namespace is incorrect, or the CT-KIP schema cannot be located). If the type of a CT-KIP request cannot be determined, the CT-KIP responder must return a 400 (Bad request) response.

CT-KIP HTTPリクエスタとのメッセージ交換の実行を拒否するCT-KIP HTTPレスポンダは、403(禁止)応答を返す必要があります。この場合、HTTP本文のコンテンツは重要ではありません。 CT-KIP要求の処理中にHTTPエラーが発生した場合、HTTPサーバーは500(内部サーバーエラー)応答を返す必要があります。このタイプのエラーは、制御がCT-KIPプロセッサーに渡される前に検出されたHTTP関連エラー、またはCT-KIPプロセッサーが内部エラーを報告した場合(CT-KIP XML名前空間が正しくない、またはCT-KIPスキーマが見つかりません)。 CT-KIP要求のタイプを判別できない場合、CT-KIPレスポンダは400(不正な要求)応答を返す必要があります。

In these cases (i.e., when the HTTP response code is 4xx or 5xx), the content of the HTTP body is not significant.

これらの場合(つまり、HTTP応答コードが4xxまたは5xxの場合)、HTTP本文のコンテンツは重要ではありません。

Redirection status codes (3xx) apply as usual.

リダイレクトステータスコード(3xx)は通常どおり適用されます。

Whenever the HTTP POST is successfully invoked, the CT-KIP HTTP responder must use the 200 status code and provide a suitable CT-KIP message (possibly with CT-KIP error information included) in the HTTP body.

HTTP POSTが正常に呼び出されると、CT-KIP HTTPレスポンダは200ステータスコードを使用し、適切なCT-KIPメッセージ(おそらくCT-KIPエラー情報が含まれている)をHTTP本文に含める必要があります。

4.2.6. HTTP Authentication
4.2.6. HTTP認証

No support for HTTP/1.1 authentication is assumed.

HTTP / 1.1認証のサポートは想定されていません。

4.2.7. Initialization of CT-KIP
4.2.7. CT-KIPの初期化

The CT-KIP server may initialize the CT-KIP protocol by sending an HTTP response with Content-Type set to application/ vnd.otps.ct-kip+xml and response code set to 200 (OK). This message may, e.g., be sent in response to a user requesting token initialization in a browsing session. The initialization message may carry data in its body. If this is the case, the data shall be a valid instance of a <CT-KIPTrigger> element.

CT-KIPサーバーは、Content-Typeをapplication / vnd.otps.ct-kip + xmlに設定し、応答コードを200(OK)に設定してHTTP応答を送信することにより、CT-KIPプロトコルを初期化できます。このメッセージは、たとえば、ブラウジングセッションでトークンの初期化を要求するユーザーに応答して送信されます。初期化メッセージは、本体にデータを運ぶ場合があります。この場合、データは<CT-KIPTrigger>要素の有効なインスタンスである必要があります。

4.2.8. Example Messages
4.2.8. メッセージの例

a. Initialization from CT-KIP server:

a. CT-KIPサーバーからの初期化:

   HTTP/1.1 200 OK
   Cache-Control: no-store
   Content-Type: application/vnd.otps.ct-kip+xml
   Content-Length: <some value>
        

CT-KIP initialization data in XML form...

XML形式のCT-KIP初期化データ...

b. Initial request from CT-KIP client:

b. CT-KIPクライアントからの最初のリクエスト:

   POST http://example.com/cgi-bin/CT-KIP-server HTTP/1.1
   Cache-Control: no-store
   Pragma: no-cache
   Host: example.com
   Content-Type: application/vnd.otps.ct-kip+xml
   Content-Length: <some value>
        

CT-KIP data in XML form (supported version, supported algorithms...) c. Initial response from CT-KIP server:

XML形式のCT-KIPデータ(サポートされているバージョン、サポートされているアルゴリズム...)c。 CT-KIPサーバーからの初期応答:

   HTTP/1.1 200 OK
   Cache-Control: no-store
   Content-Type: application/vnd.otps.ct-kip+xml
   Content-Length: <some other value>
        

CT-KIP data in XML form (server random nonce, server public key, ...)

XML形式のCT-KIPデータ(サーバーのランダムnonce、サーバーの公開鍵など)

5. Security considerations
5. セキュリティに関する考慮事項
5.1. General
5.1. 一般的な

CT-KIP is designed to protect generated key material from exposure. No other entities than the CT-KIP server and the cryptographic token will have access to a generated K_TOKEN if the cryptographic algorithms used are of sufficient strength and, on the CT-KIP client side, generation and encryption of R_C and generation of K_TOKEN take place as specified and in the token. This applies even if malicious software is present in the CT-KIP client. However, as discussed in the following, CT-KIP does not protect against certain other threats resulting from man-in-the-middle attacks and other forms of attacks. CT-KIP should, therefore, be run over a transport providing privacy and integrity, such as HTTP over Transport Layer Security (TLS) with a suitable ciphersuite, when such threats are a concern. Note that TLS ciphersuites with anonymous key exchanges are not suitable in those situations.

CT-KIPは、生成されたキーマテリアルを露出から保護するように設計されています。使用される暗号化アルゴリズムが十分な強度を持ち、CT-KIPクライアント側でR_Cの生成と暗号化、およびK_TOKENの生成が行われる場合、CT-KIPサーバーと暗号化トークン以外のエンティティは、生成されたK_TOKENにアクセスできません。トークンで指定されたとおり。これは、CT-KIPクライアントに悪意のあるソフトウェアが存在する場合でも当てはまります。ただし、以下で説明するように、CT-KIPは中間者攻撃やその他の形式の攻撃に起因する他の特定の脅威から保護しません。したがって、CT-KIPは、適切な暗号スイートを備えたHTTP over Transport Layer Security(TLS)などのプライバシーと整合性を提供するトランスポート上で実行する必要があります(そのような脅威が懸念される場合)。匿名の鍵交換を伴うTLS暗号スイートは、これらの状況には適していません。

5.2. Active Attacks
5.2. アクティブな攻撃
5.2.1. Introduction
5.2.1. はじめに

An active attacker may attempt to modify, delete, insert, replay or reorder messages for a variety of purposes including service denial and compromise of generated key material. Sections 5.2.2 through 5.2.7 analyze these attack scenarios.

アクティブな攻撃者は、サービス拒否や生成されたキーマテリアルの侵害など、さまざまな目的でメッセージの変更、削除、挿入、再生、または並べ替えを試みる可能性があります。セクション5.2.2から5.2.7は、これらの攻撃シナリオを分析します。

5.2.2. Message Modifications
5.2.2. メッセージの変更

Modifications to a <CT-KIPTrigger> message will either cause denial-of-service (modifications of any of the identifiers or the nonce) or the CT-KIP client to contact the wrong CT-KIP server. The latter is in effect a man-in-the-middle attack and is discussed further in Section 5.2.7.

<CT-KIPTrigger>メッセージを変更すると、サービス拒否(識別子またはnonceのいずれかの変更)またはCT-KIPクライアントが間違ったCT-KIPサーバーに接続します。後者は、実質的に中間者攻撃であり、セクション5.2.7でさらに説明されています。

An attacker may modify a <ClientHello> message. This means that the attacker could indicate a different key or token than the one intended by the CT-KIP client, and could also suggest other cryptographic algorithms than the ones preferred by the CT-KIP client, e.g., cryptographically weaker ones. The attacker could also suggest earlier versions of the CT-KIP protocol, in case these versions have been shown to have vulnerabilities. These modifications could lead to an attacker succeeding in initializing or modifying another token than the one intended (i.e., the server assigning the generated key to the wrong token), or gaining access to a generated key through the use of weak cryptographic algorithms or protocol versions. CT-KIP implementations may protect against the latter by having strict policies about what versions and algorithms they support and accept. The former threat (assignment of a generated key to the wrong token) is not possible when the shared-key variant of CT-KIP is employed (assuming existing shared keys are unique per token) but is possible in the public-key variant. Therefore, CT-KIP servers must not accept unilaterally provided token identifiers in the public-key variant. This is also indicated in the protocol description. In the shared-key variant, however, an attacker may be able to provide the wrong identifier (possibly also leading to the incorrect user being associated with the generated key) if the attacker has real-time access to the token with the identified key. In other words, the generated key is associated with the correct token but the token is associated with the incorrect user. See further Section 5.5 for a discussion of this threat and possible countermeasures.

攻撃者は<ClientHello>メッセージを変更する可能性があります。これは、攻撃者がCT-KIPクライアントが意図したものとは異なるキーまたはトークンを示す可能性があり、CT-KIPクライアントが好むもの以外の暗号アルゴリズム(たとえば、暗号的に弱いもの)を提案する可能性があることを意味します。攻撃者はまた、CT-KIPプロトコルの以前のバージョンに脆弱性があることが示されている場合に備えて、それらを提案する可能性があります。これらの変更により、攻撃者は意図したものとは別のトークンの初期化または変更(つまり、サーバーが生成されたキーを間違ったトークンに割り当てる)に成功したり、弱い暗号アルゴリズムまたはプロトコルバージョンを使用して生成されたキーにアクセスしたりする可能性があります。 CT-KIP実装は、サポートするバージョンとアルゴリズムについて厳格なポリシーを持ち、それらを受け入れることにより、後者から保護する場合があります。前者の脅威(生成されたキーを間違ったトークンに割り当てる)は、CT-KIPの共有キーバリアントが使用されている場合は不可能です(既存の共有キーがトークンごとに一意であると仮定)。ただし、パブリックキーバリアントでは可能です。したがって、CT-KIPサーバーは、公開鍵のバリアントで一方的に提供されたトークン識別子を受け入れてはなりません。これはプロトコルの説明にも示されています。ただし、共有キーのバリアントでは、攻撃者が識別されたキーを持つトークンにリアルタイムでアクセスできる場合、攻撃者は間違った識別子を提供できる可能性があります(また、誤ったユーザーが生成されたキーに関連付けられる可能性もあります)。つまり、生成されたキーは正しいトークンに関連付けられていますが、トークンは誤ったユーザーに関連付けられています。この脅威と可能な対策の説明については、セクション5.5を参照してください。

An attacker may also modify a <ServerHello> message. This means that the attacker could indicate different key types, algorithms, or protocol versions than the legitimate server would, e.g., cryptographically weaker ones. The attacker could also provide a different nonce than the one sent by the legitimate server. Clients will protect against the former through strict adherence to policies regarding permissible algorithms and protocol versions. The latter (wrong nonce) will not constitute a security problem, as a generated key will not match the key generated on the legitimate server. Also, whenever the CT-KIP run would result in the replacement of an existing key, the <Mac> element protects against modifications of R_S.

攻撃者は、<ServerHello>メッセージも変更する可能性があります。これは、攻撃者が正当なサーバーとは異なるキータイプ、アルゴリズム、またはプロトコルバージョンを示す可能性があることを意味します(例:暗号的に弱いもの)。攻撃者はまた、正当なサーバーによって送信されたものとは異なるナンスを提供する可能性があります。クライアントは、許容されるアルゴリズムとプロトコルバージョンに関するポリシーを厳守することにより、前者から保護します。生成されたキーは正当なサーバーで生成されたキーと一致しないため、後者(ナンスが間違っています)はセキュリティ上の問題にはなりません。また、CT-KIPの実行により既存のキーが置き換えられる場合は常に、<Mac>要素がR_Sの変更から保護します。

Modifications of <ClientNonce> messages are also possible. If an attacker modifies the SessionID attribute, then, in effect, a switch to another session will occur at the server, assuming the new SessionID is valid at that time on the server. It still will not allow the attacker to learn a generated K_TOKEN since R_C has been wrapped for the legitimate server. Modifications of the <EncryptedNonce> element, e.g., replacing it with a value for which the attacker knows an underlying R'C, will not result in the client changing its pre-CT-KIP state, since the server will be unable to provide a valid MAC in its final message to the client. The server may, however, end up storing K'TOKEN rather than K_TOKEN. If the token has been associated with a particular user, then this could constitute a security problem. For a further discussion about this threat, and a possible countermeasure, see Section 5.5 below. Note that use of Secure Socket Layer (SSL) or TLS does not protect against this attack if the attacker has access to the CT-KIP client (e.g., through malicious software, "trojans").

<ClientNonce>メッセージの変更も可能です。攻撃者がSessionID属性を変更すると、実際には、サーバー上で新しいSessionIDが有効であると想定して、サーバーで別のセッションへの切り替えが発生します。 R_Cが正規のサーバーにラップされているため、攻撃者は生成されたK_TOKENを学習することはできません。 <EncryptedNonce>要素を変更しても、たとえば攻撃者が基になるR'Cを知っている値に置き換えても、サーバーはサーバーを提供できないため、クライアントはCT-KIP以前の状態を変更しません。クライアントへの最終メッセージの有効なMAC。ただし、サーバーは、K_TOKENではなくK'TOKENを格納する可能性があります。トークンが特定のユーザーに関連付けられている場合、これはセキュリティ上の問題となる可能性があります。この脅威の詳細と可能な対策については、以下のセクション5.5を参照してください。 Secure Socket Layer(SSL)またはTLSを使用しても、攻撃者がCT-KIPクライアントにアクセスできる場合(悪意のあるソフトウェア、「トロイの木馬」など)、この攻撃から保護されないことに注意してください。

Finally, attackers may also modify the <ServerFinished> message. Replacing the <Mac> element will only result in denial-of-service. Replacement of any other element may cause the CT-KIP client to associate, e.g., the wrong service with the generated key. CT-KIP should be run over a transport providing privacy and integrity when this is a concern.

最後に、攻撃者は<ServerFinished>メッセージも変更する可能性があります。 <Mac>要素を置き換えると、サービス拒否のみが発生します。他の要素を置き換えると、CT-KIPクライアントが、生成されたキーに間違ったサービスなどを関連付ける可能性があります。 CT-KIPは、これが懸念される場合、プライバシーと整合性を提供するトランスポート上で実行する必要があります。

5.2.3. Message Deletion
5.2.3. メッセージの削除

Message deletion will not cause any other harm than denial-of-service, since a token shall not change its state (i.e., "commit" to a generated key) until it receives the final message from the CT-KIP server and successfully has processed that message, including validation of its MAC. A deleted <ServerFinished> message will not cause the server to end up in an inconsistent state vis-a-vis the token if the server implements the suggestions in Section 5.5.

トークンはCT-KIPサーバーから最後のメッセージを受信して​​正常に処理されるまでトークンの状態(つまり、生成されたキーへの「コミット」)を変更しないため、メッセージを削除してもサービス拒否以外の害はありません。 MACの検証を含むそのメッセージ。サーバーがセクション5.5の提案を実装している場合、<ServerFinished>メッセージが削除されても、サーバーがトークンに対して不整合な状態になることはありません。

5.2.4. Message Insertion
5.2.4. メッセージの挿入

An active attacker may initiate a CT-KIP run at any time, and suggest any token identifier. CT-KIP server implementations may receive some protection against inadvertently initializing a token or inadvertently replacing an existing key or assigning a key to a token by initializing the CT-KIP run by use of the <CT-KIPTrigger>. The <TriggerNonce> element allows the server to associate a CT-KIP protocol run with, e.g., an earlier user-authenticated session. The security of this method, therefore, depends on the ability to protect the <TriggerNonce> element in the CT-KIP initialization message. If an eavesdropper is able to capture this message, he may race the legitimate user for a key initialization. CT-KIP over a transport providing privacy and integrity, coupled with the recommendations in Section 5.5, is recommended when this is a concern.

アクティブな攻撃者は、いつでもCT-KIPの実行を開始し、任意のトークン識別子を提案する可能性があります。 CT-KIPサーバーの実装は、<CT-KIPTrigger>を使用してCT-KIP実行を初期化することにより、誤ってトークンを初期化したり、既存のキーを誤って置き換えたり、キーをトークンに割り当てたりしないように保護されます。 <TriggerNonce>要素を使用すると、サーバーはCT-KIPプロトコルの実行を以前のユーザー認証セッションなどに関連付けることができます。したがって、このメソッドのセキュリティは、CT-KIP初期化メッセージの<TriggerNonce>要素を保護する機能に依存します。盗聴者がこのメッセージをキャプチャできた場合、正規のユーザーがキーの初期化を求めて競合する可能性があります。プライバシーと整合性を提供するトランスポートを介したCT-KIPは、セクション5.5の推奨事項と相まって、これが懸念される場合に推奨されます。

Insertion of other messages into an existing protocol run is seen as equivalent to modification of legitimately sent messages.

既存のプロトコル実行への他のメッセージの挿入は、正当に送信されたメッセージの変更と同等と見なされます。

5.2.5. Message Replay
5.2.5. メッセージの再生

Attempts to replay a previously recorded CT-KIP message will be detected, as the use of nonces ensures that both parties are live.

ナンスを使用すると、両方の当事者がライブであることを確認できるため、以前に記録されたCT-KIPメッセージを再生する試みが検出されます。

5.2.6. Message Reordering
5.2.6. メッセージの並べ替え

An attacker may attempt to re-order messages but this will be detected, as each message is of a unique type.

攻撃者はメッセージの並べ替えを試みる可能性がありますが、各メッセージは一意のタイプであるため、これは検出されます。

5.2.7. Man in the Middle
5.2.7. 真ん中の男

In addition to other active attacks, an attacker posing as a man in the middle may be able to provide his own public key to the CT-KIP client. This threat and countermeasures to it are discussed in Section 3.3. An attacker posing as a man-in-the-middle may also be acting as a proxy and, hence, may not interfere with CT-KIP runs but still learn valuable information; see Section 5.3.

他のアクティブな攻撃に加えて、真ん中の男を装った攻撃者が自分の公開鍵をCT-KIPクライアントに提供できる可能性があります。この脅威とその対策については、セクション3.3で説明します。中間者を装った攻撃者もプロキシとして機能している可能性があるため、CT-KIPの実行を妨害することはなく、貴重な情報を入手できます。セクション5.3を参照してください。

5.3. Passive Attacks
5.3. パッシブアタック

Passive attackers may eavesdrop on CT-KIP runs to learn information that later on may be used to impersonate users, mount active attacks, etc.

パッシブな攻撃者はCT-KIPの実行を盗聴して、後でユーザーのなりすまし、アクティブな攻撃の開始などに使用される可能性のある情報を知る可能性があります。

If CT-KIP is not run over a transport providing privacy, a passive attacker may learn:

CT-KIPがプライバシーを提供するトランスポート上で実行されていない場合、パッシブ攻撃者は次のことを学習する可能性があります。

o What tokens a particular user is in possession of;

o 特定のユーザーが所有しているトークン。

o The identifiers of keys on those tokens and other attributes pertaining to those keys, e.g., the lifetime of the keys; and

o それらのトークンのキーの識別子、およびそれらのキーに関連するその他の属性(例:キーの寿命)。そして

o CT-KIP versions and cryptographic algorithms supported by a particular CT-KIP client or server.

o 特定のCT-KIPクライアントまたはサーバーでサポートされるCT-KIPバージョンと暗号化アルゴリズム。

Whenever the above is a concern, CT-KIP should be run over a transport providing privacy. If man-in-the-middle attacks for the purposes described above are a concern, the transport should also offer server-side authentication.

上記が懸念される場合は常に、プライバシーを提供するトランスポート上でCT-KIPを実行する必要があります。上記の目的のための中間者攻撃が懸念される場合、トランスポートはサーバー側の認証も提供する必要があります。

5.4. Cryptographic Attacks
5.4. 暗号攻撃

An attacker with unlimited access to an initialized token may use the token as an "oracle" to pre-compute values that later on may be used to impersonate the CT-KIP server. Sections 3.6 and 3.8 contain discussions of this threat and steps recommended to protect against it.

初期化されたトークンへの無制限のアクセス権を持つ攻撃者は、トークンを「オラクル」として使用して、後でCT-KIPサーバーを偽装するために使用される可能性のある値を事前計算します。セクション3.6および3.8には、この脅威の説明と、この脅威からの保護に推奨される手順が含まれています。

5.5. Attacks on the Interaction between CT-KIP and User Authentication
5.5. CT-KIPとユーザー認証の間の相互作用に対する攻撃

If keys generated in CT-KIP will be associated with a particular user at the CT-KIP server (or a server trusted by, and communicating with the CT-KIP server), then in order to protect against threats where an attacker replaces a client-provided encrypted R_C with his own R'C (regardless of whether the public-key variant or the shared-secret variant of CT-KIP is employed to encrypt the client nonce), the server should not commit to associate a generated K_TOKEN with the given token (user) until the user simultaneously has proven both possession of a token containing K_TOKEN and some out-of-band provided authenticating information (e.g., a temporary password). For example, if the token is a one-time password token, the user could be required to authenticate with both a one-time password generated by the token and an out-of-band provided temporary PIN in order to have the server "commit" to the generated token value for the given user. Preferably, the user should perform this operation from another host than the one used to initialize the token, in order to minimize the risk of malicious software on the client interfering with the process.

CT-KIPで生成されたキーがCT-KIPサーバー(またはCT-KIPサーバーによって信頼され、通信しているサーバー)の特定のユーザーに関連付けられる場合、攻撃者がクライアントを置き換える脅威から保護するため-暗号化されたR_Cを独自のR'Cで提供(CT-KIPの公開鍵バリアントまたは共有秘密バリアントがクライアントナンスの暗号化に使用されているかどうかに関係なく)、サーバーは生成されたK_TOKENを与えられたトークン(ユーザー)は、ユーザーがK_TOKENを含むトークンと、帯域外で提供される認証情報(一時的なパスワードなど)の両方の所有を同時に証明するまで。たとえば、トークンがワンタイムパスワードトークンである場合、サーバーに「コミット」させるために、ユーザーは、トークンによって生成されたワンタイムパスワードと、帯域外で提供される一時的なPINの両方で認証する必要があります。 "指定されたユーザーの生成されたトークン値に。クライアント上の悪意のあるソフトウェアがプロセスに干渉するリスクを最小限に抑えるために、ユーザーはトークンの初期化に使用したホストとは別のホストからこの操作を実行することが望ましい。

Another threat arises when an attacker is able to trick a user to authenticate to the attacker rather than to the legitimate service before the CT-KIP protocol run. If successful, the attacker will then be able to impersonate the user towards the legitimate service, and subsequently receive a valid CT-KIP trigger. If the public-key variant of CT-KIP is used, this may result in the attacker being able to (after a successful CT-KIP protocol run) impersonate the user. Ordinary precautions must, therefore, be in place to ensure that users authenticate only to legitimate services.

別の脅威は、CT-KIPプロトコルが実行される前に、攻撃者がユーザーをだまして正規のサービスではなく攻撃者に認証させることができる場合に発生します。成功すると、攻撃者は正当なサービスに向かってユーザーを偽装し、続いて有効なCT-KIPトリガーを受け取ることができます。 CT-KIPの公開鍵のバリアントが使用されている場合、これにより、攻撃者は(CT-KIPプロトコルの実行が成功した後)ユーザーを偽装できる可能性があります。したがって、通常の予防策を講じて、ユーザーが正当なサービスに対してのみ認証されるようにする必要があります。

6. Intellectual Property Considerations
6. 知的財産に関する考慮事項

RSA and SecurID are registered trademarks or trademarks of RSA Security Inc. in the United States and/or other countries. The names of other products and services mentioned may be the trademarks of their respective owners.

RSAおよびSecurIDは、米国およびその他の国におけるRSA Security Inc.の登録商標または商標です。言及されている他の製品およびサービスの名前は、それぞれの所有者の商標である可能性があります。

7. References
7. 参考文献
7.1. Normative References
7.1. 引用文献

[1] Davis, M. and M. Duerst, "Unicode Normalization Forms", March 2001, <http://www.unicode.org/unicode/reports/tr15/tr15-21.html>.

[1] Davis、M.およびM. Duerst、「Unicode Normalization Forms」、2001年3月、<http://www.unicode.org/unicode/reports/tr15/tr15-21.html>。

7.2. Informative References
7.2. 参考引用

[2] RSA Laboratories, "PKCS #11 Mechanisms for the Cryptographic Token Key Initialization Protocol", PKCS #11 Version 2.20 Amendment 2, December 2005, <ftp://ftp.rsasecurity.com/pub/ pkcs/pkcs-11/v2-20/pkcs-11v2-20a2.pdf>.

[2] RSA Laboratories、「暗号化トークンキー初期化プロトコルのPKCS#11メカニズム」、PKCS#11バージョン2.20改訂2、2005年12月、<ftp://ftp.rsasecurity.com/pub/ pkcs / pkcs-11 / v2-20 /pkcs-11v2-20a2.pdf>。

[3] RSA Laboratories, "Cryptographic Token Interface Standard", PKCS #11 Version 2.20, June 2004, <ftp://ftp.rsasecurity.com/ pub/pkcs/pkcs-11/v2-20/pkcs-11v2-20.pdf>.

[3] RSA Laboratories、「Cryptographic Token Interface Standard」、PKCS#11バージョン2.20、2004年6月、<ftp://ftp.rsasecurity.com/ pub / pkcs / pkcs-11 / v2-20 / pkcs-11v2-20.pdf> 。

[4] RSA Laboratories, "Frequently Asked Questions About Today's Cryptography. Version 4.1", 2000, <http://www.rsasecurity.com/ rsalabs/faq/files/rsalabs_faq41.pdf>.

[4] RSA Laboratories、「Frequently Asked Questions About Today's Cryptography。Version 4.1」、2000、<http://www.rsasecurity.com/ rsalabs / faq / files / rsalabs_faq41.pdf>。

[5] RSA Laboratories, "Password-Based Cryptography Standard", PKCS #5 Version 2.0, March 1999, <ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-5v2/pkcs5v2-0.pdf>.

[5] RSA Laboratories、「Password-Based Cryptography Standard」、PKCS#5 Version 2.0、1999年3月、<ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-5v2/pkcs5v2-0.pdf>。

[6] RSA Laboratories, "RSA Cryptography Standard", PKCS #1 Version 2.1, June 2002, <ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf>.

[6] RSA Laboratories、「RSA Cryptography Standard」、PKCS#1バージョン2.1、2002年6月、<ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf>。

[7] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

[7] Fielding、R.、Gettys、J.、Mogul、J.、Frystyk、H.、Masinter、L.、Leach、P。、およびT. Berners-Lee、「Hypertext Transfer Protocol-HTTP / 1.1」、RFC 2616 、1999年6月。

[8] National Institute of Standards and Technology, "Specification for the Advanced Encryption Standard (AES)", FIPS 197, November 2001, <http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf>.

[8] National Institute of Standards and Technology、「Specification for the Advanced Encryption Standard(AES)」、FIPS 197、2001年11月、<http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf>。

[9] Krawzcyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, February 1997.

[9] Krawzcyk、H.、Bellare、M。、およびR. Canetti、「HMAC:Keyed-Hashing for Message Authentication」、RFC 2104、1997年2月。

[10] Iwata, T. and K. Kurosawa, "OMAC: One-Key CBC MAC. In Fast Software Encryption, FSE 2003, pages 129 - 153. Springer-Verlag", 2003, <http://crypt.cis.ibaraki.ac.jp/omac/docs/omac.pdf>.

[10] 岩田徹、黒澤克明、「OMAC:One-Key CBC MAC。In Fast Software Encryption、FSE 2003、pages 129-153. Springer-Verlag」、2003、<http://crypt.cis.ibaraki.ac .jp / omac / docs / omac.pdf>。

[11] National Institute of Standards and Technology, "Secure Hash Standard", FIPS 197, February 2004, <http://csrc.nist.gov/ publications/fips/fips180-2/fips180-2withchangenotice.pdf>.

[11] National Institute of Standards and Technology、「Secure Hash Standard」、FIPS 197、2004年2月、<http://csrc.nist.gov/ Publications / fips / fips180-2 / fips180-2withchangenotice.pdf>。

[12] RSA Laboratories, "Cryptographic Token Key Initialization Protocol", OTPS Version 1.0, December 2005, <ftp://ftp.rsasecurity.com/pub/otps/ct-kip/ct-kip-v1-0.pdf>.

[12] RSA Laboratories、「Cryptographic Token Key Initialization Protocol」、OTPSバージョン1.0、2005年12月、<ftp://ftp.rsasecurity.com/pub/otps/ct-kip/ct-kip-v1-0.pdf>。

Appendix A. CT-KIP Schema
付録A. CT-KIPスキーマ
   <xs:schema
     targetNamespace=
     "http://www.rsasecurity.com/rsalabs/otps/schemas/2005/12/ct-kip#"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
     xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
     xmlns=
     "http://www.rsasecurity.com/rsalabs/otps/schemas/2005/12/ct-kip#">
        
   <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
     schemaLocation=
     "http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/
   xmldsig-core-schema.xsd"/>
        
   <!-- Basic types -->
        
   <xs:complexType name="AbstractRequestType" abstract="true">
     <xs:attribute name="Version" type="VersionType" use="required"/>
   </xs:complexType>
        
   <xs:complexType name="AbstractResponseType" abstract="true">
     <xs:attribute name="Version" type="VersionType" use="required"/>
     <xs:attribute name="SessionID" type="IdentifierType"/>
     <xs:attribute name="Status" type="StatusCode" use="required"/>
   </xs:complexType>
        
   <xs:simpleType name="StatusCode">
     <xs:restriction base="xs:string">
       <xs:enumeration value="Continue"/>
       <xs:enumeration value="Success"/>
       <xs:enumeration value="Abort"/>
       <xs:enumeration value="AccessDenied"/>
       <xs:enumeration value="MalformedRequest"/>
       <xs:enumeration value="UnknownRequest"/>
       <xs:enumeration value="UnknownCriticalExtension"/>
       <xs:enumeration value="UnsupportedVersion"/>
       <xs:enumeration value="NoSupportedKeyTypes"/>
       <xs:enumeration value="NoSupportedEncryptionAlgorithms"/>
       <xs:enumeration value="NoSupportedMACAlgorithms"/>
       <xs:enumeration value="InitializationFailed"/>
     </xs:restriction>
   </xs:simpleType>
        
   <xs:simpleType name="VersionType">
     <xs:restriction base="xs:string">
       <xs:pattern value="\d{1,2}\.\d{1,3}"/>
     </xs:restriction>
        
   </xs:simpleType>
        
   <xs:simpleType name="IdentifierType">
     <xs:restriction base="xs:string">
       <xs:maxLength value="128"/>
     </xs:restriction>
   </xs:simpleType>
        
   <xs:simpleType name="NonceType">
     <xs:restriction base="xs:base64Binary">
       <xs:length value="16"/>
     </xs:restriction>
   </xs:simpleType>
        
   <xs:complexType name="LogoType">
     <xs:simpleContent>
       <xs:extension base="xs:base64Binary">
         <xs:attribute name="MimeType" type="MimeTypeType"
         use="required"/>
       </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
        
   <xs:simpleType name="MimeTypeType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="image/jpeg"/>
       <xs:enumeration value="image/gif"/>
     </xs:restriction>
   </xs:simpleType>
        
   <!-- Algorithms are identified through URIs -->
   <xs:complexType name="AlgorithmsType">
     <xs:sequence maxOccurs="unbounded">
       <xs:element name="Algorithm" type="AlgorithmType"/>
     </xs:sequence>
   </xs:complexType>
        
   <xs:simpleType name="AlgorithmType">
     <xs:restriction base="xs:anyURI"/>
   </xs:simpleType>
        
   <xs:complexType name="MacType">
     <xs:simpleContent>
       <xs:extension base="xs:base64Binary">
         <xs:attribute name="MacAlgorithm"
         type="xs:anyURI"/>
       </xs:extension>
     </xs:simpleContent>
        
   </xs:complexType>
        
   <!-- CT-KIP extensions (for future use) -->
   <xs:complexType name="ExtensionsType">
     <xs:sequence maxOccurs="unbounded">
       <xs:element name="Extension" type="AbstractExtensionType"/>
     </xs:sequence>
   </xs:complexType>
        
   <xs:complexType name="AbstractExtensionType" abstract="true">
     <xs:attribute name="Critical" type="xs:boolean"/>
   </xs:complexType>
        
   <xs:complexType name="ClientInfoType">
     <xs:complexContent>
       <xs:extension base="AbstractExtensionType">
         <xs:sequence>
           <xs:element name="Data" type="xs:base64Binary"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
   <xs:complexType name="ServerInfoType">
     <xs:complexContent>
       <xs:extension base="AbstractExtensionType">
         <xs:sequence>
           <xs:element name="Data" type="xs:base64Binary"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
   <xs:complexType name="OTPKeyConfigurationDataType">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         This extension is only valid in ServerFinished PDUs.  It
         carries additional configuration data that an OTP token should
         use (subject to local policy) when generating OTP values from a
         newly generated OTP key.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="AbstractExtensionType">
         <xs:sequence>
           <xs:element name="OTPFormat" type="OTPFormatType"/>
           <xs:element name="OTPLength" type="xs:positiveInteger"/>
           <xs:element name="OTPMode" type="OTPModeType" minOccurs="0"/>
        
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
   <xs:simpleType name="OTPFormatType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="Decimal"/>
       <xs:enumeration value="Hexadecimal"/>
       <xs:enumeration value="Alphanumeric"/>
       <xs:enumeration value="Binary"/>
     </xs:restriction>
   </xs:simpleType>
        
   <xs:complexType name="OTPModeType">
     <xs:choice maxOccurs="unbounded">
       <xs:element name="Time" type="TimeType"/>
       <xs:element name="Counter"/>
       <xs:element name="Challenge"/>
       <xs:any namespace="##other" processContents="strict"/>
     </xs:choice>
   </xs:complexType>
        
   <xs:complexType name="TimeType">
     <xs:complexContent>
       <xs:restriction base="xs:anyType">
         <xs:attribute name="TimeInterval" type="xs:positiveInteger"/>
       </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
        
   <xs:complexType name="PayloadType">
     <xs:annotation>
       <xs:documentation xml:lang="en">
       </xs:documentation>
     </xs:annotation>
     <xs:choice>
       <xs:element name="Nonce" type="NonceType"/>
       <xs:any namespace="##other" processContents="strict"/>
     </xs:choice>
   </xs:complexType>
        
   <xs:simpleType name="PlatformType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="Hardware"/>
       <xs:enumeration value="Software"/>
       <xs:enumeration value="Unspecified"/>
     </xs:restriction>
        
   </xs:simpleType>
        
   <xs:complexType name="TokenPlatformInfoType">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Carries token platform information helping the client to select
         a suitable token.
       </xs:documentation>
     </xs:annotation>
     <xs:attribute name="KeyLocation" type="PlatformType"/>
     <xs:attribute name="AlgorithmLocation" type="PlatformType"/>
   </xs:complexType>
        
   <xs:complexType name="InitializationTriggerType">
     <xs:sequence>
       <xs:element name="TokenID" type="xs:base64Binary" minOccurs="0"/>
       <xs:element name="KeyID" type="xs:base64Binary" minOccurs="0"/>
       <xs:element name="TokenPlatformInfo" type="TokenPlatformInfoType"
         minOccurs="0"/>
       <xs:element name="TriggerNonce" type="NonceType"/>
       <xs:element name="CT-KIPURL" type="xs:anyURI" minOccurs="0"/>
       <xs:any namespace="##other" processContents="strict"
         minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
        
   <!-- CT-KIP PDUs -->
        
   <!-- CT-KIP trigger -->
   <xs:element name="CT-KIPTrigger" type="CT-KIPTriggerType"/>
        
   <xs:complexType name="CT-KIPTriggerType">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Message used to trigger the device to initiate a CT-KIP run.
       </xs:documentation>
     </xs:annotation>
     <xs:sequence>
       <xs:choice>
         <xs:element name="InitializationTrigger"
         type="InitializationTriggerType"/>
         <xs:any namespace="##other" processContents="strict"/>
       </xs:choice>
     </xs:sequence>
     <xs:attribute name="Version" type="VersionType"/>
   </xs:complexType>
        
   <!-- ClientHello PDU -->
        
   <xs:element name="ClientHello" type="ClientHelloPDU"/>
        
   <xs:complexType name="ClientHelloPDU">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Message sent from CT-KIP client to CT-KIP server to initiate an
         CT-KIP session.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="AbstractRequestType">
         <xs:sequence>
           <xs:element name="TokenID" type="xs:base64Binary"
             minOccurs="0"/>
           <xs:element name="KeyID" type="xs:base64Binary"
             minOccurs="0"/>
           <xs:element name="ClientNonce" type="NonceType"
             minOccurs="0"/>
           <xs:element name="TriggerNonce" type="NonceType"
             minOccurs="0"/>
           <xs:element name="SupportedKeyTypes" type="AlgorithmsType"/>
           <xs:element name="SupportedEncryptionAlgorithms"
             type="AlgorithmsType"/>
           <xs:element name="SupportedMACAlgorithms"
             type="AlgorithmsType"/>
           <xs:element name="Extensions" type="ExtensionsType"
             minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
   <!-- ServerHello PDU -->
   <xs:element name="ServerHello" type="ServerHelloPDU"/>
        
   <xs:complexType name="ServerHelloPDU">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Message sent from CT-KIP server to CT-KIP client in response to
         a received ClientHello PDU.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="AbstractResponseType">
         <xs:sequence minOccurs="0">
           <xs:element name="KeyType" type="AlgorithmType"/>
           <xs:element name="EncryptionAlgorithm" type="AlgorithmType"/>
           <xs:element name="MacAlgorithm" type="AlgorithmType"/>
        
           <xs:element name="EncryptionKey" type="ds:KeyInfoType"/>
           <xs:element name="Payload" type="PayloadType"/>
           <xs:element name="Extensions" type="ExtensionsType"
             minOccurs="0"/>
           <xs:element name="Mac" type="MacType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
   <!-- ClientNonce PDU -->
   <xs:element name="ClientNonce" type="ClientNoncePDU"/>
        
   <xs:complexType name="ClientNoncePDU">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Second message sent from CT-KIP client to CT-KIP server to
         convey the client's chosen secret.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="AbstractRequestType">
         <xs:sequence>
           <xs:element name="EncryptedNonce" type="xs:base64Binary"/>
           <xs:element name="Extensions" type="ExtensionsType"
             minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="SessionID" type="IdentifierType"
           use="required"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
   <!-- ServerFinished PDU -->
   <xs:element name="ServerFinished" type="ServerFinishedPDU"/>
   <xs:complexType name="ServerFinishedPDU">
     <xs:annotation>
       <xs:documentation xml:lang="en">
         Final message sent from CT-KIP server to CT-KIP client in an
         CT-KIP session.
       </xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="AbstractResponseType">
         <xs:sequence minOccurs="0">
           <xs:element name="TokenID" type="xs:base64Binary"/>
           <xs:element name="KeyID" type="xs:base64Binary"/>
           <xs:element name="KeyExpiryDate" type="xs:dateTime"
        
             minOccurs="0"/>
           <xs:element name="ServiceID" type="IdentifierType"
             minOccurs="0"/>
           <xs:element name="ServiceLogo" type="LogoType"
             minOccurs="0"/>
           <xs:element name="UserID" type="IdentifierType"
             minOccurs="0"/>
           <xs:element name="Extensions" type="ExtensionsType"
             minOccurs="0"/>
           <xs:element name="Mac" type="MacType"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
        
   </xs:schema>
        
Appendix B. Examples of CT-KIP Messages
付録B. CT-KIPメッセージの例
B.1. Introduction
B.1. はじめに

All examples are syntactically correct. MAC and cipher values are fictitious, however. The examples illustrate a complete CT-KIP exchange, starting with an initialization (trigger) message from the server.

すべての例は構文的に正しいです。ただし、MACおよび暗号の値は架空のものです。この例は、サーバーからの初期化(トリガー)メッセージから始まる完全なCT-KIP交換を示しています。

B.2. Example of a CT-KIP Initialization (Trigger) Message
B.2. CT-KIP初期化(トリガー)メッセージの例
   <CT-KIPTrigger
     xmlns=
     "http://www.rsasecurity.com/rsalabs/otps/schemas/2005/12/ct-kip#"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     Version="1.0">
     <InitializationTrigger>
       <TokenID>12345678</TokenID>
       <TriggerNonce>112dsdfwf312asder394jw==</TriggerNonce>
     </InitializationTrigger>
   </CT-KIPTrigger>
        
B.3. Example of a <ClientHello> Message
B.3. <ClientHello>メッセージの例
   <?xml version="1.0" encoding="UTF-8"?>
   <ClientHello
     xmlns=
     "http://www.rsasecurity.com/rsalabs/otps/schemas/2005/12/ct-kip#"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     Version="1.0">
     <TokenID>12345678</TokenID>
        
    <TriggerNonce>112dsdfwf312asder394jw==</TriggerNonce>
     <SupportedKeyTypes>
       <Algorithm>http://www.rsasecurity.com/rsalabs/otps/schemas
   /2005/09/otps-wst#SecurID-AES</Algorithm>
     </SupportedKeyTypes>
     <SupportedEncryptionAlgorithms>
       <Algorithm>http://www.w3.org/2001/04/xmlenc#rsa-1_5</Algorithm>
       <Algorithm>http://www.rsasecurity.com/rsalabs/otps/schemas/
   2005/12/ct-kip#ct-kip-prf-aes</Algorithm>
     </SupportedEncryptionAlgorithms>
     <SupportedMACAlgorithms>
       <Algorithm>http://www.rsasecurity.com/rsalabs/otps/schemas/
   2005/12/ct-kip#ct-kip-prf-aes</Algorithm>
     </SupportedMACAlgorithms>
   </ClientHello>
        
B.4. Example of a <ServerHello> Message
B.4. <ServerHello>メッセージの例
   <?xml version="1.0" encoding="UTF-8"?>
   <ServerHello
     xmlns=
   "http://www.rsasecurity.com/rsalabs/otps/schemas/2005/12/ct-kip#"
     xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     Version="1.0" SessionID="4114" Status="Success">
     <KeyType>http://www.rsasecurity.com/rsalabs/otps/schemas/2005/09/
   otps-wst#SecurID-AES</KeyType>
     <EncryptionAlgorithm>http://www.rsasecurity.com/rsalabs/otps/
   schemas/2005/12/ct-kip#ct-kip-prf-aes</EncryptionAlgorithm>
     <MacAlgorithm>http://www.rsasecurity.com/rsalabs/otps/schemas/
   2005/12/ct-kip#ct-kip-prf-aes</MacAlgorithm>
     <EncryptionKey>
       <ds:KeyName>KEY-1</ds:KeyName>
     </EncryptionKey>
     <Payload>
       <Nonce>qw2ewasde312asder394jw==</Nonce>
     </Payload>
   </ServerHello>
        
B.5. Example of a <ClientNonce> Message
B.5. <ClientNonce>メッセージの例
   <?xml version="1.0" encoding="UTF-8"?>
   <ClientNonce
     xmlns="http://www.rsasecurity.com/rsalabs/otps/schemas/
   2005/12/ct-kip#"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     Version="1.0" SessionID="4114">
     <EncryptedNonce>vXENc+Um/9/NvmYKiHDLaErK0gk=</EncryptedNonce>
        
   </ClientNonce>
        
B.6. Example of a <ServerFinished> Message
B.6. <ServerFinished>メッセージの例
   <?xml version="1.0" encoding="UTF-8"?>
   <ServerFinished
     xmlns="http://www.rsasecurity.com/rsalabs/otps/schemas/
   2005/12/ct-kip#"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     Version="1.0" SessionID="4114" Status="Success">
     <TokenID>12345678</TokenID>
     <KeyExpiryDate>2009-09-16T03:02:00Z</KeyExpiryDate>
     <KeyID>43212093</KeyID>
     <ServiceID>Example Enterprise Name</ServiceID>
     <UserID>exampleLoginName</UserID>
     <Extensions>
       <Extension xsi:type="OTPKeyConfigurationDataType">
         <OTPFormat>Decimal</OTPFormat>
         <OTPLength>6</OTPLength>
         <OTPMode><Time/></OTPMode>
       </Extension>
     </Extensions>
     <Mac>miidfasde312asder394jw==</Mac>
   </ServerFinished>
        

Appendix C. Integration with PKCS #11

付録C. PKCS#11との統合

A CT-KIP client that needs to communicate with a connected cryptographic token to perform a CT-KIP exchange may use PKCS #11 [3] as a programming interface. When performing CT-KIP with a cryptographic token using the PKCS #11 programming interface, the procedure described in [2], Appendix B, is recommended.

CT-KIP交換を実行するために接続された暗号トークンと通信する必要があるCT-KIPクライアントは、プログラミングインターフェイスとしてPKCS#11 [3]を使用できます。 PKCS#11プログラミングインターフェイスを使用して暗号化トークンでCT-KIPを実行する場合は、[2]の付録Bで説明されている手順をお勧めします。

Appendix D. Example CT-KIP-PRF Realizations
付録D. CT-KIP-PRFの実現例
D.1. Introduction
D.1. はじめに

This example appendix defines CT-KIP-PRF in terms of AES [8] and HMAC [9].

この付録の例では、AES [8]およびHMAC [9]に関してCT-KIP-PRFを定義しています。

D.2. CT-KIP-PRF-AES
D.2. CT-KIP-PRF-AES
D.2.1. Identification
D.2.1. 識別

For tokens supporting this realization of CT-KIP-PRF, the following URI may be used to identify this algorithm in CT-KIP:

このCT-KIP-PRFの実現をサポートするトークンの場合、次のURIを使用してCT-KIPでこのアルゴリズムを識別できます。

   http://www.rsasecurity.com/rsalabs/otps/schemas/2005/12/
        

ct-kip#ct-kip-prf-aes

ct-chicken#ct-chicken-prf-aes

When this URI is used to identify the encryption algorithm to use, the method for encryption of R_C values described in Section 3.6 shall be used.

このURIを使用して、使用する暗号化アルゴリズムを識別する場合、セクション3.6で説明されているR_C値の暗号化の方法を使用する必要があります。

D.2.2. Definition
D.2.2. 定義

CT-KIP-PRF-AES (k, s, dsLen)

CT-KIP-PRF-AES(k、s、dsLen)

Input:

入力:

k encryption key to use

k使用する暗号化キー

s octet string consisting of randomizing material. The length of the string s is sLen.

ランダム化素材で構成されるオクテット文字列。文字列sの長さはsLenです。

dsLen desired length of the output

dsLen希望する出力の長さ

Output:

出力:

DS a pseudorandom string, dsLen-octets long

DS疑似ランダム文字列、dsLen-octets long

Steps:

手順:

1. Let bLen be the output block size of AES in octets:

1. bLenをオクテット単位のAESの出力ブロックサイズとします。

       bLen = (AES output block length in octets)
        

(normally, bLen = 16)

(通常、bLen = 16)

2. If dsLen > (2**32 - 1) * bLen, output "derived data too long" and stop

2. dsLen>(2 ** 32-1)* bLenの場合、「派生データが長すぎます」と出力して停止します

3. Let n be the number of bLen-octet blocks in the output data, rounding up, and let j be the number of octets in the last block:

3. nを出力データのbLenオクテットブロックの数に切り上げ、jを最後のブロックのオクテットの数とします。

       n = ROUND( dsLen / bLen )
        
       j = dsLen - (n - 1) * bLen
        

4. For each block of the pseudorandom string DS, apply the function F defined below to the key k, the string s and the block index to compute the block:

4. 疑似ランダム文字列DSの各ブロックについて、以下で定義する関数Fをキーk、文字列s、およびブロックインデックスに適用して、ブロックを計算します。

B1 = F (k, s, 1) ,

B1 = F(k、s、1)、

B2 = F (k, s, 2) ,

B2 = F(k、s、2)、

...

。。。

Bn = F (k, s, n)

Bn = F(k、s、n)

The function F is defined in terms of the OMAC1 construction from [10], using AES as the block cipher:

関数Fは、ブロック暗号としてAESを使用して、[10]からのOMAC1構築に関して定義されます。

F (k, s, i) = OMAC1-AES (k, INT (i) || s)

F(k、s、i)= OMAC1-AES(k、INT(i)|| s)

where INT (i) is a four-octet encoding of the integer i, most significant octet first, and the output length of OMAC1 is set to bLen.

ここで、INT(i)は整数iの4オクテットエンコーディングで、最上位オクテットが最初で、OMAC1の出力長はbLenに設定されています。

Concatenate the blocks and extract the first dsLen octets to produce the desired data string DS:

ブロックを連結し、最初のdsLenオクテットを抽出して、目的のデータ文字列DSを生成します。

   DS = B1 || B2 || ... || Bn<0..j-1>
        

Output the derived data DS.

派生データDSを出力します。

D.2.3. Example
D.2.3. 例

If we assume that dsLen = 16, then:

dsLen = 16とすると、次のようになります。

   n = 16 / 16 = 1
        
   j = 16 - (1 - 1) * 16 = 16
        
   DS = B1 = F (k, s, 1) = OMAC1-AES (k, INT (1) || S)
        
D.3. CT-KIP-PRF-SHA256
D.3. CT-KIP-PRF-SHA256
D.3.1. Identification
D.3.1. 識別

For tokens supporting this realization of CT-KIP-PRF, the following URI may be used to identify this algorithm in CT-KIP:

このCT-KIP-PRFの実現をサポートするトークンの場合、次のURIを使用してCT-KIPでこのアルゴリズムを識別できます。

   http://www.rsasecurity.com/rsalabs/otps/schemas/2005/12/
   ct-kip#ct-kip-prf-sha256
        

When this URI is used to identify the encryption algorithm to use, the method for encryption of R_C values described in Section 3.6 shall be used.

このURIを使用して、使用する暗号化アルゴリズムを識別する場合、セクション3.6で説明されているR_C値の暗号化の方法を使用する必要があります。

D.3.2. Definition
D.3.2. 定義

CT-KIP-PRF-SHA256 (k, s, dsLen)

CT-KIP-PRF-SHA256(k、s、dslen)

Input:

入力:

k encryption key to use

k使用する暗号化キー

s octet string consisting of randomizing material. The length of the string s is sLen

ランダム化素材で構成されるオクテット文字列。文字列sの長さはsLenです。

dsLen desired length of the output

dsLen希望する出力の長さ

Output:

出力:

DS a pseudorandom string, dsLen-octets long

DS疑似ランダム文字列、dsLen-octets long

Steps:

手順:

1. Let bLen be the output size in octets of SHA-256 [11] (no truncation is done on the HMAC output):

1. bLenをSHA-256 [11]のオクテット単位の出力サイズとします(HMAC出力では切り捨ては行われません)。

       bLen = 32
        

2. If dsLen > (2**32 - 1) bLen, output "derived data too long" and stop

2. dsLen>(2 ** 32-1)bLenの場合、「派生データが長すぎる」と出力して停止

3. Let n be the number of bLen-octet blocks in the output data, rounding up, and let j be the number of octets in the last block:

3. nを出力データのbLenオクテットブロックの数に切り上げ、jを最後のブロックのオクテットの数とします。

n = ROUND ( dsLen / bLen )

n = ROUND(dslen / blen)

       j = dsLen - (n - 1) * bLen
        

4. For each block of the pseudorandom string DS, apply the function F defined below to the key k, the string s and the block index to compute the block:

4. 疑似ランダム文字列DSの各ブロックについて、以下で定義する関数Fをキーk、文字列s、およびブロックインデックスに適用して、ブロックを計算します。

B1 = F (k, s, 1) ,

B1 = F(k、s、1)、

B2 = F (k, s, 2) ,

B2 = F(k、s、2)、

...

。。。

Bn = F (k, s, n)

Bn = F(k、s、n)

The function F is defined in terms of the HMAC construction from [9], using SHA-256 as the digest algorithm:

関数Fは、ダイジェストアルゴリズムとしてSHA-256を使用して、[9]からのHMAC構築に関して定義されます。

F (k, s, i) = HMAC-SHA256 (k, INT (i) || s)

F(k、s、i)= HMAC-SHA256(k、INT(i)|| s)

where INT (i) is a four-octet encoding of the integer i, most significant octet first, and the output length of HMAC is set to bLen.

ここで、INT(i)は整数iの4オクテットエンコーディングで、最も重要なオクテットが最初で、HMACの出力長はbLenに設定されています。

Concatenate the blocks and extract the first dsLen octets to produce the desired data string DS:

ブロックを連結し、最初のdsLenオクテットを抽出して、目的のデータ文字列DSを生成します。

   DS = B1 || B2 || ... || Bn<0..j-1>
        

Output the derived data DS.

派生データDSを出力します。

D.3.3. Example
D.3.3. 例

If we assume that sLen = 256 (two 128-octet long values) and dsLen = 16, then:

sLen = 256(2つの128オクテットlong値)およびdsLen = 16と仮定すると、次のようになります。

   n = ROUND ( 16 / 32 ) = 1
        
   j = 16 - (1 - 1) * 32 = 16
        

B1 = F (k, s, 1) = HMAC-SHA256 (k, INT (1) || s )

B1 = F(k、s、1)= HMAC-SHA256(k、INT(1)|| s)

   DS = B1<0 ... 15>
        

That is, the result will be the first 16 octets of the HMAC output.

つまり、結果はHMAC出力の最初の16オクテットになります。

Appendix E. About OTPS
付録E. OTPSについて

The One-Time Password Specifications are documents produced by RSA Laboratories in cooperation with secure systems developers for the purpose of simplifying integration and management of strong authentication technology into secure applications, and to enhance the user experience of this technology.

ワンタイムパスワードの仕様は、強力な認証テクノロジーのセキュアアプリケーションへの統合と管理を簡素化し、このテクノロジーのユーザーエクスペリエンスを向上させる目的で、RSA Laboratoriesがセキュアシステム開発者と協力して作成したドキュメントです。

Further development of the OTPS series will occur through mailing list discussions and occasional workshops, and suggestions for improvement are welcome. As for our PKCS documents, results may also be submitted to standards forums. For more information, contact:

OTPSシリーズのさらなる発展は、メーリングリストのディスカッションや不定期のワークショップを通じて行われ、改善のための提案が歓迎されます。 PKCSドキュメントについては、結果が標準フォーラムに送信される場合もあります。詳細については、以下にお問い合わせください。

OTPS Editor RSA Laboratories 174 Middlesex Turnpike Bedford, MA 01730 USA otps-editor@rsasecurity.com http://www.rsasecurity.com/rsalabs/

OTPS Editor RSA Laboratories 174 Middlesex Turnpike Bedford、MA 01730 USA otps-editor@rsasecurity.com http://www.rsasecurity.com/rsalabs/

Author's Address

著者のアドレス

Magnus Nystroem RSA Security

Magnus Nystroem RSAセキュリティ

   EMail: magnus@rsasecurity.com
        

Full Copyright Statement

完全な著作権表示

Copyright (C) The IETF Trust (2006).

Copyright(C)IETF Trust(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, THE IETF TRUST, 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.

このドキュメントとここに含まれる情報は「現状のまま」で提供され、寄稿者、彼/彼女の代理人または組織は(もしあれば)、インターネット社会、IETFトラスト、およびインターネットエンジニアリングタスクフォースの免責事項明示または黙示を問わず、ここに記載されている情報の使用が商品性または特定の目的への適合性に関するいかなる権利または黙示の保証を侵害するものではないことを含むすべての保証。

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.

IETF事務局に対して行われたIPR開示のコピー、および利用可能になるライセンスの保証、または一般ライセンスを取得しようとした試み、またはこの仕様の実装者またはユーザーがそのような所有権を使用するための許可を取得した結果を取得できます。 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は、この規格の実装に必要となる可能性のある技術をカバーする可能性のある著作権、特許、特許出願、またはその他の所有権に注意を向けるよう、利害関係者に呼びかけます。 IEETのietf-ipr@ietf.orgに情報を送信してください。

Acknowledgement

謝辞

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC Editor機能への資金提供は、現在Internet Societyから提供されています。