はじめにflute.u-shizuoka-ken.ac.jp/~s-okubo/class/cryptb13/fig...7/60 鍵配送問題とは...
TRANSCRIPT
1
情報セキュリティ 第10回
大久保誠也
静岡県立大学経営情報学部
2/60
はじめに
はじめに
鍵配送問題
認証局
HTTPS 演習
3/60
復習と鍵配送問題
4/60
復習:なりすまし防止のアイディア
秘
平文
フィンガープリント
Aliceの
Aliceの
Bob
Alice
② ハッシュ値を計算
フィンガープリント
公暗
③ 秘密鍵で暗号化
① 公開鍵を事前に渡しておく
送信
送信
平文
フィンガープリント
公
公暗
④ 送信
④ 送信
フィンガープリント ⑤ 復号する
フィンガープリント
⑥ ハッシュ値を計算
⑦ 比較して同じならAliceからのメールだ!
Aliceからのメールか
検証しよう……
5/60
復習:ハイブリッド暗号(1)
秘密鍵暗号は、事前に秘密鍵を受け渡ししておく必要がある。
どうやって、鍵を受け渡しておくのか?
公開鍵暗号は、処理が重い。どうやって、大量の平文を通信するのか?
秘密鍵暗号と公開鍵暗号を組み合わせて使うハイブリッド暗号
1. 平文は秘密鍵暗号で暗号化する。
2. 秘密鍵暗号の秘密鍵(共通鍵)を公開鍵暗号で暗号化する。 6/60
④ 公開鍵暗号で共通鍵を暗号化
復習:ハイブリッド暗号(2)
公
平文
秘暗
送信
平文
秘暗 秘
Bob
Alice
共 共
共 共公暗 公暗
公
① Bobの公開鍵を渡しておく
② 共通鍵を生成
③ 秘密鍵暗号で平文を暗号化
平文 平文
⑤ 送信する
⑥ 公開鍵暗号で共通鍵を復号
⑦ 秘密鍵暗号で復号
これはどうやってやるの?
7/60
鍵配送問題とは
暗号化には、必ず「鍵」が必要。 秘密鍵暗号にしろ、公開鍵暗号にしろ、どちらにしても何らかの「鍵」を相手に渡す必要がある!
秘密鍵は、盗聴されたり、なりすまされたら問題が発生する。
公開鍵は盗聴されても大丈夫だが、なりすまされたら問題が発生する。
どうやったら安全に鍵を受け渡せるのか。それが鍵配送問題。
8/60
今からの説明の流れ
鍵配送を扱う次の話では、 『認証局』が重要な役割を果たします。
『認証局』の役割を理解するために、先に幾つかの例を説明します。
次のスライドから、「認証する・判子を押す」という例えが出てきます。
これらは前回までにやった認証方式等で実現されています。
図では、次のように表現することとします。共
判
9/60
鍵の受け渡し方 その1素直な方法
10/60
アイデア
通信でやり取りすると問題が出るなら、直に会って鍵を受け渡そう!
一度受け渡しておけば、次からはこの鍵を利用して通信すればよい。
BobAlice
公
① 直にあって受け渡す
11/60Alice
アイデアの実施手順(1)
Bob
公
12/60Alice
アイデアの実施手順(2)
Bob
① 直に会って、事前に貰っておく
公
13/60
IDPASSWD
Alice
あsdふぁsdJlkjぇwkf
IDPASSWD
あsdふぁsdJlkjぇwkf
アイデアの実施手順(3)
Bob
公① 直に会って、事前に貰っておく
公
② ハイブリッド暗号で通信する14/60
色んな人と通信したいなぁ
通信する人が大人数の場合Alice
なんか、大変だ...
会う
公
公
公
公
会う会う
会う
公
公
会う
会う
15/60
実現できたことと問題点
直に会えば、鍵の受け渡しは安全にできる!
一回会えば、次からはその鍵で暗号か通信。
でも、実用には多くの問題が
相手が沢山居るとき、その人たち全員に会うのは手間。
相手が地球の裏側にいたら、裏側まで会いに行くの?
16/60
鍵の受け渡し方 その2認証局を利用する方法1
17/60
アイデア
皆がすごく信用できるTrentが登場。
皆の公開鍵を、あらかじめTrentに預けておこう!
通信したくなったら、 Trentから公開鍵を貰おう。その公開鍵が正しいかは、 Trentの判子が押してあるかで判断しよう!
BobAlice
公Bobの
公Aliceの
Alice
公Bobの 判Bobの鍵が
欲しいなぁ 18/60
判子の押し方と検証方法
「判子を押す」という例えは、実際には「なりすまし防止」と同様にして実現する。
Bob
公
Bobの
判
公Bobの
「判子を押す」動作は「ハッシュ値を計算し、 Trentの秘密鍵で暗号化する」に相当
「判子を検証する」動作は「Trentの公開鍵で復号して
ハッシュ値を確かめる」に相当
19/60Alice
Bob
Trent
アイデアの実施手順(1)
20/60Alice
Bob
Trent
アイデアの実施手順(2)
公
① 事前に預けておく
21/60Alice
Bob
Trent
アイデアの実施手順(3)① 事前に預けておく
② 判子を押す公
公
判
22/60Alice
Bob
Trent
アイデアの実施手順(4)① 事前に預けておく
② 判子を押す公
公
判③ 要求された
ら渡す
23/60Alice
Bob
Trent
アイデアの実施手順(5)① 事前に預けておく
② 判子を押す公
公
判③ 要求された
ら渡す
④ 判子を検証する
公
判
24/60Alice
Bob
Trent
アイデアの実施手順(6)① 事前に預けておく
② 判子を押す公
公
判③ 要求された
ら渡す
④ 判子を検証する
公
判
⑤ ハイブリッド暗号で通信する
25/60
通信する人が大人数の場合
なんか、自分だけ、すごく忙しく
ない?
公
判
渡す
公
判
渡す
公
判
渡す
公
判
渡す
公
判
渡す
公
判
渡す
26/60
実現できたことと問題点
鍵を預けておいて、そこから貰う。
鍵の正当性は、判子があるか否かで判断。
事前にTrentから、判子を検証する鍵を貰っておけば、後は全部通信で安全にやり取り。
でも、実用には多くの問題が
鍵の要求がすべてTrentに。Trentが忙しすぎないか?
そもそも、Trentの信頼の根拠は何?
27/60
鍵の受け渡し方 その3認証局を利用する方法2
28/60
アイデア
皆がすごく信用できるTrentが登場。
公開鍵に、あらかじめTrentの判子を押して貰おう!
通信したくなったら、Bobから公開鍵を貰おう。その公開鍵が正しいかは、Trentの判子が押してあるかで判断しよう!
Bob公
Alice
公Bobの 判Bobの鍵が
欲しいなぁ
公
判
Bob
29/60Alice
Bob
Trent
アイデアの実施手順(1)
30/60Alice
Bob
Trent
アイデアの実施手順(2)
公
① 事前に渡す
31/60Alice
Bob
Trent
アイデアの実施手順(3)① 事前に渡す
公
公
判
② 判子を押して返す
32/60Alice
Bob
Trent
アイデアの実施手順(4)① 事前に渡す
公
公
判
② 判子を押して返す
公
判
公
③ 要求があったら渡す
33/60Alice
Bob
Trent
アイデアの実施手順(5)① 事前に渡す
公
公
判
② 判子を押して返す
公
判
公
③ 要求があったら渡す
④ 判子を検証する
公
判
34/60Alice
Bob
Trent
アイデアの実施手順(6)① 事前に渡す
公
公
判
② 判子を押して返す
公
判
公
③ 要求があったら渡す
④ 判子を検証する
公
判
⑤ ハイブリッド暗号で通信する
35/60
実現できたことと問題点
皆が信用できるTrentに、判子を押して貰う。
鍵の正当性は、判子があるか否かで判断。
事前にTrentから、判子を検証する鍵を貰っておけば、後は全部通信で安全にやり取り。
前の手法と違って、Trentは忙しくならない。
36/60
まだ残っている問題
事前に認証局(Trent)から、判子を検証する鍵を貰っておけば、後の通信は全部安全に。
Trentって、本当に信用できるのか?
「事前に貰っておく」って、どうやって実現するのか? 会いに行くの?
技術ではなく、運用でカバー
37/60
HTTPS
38/60
HTTPSとは
HTTPによる通信を安全にするために使用されている。
ネットショッピング等で、 IDやパスワード、クレジットカード情報等、外部に漏れては問題がある情報をやりとりするときとかに使用される。
プロトコルとしては、HTTP over SSL/TLS。 認証局を利用した方式で、通信内容を暗号化できる。
39/60
firefoxで見るhttps(1)
ユニバーサルパスポート(Web学生支援システム)は、通信が暗号化されています。
大学のTOPページから、 Web学生支援システムにアクセスしてみましょう。
40/60
firefoxで見るhttps(2)
httpsで通信している時、FirefoxのURLバーは次のようになります
蒼い鍵の部分をクリックしてみましょう。
41/60
firefoxで見るhttps(3)
認証局等が表示されます。
[詳細を表示]をクリックしましょう。42/60
firefoxで見るhttps(4)
詳細が表示されました。 ここに出てくる、『認証局』とは何でしょうか?
この部分が、今日の話の重要な点となります
43/60
認証局(1)
認証局は、この世の中に無数にあります。すべての認証局の鍵を、あらかじめユーザーが持っておくというのは、現実的でない。
認証局は証明書(判子を押した鍵)を発行している。
Trent
Bobの公
判 発行
AliceBobの
公
判
Trentの公
Trentの公開鍵で判子を検証 44/60
認証局(2)
認証局の鍵は信用できるのか?は[他の認証局に証明書を発行して貰う]ことで担保。つまり、証明書は連鎖構造になっている。
連鎖の一番最初に位置している証明書がルート証明書。
Trentの公
判B
自分の鍵を他の認証局に認証して貰う
45/60
ルート証明書の表示(1)
この世の中では、多くの認証局が存在しています。
Firefoxに組み込まれている認証局証明書を表示してみよう。
1. [ツール]→[オプション]をクリック。
[ツール]
[オプション]
46/60
ルート証明書の表示(2)
2. [詳細]→[暗号化]→[証明書を表示]をクリック。
3. [認証局証明書]をクリック。
[詳細][暗号化]
[証明書を表示][認証局証明書]
47/60
HTTPSの認証局が実現していること
認証局の発行している証明書は、確かに「その人(例えばBob)」の鍵であることを証明している。
それにより、なりすまし防止や盗聴防止を実現。
では、「その人(例えばBob)」は本当に存在するの?
保証している証明書もあれば、保証していない証明書もある。
きちんと審査してから発行している証明書もある。最近では、審査の基準を設けたEV証明書がある。
その一方で、相手の確認をあまりせずに発行してしまう認証局も存在する。 48/60
再掲:まだ残っていた問題
事前に認証局(Trent)から、判子を検証する鍵を貰っておけば、後の通信は全部安全に。
Trentって、本当に信用できるのか?
「事前に貰っておく」って、どうやって実現するのか? 会いに行くの?
技術ではなく、運用でカバー
49/60
我々は何を信用しているのか(1) 事前に認証局(例えばTrent)から、判子を検証する鍵
を貰っておけば、後の通信は全部安全に。
「事前に貰っておく」って、どうやって実現するのか? 会いに行くの?
OSやブラウザに、あらかじめ付いている。
OSやブラウザの制作元を信用している。それらの入手経路を信用している。
50/60
我々は何を信用しているのか(2) 事前に認証局(例えばTrent)から、判子を検証する鍵
を貰っておけば、後の通信は全部安全に。
認証局(例えばTrent)って、本当に信用できるの?
基本的に、信用するしかない。
「OSやブラウザについているなら大丈夫」。
認証局を信用している。
OSやブラウザの制作元を信用している。
51/60
演習:認証局
52/60
課題と課題の提出
他のサイトが、どの認証局を利用しているのかを10個ほど調べて、提出して下さい。
EV 証明書を使っているサイトを含めること。
ファイル名は学籍番号の末尾にjをつけたものとする。
グループ名は『H25_情報セキュリティ』です。
53/60
来週持ってきて欲しいもの
来週の講義では、演習でUSBメモリを利用する予定です。
各自、USBメモリ(容量は少なくて良い)を持参して下さい。
重要なデータは入っていないものが良いです。