タイムスタンプ (timestamp)はあるイベントが記録された日時・日付・時刻などを記録し、記録が存在していることと改竄されていないことを証明するシステムを指します。
電子署名などで用いられているRFC3161 Time stamp protocolではPKIを利用しており、時刻認証局(TSA:Time-Stamping Authority)がハッシュ値に時刻情報を偽造できないようにして結合したタイムスタンプ(正確にはタイムスタンプトークンと呼びます)を利用者に送付しています。
記録を僅かでも更新した場合、変化したハッシュ値のみがTSAに提示されるので利用者は記録内容を知られずにタイムスタンプを取得できます。
タイムスタンプでの管理が必要なデータは通常、一貫性のある書式で記録されているので異なる記録の比較を簡単に行うことができます。
加えて、時間の経過に伴って変化するイベントの進行状況の追跡が可能となります。
タイムスタンプは一般にイベントの記録作成や時系列(”sequence of events”, SOE)の評価を行うために使用されます。
どちらのケースでも、タイムスタンプはイベント記録を認識するタグのように使われます。
ビットコインのブロックチェーンの例では、各トランザクションやブロックの生成時刻が電子署名と同様の方法でタイムスタンプを用いて管理されています。
多くのOSのファイルシステムではファイルの作成日時(UNIXやUnix系OSではctimeと呼ばれます)、更新日時(mtime)、アクセス日時(atime)がタイムスタンプとして記録されます。
UNIXにおけるstatなどではこれらのデータがシステムコールで取り出すことができます。
タイムスタンプ システムの課題
仮に一貫性のある記録をタイムスタンプとともに作成しても、後から改竄されてしまうと信頼性がなくなってしまいます。
特に、不特定多数からのアクセスが可能な記録は容易に改竄できてしまうため、タイムスタンプを含むデータログの保管システムやサーバには高度なセキュリティが施す必要があります。
タイムスタンプ の例(Wikipediaより引用)
- 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.