[要約] RFC 5958は、非対称鍵パッケージの構文を定義し、秘密鍵情報およびオプションとしての公開鍵の構造を規定します。RFC 5208 (PKCS #8) を更新・廃止し、より柔軟な鍵情報の表現と公開鍵の同梱を可能にする拡張を導入しています。CMS (RFC 5652) などの他のプロトコルと組み合わせて、安全な鍵の転送や保存、管理を行うための基盤となります。

Internet Engineering Task Force (IETF)                         S. Turner
Request for Comments: 5958                                          IECA
Obsoletes: 5208                                              August 2010
Category: Standards Track
ISSN: 2070-1721
        

Asymmetric Key Packages

非対称鍵パッケージ

Abstract

概要

This document defines the syntax for private-key information and a content type for it. Private-key information includes a private key for a specified public-key algorithm and a set of attributes. The Cryptographic Message Syntax (CMS), as defined in RFC 5652, can be used to digitally sign, digest, authenticate, or encrypt the asymmetric key format content type. This document obsoletes RFC 5208.

このドキュメントでは、秘密鍵情報の構文とそのコンテンツタイプを定義します。秘密鍵情報には、指定された公開鍵アルゴリズムの秘密鍵と一連の属性が含まれます。RFC 5652で定義されている暗号化メッセージ構文(CMS)を使用して、非対称鍵形式のコンテンツタイプをデジタル署名、ダイジェスト、認証、または暗号化することができます。このドキュメントはRFC 5208を廃止します。

Status of This Memo

この文書の位置付け

This is an Internet Standards Track document.

これはインターネット標準トラックドキュメントです。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

このドキュメントはインターネットエンジニアリングタスクフォース(IETF)の成果物であり、IETFコミュニティの合意を表すものです。公開レビューを経て、インターネットエンジニアリングステアリンググループ(IESG)により公開が承認されました。インターネット標準に関する詳細情報は、RFC 5741のセクション2で入手できます。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc5958.

このドキュメントの現在のステータス、正誤表、およびフィードバックの提供方法に関する情報は、http://www.rfc-editor.org/info/rfc5958 で取得できます。

Copyright Notice

著作権表示

Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.

Copyright(c)2010 IETF Trustおよび文書著者として特定された人。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

このドキュメントは、BCP 78およびIETFドキュメント(http://trustee.ietf.org/license-info)に関連するIETF Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明しているので、これらの文書を注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、Trust Legal Provisionsのセクション4.eで説明されているSimplified BSD Licenseのテキストを含める必要があり、Simplified BSD Licenseで説明されているように保証なしで提供されます。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

このドキュメントには、2008年11月10日より前に発行または公開されたIETFドキュメントまたはIETF寄稿からの素材が含まれている場合があります。これらの素材の一部の著作権を管理する人物が、IETF標準プロセス外での当該素材の変更を許可する権利をIETFトラストに付与していない可能性があります。そのような素材の著作権を管理する人物から適切なライセンスを取得しない限り、このドキュメントはIETF標準プロセス外で変更することはできず、RFCとして公開するためのフォーマット変更または英語以外の言語への翻訳を除き、IETF標準プロセス外で派生著作物を作成することはできません。

1. Introduction
1. はじめに

This document defines the syntax for private-key information and a Cryptographic Message Syntax (CMS) [RFC5652] content type for it. Private-key information includes a private key for a specified public-key algorithm and a set of attributes. The CMS can be used to digitally sign, digest, authenticate, or encrypt the asymmetric key format content type. This document obsoletes PKCS #8 v1.2 [RFC5208].

このドキュメントでは、秘密鍵情報の構文と、それに対応する暗号メッセージ構文(CMS)[RFC5652]のコンテンツタイプを定義します。秘密鍵情報には、指定された公開鍵アルゴリズム用の秘密鍵と、一連の属性が含まれます。CMSは、非対称鍵形式のコンテンツタイプをデジタル署名、ダイジェスト、認証、または暗号化するために使用できます。このドキュメントはPKCS #8 v1.2 [RFC5208]を廃止します。

1.1. Requirements Terminology
1.1. 要件用語

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

このドキュメントのキーワード「MUST」(必須)、「MUST NOT」(してはならない)、「REQUIRED」(必須)、「SHALL」(しなければならない)、「SHALL NOT」(してはならない)、「SHOULD」(推奨される)、「SHOULD NOT」(推奨されない)、「RECOMMENDED」(推奨される)、「MAY」(してもよい)、および「OPTIONAL」(任意)は、[RFC2119]で説明されているように解釈されるものとします。

1.2. ASN.1 Syntax Notation
1.2. ASN.1構文表記

The key package is defined using ASN.1 [X.680], [X.681], [X.682], and [X.683].

キーパッケージは、ASN.1 [X.680]、[X.681]、[X.682]、および[X.683]を使用して定義されています。

1.3. Summary of Updates to RFC 5208
1.3. RFC 5208への更新の概要

The following summarizes the updates to [RFC5208]:

以下は、[RFC5208]に対する更新の概要です。

- Changed the name "PrivateKeyInfo" to "OneAsymmetricKey". This reflects the addition of the publicKey field to allow both parts of the asymmetric key to be conveyed separately. Not all algorithms will use both fields; however, the publicKey field was added for completeness.

- 名前を「PrivateKeyInfo」から「OneAsymmetricKey」に変更しました。これは、非対称鍵の両方の部分を個別に伝えられるように、publicKeyフィールドが追加されたことを反映しています。すべてのアルゴリズムが両方のフィールドを使用するわけではありませんが、完全性のためにpublicKeyフィールドが追加されました。

- Defined Asymmetric Key Package CMS content type.

- Asymmetric Key Package CMSコンテンツタイプを定義しました。

- Removed redundant IMPLICIT from attributes.

- 属性から冗長なIMPLICITを削除しました。

- Added publicKey to OneAsymmetricKey and updated the version number.

- OneAsymmetricKeyにpublicKeyを追加し、バージョン番号を更新しました。

- Added that PKCS #9 attributes may be supported.

- PKCS #9属性がサポートされる可能性があることを追加しました。

- Added discussion of compatibility with other private-key formats.

- 他の秘密鍵フォーマットとの互換性についての議論を追加しました。

- Added requirements for encoding rule set.

- エンコードルールセットの要件を追加しました。

- Changed imports from PKCS #5 to [RFC5912] and [RFC5911].

- インポート元をPKCS #5から[RFC5912]および[RFC5911]に変更しました。

- Replaced ALGORITHM-IDENTIFIER with ALGORITHM from [RFC5912].

- [RFC5912]のALGORITHM識別子をALGORITHMに置き換えました。

- Registers application/pkcs8 media type and .p8 file extension.

- application/pkcs8メディアタイプと.p8ファイル拡張子を登録します。

2. Asymmetric Key Package CMS Content Type
2. 非対称鍵パッケージCMSコンテンツタイプ

The asymmetric key package CMS content type is used to transfer one or more plaintext asymmetric keys from one party to another. An asymmetric key package MAY be encapsulated in one or more CMS protecting content types (see Section 4). Earlier versions of this specification [RFC5208] did not specify a particular encoding rule set, but generators SHOULD use DER [X.690] and receivers MUST support BER [X.690], which also includes DER [X.690].

非対称鍵パッケージCMSコンテンツタイプは、1つ以上のプレーンテキストの非対称鍵をある当事者から別の当事者へ転送するために使用されます。非対称鍵パッケージは、1つ以上のCMS保護コンテンツタイプ(セクション4を参照)でカプセル化される場合があります(MAY)。この仕様の以前のバージョン[RFC5208]では、特定のエンコード規則セットを指定していませんでしたが、ジェネレーターはDER [X.690]を使用すべきであり(SHOULD)、受信者はDER [X.690]も包含するBER [X.690]をサポートしなければなりません(MUST)。

The asymmetric key package content type has the following syntax:

非対称鍵パッケージコンテンツタイプの構文は以下の通りです。

     ct-asymmetric-key-package CONTENT-TYPE ::=
       { AsymmetricKeyPackage IDENTIFIED BY id-ct-KP-aKeyPackage }
        
     id-ct-KP-aKeyPackage OBJECT IDENTIFIER ::=
       { joint-iso-itu-t(2) country(16) us(840) organization(1)
         gov(101) dod(2) infosec(1) formats(2)
         key-package-content-types(78) 5
       }
        
     AsymmetricKeyPackage ::= SEQUENCE SIZE (1..MAX) OF OneAsymmetricKey
        
     OneAsymmetricKey ::= SEQUENCE {
       version                   Version,
       privateKeyAlgorithm       PrivateKeyAlgorithmIdentifier,
       privateKey                PrivateKey,
       attributes            [0] Attributes OPTIONAL,
       ...,
       [[2: publicKey        [1] PublicKey OPTIONAL ]],
       ...
     }
          PrivateKeyInfo ::= OneAsymmetricKey
        
     -- PrivateKeyInfo is used by [P12].  If any items tagged as version
     -- 2 are used, the version must be v2, else the version should be
     -- v1.  When v1, PrivateKeyInfo is the same as it was in [RFC5208].
        
     Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
        
     PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
                                        { PUBLIC-KEY,
                                          { PrivateKeyAlgorithms } }
        
     PrivateKey ::= OCTET STRING
                        -- Content varies based on type of key.  The
                        -- algorithm identifier dictates the format of
                        -- the key.
        
     PublicKey ::= BIT STRING
                        -- Content varies based on type of key.  The
                        -- algorithm identifier dictates the format of
                        -- the key.
        
     Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }
        

The AsymmetricKeyPackage contains one or more OneAsymmetricKey elements.

AsymmetricKeyPackageには、1つ以上のOneAsymmetricKey要素が含まれています。

The syntax of OneAsymmetricKey accommodates a version number, an indication of the asymmetric algorithm to be used with the private key, a private key, optional keying material attributes (e.g., userCertificate from [X.520]), and an optional public key. In general, either the public key or the certificate will be present. In very rare cases will both the public key and the certificate be present as this includes two copies of the public key. OneAsymmetricKey renames the PrivateKeyInfo syntax defined in [RFC5208]. The new name better reflects the ability to carry both private- and public-key components. Backwards compatibility with the original PrivateKeyInfo is preserved via version number. The fields in OneAsymmetricKey are used as follows:

OneAsymmetricKeyの構文には、バージョン番号、秘密鍵で使用される非対称アルゴリズムの指示、秘密鍵、オプションのキー生成素材属性([X.520]のuserCertificateなど)、およびオプションの公開鍵が含まれます。一般に、公開鍵または証明書のいずれかが存在します。公開鍵と証明書の両方が存在することは非常に稀ですが、その場合は公開鍵の2つのコピーが含まれることになります。OneAsymmetricKeyは、[RFC5208]で定義されたPrivateKeyInfo構文の名前を変更したものです。新しい名前は、秘密鍵と公開鍵の両方のコンポーネントを保持できる能力をより適切に反映しています。元のPrivateKeyInfoとの後方互換性は、バージョン番号を介して維持されます。OneAsymmetricKeyのフィールドは次のように使用されます。

- version identifies the version of OneAsymmetricKey. If publicKey is present, then version is set to v2 else version is set to v1.

- versionはOneAsymmetricKeyのバージョンを識別します。publicKeyが存在する場合、versionはv2に設定され、そうでない場合はv1に設定されます。

- privateKeyAlgorithm identifies the private-key algorithm and optionally contains parameters associated with the asymmetric key pair. The algorithm is identified by an object identifier (OID) and the format of the parameters depends on the OID, but the PrivateKeyAlgorithms information object set restricts the permissible OIDs. The value placed in privateKeyAlgorithmIdentifier is the value an originator would apply to indicate which algorithm is to be used with the private key.

- privateKeyAlgorithmは秘密鍵アルゴリズムを識別し、オプションで非対称鍵ペアに関連付けられたパラメータを含みます。アルゴリズムはオブジェクト識別子(OID)によって識別され、パラメータの形式はOIDに依存しますが、PrivateKeyAlgorithms情報オブジェクトセットによって許可されるOIDが制限されます。privateKeyAlgorithmIdentifierに設定される値は、作成者が秘密鍵で使用されるアルゴリズムを示すために適用する値です。

- privateKey is an OCTET STRING that contains the value of the private key. The interpretation of the content is defined in the registration of the private-key algorithm. For example, a DSA key is an INTEGER, an RSA key is represented as RSAPrivateKey as defined in [RFC3447], and an Elliptic Curve Cryptography (ECC) key is represented as ECPrivateKey as defined in [RFC5915].

- privateKeyは、秘密鍵の値を含むOCTET STRINGです。内容の解釈は、秘密鍵アルゴリズムの登録時に定義されます。例えば、DSA鍵はINTEGERであり、RSA鍵は[RFC3447]で定義されているRSAPrivateKeyとして表され、楕円曲線暗号(ECC)鍵は[RFC5915]で定義されているECPrivateKeyとして表されます。

- attributes is OPTIONAL. It contains information corresponding to the public key (e.g., certificates). The attributes field uses the class ATTRIBUTE which is restricted by the OneAsymmetricKeyAttributes information object set. OneAsymmetricKeyAttributes is an open ended set in this document. Others documents can constrain these values. Attributes from [RFC2985] MAY be supported.

- attributesはオプションです。公開鍵に対応する情報(証明書など)が含まれます。attributesフィールドは、OneAsymmetricKeyAttributes情報オブジェクトセットによって制限されるATTRIBUTEクラスを使用します。OneAsymmetricKeyAttributesはこのドキュメントではオープンエンドなセットです。他のドキュメントでこれらの値を制限することができます。[RFC2985]の属性がサポートされる場合があります(MAY)。

- publicKey is OPTIONAL. When present, it contains the public key encoded in a BIT STRING. The structure within the BIT STRING, if any, depends on the privateKeyAlgorithm. For example, a DSA key is an INTEGER. Note that RSA public keys are included in RSAPrivateKey (i.e., n and e are present), as per [RFC3447], and ECC public keys are included in ECPrivateKey (i.e., in the publicKey field), as per [RFC5915].

- publicKeyはオプションです。存在する場合、BIT STRINGでエンコードされた公開鍵が含まれます。BIT STRING内の構造(存在する場合)は、privateKeyAlgorithmに依存します。例えば、DSA鍵はINTEGERです。RSA公開鍵は[RFC3447]に従ってRSAPrivateKeyに含まれ(すなわち、nとeが存在する)、ECC公開鍵は[RFC5915]に従ってECPrivateKeyに含まれる(すなわち、publicKeyフィールド内)ことに注意してください。

3. Encrypted Private Key Info
3. 暗号化された秘密鍵情報

This section gives the syntax for encrypted private-key information, which is used by [P12].

このセクションでは、[P12]で使用される暗号化された秘密鍵情報の構文を示します。

Encrypted private-key information shall have ASN.1 type EncryptedPrivateKeyInfo:

暗号化された秘密鍵情報は、ASN.1型のEncryptedPrivateKeyInfoを持ちます。

     EncryptedPrivateKeyInfo ::= SEQUENCE {
       encryptionAlgorithm  EncryptionAlgorithmIdentifier,
       encryptedData        EncryptedData }
        
     EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
                                        { CONTENT-ENCRYPTION,
                                          { KeyEncryptionAlgorithms } }
        
     EncryptedData ::= OCTET STRING
        

The fields in EncryptedPrivateKeyInfo are used as follows:

EncryptedPrivateKeyInfoのフィールドは次のように使用されます。

- encryptionAlgorithm identifies the algorithm under which the private-key information is encrypted.

- encryptionAlgorithmは、秘密鍵情報を暗号化するアルゴリズムを識別します。

- encryptedData is the result of encrypting the private-key information (i.e., the PrivateKeyInfo).

- encryptedDataは、秘密鍵情報(すなわち、PrivateKeyInfo)を暗号化した結果です。

The encryption process involves the following two steps:

暗号化プロセスには次の2つのステップが含まれます。

1. The private-key information is encoded, yielding an octet string. Generators SHOULD use DER [X.690] and receivers MUST support BER [X.690], which also includes DER [X.690].

1. 秘密鍵情報がエンコードされ、オクテット文字列が生成されます。ジェネレーターはDER [X.690]を使用すべきであり(SHOULD)、受信者はDER [X.690]も包含するBER [X.690]をサポートしなければなりません(MUST)。

2. The result of step 1 is encrypted with the secret key to give an octet string, the result of the encryption process.

2. ステップ1の結果を秘密鍵で暗号化し、暗号化プロセスの結果であるオクテット文字列を生成します。

4. Protecting the AsymmetricKeyPackage
4. 非対称鍵パッケージの保護

CMS protecting content types, [RFC5652] and [RFC5083], can be used to provide security to the AsymmetricKeyPackage:

コンテンツタイプを保護するCMS [RFC5652]および[RFC5083]を使用して、AsymmetricKeyPackageにセキュリティを提供できます。

- SignedData can be used to apply a digital signature to the AsymmetricKeyPackage.

- SignedDataを使用して、AsymmetricKeyPackageにデジタル署名を適用できます。

- EncryptedData can be used to encrypt the AsymmetricKeyPackage with symmetric encryption, where the sender and the receiver already share the necessary encryption key.

- EncryptedDataを使用して、送信者と受信者が既に対象の暗号化鍵を共有している場合に、対称暗号化でAsymmetricKeyPackageを暗号化できます。

- EnvelopedData can be used to encrypt the AsymmetricKeyPackage with symmetric encryption, where the sender and the receiver do not share the necessary encryption key.

- EnvelopedDataを使用して、送信者と受信者が暗号化鍵を共有していない場合に、AsymmetricKeyPackageを暗号化できます。

- AuthenticatedData can be used to protect the AsymmetricKeyPackage with message authentication codes, where key management information is handled in a manner similar to EnvelopedData.

- AuthenticatedDataを使用して、メッセージ認証コードでAsymmetricKeyPackageを保護できます。ここで、鍵管理情報はEnvelopedDataと同様の方法で処理されます。

- AuthEnvelopedData can be used to protect the AsymmetricKeyPackage with algorithms that support authenticated encryption, where key management information is handled in a manner similar to EnvelopedData.

- AuthEnvelopedDataを使用して、認証付き暗号をサポートするアルゴリズムでAsymmetricKeyPackageを保護できます。ここで、鍵管理情報はEnvelopedDataと同様の方法で処理されます。

5. Other Private-Key Format Considerations
5. その他の秘密鍵形式に関する考慮事項

This document defines the syntax and the semantics for a content type that exchanges asymmetric private keys. There are two other formats that have been used for the transport of asymmetric private keys:

このドキュメントでは、非対称秘密鍵を交換するコンテンツタイプの構文とセマンティクスを定義します。非対称秘密鍵の転送に使用されてきた他の2つの形式があります。

- Personal Information Exchange (PFX) Syntax Standard [P12], which is more commonly referred to as PKCS #12 or simply P12, is a transfer syntax for personal identity information, including private keys, certificates, miscellaneous secrets, and extensions. OneAsymmetricKey, PrivateKeyInfo, and EncryptedPrivateKeyInfo can be carried in a P12 message. The private key information, OneAsymmetricKey and PrivateKeyInfo, are carried in the P12 keyBag BAG-TYPE. EncryptedPrivateKeyInfo is carried in the P12 pkcs8ShroudedKeyBag BAG-TYPE. In current implementations, the file extensions .pfx and .p12 can be used interchangeably.

- Personal Information Exchange (PFX) Syntax Standard [P12](一般にPKCS #12または単にP12と呼ばれます)は、秘密鍵、証明書、その他の秘密、拡張機能を含む個人識別情報の転送構文です。OneAsymmetricKey、PrivateKeyInfo、およびEncryptedPrivateKeyInfoはP12メッセージで運ぶことができます。秘密鍵情報であるOneAsymmetricKeyおよびPrivateKeyInfoは、P12のkeyBag BAG-TYPEで運ばれます。EncryptedPrivateKeyInfoは、P12のpkcs8ShroudedKeyBag BAG-TYPEで運ばれます。現在の実装では、ファイル拡張子 .pfx と .p12 は交換可能に使用できます。

- Microsoft's private-key proprietary transfer syntax. The .pvk file extension is used for local storage.

- Microsoft独自の秘密鍵転送構文。ローカルストレージには .pvk ファイル拡張子が使用されます。

The .pvk and .p12/.pfx formats are not interchangeable; however, conversion tools exist to convert from one format to another.

.pvk 形式と .p12/.pfx 形式には互換性がありませんが、一方の形式からもう一方の形式へ変換するためのツールが存在します。

To extract the private-key information from the AsymmetricKeyPackage, the encapsulating layers need to be removed. At a minimum, the outer ContentInfo [RFC5652] layer needs to be removed. If the AsymmetricKeyPackage is encapsulated in a SignedData [RFC5652], then the SignedData and EncapsulatedContentInfo layers [RFC5652] also need to be removed. The same is true for EnvelopedData, EncryptedData, and AuthenticatedData all from [RFC5652] as well as AuthEnvelopedData from [RFC5083]. Once all the outer layers are removed, there are as many sets of private-key information as there are OneAsymmetricKey structures. OneAsymmetricKey and PrivateKeyInfo are the same structure; therefore, either can be saved as a .p8 file or copied in to the P12 KeyBag BAG-TYPE. Removing encapsulating security layers will invalidate any signature and may expose the key to unauthorized disclosure.

AsymmetricKeyPackageから秘密鍵情報を抽出するには、カプセル化レイヤーを削除する必要があります。最小限、外側のContentInfo [RFC5652]レイヤーを削除する必要があります。AsymmetricKeyPackageがSignedData [RFC5652]でカプセル化されている場合は、SignedDataレイヤーとEncapsulatedContentInfoレイヤー [RFC5652]も削除する必要があります。EnvelopedData、EncryptedData、AuthenticatedData(すべて[RFC5652])、およびAuthEnvelopedData([RFC5083])についても同様です。すべての外層が削除されると、OneAsymmetricKey構造の数だけ秘密鍵情報のセットが存在することになります。OneAsymmetricKeyとPrivateKeyInfoは同じ構造であるため、いずれも .p8 ファイルとして保存したり、P12のkeyBag BAG-TYPEにコピーしたりできます。カプセル化されたセキュリティレイヤーを削除すると、署名が無効になり、鍵が不正に開示されるリスクが生じる可能性があります。

.p8 files are sometimes PEM-encoded. When .p8 files are PEM encoded they use the .pem file extension. PEM encoding is either the Base64 encoding, from Section 4 of [RFC4648], of the DER-encoded EncryptedPrivateKeyInfo sandwiched between:

.p8 ファイルはPEMエンコードされることがあります。PEMエンコードされた .p8 ファイルは .pem ファイル拡張子を使用します。PEMエンコードは、[RFC4648]のセクション4に基づくBase64エンコードであり、DERエンコードされたEncryptedPrivateKeyInfoを以下で挟んだものです。

   -----BEGIN ENCRYPTED PRIVATE KEY-----
   -----END ENCRYPTED PRIVATE KEY-----
        

or the Base64 encoding, see Section 4 of [RFC4648], of the DER-encoded PrivateKeyInfo sandwiched between:

または、[RFC4648]のセクション4に基づくBase64エンコードであり、DERエンコードされたPrivateKeyInfoを以下で挟んだものです。

   -----BEGIN PRIVATE KEY-----
   -----END PRIVATE KEY-----
        
6. Security Considerations
6. セキュリティに関する考慮事項

Protection of the private-key information is vital to public-key cryptography. Disclosure of the private-key material to another entity can lead to masquerades. The encryption algorithm used in the encryption process must be as 'strong' as the key it is protecting.

秘密鍵情報の保護は、公開鍵暗号にとって極めて重要です。秘密鍵の素材が他のエンティティに漏洩すると、なりすまし(masquerade)を招く可能性があります。暗号化プロセスで使用される暗号化アルゴリズムは、保護対象の鍵と同等以上の「強度」を持つ必要があります。

The asymmetric key package contents are not protected. This content type can be combined with a security protocol to protect the contents of the package.

非対称鍵パッケージの内容自体は保護されていません。このコンテンツタイプをセキュリティプロトコルと組み合わせて、パッケージの内容を保護することができます。

7. IANA Considerations
7. IANAの考慮事項

This document makes use of object identifiers to identify a CMS content type and the ASN.1 module found in Appendix A. The CMS content type OID is registered in a DoD arc. The ASN.1 module OID is registered in an arc delegated by RSADSI to the SMIME Working Group. No further action by IANA is necessary for this document or any anticipated updates.

このドキュメントでは、オブジェクト識別子(OID)を使用して、CMSコンテンツタイプおよび付録AにあるASN.1モジュールを識別します。CMSコンテンツタイプのOIDはDoDアークに登録されています。ASN.1モジュールのOIDは、RSADSIからS/MIMEワーキンググループに委任されたアークに登録されています。このドキュメントまたは将来の更新に関して、IANAによるさらなるアクションは必要ありません。

This specification also defines a new media subtype that IANA has registered at http://www.iana.org/.

本仕様では、IANAが http://www.iana.org/ に登録した新しいメディアサブタイプも定義しています。

7.1. Registration of media subtype application/pkcs8
7.1. メディアサブタイプ application/pkcs8 の登録

Type name: application

タイプ名:application

Subtype name: pkcs8

サブタイプ名:pkcs8

Required parameters: None

必須パラメータ:なし

Optional parameters: None

オプションパラメータ:なし

Encoding considerations: binary

エンコードの考慮事項:バイナリ

Security considerations: Carries a cryptographic private key. See section 6.

セキュリティ上の考慮事項:暗号化された秘密鍵を運びます。セクション6を参照してください。

Interoperability considerations:

相互運用性の考慮事項:

The PKCS #8 object inside this media type MUST be DER-encoded PrivateKeyInfo.

このメディアタイプ内のPKCS #8オブジェクトは、DERエンコードされたPrivateKeyInfoでなければなりません(MUST)。

Published specification: RFC 5958

公開された仕様:RFC 5958

Applications which use this media type:

このメディアタイプを使用するアプリケーション:

Any MIME-compliant transport that processes asymmetric keys.

非対称鍵を処理する任意のMIME準拠のトランスポート。

Additional information:

追加情報:

Magic number(s): None File extension(s): .p8 Macintosh File Type Code(s):

マジックナンバー:なし、ファイル拡張子:.p8、Macintoshファイルタイプコード:なし

Person & email address to contact for further information:

詳細情報の問い合わせ先となる人物とメールアドレス:

     Sean Turner <turners@ieca.com>
        

Restrictions on usage: none

使用上の制限:なし

Author:

著者:

     Sean Turner <turners@ieca.com>
        

Intended usage: COMMON

想定される用途:共通(COMMON)

Change controller:

変更管理者:

The IESG

IESG

8. References
8. 参考文献
8.1. Normative References
8.1. 引用文献

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, 1997年3月。

[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, October 2006.

[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, 2006年10月。

[RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, RFC 5652, September 2009.

[RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, RFC 5652, 2009年9月。

[RFC5911] Hoffman, P. and J. Schaad, "New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME", RFC 5911, June 2010.

[RFC5911] Hoffman, P. and J. Schaad, "New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME", RFC 5911, 2010年6月。

[RFC5912] Hoffman, P. and J. Schaad, "New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)", RFC 5912, June 2010.

[RFC5912] Hoffman, P. and J. Schaad, "New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)", RFC 5912, 2010年6月。

[X.680] ITU-T Recommendation X.680 (2002) | ISO/IEC 8824-1:2002. Information Technology - Abstract Syntax Notation One.

[X.680] ITU-T Recommendation X.680 (2002) | ISO/IEC 8824-1:2002. 情報技術 - 抽象構文記法1 (ASN.1)。

[X.681] ITU-T Recommendation X.681 (2002) | ISO/IEC 8824-2:2002. Information Technology - Abstract Syntax Notation One: Information Object Specification.

[X.681] ITU-T Recommendation X.681 (2002) | ISO/IEC 8824-2:2002. 情報技術 - 抽象構文記法1 (ASN.1): 情報オブジェクト仕様。

[X.682] ITU-T Recommendation X.682 (2002) | ISO/IEC 8824-3:2002. Information Technology - Abstract Syntax Notation One: Constraint Specification.

[X.682] ITU-T Recommendation X.682 (2002) | ISO/IEC 8824-3:2002. 情報技術 - 抽象構文記法1 (ASN.1): 制約仕様。

[X.683] ITU-T Recommendation X.683 (2002) | ISO/IEC 8824-4:2002. Information Technology - Abstract Syntax Notation One: Parameterization of ASN.1 Specifications.

[X.683] ITU-T Recommendation X.683 (2002) | ISO/IEC 8824-4:2002. 情報技術 - 抽象構文記法1 (ASN.1): ASN.1仕様のパラメータ化。

[X.690] ITU-T Recommendation X.690 (2002) | ISO/IEC 8825-1:2002. Information Technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER).

[X.690] ITU-T Recommendation X.690 (2002) | ISO/IEC 8825-1:2002. 情報技術 - ASN.1コード規則: 基本符号化規則(BER)、標準符号化規則(CER)および識別符号化規則(DER)の仕様。

8.2. Informative References
8.2. 参考引用

[P12] RSA Laboratories, "PKCS #12 v1.0: Personal Information Exchange Syntax", June 1999.

[P12] RSA Laboratories, "PKCS #12 v1.0: Personal Information Exchange Syntax", 1999年6月。

[RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object Classes and Attribute Types Version 2.0", RFC 2985, November 2000.

[RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object Classes and Attribute Types Version 2.0", RFC 2985, 2000年11月。

[RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1", RFC 3447, February 2003.

[RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1", RFC 3447, 2003年2月。

[RFC5083] Housley, R., "Cryptographic Message Syntax (CMS) Authenticated-Enveloped-Data Content Type", RFC 5083, November 2007.

[RFC5083] Housley, R., "Cryptographic Message Syntax (CMS) Authenticated-Enveloped-Data Content Type", RFC 5083, 2007年11月。

[RFC5208] Kaliski, B., "Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification Version 1.2", RFC 5208, May 2008.

[RFC5208] Kaliski, B., "Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification Version 1.2", RFC 5208, 2008年5月。

[X.520] ITU-T Recommendation X.520 (2005) | ISO/IEC 9594-6:2005, Information technology - Open Systems Interconnection - The Directory: Selected attribute types.

[X.520] ITU-T Recommendation X.520 (2005) | ISO/IEC 9594-6:2005, 情報技術 - オープンシステム相互接続 - ディレクトリ: 選択された属性タイプ。

[RFC5915] Turner, S. and D. Brown, "Elliptic Curve Private Key Structure", RFC 5915, June 2010.

[RFC5915] Turner, S. and D. Brown, "Elliptic Curve Private Key Structure", RFC 5915, 2010年6月。

Appendix A. ASN.1 Module
付録A. ASN.1モジュール

This annex provides the normative ASN.1 definitions for the structures described in this specification using ASN.1 as defined in [X.680] through [X.683].

この付録は、[X.680]から[X.683]で定義されているASN.1を使用して、本仕様で記述されている構造の規範的なASN.1定義を提供します。

   AsymmetricKeyPackageModuleV1
     { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
       smime(16) modules(0) id-mod-asymmetricKeyPkgV1(50) }
        
   DEFINITIONS IMPLICIT TAGS ::=
        

BEGIN

BEGIN

-- EXPORTS ALL

-- EXPORTS ALL

IMPORTS

IMPORTS

-- FROM New SMIME ASN.1 [RFC5911]

-- FROM New SMIME ASN.1 [RFC5911]

   Attribute{}, CONTENT-TYPE
    FROM CryptographicMessageSyntax-2009
      { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
        smime(16) modules(0) id-mod-cms-2004-02(41) }
        
   -- From New PKIX ASN.1 [RFC5912]
   ATTRIBUTE
    FROM PKIX-CommonTypes-2009
      { iso(1) identified-organization(3) dod(6) internet(1)
        security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-pkixCommon-02(57) }
        

-- From New PKIX ASN.1 [RFC5912]

-- From New PKIX ASN.1 [RFC5912]

   AlgorithmIdentifier{}, ALGORITHM, PUBLIC-KEY, CONTENT-ENCRYPTION
     FROM AlgorithmInformation-2009
       { iso(1) identified-organization(3) dod(6) internet(1)
         security(5) mechanisms(5) pkix(7) id-mod(0)
         id-mod-algorithmInformation-02(58) }
        

;

;

   ContentSet CONTENT-TYPE ::= {
    ct-asymmetric-key-package,
    ... -- Expect additional content types --
   }
      ct-asymmetric-key-package CONTENT-TYPE ::=
    { AsymmetricKeyPackage IDENTIFIED BY id-ct-KP-aKeyPackage }
        
   id-ct-KP-aKeyPackage OBJECT IDENTIFIER ::=
     { joint-iso-itu-t(2) country(16) us(840) organization(1)
         gov(101) dod(2) infosec(1) formats(2)
         key-package-content-types(78) 5
     }
        
   AsymmetricKeyPackage ::= SEQUENCE SIZE (1..MAX) OF OneAsymmetricKey
        
   OneAsymmetricKey ::= SEQUENCE {
     version                   Version,
     privateKeyAlgorithm       PrivateKeyAlgorithmIdentifier,
     privateKey                PrivateKey,
     attributes            [0] Attributes OPTIONAL,
     ...,
     [[2: publicKey        [1] PublicKey OPTIONAL ]],
     ...
   }
        
   PrivateKeyInfo ::= OneAsymmetricKey
        
   -- PrivateKeyInfo is used by [P12]. If any items tagged as version
   -- 2 are used, the version must be v2, else the version should be
   -- v1. When v1, PrivateKeyInfo is the same as it was in [RFC5208].
        
   Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
        
   PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
                                      { PUBLIC-KEY,
                                        { PrivateKeyAlgorithms } }
        
   PrivateKey ::= OCTET STRING
                     -- Content varies based on type of key. The
                     -- algorithm identifier dictates the format of
                     -- the key.
        
   PublicKey ::= BIT STRING
                     -- Content varies based on type of key. The
                     -- algorithm identifier dictates the format of
                     -- the key.
        
   Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }
        
   OneAsymmetricKeyAttributes ATTRIBUTE ::= {
     ... -- For local profiles
   }
        
   -- An alternate representation that makes full use of ASN.1
   -- constraints follows.  Also note that PUBLIC-KEY needs to be
   -- imported from the new PKIX ASN.1 Algorithm Information module
   -- and PrivateKeyAlgorithms needs to be commented out.
        
   -- OneAsymmetricKey ::= SEQUENCE {
   --  version                  Version,
   --  privateKeyAlgorithm      SEQUENCE {
   --   algorithm                 PUBLIC-KEY.&id({PublicKeySet}),
   --    parameters               PUBLIC-KEY.&Params({PublicKeySet}
   --                               {@privateKeyAlgorithm.algorithm})
   --                               OPTIONAL}
   --  privateKey               OCTET STRING (CONTAINING
   --                             PUBLIC-KEY.&PrivateKey({PublicKeySet}
   --                             {@privateKeyAlgorithm.algorithm})),
   --  attributes           [0] Attributes OPTIONAL,
   --  ...,
   --  [[2: publicKey       [1] BIT STRING (CONTAINING
   --                             PUBLIC-KEY.&Params({PublicKeySet}
   --                             {@privateKeyAlgorithm.algorithm})
   --                             OPTIONAL,
   --  ...
   --    }
        
   EncryptedPrivateKeyInfo ::= SEQUENCE {
     encryptionAlgorithm  EncryptionAlgorithmIdentifier,
     encryptedData        EncryptedData }
        
   EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
                                       { CONTENT-ENCRYPTION,
                                         { KeyEncryptionAlgorithms } }
        
   EncryptedData ::= OCTET STRING -- Encrypted PrivateKeyInfo
        
   PrivateKeyAlgorithms ALGORITHM ::= {
     ... -- Extensible
   }
        
   KeyEncryptionAlgorithms ALGORITHM ::= {
     ... -- Extensible
   }
        

END

END

Acknowledgements

謝辞

Many thanks go out to the Burt Kaliski and Jim Randall at RSA. Without the prior version of the document, this one wouldn't exist.

RSAのBurt Kaliski氏とJim Randall氏に深く感謝いたします。ドキュメントの以前のバージョンがなければ、このドキュメントは存在しなかったでしょう。

I'd also like to thank Pasi Eronen, Roni Even, Alfred Hoenes, Russ Housley, Jim Schaad, and Carl Wallace.

また、Pasi Eronen氏、Roni Even氏、Alfred Hoenes氏、Russ Housley氏、Jim Schaad氏、Carl Wallace氏にも感謝いたします。

Author's Address

著者の住所

Sean Turner IECA, Inc. 3057 Nutley Street, Suite 106 Fairfax, VA 22031 USA

Sean Turner IECA, Inc. 3057 Nutley Street, Suite 106 Fairfax, VA 22031 USA

   EMail: turners@ieca.com