計算機の世界 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