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 における、日付と時刻の代替表現フォーマット
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 で定義されている。
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 (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.
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 型の代わりに使用できるようにする。
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.
これは、メモリやプロセッサのサイクルを節約できる貴重なポイントである。
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 型のメリットを享受すべく、本文書で規定する。
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]のとおり解釈される。
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)。この規則は、整数値が常に、最も少ないオクテット数で表現されることを保証するためのものである。しかしながら処理系は、整数が固定長であるという前提に立つことはできない。
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.
署名時刻の正確性については特段の要件は課されず、称された署名時刻を受け入れるか否かは、受信者の裁量に任される。もっともタイムスタンプサーバのように、自動的に信頼することとなるであろう署名者も、少なからず存在しうる。
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)。
[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.
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
Russell Housley Vigil Security, LLC 918 Spring Knoll Drive Herndon, VA 20170 USA
EMail: housley@vigilsec.com