計算機の世界 Top 新規 編集

BinaryTime: ASN.1 における、日付と時刻の代替表現フォーマット (RFC6019 日本語訳)

2010年9月に公開された、RFC6019 [BinaryTime: ASN.1 における、日付と時刻の代替表現フォーマット]の日本語訳です。

原文は、http://www.ietf.org/rfc/rfc6019.txt をご参照下さい。邦訳の誤りにお気づきの場合、ページ最下部のメールアドレスまでご連絡いただければ幸いです。

なお、可読性向上のため、ページのヘッダ・フッタを省略し、原文には無い改行を、適宜挿入しております。ご了承下さい。


Internet Engineering Task Force (IETF) R. HousleyRequest for Comments: 6019 Vigil SecurityObsoletes: 4049 September 2010Category: Standards TrackISSN: 2070-1721

 BinaryTime:
 An Alternate Format for Representing Date and Time in ASN.1

BinaryTime: ASN.1 における、日付と時刻の代替表現フォーマット

概要 (Abstract)

 This document specifies a new ASN.1 type for representing time:
 BinaryTime. This document also specifies an alternate to the
 signing-time attribute for use with the Cryptographic Message Syntax
 (CMS) SignedData and AuthenticatedData content types; the binary-
 signing-time attribute uses BinaryTime. CMS and the signing-time
 attribute are defined in RFC 5652.

本文書は、時間を表すための新しい ASN.1 型「BinaryTime」を規定する。また本文書は、暗号メッセージ文法(Cryptographic Message Syntax)(CMS)の文書タイプ「SignedData」と「AuthenticatedData」で使用される「signing-time(署名時刻)」属性の、代用表現も規定する。CMS および signing-time 属性は、RFC 5652 で定義されている。

本メモの位置づけ (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.

本文書は、Internet Engineering Task Force (IETF) の成果物である。IETF コミュニティでの合意事項が反映されている。本文書は、公開レビューを経て、Internet Engineering Steering Group (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/rfc6019.

本文書の現状、誤謬、およびフィードバックの方法等は、http://www.rfc-editor.org/info/rfc6019 に掲載されている。

著作権表示 (Copyright Notice)

 Copyright (c) 2010 IETF Trust and the persons identified as the
 document authors. All rights reserved.
 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.

1. はじめに (Introduction)

 This document specifies a new ASN.1 [ASN1] type for representing
 time: BinaryTime. This ASN.1 type can be used to represent date and
 time values.

本文書は、時間を表すための新しい ASN.1 型「BinaryTime」を規定する。この ASN.1 型は、日付および時刻の表現に使用できる。

 This document also specifies an alternative to the signing-time
 attribute used with the Cryptographic Message Syntax [CMS] SignedData
 and AuthenticatedData content types, allowing the BinaryTime type to
 be used instead of the traditional UTCTime and GeneralizedTime types.

また本文書は、暗号メッセージ文法 (Cryptographic Message Syntax)(CMS) の文書タイプ「SignedData」と「AuthenticatedData」で使用される「signing-time(署名時刻)」属性の代用表現も規定し、この BinaryTime 型を、これまで使用されてきた UTCTime 型・ GeneralizedTime 型の代わりに使用できるようにする。

1.1. BinaryTime

 Many operating systems represent date and time as an integer. This
 document specifies an ASN.1 type for representing date and time in a
 manner that is also an integer. Although some conversion may be
 necessary due to the selection of a different epoch or a different
 granularity, an integer representation has several advantages over
 the UTCTime and GeneralizedTime types.

多くのオペレーティングシステムは、日付と時刻を整数で表現する。同様に本文書でも、整数で日付・時刻を表せる ASN.1 型を規定する。基準となる時刻や精度の指定に関しては、若干の形式変換が必要な可能性もあるが、整数での表現は、UTCTime 型・ GeneralizedTime 型と比べ、いくつかの利点がある。

 First, a BinaryTime value is smaller than either a UTCTime or a
 GeneralizedTime value.

第一に、BinaryTime は UTCTime や GeneralizedTime と比べサイズが小さい。

 Second, in some operating systems, the value can be used with little
 or no conversion. Conversion, when it is needed, requires only
 straightforward computation. If the endian ordering is different
 from the ASN.1 representation of an INTEGER, then straightforward
 manipulation is needed to obtain an equivalent integer value. If the
 epoch is different than the one chosen for BinaryTime, addition or
 subtraction is needed to compensate. If the granularity is something
 other than seconds, then multiplication or division is needed to
 compensate. Also, padding may be needed to convert the variable-
 length ASN.1 encoding of INTEGER to a fixed-length value used in the
 operating system.

次に、オペレーティングシステムによっては、値をそのまま、もしくは極簡単な変換処理のみで使用することができる。変換処理が必要であっても、かかる負荷は軽い。エンディアンの順序が ASN.1 の INTEGER (整数)と異なる場合は、簡単な処理で、等価な整数値を得られる。基準となる時刻が BinaryTime に対する指定と異なる場合、足し算または引き算で補償できるし、精度が異なる場合、かけ算または割り算で補償できる。ASN.1 の、可変長の INTEGER (整数)を、オペレーティングシステムで用いられる固定長の整数に変換するのに、パディングが必要なこともある。

 Third, date comparison is very easy with BinaryTime. Integer
 comparison is easy, even when multi-precision integers are involved.
 Date comparison with UTCTime or GeneralizedTime can be complex when
 the two values to be compared are provided in different time zones.

第三に、BinaryTime での日時比較は非常に簡単である。整数値の比較は、たとえ倍精度実数が含まれる場合でも、簡単なものである。UTCTime や GeneralizedTime での比較は、時刻のタイムゾーンが異なる場合、複雑な処理になりがちである。

 This is a rare instance in which both memory and processor cycles can
 be saved.

これは、メモリやプロセッサのサイクルを節約できる貴重なポイントである。

1.2. 「バイナリ型署名時刻」属性 (Binary Signing Time Attribute)

 The signing-time attribute is defined in [CMS]. The alternative
 binary-signing-time attribute is defined in this document in order to
 obtain the benefits of the BinaryTime type.

signing-time 属性は、暗号メッセージ文法[CMS]で規定されている。代替である binary-signing-time を、BinaryTime 型のメリットを享受すべく、本文書で規定する。

1.3. 用語 (Terminology)

 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 [STDWORDS].

本文書中の、"MUST (必ず守ることの強制) "、"MUST NOT (必ず避けることの強制) "、"REQUIRED (必ず守ることの強制) "、"SHALL (必ず守ることの強制) "、"SHALL NOT (必ず避けることの強制) "、"SHOULD (守ることの要請) "、"SHOULD NOT (避けることの要請) "、"RECOMMENDED (守ることの要請) "、"MAY (可能であることの示唆) "、"OPTIONAL (可能であることの示唆) "は、「RFC における "要求レベル定義語"」[RFC2119]のとおり解釈される。

2. BinaryTime の定義 (BinaryTime Definition)

 The BinaryTime ASN.1 type is used to represent an absolute time and
 date. A positive integer value is used to represent time values
 based on coordinated universal time (UTC), which is also called
 Greenwich Mean Time (GMT) and ZULU clock time.

BinaryTime ASN.1 型は、絶対時刻の表現に用いる。UTC 時刻、つまりグリニッジ標準時(GMT)または ZULU 時刻とも呼ばれる時刻を基準とした、正の整数を使用する。

 The syntax for BinaryTime is:

BinaryTime の文法は、

 BinaryTime ::= INTEGER (0..MAX)
 The integer value is the number of seconds, excluding leap seconds,
 after midnight UTC, January 1, 1970. This representation of time is
 sometimes called "UNIX time" [POSIX]. This time format cannot
 represent time values prior to January 1, 1970. The latest UTC time
 value that can be represented by a four-octet integer value is
 03:14:07 on January 19, 2038, which is represented by the hexadecimal
 value 7FFFFFFF. Time values beyond 03:14:07 on January 19, 2038, are
 represented by integer values that are longer than four octets, and a
 five-octet integer value is sufficient to represent dates covering
 the next seventeen millennia.

整数値は、うるう秒を除いた、UTC 1970年1月1日 深夜0:00 からの経過秒数を表す。この時刻表現は、しばしば「UNIX time」と呼ばれる。この時刻フォーマットでは、1970年1月1日より前の時刻は表せない。4オクテットの整数値で表すことのできる最後の時刻は 2038年1月19日 03:14:07 で、16進数表記は 7FFFFFFF となる。2038年1月19日 03:14:07 以降の時刻は、4オクテットより長い整数値で表されることとなり、5オクテットなら、今後 17,000年の範囲を充分カバーできる。

 This specification uses a variable-length encoding of INTEGER. This
 permits any time value after midnight UTC, January 1, 1970, to be
 represented.

本定義は、可変長の INTEGER (整数)を使用する。これによって、UTC 1970年1月1日 深夜0:00 以降の任意の時刻が表現できる。

 When encoding an integer value that consists of more than one octet,
 which includes almost all the time values of interest, the bits of
 the first octet and bit 8 of the second octet MUST NOT all be ones or
 all zeros. This rule ensures that an integer value is always encoded
 in the smallest possible number of octets. However, it means that
 implementations cannot assume a fixed length for the integer value.

2オクテット以上の整数値を生成する際は、「第1オクテットの全ビットと、第2オクテットの第8ビット(先頭ビット)」を、同時にすべて1、または同時にすべて0としてはならない(MUST NOT)。この規則は、整数値が常に、最も少ないオクテット数で表現されることを保証するためのものである。しかしながら処理系は、整数が固定長であるという前提に立つことはできない。

3. 「バイナリ型署名時刻」属性の定義 (Binary Signing Time Attribute Definition)

 The binary-signing-time attribute type specifies the time at which
 the signer (purportedly) performed the signing process. The binary-
 signing-time attribute type is intended for use in the CMS SignedData
 content type; however, the attribute can also be used with the
 AuthenticatedData content type.

binary-signing-time 属性は、署名者が、署名を行った(と称する)時刻を表す。binary-signing-time 属性は、暗号メッセージ文法(CMS)の SignedData (署名済みデータ)文書タイプで使用されることを想定しているが、AuthenticatedData (認証済みデータ)文書タイプでの使用も可能である。

 The binary-signing-time attribute MUST be a signed attribute or an
 authenticated attribute; it MUST NOT be an unsigned attribute,
 unauthenticated attribute, or unprotected attribute.

binary-signing-time 属性は、署名または認証された属性でなければならず(MUST)、未署名、未認証、または未保護の属性であってはならない(MUST NOT)。

 The following object identifier identifies the binary-signing-time
 attribute:

binary-signing-time 属性は、次のオブジェクト識別子で表される。

 id-aa-binarySigningTime OBJECT IDENTIFIER ::= { iso(1)
 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
 smime(16) aa(2) 46 }
 The binary-signing-time attribute values have ASN.1 type
 BinarySigningTime:

binary-signing-time 属性は、BinarySigningTime 型の ASN.1 型の値を持つ。

 BinarySigningTime ::= BinaryTime
 In [CMS], the SignedAttributes syntax and the AuthAttributes syntax
 are each defined as a SET OF Attributes. However, the binary-
 signing-time attribute MUST have a single attribute value, even
 though the syntax is defined as a SET OF AttributeValue. There MUST
 NOT be zero or multiple instances of AttributeValue present.

暗号メッセージ文法(CMS)では、SignedAttributes (署名済み属性)および AuthAttributes (認証済み属性)は、共に、Attributes 型の SET であると定義されている。しかし binary-signing-time 属性は、「Attributes 型の SET」という文法によらず、単一の属性値のみ保持しなければならない(MUST)。AttributeValue が1つも存在しない状態や、複数存在する状態であってはならない(MUST NOT)。

 The SignedAttributes contained in the signerInfo structure within
 SignedData MUST NOT include multiple instances of the binary-signing-
 time attribute. Similarly, the AuthAttributes in an
 AuthenticatedData MUST NOT include multiple instances of the binary-
 signing-time attribute.

SignedData (署名済みデータ)内の signerInfo (署名者情報)構造体に含まれる SignedAttributes (署名済み属性)には、複数の binary-signing-time 属性を含めてはならない(MUST NOT)。同様に、AuthenticatedData (認証済みデータ)には、複数の binary-signing-time 属性を含めてはならない(MUST NOT)。

 No requirement is imposed concerning the correctness of the signing
 time itself, and acceptance of a purported signing time is a matter
 of a recipient's discretion. It is expected, however, that some
 signers, such as time-stamp servers, will be trusted implicitly.

署名時刻の正確性については特段の要件は課されず、称された署名時刻を受け入れるか否かは、受信者の裁量に任される。もっともタイムスタンプサーバのように、自動的に信頼することとなるであろう署名者も、少なからず存在しうる。

4. セキュリティの考察 (Security Considerations)

 Use of the binary-signing-time attribute does not necessarily provide
 confidence in the time when the signature value was produced.
 Therefore, acceptance of a purported signing time is a matter of a
 recipient's discretion. RFC 3161 [TSP] specifies a protocol for
 obtaining time stamps from a trusted entity.

binary-signing-time 属性の使用が、「署名がいつ生成されたか」という情報の信頼性を、必ずしも向上させる訳ではない。従って、称された署名時刻を受け入れるか否かは、受信者の裁量に委ねられる。RFC 3161 [TSP] は、信頼できる場所からタイムスタンプを取得するプロトコルを規定している。

 The original signing-time attribute defined in [CMS] has the same
 semantics as the binary-signing-time attribute specified in this
 document. Therefore, only one of these attributes SHOULD be present
 in the signedAttrs of a SignerInfo object or in the authAttrs of an
 AuthenticatedData object. However, if both of these attributes are
 present, they MUST provide the same date and time.

暗号メッセージ文法(CMS)で規定されている signing-time 属性は、本文書で規定する binary-signing-time 属性と、同一の意味を持っている。故に、SignerInfo (署名者情報)オブジェクト内の signedAttrs (署名済み属性)や、AuthenticatedData (認証済みデータ)オブジェクト内の authAttrs (認証済み属性) には、このどちらか一方だけ含めるべきである(SHOULD)。ただし、もし両方を含める場合、両者の時刻は同じでなければならない(MUST)。

5. 参照 (References)

5.1. 標準文献 (Normative References)

 [ASN1] CCITT. Recommendation X.208: Specification of Abstract
 Syntax Notation One (ASN.1). 1988.
 [CMS] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70,
 RFC 5652, September 2009.
 [STDWORDS] Bradner, S., "Key words for use in RFCs to Indicate
 Requirement Levels", BCP 14, RFC 2119, March 1997.

5.2. 参考文献 (Informative References)

 [POSIX] Institute of Electrical and Electronics Engineers. IEEE
 P1003.1, Information Technology Portable Operating System
 Interface (POSIX) Part 1: System Application Program
 Interface (API) [C Language], 1990.
 [TSP] Adams, C., Cain, P., Pinkas, D., and R. Zuccherato,
 "Internet X.509 Public Key Infrastructure Time-Stamp
 Protocol (TSP)", RFC 3161, August 2001.

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

 The ASN.1 module contained in this appendix defines the structures
 that are needed to implement this specification. It is expected to
 be used in conjunction with the ASN.1 modules in [CMS].

本付録に収録の ASN.1 モジュールは、本規格の実装に必要な構造を規定する。本モジュールは、[CMS]に含まれる ASN.1 モジュールと組み合わせて使用する事を想定している。

 BinarySigningTimeModule
 { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
 pkcs-9(9) smime(16) modules(0) 27 }
 DEFINITIONS IMPLICIT TAGS ::=
 BEGIN
 -- BinaryTime Definition
 BinaryTime ::= INTEGER (0..MAX)
 -- Signing Binary Time Attribute
 id-aa-binarySigningTime OBJECT IDENTIFIER ::= { iso(1)
 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
 smime(16) aa(2) 46 }
 BinarySigningTime ::= BinaryTime
 END

著者アドレス (Author's Address)

 Russell Housley
 Vigil Security, LLC
 918 Spring Knoll Drive
 Herndon, VA 20170
 USA
 EMail: housley@vigilsec.com
© 1996-2009 Takafumi KASAI

AltStyle によって変換されたページ (->オリジナル) /