[要約] RFC 5708は、KeyNote Trust Management SystemのためのX.509キーと署名のエンコーディングに関する仕様です。このRFCの目的は、KeyNoteシステムで使用されるキーと署名の形式を定義し、相互運用性を確保することです。

Independent Submission                                      A. Keromytis
Request for Comments: 5708                           Columbia University
Category: Informational                                     January 2010
ISSN: 2070-1721
        

X.509 Key and Signature Encoding for the KeyNote Trust Management System

X.509基調講演管理システムのキーと署名エンコード

Abstract

概要

This memo describes X.509 key identifiers and signature encoding for version 2 of the KeyNote trust-management system (RFC 2704). X.509 certificates (RFC 5280) can be directly used in the Authorizer or Licensees field (or in both fields) in a KeyNote assertion, allowing for easy integration with protocols that already use X.509 certificates for authentication.

このメモでは、基調講演管理システム(RFC 2704)のバージョン2のX.509キー識別子と署名エンコードについて説明しています。X.509証明書(RFC 5280)は、承認者またはライセンシーのフィールド(または両方のフィールド)で基調講演で直接使用でき、既にX.509証明書を認証に使用しているプロトコルと簡単に統合できます。

In addition, the document defines additional signature types that use other hash functions (beyond the MD5 and SHA1 hash functions that are defined in RFC 2792).

さらに、ドキュメントは、他のハッシュ関数を使用する追加の署名タイプを定義します(RFC 2792で定義されているMD5およびSHA1ハッシュ関数を超えて)。

Status of This Memo

本文書の位置付け

This document is not an Internet Standards Track specification; it is published for informational purposes.

このドキュメントは、インターネット標準の追跡仕様ではありません。情報目的で公開されています。

This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741.

これは、他のRFCストリームとは無関係に、RFCシリーズへの貢献です。RFCエディターは、このドキュメントの裁量でこのドキュメントを公開することを選択しており、実装または展開に対する価値について声明を発表しません。RFCエディターによって公開が承認されたドキュメントは、インターネット標準のレベルの候補者ではありません。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/rfc5708.

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

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.

このドキュメントは、BCP 78およびIETFドキュメント(http:trustee.ietf.org/license-info)に関連するIETF Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明するので、これらの文書を注意深く確認してください。

1. Introduction
1. はじめに

KeyNote is a simple and flexible trust-management system designed to work well for a variety of large- and small-scale, Internet-based applications. It provides a single, unified language for both local policies and credentials. KeyNote policies and credentials, called 'assertions', contain predicates that describe the trusted actions permitted by the holders of specific public keys. KeyNote assertions are essentially small, highly structured programs. A signed assertion, which can be sent over an untrusted network, is also called a 'credential assertion'. Credential assertions, which also serve the role of certificates, have the same syntax as policy assertions but are also signed by the principal delegating the trust. Note that only one principal may sign a credential assertion, but trust may be delegated to multiple principals. The credential assertion may delegate trust to each of these principals separately or to groups of principals required to act together. For more details on KeyNote, see [KEYNOTE]. This document assumes reader familiarity with the KeyNote system.

Keynoteは、さまざまな大小のインターネットベースのアプリケーションに適しているように設計されたシンプルで柔軟な信頼管理システムです。ローカルポリシーと資格情報の両方に単一の統一言語を提供します。「アサーション」と呼ばれる基調講演のポリシーと資格情報には、特定の公開鍵の保有者が許可されている信頼できるアクションを説明する述語が含まれています。基調講演は、本質的に小さく、高度に構造化されたプログラムです。信頼されていないネットワークを介して送信できる署名されたアサーションは、「資格的アサーション」とも呼ばれます。証明書の役割にも役立つ資格的アサーションは、ポリシーアサーションと同じ構文を持っていますが、信託を委任する元本によって署名されています。資格的アサーションに署名することができるのは1人のプリンシパルのみであるが、複数の校長に信頼が委任される可能性があることに注意してください。資格的アサーションは、これらのプリンシパルのそれぞれに個別に、または一緒に行動するために必要なプリンシパルのグループに信頼を委任することができます。基調講演の詳細については、[基調講演]を参照してください。このドキュメントは、基調講演システムに読者に精通していることを前提としています。

Cryptographic keys may be used in KeyNote to identify principals. To facilitate interoperation between different implementations and to allow for maximal flexibility, keys must be converted to a normalized canonical form (dependent on the public key algorithm used) for the purposes of any internal comparisons between keys. For example, an RSA key may be encoded in base64 [RFC4648] ASCII in one credential and in hexadecimal ASCII in another. A KeyNote implementation must internally convert the two encodings to a normalized form that allows for comparison between them. Furthermore, the internal structure of an encoded key must be known for an implementation to correctly decode it. [RFC2792] describes the RSA and DSA (Digital Signature Algorithm) key identifier and signature encodings for use in KeyNote assertions. This document specifies a new key identifier, allowing X.509 certificates [RFC5280] to be used as a key substitute wherever an RSA or DSA key may be used in KeyNote. Specifically, KeyNote will use the key associated with the subject of an X.509 certificate. In addition, this document defines a corresponding signature encoding, to be used in conjunction with X.509 key identifiers. Finally, this document defines new signature encodings that use new hash functions beyond the MD5 and SHA1 functions defined in RFC 2792, and which in recent years have been found to be vulnerable to attack.

校長を識別するために、基調講演で暗号化キーを使用できます。異なる実装間の相互操作を促進し、最大限の柔軟性を可能にするために、キー間の内部比較の目的のために、キーを正規化された標準形式(使用する公開キーアルゴリズムに依存する)に変換する必要があります。たとえば、RSAキーは、Base64 [RFC4648] ASCIIで1つの資格情報で、別の資格の16進ASCIIでエンコードされる場合があります。基調講演の実装では、2つのエンコーディングを内部的に正規化されたフォームに変換する必要があり、それらを比較することができます。さらに、エンコードされたキーの内部構造は、実装を正しくデコードするために知られている必要があります。[RFC2792]は、基調講演で使用するためのRSAおよびDSA(デジタル署名アルゴリズム)キー識別子と署名エンコーディングについて説明しています。このドキュメントは、新しいキー識別子を指定し、X.509証明書[RFC5280]を、RSAまたはDSAキーが基調講演で使用できる場所でキー代替として使用できるようにします。具体的には、基調講演では、X.509証明書の主題に関連付けられたキーを使用します。さらに、このドキュメントでは、X.509キー識別子と組み合わせて使用する対応する署名エンコードを定義します。最後に、このドキュメントでは、RFC 2792で定義されているMD5およびSHA1関数を超えて新しいハッシュ関数を使用し、近年攻撃に対して脆弱であることがわかっている新しい署名エンコーディングを定義しています。

1.1. Conventions
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 RFC 2119 [RFC2119].

この文書のキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", および "OPTIONAL" はRFC 2119 [RFC2119]で説明されているように解釈されます。

2. X.509 Key Identifier Encoding
2. X.509キー識別子エンコーディング

X.509 key identifiers in KeyNote are encoded as an ASN1 Distinguished Encoding Rules (DER) encoding of the whole X.509 certificate, as defined in Section 4 of [RFC5280].

X.509基調講演のキー識別子は、[RFC5280]のセクション4で定義されているように、X.509証明書全体のASN1識別エンコードルール(DER)エンコードとしてエンコードされます。

For use in KeyNote credentials, the ASN1 DER-encoded object is then ASCII-encoded (e.g., as a string of hex digits or base64 characters).

基調講演の資格情報で使用するために、ASN1 derエンコードされたオブジェクトがAscii-Encoded(たとえば、160文字またはBase64文字の文字列として)を使用します。

X.509 keys encoded in this way in KeyNote must be identified by the "x509-XXX:" algorithm name, where XXX is an ASCII encoding ("hex" or "base64"). Other ASCII encoding schemes may be defined in the future.

この方法でエンコードされたX.509キーは、「X509-XXX:」アルゴリズム名で識別する必要があります。ここで、XXXはASCIIエンコード(「ヘックス」または「Base64」)です。他のASCIIエンコーディングスキームは、将来定義される場合があります。

3. X.509 Key Identifier Normalized Forms
3. X.509キー識別子正規化されたフォーム

For comparison purposes, the Subject public key in X.509 certificates is used in the normalized form described in Section 2 of [RFC2792]. The resulting RSA or DSA key is then used for comparing, per [RFC2792]. All X.509 key comparisons in KeyNote occur between normalized forms. Note that this allows for comparison between a directly encoded RSA or DSA key (as specified in RFC 2792) and the same key when contained in an X.509 certificate.

比較のために、X.509証明書の主題の公開キーは、[RFC2792]のセクション2で説明されている正規化された形式で使用されます。結果のRSAまたはDSAキーは、[RFC2792]ごとに比較に使用されます。基調講演のすべてのX.509キー比較は、正規化された形式間で発生します。これにより、X.509証明書に含まれている場合、直接エンコードされたRSAまたはDSAキー(RFC 2792で指定)と同じキーを比較できることに注意してください。

4. X.509 Signature Computation and Encoding
4. X.509署名計算とエンコード

X.509 key identifier signatures are defined for historical reasons. Implementers are encouraged to use the RSA- or DSA-based signature encodings instead.

X.509キー識別子署名は、歴史的な理由で定義されています。実装者は、代わりにRSAまたはDSAベースの署名エンコーディングを使用することをお勧めします。

X.509 key identifier signatures in KeyNote are identical to RSA- or DSA-based signatures [RFC2792]. The only difference is that the public key corresponding to the private key that generated the signatures is encoded in an X.509 certificate in the Authorizer field of the signed credential assertion. However, an RSA- or DSA-based signature encoding (depending on the Subject key contained in the X.509 certificate itself) may be used instead.

X.509基調講演のキー識別子シグネチャは、RSAまたはDSAベースの署名[RFC2792]と同一です。唯一の違いは、署名を生成した秘密鍵に対応する公開鍵が、署名された資格的アサーションの承認者フィールドのX.509証明書にエンコードされていることです。ただし、代わりに、RSAまたはDSAベースの署名エンコーディング(X.509証明書自体に含まれるサブジェクトキーに応じて)を使用できます。

X.509 key identifier signatures in KeyNote are computed over the assertion body (starting from the beginning of the first keyword, up to and including the newline character immediately before the "Signature:" keyword) and the signature algorithm name (including the trailing colon character, e.g., "sig-x509-sha512-base64:")

X.509基調講演のキー識別子署名は、アサーション本体(最初のキーワードの先頭から始まり、「署名:」の直前のNewLine文字まで、署名アルゴリズム名(トレーリングコロンを含む)を介して計算されます。キャラクター、例えば、「SIG-X509-SHA512-BASE64:」)

X.509 key identifier signatures are encoded as an ASN1 OCTET STRING object, containing the signature value.

X.509キー識別子署名は、署名値を含むASN1 Octet Stringオブジェクトとしてエンコードされます。

For use in KeyNote credentials, the ASN1 OCTET STRING is then ASCII-encoded (as a string of hex digits or base64 characters).

基調講演の資格情報で使用するために、ASN1 Octet StringはAscii-Encoded(160文字またはBase64文字の文字列として)を使用します。

X.509 key identifier signatures encoded in this way in KeyNote must be identified by the "sig-x509-XXX-YYY:" algorithm name, where XXX is a hash function name (see Section 5 and Section 7 of this document) and YYY is an ASCII encoding ("hex" or "base64").

X.509キーノートでこの方法でエンコードされたキー識別子署名は、「SIG-X509-XXX-YYY:」アルゴリズム名で識別する必要があります。ASCIIエンコード( "Hex"または "base64")です。

5. Hash Functions For RSA, DSA, and X.509 Key Identifier Signatures
5. RSA、DSA、およびX.509キー識別子署名のハッシュ関数

For historical reasons (backward compatibility), X.509 key identifier signatures SHOULD support SHA1 as the hash function, using the "sha1" keyword. In addition, SHA256, SHA512, and RIPEMD160 ([SHA256+], [SHA2-2], [RIPEMD-160]) signatures MUST be supported for use with X.509 key identifier signatures, by using the "sha256", "sha512", and "ripemd160" keywords, respectively (see Section 7).

歴史的な理由(後方互換性)のために、X.509キー識別子署名は、「SHA1」キーワードを使用して、ハッシュ関数としてSHA1をサポートする必要があります。さらに、sha256、sha512、およびripemd160([sha256]、[sha2-2]、[ripemd-160])の署名は、「sha256」、 "sha512"を使用してx.509キー識別子署名で使用するためにサポートする必要があります。、および「ripemd160」キーワード(それぞれセクション7を参照)。

In addition, SHA256, SHA512, and RIPEMD160 signature identifiers are defined for RSA signatures, using the "sha256", "sha512", and "ripemd160" keywords, respectively (see Section 7).

さらに、SHA256、SHA512、およびRIPEMD160の署名識別子は、それぞれ「SHA256」、「SHA512」、および「RIPEMD160」キーワードを使用して、RSA署名に対して定義されています(セクション7を参照)。

6. Security Considerations
6. セキュリティに関する考慮事項

This document discusses the format of X.509 keys and signatures as used in KeyNote. The security of KeyNote credentials utilizing such keys and credentials is directly dependent on the strength of the related public key algorithms. On the security of KeyNote itself, see [KEYNOTE]. Furthermore, it is the responsibility of the application developer to ensure that X.509 certificates are valid (signed by a trusted authority, not expired, and not revoked).

このドキュメントでは、基調講演で使用されているX.509キーと署名の形式について説明します。このようなキーと資格情報を利用する基調講演のセキュリティは、関連する公開キーアルゴリズムの強さに直接依存します。基調講演自体のセキュリティについては、[基調講演]を参照してください。さらに、X.509証明書が有効であることを保証することは、アプリケーション開発者の責任です(信頼できる当局によって署名され、期限切れではなく、取り消されない)。

The use of SHA1 as part of signatures and key identifiers is discouraged, because of the various weaknesses in the algorithm that have been identified in recent years.

署名と主要な識別子の一部としてのSHA1の使用は、近年識別されているアルゴリズムのさまざまな弱点のために落胆しています。

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

Per [RFC2792], IANA has provided a registry of reserved algorithm identifiers. The following are reserved by this document as KeyNote public key format identifiers:

[RFC2792]ごとに、IANAは予約されたアルゴリズム識別子のレジストリを提供しています。以下は、このドキュメントによって基調講演の公開キー形式識別子として予約されています。

- "x509-hex" - "x509-base64"

- 「x509-hex」 - "x509-base64"

The following are reserved by this document as KeyNote signature algorithm identifiers:

以下は、基調講演の署名アルゴリズム識別子としてこのドキュメントによって予約されています。

- "sig-x509-sha1-hex" - "sig-x509-sha1-base64" - "sig-x509-sha256-hex" - "sig-x509-sha256-base64" - "sig-x509-sha512-hex" - "sig-x509-sha512-base64" - "sig-x509-ripemd160-hex" - "sig-x509-ripemd160-base64" - "sig-rsa-sha256-hex" - "sig-rsa-sha256-base64" - "sig-rsa-sha512-hex" - "sig-rsa-sha512-base64" - "sig-rsa-ripemd160-hex" - "sig-rsa-ripemd160-base64"

- 「SIG-X509-SHA1-HEX " - " Sig-x509-Sha1-base64 " - " sig-x509-sha256-hex " - " sig-x509-sha256-base64 " - " sig-x509-sha512-hex " - "Sig-x509-Sha512-base64" - "sig-x509-ripemd160-hex" - "sig-x509-ripemd160-base64" - "sig-rsa-sha256-hex" - "sig-rsa-sha256-base64" - "「SIG-RSA-SHA512-HEX」 - 「SIG-RSA-SHA512-BASE64 " - " Sig-RSA-Ripemd160-hex " - " Sig-RSA-Ripemd160-Base64 ""

Note that the double quotes are not part of the algorithm identifiers.

二重引用符はアルゴリズム識別子の一部ではないことに注意してください。

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

[SHA256+] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms (SHA and HMAC-SHA)", RFC 4634, July 2006.

[Sha256] Eastlake 3rd、D。およびT. Hansen、「US Secure Hash Algorithms(SHA and HMAC-SHA)」、RFC 4634、2006年7月。

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

[RFC2119] Bradner、S。、「要件レベルを示すためにRFCで使用するためのキーワード」、BCP 14、RFC 2119、1997年3月。

[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, May 2008.

[RFC5280] Cooper、D.、Santesson、S.、Farrell、S.、Boeyen、S.、Housley、R.、およびW. Polk、 "Internet X.509公開キーインフラストラクチャ証明書および証明書失効リスト(CRL)プロファイル"、RFC 5280、2008年5月。

8.2. Informative References
8.2. 参考引用

[KEYNOTE] Blaze, M., Feigenbaum, J., Ioannidis, J., and A. Keromytis, "The KeyNote Trust-Management System Version 2", RFC 2704, September 1999.

[基調講演] Blaze、M.、Feigenbaum、J.、Ioannidis、J。、およびA. Keromytis、「The Keynote Trust-Management Systemバージョン2」、RFC 2704、1999年9月。

[RFC2792] Blaze, M., Ioannidis, J., and A. Keromytis, "DSA and RSA Key and Signature Encoding for the KeyNote Trust Management System", RFC 2792, March 2000.

[RFC2792] Blaze、M.、Ioannidis、J。、およびA. Keromytis、「DSAおよびRSAキーおよび基調講演管理システムの署名エンコード」、RFC 2792、2000年3月。

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

[RFC4648] Josefsson、S。、「Base16、Base32、およびBase64データエンコーディング」、RFC 4648、2006年10月。

[RIPEMD-160] 3.ISO/IEC 10118-3:1998, "Information technology - Security techniques - Hash-functions - Part 3: Dedicated hash-functions," International Organization for Standardization, Geneva, Switzerland, 1998.

[RIPEMD-160] 3.ISO/IEC 10118-3:1998、「情報技術 - セキュリティテクニック - ハッシュファンクション - パート3:専用ハッシュファンクション」、国際標準化機関、ジュネーブ、スイス、1998年。

[SHA2-2] NIST, "Descriptions of SHA-256, SHA-384, and SHA-512", May 2001, <http://csrc.nist.gov/publications/fips/ fips180-3/fips180-3_final.pdf>.

[SHA2-2] NIST、「SHA-256、SHA-384、およびSHA-512の説明、2001年5月<http://csrc.nist.gov/publications/fips/ fips180-3/fips180-3_final。pdf>。

9. Acknowledgements
9. 謝辞

The author would like to thank Jim Schaad for his review and comments on earlier versions of this document.

著者は、このドキュメントの以前のバージョンについてのレビューとコメントについてJim Schaadに感謝したいと思います。

Author's Address

著者の連絡先

Angelos D. Keromytis Department of Computer Science Columbia University Mail Code 0401 1214 Amsterdam Avenue New York, New York 1007 USA

アンジェロスD.ケロミティコンピュータサイエンス科学部コロンビア大学メールコード0401 1214アムステルダムアベニューニューヨーク、ニューヨーク1007 USA

   EMail: angelos@cs.columbia.edu