• 検索結果がありません。

情報セキュリティ 第08回

N/A
N/A
Protected

Academic year: 2021

シェア "情報セキュリティ 第08回"

Copied!
9
0
0

読み込み中.... (全文を見る)

全文

(1)

情報セキュリティ 第08回

大久保誠也 静岡県立大学経営情報学部

2/51

 はじめに

 一方向関数とハッシュ値

 公開鍵暗号と認証

 演習:ハッシュ値

はじめに

3/51

今回の内容

 基礎技術:

 秘密鍵暗号方式

 暗号化

 ブロック暗号とストリーム暗号

 公開鍵暗号方式

 暗号化と認証

 ハッシュ値と一方向関数

 乱数

 実際の実装:

RSA

暗号の仕組み 4/51

一方向関数と メッセージダイジェスト

5/51

こういう場合はどうする?

Hello World

Hellow World

Bob

送信

Hellow World

ファイルをダウンロードしてき たけど、正しくダウンロードで

きたかなぁ なんとかして

検証したい

6/51

一方向関数とは

ある関数

f が、

任意の

x が与えられたとき、f(x)の値を求めること

は簡単、

任意の

y

が与えられたとき、

y=f(x)

となる

x

を求 めることは難しい

とき、この関数は一方向関数であるという。

元の値 計算結果

簡単

難解

1

(2)

7/51

メッセージダイジェストとは

ファイルの中身に対応して生成した固定長のbit列

フィンガープリント、ファイルの指紋、ハッシュ値とも

異なる中身の場合、同じメッセージダイジェストになる 可能性は低い(ゼロではない)。

一方向関数である。

暗号と違い、復号はできない。

eee0ca57643e4b59 815847fdd152cd5c

This is a pen.

平文

フィンガープリント

639c7143c6937907 ef3bfbed7501d898

This is a book.

8/51

メッセージダイジェストの利用 (1)

文章のテキストファイルから生成できるビット列 平文 フィンガープリント

異なる平文が、同じ指紋を生成する確率は低い。

平文

A

フィンガー プリント

A

平文

B

フィンガー プリント

B

違う指紋に

平文と指紋を受け取り、比較することで、平文が正し いか否かを判定できる。

9/51

メッセージダイジェストの利用(2)

Hello World

Bob

1)送信

メッセージ ダイジェスト

B Hellow

World

Hellow

World メッセージ

ダイジェスト A メッセージ

ダイジェスト A メッセージ

ダイジェスト

A

3)比較したら

違う値に!

失敗 している!

2)メッセージ

ダイジェストを 計算

10/51

メッセージダイジェストの利用(3)

多くのサイトで、ファイルの検証用にMD5値が置かれ ています。

http://www.tnlab.inf.uec.ac.jp/daihinmin/announce/180525.html

11/51

メッセージダイジェストの利用 (4)

 httpsでも使用されています。

 Firefox

では、httpsでの通信 を行っているサイトで、

1.

上の青い部分を押す。

2.

詳細を表示を押す。

3.

証明書を表示を押す ことで確認できます。

12/51

メッセージダイジェストの利用 (5)

 UNIXのパスワード認証は、実際にはパスワードは

保存されていません。

保存されているのは、パスワードのハッシュ値を保 存しています。

パスワードを入力すると、

1.

入力されたパスワードのハッシュ値を計算。

2.

保存してあるハッシュ値と一致するか検証。

3.

一致していたら認証を通過。

となります。

ようするに、ハッシュ値が同じになるパスワードなら、

パスワードが異なっていても、認証を通ります。

2

(3)

13/51

広く使われている メッセージダイジェスト

メッセージダイジェストの代表的なものとして、MD5や

SHA等があります。

メッセージダイジェストは、いろいろなところで使用さ れています。

 OpenOffice.org

のような、ファイルのダウンロード の検証のため。

 WindowsやUNIXにおけるパスワード認証。

 https

等の暗号化プロトコル。

メールの暗号化プロトコルである

PGP

メールの認証プロトコルである

apop

14/51

メッセージダイジェストの利用 (6)

ニュースにも(それらしきものが)登場します。

15/51

強衝突耐性と弱衝突耐性

弱衝突耐性:

x

が与えられたとき、

f(x) = f(y)

なる

y (

ただし

y

x)

を発見することは難しい。

強衝突耐性:

f(x) = f(y)

なる

x

y (

ただし

x

y)

を発見すること は難しい。

 MD5は強衝突耐性は無いことが知られている。

16/51

認証

17/51

復習:公開鍵暗号の鍵 (1)

暗号化と復号では、異なる鍵を使用する。

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

秘密鍵は第三者に渡してはいけない。

処理が重いため、基本的に小さい平文を暗号化する。

平文 暗号文 暗号文 平文

18/51

公開鍵暗号の鍵 (2)

提案されている実現方法は、秘密鍵で暗号化し、公 開鍵で復号できる公開鍵暗号方式が多い。

この性質は、「認証」を実現する際に利用されている。

前回のRSA暗号も、この性質を備えている。

平文 暗号文 暗号文 平文

3

(4)

19/51

直感的なイメージ (1)

Hello World

Hello World Hello

World 送信

Bob

Alice

Hello World

送信

このファイル、本当に

Alice

ら送られてきたのかなぁ...

20/51

公開鍵暗号方式と認証

「Aliceの公開鍵」で復号できる暗号文なら、その暗号 文は「Aliceの秘密鍵」で作成したに違いない。

Alice

の秘密鍵」で暗号化できるのは、秘密鍵を持っ

ている

Alice

だけ。

「Aliceの公開鍵」で復号できるものは、

Aliceのファイルに違いない!

21/51 hogehoge

Alice

Bob

送信

あsdふぁsd Jlkjぇwkf

暗号文を「

Alice

の公開鍵」で 復号

hogehoge

あsdふぁsd Jlkjぇwkf

平文を

「Aliceの秘密鍵」で 暗号化

直感的なイメージ(2)

Aliceの公開鍵で復号できた!

暗号文を作れるのは

Alice

けだから、このファイルはAlice

のだ!

22/51 hogehoge

Mallory

Bob

送信

Asdfasdfasdf adfasdf

暗号文を「

Alice

の公開鍵」で 復号

sdlakfjl Hoaslkjlsalf;j;

Asdfasdfasdf adfasdf

平文を

「Malloryの秘密鍵」で 暗号化

直感的なイメージ(3)

Aliceの公開鍵で復号に失敗!

このファイルは、

Alice

のもので はない!?

Aliceを語って

送信だ!

23/51

復習: RSA 暗号の鍵

秘密鍵

素数

p

素数

q

 (p  1)(q  1)

と素かつ

(p  1)(q  1)

より小さい、

適当な正の整数

e

公開鍵

n=pq

ed mod (p  1)(q  1)= 1

となるような

d

24/51

復習: RSA 暗号の暗号化と復号

平文



を暗号化して暗号文

C

を作成する場合。

C=M

d

mod n

ここで d

n

は公開鍵であることに注意。

暗号文

C

を復号する場合。

M=C

e

mod n

ここで e

は秘密鍵、nは公開鍵であることに注意。

公開鍵

n

が因数分解できて

p

q

がわかると、

p,q,d

から秘密鍵

e

もばれてしまう!

4

(5)

25/51

復習: RSA 暗号の理屈

C

e

mod n

は本当に元の平文

M

に戻るのか?

n C

e

mod

M

オイラーの定理より

p

q

が素数ならば

n M

(p1)(q1)1

mod

edの決め方から

n M

ed

mod

数式を展開

n n

M

d

mod )

e

mod

 (

C

の作り方より

26/51

認証の暗号化と復号

平文



を暗号化して暗号文

C

を作成する場合。

C=M

e

mod n

ここで

e

は秘密鍵、

n

は公開鍵であることに注意。

暗号文Cを復号する場合。

M=C

d

mod n

ここで d

n

は公開鍵であることに注意。

27/51

今回の場合

C

d

mod n は本当に元の平文Mに戻るのか?

n C

d

mod

M M

(p1)(q1)1

mod n

ここから先は元と一緒

n M

ed

mod

数式を展開

n n

M

e

mod )

d

mod

 (

C

の作り方より

28/51

なりすましの防止と 電子署名

29/51

認証と秘密鍵

 なりすましを防止するには、どうすればよいか?

→ ようするに、相手が本当に本人か確認したい!

認証・署名

 実世界では、印鑑やサイン、パスワードで本人確認。

 本人確認は、「本人しか持っていない情報を持ってい るか」で確認する。

秘密鍵は「本人しか持っていない情報」

30/51

なりすまし防止の アイディア (1)

Bob

AliceからBobにファイルを送るので、

BobはAliceからのファイルかを

検証したい

Aliceの

Alice

平文

5

(6)

31/51

なりすまし防止の アイディア (2)

送信

Aliceの Aliceの

Bob

Alice

① Aliceの公開鍵を

事前に渡しておく

平文

Aliceの

32/51

なりすまし防止の アイディア (3)

平文

フィンガー プリント

Aliceの Aliceの

Bob

Alice

ハッシュ値 を計算

公開鍵を 事前に渡しておく

33/51

なりすまし防止の アイディア(4)

平文

フィンガー プリント

Aliceの Aliceの

Bob

Alice

ハッシュ値 を計算

フィンガー プリント 公暗

秘密鍵で 暗号化

公開鍵を

事前に渡しておく 34/51

なりすまし防止の アイディア(5)

平文

フィンガー プリント

Aliceの Aliceの

Bob

Alice

ハッシュ値 を計算

フィンガー プリント 公暗

秘密鍵で 暗号化

公開鍵を 事前に渡しておく

送信

送信

平文

フィンガー プリント

公暗

送信

送信

35/51

なりすまし防止の アイディア (6)

平文

フィンガー プリント

Aliceの Aliceの

Bob

Alice

ハッシュ値 を計算

フィンガー プリント 公暗

秘密鍵で 暗号化

公開鍵を 事前に渡しておく

送信

送信

平文

フィンガー プリント

公暗

送信

送信

フィンガー

プリント復号する Aliceからの

メールか 検証しよう……

36/51

なりすまし防止の アイディア (7)

平文

フィンガー プリント

Aliceの Aliceの

Bob

Alice

ハッシュ値 を計算

フィンガー プリント 公暗

秘密鍵で 暗号化

公開鍵を 事前に渡しておく

送信

送信

平文

フィンガー プリント

公暗

送信

送信

フィンガー

プリント復号する フィンガー

プリント

ハッシュ値を計算 Aliceからの

メールか 検証しよう……

6

(7)

37/51

なりすまし防止の アイディア (8)

平文

フィンガー プリント

Aliceの Aliceの

Bob

Alice

ハッシュ値 を計算

フィンガー プリント 公暗

秘密鍵で 暗号化

公開鍵を 事前に渡しておく

送信

送信

平文

フィンガー プリント

公暗

送信

送信

フィンガー

プリント復号する フィンガー

プリント

ハッシュ値を計算

⑦ 比較して同じなら

Aliceからの

メールだ!

Aliceからの メールか 検証しよう……

38/51 フィンガー

プリント フィンガー プリント

なりすまされた場合 (1)

平文

Eveの

Bob

Aliceからの メールか 検証しよう……

なりすまし

Eve

パス

フレーズ

公開鍵を 事前に渡しておく

EveがAliceの名前を騙って、

Bob

にファイルを送る。

BobはAliceのファイルか検証したい

39/51 フィンガー

プリント

フィンガー プリント フィンガー

プリント フィンガー プリント

なりすまされた場合(2)

平文

送信

送信

平文

異なる 何か

Aliceの Eveの

Bob

Aliceからの メールか 検証しよう……

Aliceの公開鍵で

元に戻せない!。

Aliceからの

メールじゃない!

なりすまし

Eve

40/51 フィンガー

プリント

フィンガー プリント フィンガー

プリント フィンガー プリント

なりすまされた場合(3)

平文

送信

送信

平文

異なる 何か

Aliceの Eveの

Bob

Aliceからの メールか 検証しよう……

Alice

の公開鍵で 元に戻せない!。

Aliceからの

メールじゃない!

なりすまし

Eve

Eveは Alice

の秘密鍵を

知らないので、

Aliceの公開鍵で

復号できる 暗号化済み指紋を

作れない。

41/51 フィンガー

プリント フィンガー プリント

改竄された場合 (1)

平文

送信

送信

Aliceの

Bob

Aliceからの メールか 検証しよう……

送信中に、

データが変わって しまった!

パス

フレーズ Aliceの

Alice

42/51

異なる フィンガー

プリント

フィンガー プリント フィンガー

プリント フィンガー プリント

改竄された場合 (2)

平文

送信

送信

異なる 平文

フィンガー プリント

Aliceの

Bob

Aliceからの メールか 検証しよう……

Aliceの公開鍵で

元に戻せない!。

正常に通信できて ない!

パス

フレーズ Aliceの

Alice

7

(8)

43/51 異なる

フィンガー プリント

フィンガー プリント フィンガー

プリント フィンガー プリント

改竄された場合 (3)

平文

送信

送信

平文

フィンガー プリント

Aliceの

Bob

Aliceからの メールか 検証しよう……

Aliceの公開鍵で

元に戻せない!。

正常に通信でき ていない!

Aliceの

Alice

指紋の値が異なるので、

正常に通信できていないことが わかる。

44/51

なりすまし防止の手順

以下のような流れで行われる。

1. Aliceは平文のフィンガープリントを作成する。

2. AliceはAliceの秘密鍵とパスフレーズでフィンガープ

リントを暗号化

3. Aliceは、平文と3で生成したものを、Bobにメール 4. Bobは、Aliceの公開鍵でAliceから送られた『暗号化

されたフィンガープリントを復号する。

5. Bobは、『Aliceから送られてきた平文

から作ったフィ ンガープリントと、4のフィンガープリントを比較する。

45/51

何が守れているのか

 盗聴について:

 対処されていない。

 なりすましについて:

 対処されている。

 ただし、改竄と区別は付かない。

 改竄について:

 対処されている。

 ただし、なりすましと区別は付かない。

さらに暗号技術等と組み合わせる必要がある

46/51

次のステップ

 暗号技術で盗聴に、認証技術でなりすましや改竄を 防止することができる。

 説明のあちこちにある「公開鍵を事前に渡しておく」

の具体的な方法が、今のところノータッチ。

偽物の公開鍵を掴まされたりしないか?

直に会えば確実だけど、相手が地球の裏側に居 たりするなら、どうするの?

暗号技術と認証技術を組み合わせれば、

これらすべてに対処できる(はず)!

47/51

演習:一方向関数とハッシュ値

48/51

fuko でのフィンガープリント (1)

1. fukoにログインする。

2. Solaris では digest コマンドでMD5の値を求めること

ができる。

として、ファイルのMD5の値を出力してみましょう。

3.

とすることで、ファイルのsha1の値を出力してみま しょう。

%/> digest –a md5 ファイル名

%/> digest –a md5 ファイル名

%/> digest –a sha1 ファイル名

%/> digest –a sha1 ファイル名

8

(9)

49/51

課題でやること

1.

テキストファイルを作成する。中身は以下の通り。

2. md5とsha1のハッシュ値を計算する。

3.

テキストファイルを作成する。中身は以下の通り。

4. md5とsha1のハッシュ値を計算する。

5.

中身が異なっていることを確認する。

catcat

cutcut

50/51

課題でやること (1)

1.

さまざまな単語等のMD5値を求め、近い値が出るか 挑戦しましょう。(注:出ません)

2.

入力した単語と、そのMD5値をレポートにまとめてく ださい。

 各結果をテキストファイルもしくはWordファイルにま とめ、経情グループウェアから提出しなさい。

51/51

課題でやること(2)

 以下をレポートにまとめて提出。

Amazon等で、曰く「セキュアなログイン」等を利用し

ているとき、

自分が、なぜ安全だと思って通信して いるのか

を書く。

調べ物の課題ではなく、

“今までの自分がどう

思っていたか

を書く。

 ファイル名は学籍番号の末尾にhをつけたものとする。

 グループ名は『H31_情報セキュリティ』です。

9

参照