ファイルの中身も更新日時も、あとからいくらでも書き換えられます。 「たしかにこの時刻に、この内容で存在していた」ことを第三者の立場から 証言する仕組みが、タイムスタンプ(時刻認証)です。日本では総務大臣が 認定した事業者がこのサービスを提供しており、電子契約や電子帳簿の分野で 使われています。
timestamp.bringer.cloud は、上で説明したタイムスタンプの仕組み (RFC 3161という国際規格)を、個人が自宅のサーバに実装したものです。 総務大臣の認定は受けていません。認定は「その仕組みを運用する事業者」に 対して与えられるもので、監査や財務基盤の審査を伴うため、個人の実装だけで 得られる性質のものではないからです。
それでも、通信プロトコルや署名方式といった技術面は、認定事業者と同じ規格に 沿うように作ってあります。時刻の同期から鍵の管理まで、仕組みを勉強しながら 組んだ個人の実験場だと思ってください。
総務大臣の認定を受けていないので、対価を求める理由がありません。
認定タイムスタンプは、監査・保険・24時間体制の運用などを含んだ事業として 提供されるサービスであり、利用には料金がかかるのが普通です。 timestamp.bringer.cloud はその認定を受けていない、個人が趣味で動かしている サーバです。そうした事業としての体制も費用も存在しないので、今のところ、 そしてこの先も、料金を取る予定はありません。
あるデータのハッシュ値を送ると、「そのハッシュ値をこの時刻に受け取った」ことを 署名付きで証言します。証明できることとできないことは、はっきり分かれています。
| プロトコル | RFC 3161 (ISO/IEC 18014-2 相当) |
|---|---|
| 時刻源 | NICT公開NTPサーバ ntp.nict.jp へ chrony 経由でトレーサブルに同期 |
| 署名鍵 | RSA 3072bit(ルートCAは4096bit) |
| 署名アルゴリズム | SHA-256withRSA |
| 証明書 | X.509、Extended Key Usage を timeStamping のみに critical 指定 |
| ポリシーOID | 1.2.392.200011.61.1.1.1(検証段階の仮値) |
| 運用基盤 | 自宅k3sクラスタ上、鍵はSecretで管理、特定ノードに固定 |
| 運営者 | 個人(ぶりんがー)。事業者ではない |
証明したいファイルは送信しない。ハッシュ値だけを渡す。
openssl ts -query -data yourfile.pdf -sha256 -cert -out request.tsq
curl -X POST \
--data-binary @request.tsq \
-H "Content-Type: application/timestamp-query" \
https://timestamp.bringer.cloud/timestamp \
-o response.tsr
下記のルート証明書を使って検証する。
openssl ts -verify \ -in response.tsr -queryfile request.tsq \ -CAfile bringer-root-ca.crt
検証にはこのルート証明書が必要です。手元に保管しておいてください。