タイムスタンプ

手紙に押された「物理的な」タイムスタンプ(ドイツ・フランクフルト)。押印された日付が中央に見える。矢印が示すのはその時刻(24時間制)。円周部が時計の役割を果たす。
「さほど自動化されていなかったかつてのタイムスタンプ処理」。1915年当時のカメラの宣伝広告。撮影時刻を写真一枚ごとにインクでスタンプしている。

タイムスタンプ: timestamp)とはある出来事が発生した日時・日付・時刻などを示す文字列。狭義には郵便物の発送日時等を示すために押される郵便印のことを指す(画像を参照のこと)[1]。現在ではコンピュータにおける「タイムスタンプ」がよく知られている。

デジタル・タイムスタンプ[編集]

コンピュータやデジタルカメラ等の電子機器にて記録されるタイムスタンプ(他との区別のため「デジタル・タイムスタンプ」 : Digital timestampとも呼ばれる[2]。)は出来事(イベント)が発生した時刻そのものを指すのではなく、コンピュータにイベントが記録された時刻を指す。多くの場合、その違いは重要ではない。ただ、タイムスタンプによりイベントが記録された時刻(例: ログ書き込み時刻)と記録されたイベントの発生時刻の差が開きすぎると整合性に乖離が生じるおそれがあるため、その差は極めて0に近づくべきである。

場合によっては、タイムスタンプは単なるイベントの順序付けである可能性もあるが、その際プログラミングにおいて、タイムスタンプを格納する関数メソッド(例: date_time[3]フォーマット)等の利用が常に必要となるわけではない。

このデータは通常、一貫性をもったフォーマットで表現され、これにより2つの異なる記録を容易に比較できるようになり、また、時間経過と共に変化するイベントの進行状況を追跡することが可能となる。このような実データに沿って一貫性をもったタイムスタンプを記録する手法をタイムスタンピング: timestamping、タイムスタンプ処理)という。

ただし、いくら一貫性を持った記録を行っても、後から改竄することが可能ならば、その信頼性は失われる。不特定多数からのアクセスを許可しているデータログは容易に改竄できる。このためタイムスタンプを含めたデータログを保管するシステム、サーバには物理的なセキュリティ(例: データセンター等安全な場所への機器保管)・論理的なセキュリティオペレーティングシステム(OS)レベルでのセキュリティ、ファイルパーミッション強制アクセス制御など)を施すべきである。

タイムスタンプは一般にイベントのロギングのため、または、時系列("sequence of events", SOE)の評価を行うため利用される。両ケースにおいて、タイムスタンプはイベントのマーキングのために使われる。ファイルシステムにおいては、タイムスタンプはファイルの作成・更新日時を指す場合もある。多くのOSのファイルシステムではファイルの作成日時(UNIXならびにUnix系OSではctimeという。以下同じ)、更新日時(mtime)、アクセス日時(atime)がタイムスタンプとして記録されている。これらのデータがシステムコールで取り出せるOSも存在する(UNIXではstat英語版)。

このようにコンピュータのタイムスタンプは通常ファイルの日付を示す単なるメタデータである。一方、デジタル署名において、ローカル・マシンのタイムスタンプは信頼性の高いものとして利用される。データの「存在証明」と「完全性」(Integrity、非改竄証明)を担保するため、デジタル署名が利用する「タイムスタンプ」は信頼性が高いものを使用しなければならない。これを実現するものとして、RFC3161 Time stamp protocol英語版が考案されている[4][注釈 1]。これはPKIを利用するタイムスタンプ認証プロトコルであり、"Time Stamping Authority"(TSA)と呼ばれる認証局がクライアントから送信されるデータのハッシュを元に"Time-stamp token"を作成、これをクライアントへ応答として返す一連の手続きである。これによりクライアントは"Time-stamp token"から対象データの「信頼できるタイムスタンプ」を取得できる[5]。デジタル署名と同時に信頼できるタイムスタンプ処理電子公証制度や民間の電子署名サービス、存在証明・完全性証明の根幹を成す技術であり、「電子署名法」や各国の電子署名関連の法英語版では必須とされている[2]

[編集]

タイムスタンプの例を挙げる。

  • 2005-10-30 T 10:45 UTC
  • 2007-11-09 T 11:20 UTC
  • Sat Jul 23 02:16:57 2005
  • 1256953732(UNIX時間
  • (1969-07-21 T 02:56 UTC) - への第一歩。"That's one small step for [a] man, one giant leap for mankind"(「これは一人の人間にとっては小さな一歩だが、人類にとっては偉大な飛躍である。」), Neil Alden Armstrong.

標準化[編集]

ISO 8601は日時表現の標準化である[6]。これらの標準化表現は、しばしばタイムスタンプの値を生成する際に利用される。

その他の意味[編集]

タイムスタンプは次の意味でも使われる。

脚注[編集]

注釈[編集]

  1. ^ 同様の技術がISO/IEC 18014英語版標準化されている。

出典[編集]

  1. ^ timestampの意味”. ejje.weblio.jp. 2011年8月14日閲覧。
  2. ^ a b タイムスタンプ/time stamp / デジタル・タイムスタンプ”. アットマーク・アイティ. www.atmarkit.co.jp. 2011年8月14日閲覧。
  3. ^ Chapter 6. Boost.Date_Time”. Boost.org. www.boost.org (2005年6月12日). 2011年8月9日閲覧。
  4. ^ Internet X.509 Public Key Infrastructure - Time-Stamp Protocol (TSP)”. IETF. www.ietf.org (2001年8月). 2011年8月15日閲覧。
  5. ^ タイムスタンプ技術解説 - 最新動向と将来展望”. IPA. www.ipa.go.jp. 2011年8月15日閲覧。
  6. ^ ISO 8601:2004(E)”. ISO (2004年12月1日). 2010年3月7日閲覧。 “3.5 Expansion … By mutual agreement of the partners in information interchange, it is permitted to expand the component identifying the calendar year, which is otherwise limited to four digits. This enables reference to dates and times in calendar years outside the range supported by complete representations, i.e. before the start of the year [0000] or after the end of the year [9999].”

関連項目[編集]