SECUAD 6/23

cutxout2005-06-23

第11章 残り

電子署名
  • 改竄の検出と文書の発信者の特定を可能にする技術。
    • 認証への応用も可能。
  • 公開鍵の場合
    • 前提
      • 公開鍵は広く晒す
      • 秘密鍵は本人のみが管理する
    • 公開鍵による暗号
      • あるデータをプライベートキーで暗号化
      • 対応する公開鍵を持つ人が複合化できる
    • 公開鍵による署名
      • あるデータを公開鍵で暗号化
      • 対応するプライベートキーで複合化できる
    • 実際には、データそのものを暗号化すると大変なので、hash値に対する暗号化と複合化を行う。
    • 検証する人
      • データのhash A
      • 電子署名を送信者の公開鍵で複合化したデータのhash B
      • こいつらが一致したらOKとみなす。
  • 共通鍵の場合
    • MAC: Message Authentication Code
      • MIC: Message Integrity Code
    • よくない点
      • 送信者、受信者が共通鍵を共有するので、受信側が内容改竄でき、完全性が保証されない。
      • 共通鍵が漏洩するとそれで終わり。
    • よい点
      • 公開鍵に比べて高速
        • p2pとかで使われるらしい。
    • HMAC (keyed Hash MAC)、CBC-MAC (Cipher Block Changing MAC)
      • RFC2104 SSL/TLSの完全性検出に利用される。
  • 使い分け
    • 公開鍵: 否認防止、改竄検出
    • 秘密鍵: 改竄検出、認証
  • 形式
    • ASN.1 (Abstract Syntax Notation One)
    • PGP形式
      • RFC2440 "OpenPGP Message Format"
      • RFC3156 "MIME Security with OpenPGP"
      • detach: 別ファイルにPGP署名をする。ソースコードとかの改竄検出。
      • attach: 同ファイルにPGP署名をする。
    • XML形式
      • XML Signature
        • detached
        • enveloping
        • enveloped
  • アルゴリズム
  • 多重署名
    • シリアル署名
      • 入れ子状: あとから署名したものは直前までの署名全体を含む
    • パラレル署名
      • データに対する署名。署名対象はデータに限定される。
  • Timestamp
    • 電子署名の応用で、時刻情報を保証するための仕組み。
    • 通常の電子署名
      • 改竄防止、否認防止は大丈夫
      • 存在証明(その時刻にデータが存在したこと)は保証できない
    • simple方式
      • データをhash化したものに対する署名だが、Timestamp局(TSA: TimeStamp Authority)が署名する。
      • PKI client <-> TSA <- 時刻データ(正確な時計サーバ)
      • signatureはhashとtime
        • だから時計屋さんが騒がれている訳か...やっと理解した。
    • Link方式
      • 公開鍵による署名ではない。
      • Timestamp要求のhashをリンクさせ、その前後関係を保証するモノ。
      • 正確な時刻を保証するものではない。
  • 長期保存
    • 署名の有効期間
      • 通常は1-3年程度。
      • 秘密鍵の漏洩問題などのリスクのため。
    • 現実世界のデータ保存
      • 10年単位で必要。例えば、税金なら7年。
    • 長期保存により、署名鍵の強度が下がる&アルゴリズムの弱体化のリスク
      • 長期署名フォーマット全体に対してアーカイブtimestamp(ES-A)
  • 法律
  • 利用
    • 否認防止: Adobe Acorobatはシリアル署名をサポート。PDFファイルにX.509で署名できる。
    • 改竄防止: MS Windowsのdriverに対する証明書、AcitveXに対する証明書
    • 認証への応用: TLS/SSLのクライアント認証、802.1xEAPの一部で使える

感想

  • Chapter11は長かったですが、長らく曖昧にしたままだった認証、署名、暗号化についてある程度纏めることができました。
  • 公開鍵認証はいまいち混乱することが多いので、一度PGPなりS/MIMEなりを自分で使ってみればよいんですね。そうすれば実感として理解できるし。
  • そういえば、数年前に一時期、全てのメールをPGPで暗号化するのをデフォルトにしたことがあったっけ。やらなくなった理由は明確。grepとかで全文検索できないんですもの。orz
  • 結局、通信経路を暗号化する方針にシフトして今に至る。おかげで、namazuが大活躍。:-)