コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… ·...

32
コンピュータ科学II 担当:武田敦志 <[email protected]> http://takeda.cs.tohoku-gakuin.ac.jp/

Transcript of コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… ·...

Page 1: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

コンピュータ科学II 担当:武田敦志 <[email protected]>

http://takeda.cs.tohoku-gakuin.ac.jp/

Page 2: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

安全性に問題があるWebページ

page 2

こんなメッセージを見たことありませんか?

Page 3: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

安全な通信

page 3

安全な通信とは?

『盗聴』されていないこと

『改竄』されていないこと

『なりすまし』されていないこと

盗聴:秘密のデータを盗み見る

改竄:データを不正に変更する

なりすまし:他人の名義でデータを作成する

『盗聴』『改竄』『なりすまし』が発生しない通信

安全な通信 =

Page 4: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

page 4

インターネットの危険性(1)

インターネットのネットワーク構造

組織

組織

IX

組織

組織

組織

組織

組織

組織

組織

組織

IX

組織

組織

組織

NOC

ISP ISP

ISP

ISP ISP

Page 5: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

page 5

インターネットの危険性(2)

コンピュータ間の通信

To : B Data

From : A To : B Data

to : x From : A To : B Data

to : y From : A

To : B Data

to : z From : A A

B

x y

z p

q

r

宛先Bのパケットは y に渡す

宛先Bのパケットは z に渡す

To : B From : A

Data

Page 6: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

インターネットの危険性(3)

page 6

インターネットのセキュリティ(1)

To : B Data

From : A

A x y

To : B Data

From : A To : B Data

From : A

p q

r

z

To : B Data

From : A

B

To : B Data

From : A

パケットの中身を「盗聴」される可能性がある

盗聴

Page 7: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

インターネットの危険性(4)

page 7

インターネットのセキュリティ(2)

To : B Data

From : A

A x y

To : B Data

From : A To : B Data

From : A

p q

r

z

To : B Data2

From : A

B

To : B Data2

From : A

パケットの内容を「改竄」される可能性がある

改竄 Data2

Page 8: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

インターネットの危険性(5)

page 8

インターネットのセキュリティ(3)

A x y

To : B Data

From : A

p q

r

z

To : B Data

From : A

B

To : B Data

From : A

「なりすまし」されたパケットを受信する可能性がある

なりすまし

Page 9: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

page 9

通信の安全を確保するために

情報の安全性を確保するためには

認証 : 本人性の確認

⇒ 盗聴・改竄を防ぐ

暗号化 : 通信データの暗号化

⇒ なりすましを防ぐ

共通鍵暗号を使う

公開鍵暗号を使う

公開鍵暗号を使う

Page 10: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

暗号方式と安全性の根拠(1)

page 10

初歩的な暗号(共通鍵暗号・公開鍵暗号ではない)

換字式暗号(シーザー暗号)

転置式暗号

アルファベットをシフトさせる暗号方式

(例)3個後ろ側にシフトさせる

SENDAI → VHQGDL

文字の前後を交換する暗号方式 (例)「2×i+1」番目と「 n-2×i 」番目を交換 (iは0以上の整数・nは文字数)

SENDAI → IEDNAS

Page 11: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

暗号方式と安全性の根拠(2)

page 11

多くの利用者が利用する環境には不向き

初歩的な暗号の安全性の根拠

「アルゴリズムが知られていない」ことが安全の根拠 ⇒ アルゴリズムが知られてしまえば安全は保証されない

換字式暗号の場合

転置式暗号の場合

文字の変換規則を知られてはならない

文字の交換規則を知られてはならない

Page 12: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

暗号方式と安全性の根拠(3)

page 12

現在使われている暗号方式

共通鍵暗号

公開鍵暗号

(例)DES・AES アメリカ政府の標準暗号方式

暗号化と復号化で同じ鍵を使う暗号方式

暗号用の鍵と復号用の鍵が異なる暗号方式

(例)RSA 数学(オイラーの定理)に基づいた暗号方式

Page 13: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

page 13

暗号方式と安全性の根拠(4)

共通鍵暗号方式

送信者 受信者

Data Data 暗号化 ∆ατα ∆ατα

共通鍵

復号化

共通鍵 同じ鍵

利点 : 単純な計算で暗号化できる

欠点 : 共通鍵の配布が困難

Page 14: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

暗号方式と安全性の根拠(5)

page 14

⇒ 安全な鍵の交換方法が必要

共通鍵暗号の安全性の根拠

「鍵が知られていない」ことが安全の根拠 ⇒ 鍵の秘密さえ守れば暗号の安全性は保証される

(例)共通鍵暗号方式:AES

暗号化・復号化のアルゴリズムは公開されている

利用者ごとに異なる鍵を使うことで安全性を確保

ただし、あらかじめ鍵を交換する必要がある

Page 15: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

page 15

暗号方式と安全性の根拠(6)

公開鍵暗号方式

送信者 受信者

Data Data 暗号化 ∆ατα ∆ατα

公開鍵

復号化

秘密鍵 異なる鍵

利点 : 公開鍵は無制限に配布することが可能

欠点 : 計算が複雑

Page 16: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

暗号方式と安全性の根拠(7)

page 16

公開鍵暗号方式の特徴

「公開鍵」で暗号化したものは「秘密鍵」で復号化できる

「秘密鍵」で暗号化したものは「公開鍵」で復号化できる

Data Data 暗号化 ∆ατα ∆ατα

公開鍵

復号化

秘密鍵

Data Data 暗号化 ∆ατα ∆ατα

公開鍵

復号化

秘密鍵

Page 17: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

暗号方式と安全性の根拠(8)

page 17

公開鍵暗号の安全性の根拠

「秘密鍵が知られていない」ことが安全の根拠 ⇒秘密鍵が漏洩しなければ暗号の安全は保証される

(例)公開鍵暗号方式:RSA

暗号化・復号化のアルゴリズムは公開されている

利用者は「公開鍵と秘密鍵」を作成し、 公開鍵を通信相手に渡す(秘密鍵は渡さない)

インターネットに適した暗号方式

Page 18: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

page 18

公開鍵暗号方式(1)

公開鍵暗号方式を使った暗号化

送信者 受信者

Data Data 暗号化 ∆ατα ∆ατα

公開鍵

復号化

秘密鍵

公開鍵

公開鍵で暗号化する ⇒秘密鍵で復号化する

公開鍵で暗号化したデータは 対応する秘密鍵でしか復号化できない

Page 19: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

公開鍵暗号方式(2)

page 19 送信者 受信者

Data Data 暗号化 ∆ατα

∆ατα 復号化

秘密鍵 公開鍵

Data

公開鍵暗号方式を使った電子署名

秘密鍵で暗号化する ⇒ 公開鍵で復号化する

公開鍵で復号化できれば、 対応する秘密鍵で暗号化されたものに違いない

電子署名

Page 20: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

実際の公開鍵暗号方式(1)

page 20

公開鍵暗号方式の実際(RSA暗号)

aφ(N) = 1 (mod N) オイラーの定理

e×d = φ(N)×n + 1 となるような整数 e と d を作る

ae×d = (ae)d = a (mod N)

暗号化(m:平文, c:暗号文)

復号化(m:平文, c:暗号文)

c = me (mod N)

m = cd (mod N)

Page 21: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

実際の公開鍵暗号方式(2)

page 21

暗号通信の実際 Transport Layer Security(TLS) Secure Sockets Layer (SSL)

サーバ クライアント

秘密鍵 公開鍵

公開鍵を送る

ランダム値を生成 生成したランダム値を 公開鍵で暗号化して送信

公開鍵

ランダム値を基に 共通鍵を生成

ランダム値を基に 共通鍵を生成

共通鍵 共通鍵 共通鍵を使って 暗号通信を行う

Page 22: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

page 22

認証局と公開鍵証明書(1)

公開鍵と秘密鍵を用いた暗号方式

公開鍵は誰に知られてもかまわない

送信者 受信者

Data Data 暗号化 ∆ατα ∆ατα

公開鍵

復号化

秘密鍵

公開鍵

秘密鍵は他人に知られないようにしておく

Page 23: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

page 23

認証局と公開鍵証明書(2)

公開鍵暗号方式の問題(中間者攻撃)

公開鍵で暗号化して、秘密鍵で復号化する

送信者 受信者

Data δΑΤΑ 暗号化 ∆ατα ∆ατα

公開鍵

復号化

秘密鍵

公開鍵 秘密鍵

公開鍵

Data 盗聴

⇒ 公開鍵は、受信者の鍵でなければならない

盗聴者の公開鍵を使えば、盗聴者が復号化できる!

Page 24: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

認証局と公開鍵証明書(3)

page 24

公開鍵基盤 (PKI: Public Key Infrastructure)

送信者 受信者

Data δΑΤΑ 暗号化 ∆ατα ∆ατα

公開鍵

復号化

秘密鍵

公開鍵

送られてきた公開鍵を確認するための仕組み

認証局 秘密鍵 公開鍵

⇒ 認証局を介して、公開鍵の正しさを確認する

Page 25: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

認証局と公開鍵証明書(4)

page 25

認証局

Webサーバなどを認証する組織

⇒ 正しく運営されているサーバに対して 電子署名付きの証明書を発行する

最も有名な認証局:VeriSign

安全な組織が運営する Webサーバなどに対してのみ 証明書を発行する

年間契約料:40,000円~

Page 26: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

認証局と公開鍵証明書(5)

page 26

公開鍵基盤の仕組み あらかじめ、認証局の公開鍵を配布しておく

⇒ 通常、OSなどに組み込まれている

送信者 受信者

Data

秘密鍵

公開鍵

認証局 秘密鍵 公開鍵

公開鍵

Page 27: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

認証局と公開鍵証明書(6)

page 27

公開鍵基盤の仕組み 受信者を認証し、公開鍵証明書を発行する

⇒ 公開鍵に対する電子署名を発行する

送信者 受信者

Data

秘密鍵

公開鍵

認証局 秘密鍵 公開鍵

公開鍵 公開鍵証明書 (電子署名)

Page 28: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

認証局と公開鍵証明書(7)

page 28

公開鍵基盤の仕組み 受信者は、公開鍵と公開鍵証明書を送る

⇒ 認証局の公開鍵で、公開鍵の正しさを確認できる

送信者 受信者

Data

秘密鍵

公開鍵

認証局 秘密鍵 公開鍵

公開鍵 公開鍵 公開鍵と証明書を送る

確認

Page 29: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

認証局と公開鍵証明書(8)

page 29

公開鍵基盤の仕組み 受信者は、公開鍵と公開鍵証明書を送る

⇒ 認証局の公開鍵で、公開鍵の正しさを確認できる

送信者 受信者

Data

秘密鍵

公開鍵

認証局 秘密鍵 公開鍵

公開鍵 公開鍵

暗号化 ∆ατα ∆ατα 復号化 Data

Page 30: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

Webサーバの認証(1)

page 30

暗号化されているけど安全性に問題があるページ

Page 31: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

Webサーバの認証(2)

page 31

暗号化されたWebページ

Page 32: コンピュータ科学IItakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/uploads/2013/05/Comp… · インターネットの危険性(1) インターネットのネットワーク構造

Webサーバの認証(3)

page 32

Webサーバを認証している認証局