X(Twitter) Zenn GitHub RSS 共有

電子署名関連

作成日時:2024-08-01以前
更新日時:2024-09-29

参考資料

電子署名(ES / Electronic Signature)

電子証明書を用いて、「本人証明」と「改竄の検知」を行う。

当事者型 / 立合人型

電子署名の方法。
前者は当事者の電子証明書を使用して、電子署名を付与。
後者は事業者の電子証明書を使用して、電子署名を付与。

タイムスタンプ

電子書類に時刻印を付与することで「その時点以降の非改竄証明」と「その時点の存在証明」を行う。

タイムスタンプの超ざっくり概要

ちゃんとした内容は、「RFC 3161 2.2. TSA Transactions」を参照。

A:タイムスタンプ発行者。
B:タイムスタンプ被発行者。

  1. B、ファイルのハッシュを発行局に送る。
  2. A、リクエストの内容をチェックし、問題が無ければタイムスタンプを発行して返却する。
    • リクエストに含まれる、ハッシュアルゴリズム種別の妥当性やハッシュデータの桁数などを確認。
  3. B、レスポンスの内容を復号してチェックし、問題が無ければファイルに付与するなり、いろいろ行う。

電子署名とタイムスタンプ

どちらも証明書を使って改竄証明を行うが、目的が違う。
電子署名は「本人証明」、タイムスタンプは「存在証明」

DTS / ES-*

ES -> ES-T -> (ES-C -> ES-XL) -> ES-A -> ES-A -> … と付与する感じ。
括弧内は資料によってあったりなかったり。

署名規格

だいたいxxxAdES(Advanced ES:先進電子署名)。

※PAdES-DTS
PAdESのDTS仕様。ESとついているがESの役割(本人証明)は関与しない。
ESとついているが、実質DTS。

RFC 3161

X.509 PKIにおけるTSP。
タイムスタンプを行うルールが定義されている。

レスポンスのデータ構造などは下記を参照。

RFC3161においてHTTPでやり取りする場合、ASN.1 DERエンコードされたバイナリを僧院する。

ASN.1

データ構造を表現するルール。

Abstract Syntax Notation One - Wikipedia

関連技術

TLS

鍵交換

OCSP

証明書の失効をチェックする。
CRLだとファイルがデカいから遅い。

OCSPステープリング

ECH(Encrypted Client Hello)

TLSコネクション時にClient Helloを暗号化。
ESNIのように接続するドメイン名を隠蔽する。

デジタル署名における『秘密鍵で暗号化』が誤りである理由

「秘密鍵で署名を生成する」または「秘密鍵でメッセージのハッシュ値に署名する」が正しい。
そして「公開鍵で検証する

「暗号化」は情報の秘匿。
「署名」は真正性の証明。

真正性(しんせいせい)

情報や記録が主張している通りであること。