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

情報セキュリティ 第09回

N/A
N/A
Protected

Academic year: 2021

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

Copied!
9
0
0

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

全文

(1)

1

情報セキュリティ 第09回

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

2/41

はじめに

はじめに

安全な通信の目的

ハイブリッド暗号

ssh

演習

3/41

雑多なこと

4/41

セキュリティの知識が必要な例

1

開発者 利用者

受注 発注

開発の知識 利用の知識 こういうのが欲し

いんだけど

こんなんで

どうでしょう? これで 大丈夫かな?

評価できる 知識が必要

5/41

セキュリティの知識が必要な例

2

これは何を言っているのでしょうか?

6/41

県大にあるUNIX、Linux

smax:

教育用UNIXサーバー。Solaris 10。

mail.u-shizuoka-ken.ac.jp:

メールサーバー。

ai.u-shizuoka-ken.ac.jp:

学部のWebサーバー。FreeBSD

各研究室にあるサーバー:

(2)

7/41

実は身近にもある

Linux

「組み込みLinux」や「BusyBox」 で検索。

8/41

安全な通信の目的

9/41 Hello

World

Hello World

盗聴

Hello World

Bob

送信

Alice

Hello World

Hello World

Eve

盗聴

A:>

Hello World

覗き見して

やろう

Aliceから

メールが来た。

送信

外部に漏れてな いかなぁ?

10/41

改ざん

9時 集合

12時

送信

集合

12時 集合

このメールは 正しいのかな?

Mallory

通信内容を 書き換えてやれ

Alice

Bob

11/41 hogehoge

Mallory

Bob

送信

hogehoge

hogehoge

hogehoge

なりすまし

Aliceからメールが

来たけど、

本当に

Alice

なのかな?

Aliceを語って

送信だ!

12/41

シンプルな通信方法

(3)

13/41 ID

PASSWD

Alice

Bob

送信

あsdふぁsd Jlkjぇwkf

「秘密鍵」で復号

ID PASSWD

あsdふぁsd Jlkjぇwkf

「秘密鍵」で 暗号化

盗聴しても、

復号できな い……。

秘密鍵暗号を用いた通信

(1)

14/41

秘密鍵暗号による通信

(2)

盗聴について:

対処されている。間に盗聴者が居ても、内容が 漏れることはない。

事前に秘密鍵を受け渡しておく必要がある。

なりすましについて:

特に対処されていないが、攻撃者が秘密鍵を 持っていないなら意味のある通信にならない。

改ざんについて:

特に対処されていないが、改ざんされても意味 のある通信にならない。

15/41 ID

PASSWD

Alice

Bob

送信

あsdふぁsd Jlkjぇwkf

「秘密鍵」で復号

ID PASSWD

あsdふぁsd Jlkjぇwkf

「公開鍵」で 暗号化

秘 公

送信

公開鍵暗号を用いた通信

(1)

盗聴しても、

復号できな

公 い……。

16/41

公開鍵暗号による通信

(2)

盗聴について:

対処されている。間に盗聴者が居ても、内容が 漏れることはない。

秘密鍵を事前に共有しておく必要はない。

大きい平文を送るには、処理が重い。

なりすましについて:

特に対処されていない。渡された公開鍵が正し いものか否か、判断しておく必要がある。

改ざんについて:

特に対処されていない。

17/41

公開鍵暗号と 秘密鍵暗号を 組み合わせた通信

18/41

アイデア

秘密鍵暗号は、事前に秘密鍵を受け渡ししておく必 要がある。

どうやって、鍵を受け渡しておくのか?

公開鍵暗号は、処理が重い。

どうやって、大量の平文を通信するのか?

秘密鍵暗号と公開鍵暗号を組み合わせて使う ハイブリッド暗号

1.

平文は秘密鍵暗号で暗号化する。

2.

秘密鍵暗号の秘密鍵(共通鍵)を公開鍵暗号で

暗号化する。

(4)

19/41

通信手順

(1)

平文

Bob

Alice

AliceはBobに平文を送りたい

20/41

通信手順

(2)

平文

Bob

Alice

Bobの公開鍵を

渡しておく

21/41

通信手順

(3)

平文

Bob

Alice

Bobの公開鍵を

渡しておく

共通鍵を生成

22/41

通信手順

(4)

平文

秘暗 秘

Bob

Alice

Bobの公開鍵を

渡しておく

共通鍵を生成

秘密鍵暗号で 平文を暗号化

平文

23/41

公開鍵暗号で 共通鍵を 暗号化

通信手順

(5)

平文

秘暗 秘

Bob

Alice

共 公暗

Bobの公開鍵を

渡しておく

共通鍵を生成

秘密鍵暗号で 平文を暗号化

平文

24/41

公開鍵暗号で 共通鍵を 暗号化

通信手順

(6)

平文

秘暗

送信

秘暗 秘

Bob

Alice

共 共

公暗 公暗

Bobの公開鍵を

渡しておく

共通鍵を生成

秘密鍵暗号で 平文を暗号化

平文 平文

送信する

(5)

25/41

公開鍵暗号で 共通鍵を 暗号化

通信手順

(7)

平文

秘暗

送信

秘暗 秘

Bob

Alice

共 共

共 共

公暗 公暗

Bobの公開鍵を

渡しておく

共通鍵を生成

秘密鍵暗号で 平文を暗号化

平文 平文

送信する

公開鍵暗号で

共通鍵を復号

26/41

公開鍵暗号で 共通鍵を 暗号化

通信手順

(8)

平文

秘暗

送信

平文

秘暗 秘

Bob

Alice

共 共

共 共

公暗 公暗

Bobの公開鍵を

渡しておく

共通鍵を生成

秘密鍵暗号で 平文を暗号化

平文 平文

送信する

公開鍵暗号で 共通鍵を復号

秘密鍵 暗号で 復号

27/41

通信手順 補足

平文

秘暗 送信

平文

秘暗 秘

Bob

Alice

Aliceからの

メールが来た。

復号しよう……。

共 共

共 共

公暗 公暗

パス

+ フレーズ 公

平文 平文

実際には パスフレーズも

使用することが多い

28/41

盗聴されても

Eve

平文

平文

暗 送信

平文

平文

暗 秘

Bobの

Bobの

Bob

Alice

共 共

共 共

暗 暗

盗聴しても、

復号できな い……。

パス

+ フレーズ

29/41

通信手順

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

1.AliceがBobにメールを送るとする。

2.Aliceは共通鍵を生成し、平文を暗号化する。

3.Aliceは共通鍵を、Bobの公開鍵で暗号化する。

4.Aliceは2と3で生成したものを、Bobにメールする。

5.Bobは、Bobの秘密鍵とパスフレーズで、Aliceから

送られた『暗号化された共通鍵 』 を復号し、共通鍵 を取り出す。

6.Bobは、取り出した共通鍵で、『暗号化された平

文』から平文を取り出す。

Eveは、Bobの秘密鍵を知らないため、共通鍵を取り

出せず、結果として平文を入手できない。

30/41

まとめ

秘密鍵暗号と公開鍵暗号を組み合わせて使う

1.

平文は秘密鍵暗号で暗号化する。

2.

秘密鍵暗号の鍵を公開鍵暗号で暗号化する。

秘密鍵暗号は、事前に秘密鍵を受け渡ししておく必 要がある。

どうやって、鍵を受け渡しておくのか?

→ 公開鍵暗号で秘密鍵暗号の鍵を暗号化。

公開鍵暗号は、処理が重い。

どうやって、大量の平文を通信するのか?

→ 小さい秘密鍵暗号の鍵のみを暗号化。

(6)

31/41

何が守れているのか

盗聴について:

対処されている。間に盗聴者が居ても、内容が 漏れることはない。

なりすましについて:

特に対処されていないが、攻撃者が秘密鍵を 持っていないなら意味のある通信にならない。

改ざんについて:

特に対処されていないが、改ざんされても意味 のある通信にならない。

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

32/41

ssh

33/41

ssh

とは

Secure Shell の略。

リモートの計算機と安全に通信するためのプロトコ ル。パスワードを含めた全てが暗号化される。

ハイブリット暗号方式を利用している。

なりすましにも、ある程度の耐性がある。

sshは、telnetを置き換えていることが多い。

ftpを置き換えるsftp等もある。

プロトコルはバージョンが2つある。

1

の使用は推奨されていない)

34/41

telnet

ssh

telnet

の場合

sshの場合

通信は平文 で行われる

通信はすべて暗号化さ れて行われる

35/41

ssh

teraterm

通信するプロトコルを 選択できる

36/41

ssh

プロトコル バージョン

1

の 通信の概要

(1)

計算機

Alice

公 公

Alice

はリモートの計算機に

接続して利用したい

(7)

37/41

ssh

プロトコル バージョン

1

の 通信の概要

(1)

計算機

Alice

送信

38/41

ssh

プロトコル バージョン

1

の 通信の概要

(1)

公 秘

計算機

Alice

送信

共通鍵を生成

公 秘

39/41

公開鍵暗号で 共通鍵を 暗号化

ssh

プロトコル バージョン

1

の 通信の概要

(1)

公 秘

計算機

Alice

公暗 共

送信

共通鍵を生成

秘 公

40/41

公開鍵暗号で 共通鍵を 暗号化

ssh

プロトコル バージョン

1

の 通信の概要

(1)

送信

計算機

Alice

共 共

公暗 公暗

送信

共通鍵を生成

送信する

秘 公

41/41

公開鍵暗号で 共通鍵を 暗号化

ssh

プロトコル バージョン

1

の 通信の概要

(1)

送信

計算機

Alice

共 共

共 共

公暗 公暗

送信

共通鍵を生成

送信する

公開鍵暗号で 共通鍵を復号 公

秘 公

42/41

公開鍵暗号で 共通鍵を 暗号化

ssh

プロトコル バージョン

1

の 通信の概要

(1)

送信

計算機

Alice

共 共

共 共

公暗 公暗

送信

共通鍵を生成

送信する

公開鍵暗号で 共通鍵を復号 公

秘 公

共通鍵暗号を使用し て、今後の通信を行う

Alice

Bob

に平文を送りたい

(8)

43/41

片方はホスト鍵、もう片方はサーバー鍵である

はじめて通信した際、利用者はホスト鍵を保存して おく。

2

回目以降、保存しておいたホスト鍵と送られてきた ホスト鍵を比較する。

ssh

プロトコル バージョン

1

2

本の鍵

秘 公

ホスト鍵 サーバー鍵

定期的に 作り直す 基本的に

ずっと一緒

44/41

ssh

プロトコル バージョン

1

の 通信の概要

2

回目以降

(1)

計算機

Alice

公 公

前回保存しておいた ホスト鍵

45/41

ssh

プロトコル バージョン

1

の 通信の概要

2

回目以降

(2)

計算機

Alice

送信

秘 公

比較する

46/41

ssh

プロトコル バージョン

1

の 通信の概要

2

回目以降

(3)

計算機

Alice

送信

秘 公

比較する

同じだったら、前回と同じ 計算機に接続しようとしている

47/41

ssh

プロトコル バージョン

1

の 通信の概要

2

回目以降

(3)

計算機

Alice

送信

秘 公

比較する

違っていれば、前回と異なる 計算機に接続しようとしている!

なりすまし

48/41

何が守れているのか

盗聴について:

対処されている。間に盗聴者が居ても、内容が 漏れることはない。

なりすましについて:

初回に成功していれば、

2

回目以降はなりすまし に(ある程度)耐性がある。

改ざんについて:

特に対処されていないが、改ざんされても意味 のある通信にならない。

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

(9)

49/41

演習:8進数と16進数

50/41

C言語におけるk

進数

計算機は、内部では2進数で計算しています。

printf

は、値を表示するときに、

10

進数に変換して表

示する機能があります。

C

言語では、

8

進数表記や

16

進数表記で、値を表示す ることも可能です。

16進数では、10~15の値はアルファベットa~fに割り

当て(10→a, 11→b, 12→c, 13→d, 14→e, 15→f )

printf("%d¥n",135)

printf("%d¥n",135)

printf("%d %o %x¥n",135,135,135) printf("%d %o %x¥n",135,135,135)

51/41

使用例

1

#include<stdio.h>

int main(){

int test;

test=12; // 0000000000001100 printf("%d ¥n",test);

printf("%o ¥n",test);

printf("%x ¥n",test);

}

#include<stdio.h>

int main(){

int test;

test=12; // 0000000000001100 printf("%d ¥n",test);

printf("%o ¥n",test);

printf("%x ¥n",test);

}

コンパイルは

として行う。

gcc sample08a.c gcc sample08a.c

52/41

#include<stdio.h>

int main(){

int test;

test=12; // 0000000000001100 printf("%d ¥n",test);

printf("%o ¥n",test);

printf("%x ¥n",test);

}

#include<stdio.h>

int main(){

int test;

test=12; // 0000000000001100 printf("%d ¥n",test);

printf("%o ¥n",test);

printf("%x ¥n",test);

}

使用例

1

:解説

12は2進数だと 1100

で表される。

%dは10進数で表示。

12

と表示される。

%oは8進数で表示。

14と表示される。

%x

16

進数で表示。

cと表示される。

53/41

使用例

2

#include<stdio.h>

int main(){

int test;

test=1487;

printf("%d ¥n",test);

printf("%o ¥n",test);

printf("%x ¥n",test);

}

#include<stdio.h>

int main(){

int test;

test=1487;

printf("%d ¥n",test);

printf("%o ¥n",test);

printf("%x ¥n",test);

}

コンパイルは

として行う。

gcc sample08b.c gcc sample08b.c

54/41

課題の提出

以下を提出しなさい、

使用例1~2の実行結果。

使用例2において、何故、8進数と16進数だと、その ような表現になるのか、10進数から変換する過程と 共に説明しなさい。

組み込みlinuxが利用されているものに、どのような ものがあるか。

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

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

参照

関連したドキュメント

第20回 4月 知っておきたい働くときの基礎知識① 11名 第21回 5月 知っておきたい働くときの基礎知識② 11名 第22回 6月

会議名 第1回 低炭素・循環部会 第1回 自然共生部会 第1回 くらし・環境経営部会 第2回 低炭素・循環部会 第2回 自然共生部会 第2回

第1条

第7回 第8回 第9回 第10回

SFP冷却停止の可能性との情報があるな か、この情報が最も重要な情報と考えて

報告書見直し( 08/09/22 ) 点検 地震応答解析. 設備点検 地震応答解析

「今後の見通し」として定義する報告が含まれております。それらの報告はこ

当社 としま し ては 、本 事案 を大変重く 受け止めてお り、経営管 理責任 を 明確 にする とともに、再発 防止を 徹底する観 点から、下記のとお り人 事 措置 を行 う こととい