電子署名関連
作成日時:2024-08-01以前
更新日時:2024-09-29
参考資料
- Re:ゼロから始める長期署名 #電子署名 - Qiita
- 電子署名には有効期限がある!長期契約を結ぶための方法とは | テレワーク・業務効率化 | BLOG | 株式会社Too
- 長期署名について~10年を超える契約への対応~ | 電子契約 | ブログ | NSSOLのデジタルテクノロジー&ソリューション
- 最近の電子認証・署名の考え方
- Microsoft PowerPoint - ESig-PKI-handson-doc-v100.pptx
- 電子署名検証ガイドライン
- 立会人型と当事者型の電子契約(署名)の違いは?それぞれのメリットと選ぶポイント|両方の署名タイプが利用可能なGMOサインのハイブリット署名もご説明 | GMOサインブログ
- 総務省|タイムスタンプ・eシール
- 組織が発行するデータの信頼性を確保する制度(eシール)の検討の方向性について
- eviDaemon | SEIKO TRUST (セイコーソリューションズ株式会社)
電子署名(ES / Electronic Signature)
電子証明書を用いて、「本人証明」と「改竄の検知」を行う。
当事者型 / 立合人型
電子署名の方法。
前者は当事者の電子証明書を使用して、電子署名を付与。
後者は事業者の電子証明書を使用して、電子署名を付与。
タイムスタンプ
電子書類に時刻印を付与することで「その時点以降の非改竄証明」と「その時点の存在証明」を行う。
タイムスタンプの超ざっくり概要
ちゃんとした内容は、「RFC 3161 2.2. TSA Transactions」を参照。
A:タイムスタンプ発行者。
B:タイムスタンプ被発行者。
- B、ファイルのハッシュを発行局に送る。
- A、リクエストの内容をチェックし、問題が無ければタイムスタンプを発行して返却する。
- リクエストに含まれる、ハッシュアルゴリズム種別の妥当性やハッシュデータの桁数などを確認。
- B、レスポンスの内容を復号してチェックし、問題が無ければファイルに付与するなり、いろいろ行う。
電子署名とタイムスタンプ
どちらも証明書を使って改竄証明を行うが、目的が違う。
電子署名は「本人証明」、タイムスタンプは「存在証明」
DTS / ES-*
- DTS (Doc Timestamp)
- タイムスタンプを付与したもの
- ES (Electronic Signature)
- 電子署名
- ES-T(ES with Time Stamp)
- ESにタイムスタンプを付与したもの。
- ES-C (ES with Complete validation data)
- 証明書チェーンやCRLの参照先を持つ
- 非推奨
- ES-XL (ES eXtended Long)
- 証明書チェーンと失効情報を持つ
- ES-A(ES Archive)
- ES-Tに失効情報など検証に必要な情報を付加し、保管タイムスタンプを追加したもの。
- 有効期間の延長。
ES -> ES-T -> (ES-C -> ES-XL) -> ES-A -> ES-A -> … と付与する感じ。
括弧内は資料によってあったりなかったり。
署名規格
だいたいxxxAdES(Advanced ES:先進電子署名)。
- XAdES:XML AdES
- PAdES:PDF AdES
- CAdES:CMS(暗号メッセージ構文) AdES
- JAdES:JSON AdES
※PAdES-DTS
PAdESのDTS仕様。ESとついているがESの役割(本人証明)は関与しない。
ESとついているが、実質DTS。
RFC 3161
X.509 PKIにおけるTSP。
タイムスタンプを行うルールが定義されている。
- RFC 3161 - Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP) 日本語訳
- 機械翻訳。原文のミスもそのまま。
- X.509インターネットPKIタイムスタンププロトコル(TSP)
- 原文にミスがあるからこっちも見る。
レスポンスのデータ構造などは下記を参照。
- レスポンス仕様
- レスポンスステータス
- レスポンス内容(5.1. SignedData Type)
RFC3161においてHTTPでやり取りする場合、ASN.1 DERエンコードされたバイナリを僧院する。
ASN.1
データ構造を表現するルール。
Abstract Syntax Notation One - Wikipedia
- BERやDERなどの標準符号化規則に従い、これを符号化する。
- タグのIDは決まっている。
- 基本的に(BER/DER)には、「タグ⇒オクテット長⇒内容」の定義の繰り返し。
- オクテット長は254を超えられる。
関連技術
- X.509 - Wikipedia
- XAdES - Wikipedia
- PAdES - Wikipedia
- CAdES - Wikipedia
- 暗号メッセージ構文 - Wikipedia
- PKCS - Wikipedia
- 証明書署名要求 - Wikipedia
- Online Certificate Status Protocol - Wikipedia
- Cryptographic Auxiliary Functions
TLS
鍵交換
- RSA
- 共通鍵を公開鍵で暗号化して送る奴
- DH
- 鍵の材料を相互に送って、各自で組み立てる
- 一時DH(毎回新しいDHパラメータを生成)は前方秘匿性あり
- セッションごとに新しい材料で鍵を作るから
- そのセッションだけ解読されても、過去の他セッションのデータは解読されない
- Diffie-Hellman鍵交換入門 #SSH - Qiita
- PSK
OCSP
証明書の失効をチェックする。
CRLだとファイルがデカいから遅い。
OCSPステープリング
- WEBサーバーがレスポンダに問い合わせ
- クライアントが直接レスポンダに問い合わせると
- レスポンダの負荷増大
- レスポンダにIPと接続先がバレる
ECH(Encrypted Client Hello)
TLSコネクション時にClient Helloを暗号化。
ESNIのように接続するドメイン名を隠蔽する。
デジタル署名における『秘密鍵で暗号化』が誤りである理由
「秘密鍵で署名を生成する」または「秘密鍵でメッセージのハッシュ値に署名する」が正しい。
そして「公開鍵で検証する」
「暗号化」は情報の秘匿。
「署名」は真正性の証明。
真正性(しんせいせい)
情報や記録が主張している通りであること。