More Related Content
Similar to #mailerstudy 02 暗号入門 (2012-02-22更新) (20)
More from Takashi Takizawa (20)
#mailerstudy 02 暗号入門 (2012-02-22更新)
- 2. 私は誰
• 氏名: 滝澤 隆史 @ttkzw
• 所属: 株式会社ハートビーツ
• 何やっている人
▫ メーラMuttの国際化や日本語対応パッチ作者
▫ SpamAssassinの日本語対応パッチ作者
• メールシステムとの関わり
▫ システム管理者として1997年から2006年までメールサー
バの管理
▫ 昔、qmail関連で色々やっていた。2006年にqmail捨て捨
て。Postfix/Dovecot遣いにクラスチェンジ
▫ 現在は個人サーバでメールサーバを運用
Postfix + Dovecot + Sieve(dovecot-pigeonhole) +
ClamAV + SpamAssassin + spamass-milter +
Roundcube
- 4. 参考図書
• 『新版 暗号技術入門 秘密の国のア
リス』
▫ 著者: 結城 浩
▫ 出版社:ソフトバンククリエイティブ
• 『暗号技術大全』
▫ 著者: ブルース シュナイアー
▫ 出版社:ソフトバンククリエイティブ
▫ もしかしたら絶版かも
• 各種RFC
• WikiPedia
- 7. 登場人物
名前 役割
アリス メッセージの差出人
ボブ メッセージの受取人
イブ メッセージを盗聴する人
マロリー メッセージを改ざんする人
- 12. 脅威に対する対策技術
脅威 求めるもの 対策技術
盗聴 機密性 暗号化。
受信者のみあるいは当事者間のみが復号できるように
メッセージを暗号化すること。
否認 否認防止 送信者のみが持っている鍵で暗号化すること。
(受信者が同じ鍵を持っていると否認防止はできない)
改ざん 完全性 完全性の検証。
送信者および受信者が同じアルゴリズム(一方向ハッ
シュ関数やメッセージ認証コード)で計算した結果がお
なじであることを検証すること。
詐称 認証 メッセージ認証。
送信者のみあるいは当事者間のみが持っている鍵で暗号
化し、受信者により復号できること。
- 17. 暗号の要素
• アルゴリズム
▫ 暗号化および復号を行う仕組み
•鍵
▫ 暗号化および復号に使用する情報
• 例)シーザー暗号
▫ アルゴリズム:アルファベット順に文字をシフト
する
▫ 鍵:3文字
- 21. 共通鍵暗号
アリス イブ ボブ
共通鍵を持ってい
ないので、復号で
きないため、内容
がわからない。
盗聴
好きです MIIB2DCCAU 好きです
暗号化 復号
(平文) (暗号文) (平文)
共通鍵 共通鍵
鍵の盗聴を防ぐために、信頼
問題点
できる方法で同じ鍵を予め渡
す必要がある。
- 22. 共通鍵暗号の問題点
• 共通鍵暗号の問題点
▫ 鍵配送問題
鍵の配送中に鍵そのものが盗聴される恐れがある
▫ 鍵管理問題
人数が増えたら、そのペア分の鍵を管理することになり、非常
に煩雑になる。
• 解決策
▫ ボブが作った共通鍵をアリスに対面で直接渡すなどの信頼
できる方法を使う
しかし、人数が増えると破綻する
鍵管理問題は無くならない
• 根本的な解決策
▫ 公開鍵暗号を使う。
▫ 共通鍵をさらに公開鍵暗号で暗号化する。
- 24. 公開鍵暗号
アリス イブ ボブ
ボブのプライベート
鍵を持っていないた
め復号できない。
盗聴
好きです MIIB2DCCAU 好きです
暗号化 復号
(平文) (暗号文) (平文)
プライベート鍵
鍵ペア
問題点 ボブの公開鍵 公開鍵
ボブの公開鍵が本物で
あることを確認する必
要がある。
- 25. 公開鍵暗号の問題点
• 公開鍵暗号の問題点
▫ 公開鍵の証明問題
アリスが受け取ったボブの公開鍵が本物であるかわ
からない
• 対策
▫ ボブがアリスに信頼できる方法で公開鍵を渡す。
▫ アリスが入手した公開鍵が本物であるかを検証す
る。
フィンガープリントの確認
▫ 信頼できる第三者にデジタル署名してもらう
公開鍵証明書
- 28. 疑似乱数
• 乱数
▫ 予測できない数
• 疑似乱数
▫ コンピュータでは真の乱数を生成できない
▫ コンピュータで生成できるのは乱数に近い性質を
持つ疑似乱数
▫ エントロピー(乱雑さ)を収集して用いることに
より真の乱数に近づけることが行われている。
環境ノイズ(ディスクI/O、キーボード、マウスな
ど)の利用
- 29. 疑似乱数生成器
• 疑似乱数生成器
▫ 疑似乱数を生成する機能
Linuxの場合
/dev/random
▫ エントロピーを収集するまでロックする
/dev/urandom
▫ エントロピープールを再利用しロックしない
他のOSでも同様な機能がある
• 主な用途
▫ セッション鍵の生成
▫ 公開鍵暗号の鍵の生成
- 32. 一方向ハッシュ関数
• 任意の長さのメッセージを固定の長さのハッ
シュ値に変換する関数
• 暗号学的ハッシュ関数やメッセージ ダイジェス
トとも呼ばれる
• メッセージが少しでも異なればハッシュ値も変
わるため、改ざんされたことが検出できる
▫ メッセージの完全性の検証
• アルゴリズム
▫ MD5、SHA-1、SHA-256、SHA-512
- 34. 一方向ハッシュ関数の用途
• 改ざんの検出
• チェックサム
• 例)ファイルの完全性の確認
▫ 配布ソフトウェア(ISOイメージなど)と共に
ハッシュ値を計算したファイルも用意する。
ダウンロードの失敗および改ざんの検知
$ cat SHA1SUM
0d64f0532316a0a212c5916d997581e72c52ff02 *ubuntu-11.10-desktop-amd64.iso
8492d3daf0c89907c4301cb2c72094fe59037c76 *ubuntu-11.10-desktop-i386.iso
$ sha1sum -c SHA1SUM
ubuntu-11.10-desktop-amd64.iso: OK
ubuntu-11.10-desktop-i386.iso: OK
- 35. 一方向ハッシュ関数の用途
• フィンガープリント
▫ メッセージの完全性を確認するために、ユーザーがハッ
シュ値を確認しやすいように16進数などで表現したもの
CA証明書
Country = US
Organization = VeriSign, Inc.
Organizational Unit = Class 1 Public Primary Certification Authority
Serial Number: 00 cd ba 7f 56 f0 df e4 bc 54 fe 22 ac b3 72 aa 55
Operational Period: Mon Jan 29, 1996 to Tue Aug 01, 2028
Certificate SHA1 Fingerprint: 90ae a269 85ff 1480 4c43 4952 ece9 6084
77af 556f
$ gpg --fingerprint foo@example.jp
pub 1024D/22B8A63A 2010-08-15 [満了: 2020-08-12]
指紋 = C72A 0457 2FA4 0973 21A0 2750 6C19 647E 22B8 A63A
uid Foo Bar
sub 2048g/D22D0E33 2010-08-15 [満了: 2020-08-12]
- 36. 一方向ハッシュ関数
アリス ボブ
メッセージ メッセージ
一方向 一方向
ハッシュ関数 ハッシュ関数
ハッシュ値
比 改竄
較 検出
ハッシュ値 ハッシュ値
アリスがボブに信頼で 問題点
きる方法でハッシュ値
を伝える必要がある。
- 37. 一方向ハッシュ関数の問題点
• 一方向ハッシュ関数の問題点
▫ ハッシュ値そのものが改ざんされる可能性がある
• 対策
▫ メッセージを送るたびにアリスがボブに信頼でき
る方法でハッシュ値を伝える
▫ 公開鍵暗号と組み合わせて利用する
→デジタル署名
• 注意
▫ 「改ざんを検出する」技術であって「改ざんを防
ぐ」技術ではない。
- 40. メッセージ認証コード通信を行う2者間 問題点
で事前に鍵を共有
アリス ボブ
する必要がある
メッセージ メッセージ
共通鍵 共通鍵
MAC MAC
アルゴリズム アルゴリズム
MAC値 改竄
比 検出
較 と
MAC値 MAC値 認証
- 43. デジタル署名
アリス メッセージ メッセージ ボブ
一方向 一方向
ハッシュ関数 ハッシュ関数
ハッシュ値 ハッシュ値 改竄検出
比
認証
較
鍵ペア ハッシュ値 否認防止
アリスの
公開鍵 アリスの
公開鍵
アリスの 暗号化 復号
プライベート鍵
デジタル デジタル
署名 署名
- 45. まとめ
完全性 認証 否認防止
一方向ハッシュ関数 ○
メッセージ認証コード ○ ○
デジタル署名 ○ ○ ○
- 47. 公開鍵暗号の問題点
• 問題点
▫ 公開鍵暗号やデジタル署名では通信相手の公開鍵
を入手する必要がある。
▫ 入手した公開鍵が本物であるかどうかがわからな
い。
• 解決策
▫ 公開鍵証明書
- 48. 公開鍵証明書
• 公開鍵証明書は、公開鍵にユーザーやサーバな
どの識別情報を付加した上で信用できる第三者
(認証局や知人)がデジタル署名を行ったもの。
• 運転免許書に例えると
▫ 公開鍵証明書:運転免許証
▫ 認証局:運転免許証を発行する公安委員会
• 公開鍵証明書は単に証明書と呼ばれることが多
い
- 49. 公開鍵証明書 トレント(認証局)
トレントの トレントの
公開鍵 プライベート鍵
ボブの
アリスはトレントの証明 署名
CSR
書を適切な方法で事前に
入手する必要がある。 トレントの ボブの
証明書 証明書 CSR: 証明書署名要求
アリス ボブ
トレントの トレントの ボブの
公開鍵 証明書 CSR
ボブの 署名の CSRの
サブジェクト
公開鍵 検証 生成
デジタル ボブの ボブの ボブの ボブの
署名 証明書 証明書 公開鍵 プライベート鍵
- 50. 公開鍵証明書と公開鍵基盤
• 疑問
▫ ボブの証明書を発行したトレント(認証局)自身
の証明書は誰が発行するのか?
• 解決策
▫ 公開鍵基盤(PKI, Public Key Infrastructure)
- 51. 公開鍵基盤(PKI)
自己署名 ルート認証局
ルート証明書 署名 CSR
プライ
中間証明書 署名 ベート鍵 公開鍵
中間認証局
中間証明書 CSR
プライ
ボブの証明書 署名 ベート鍵 公開鍵
ボブ
ボブの証明書 CSR
プライ
ベート鍵 公開鍵
- 52. 公開鍵基盤(PKI) ルート認証局
OSやソフトウェアに
バンドルして配布 ルート証明書
アリス
ルート証明書
公開鍵
中間認証局
署名の
検証 中間証明書
署名
証明書パス 中間証明書
の検証 公開鍵
ボブ
署名の
中間証明書
検証
署名
ボブの ボブの証明書
公開鍵 ボブの証明書
公開鍵
一緒に配布
ボブが配布