27
情情情情情情情情 情情情情情情情情 情情 情 情 情 情 情情 情情 情 情情 情情 10:2005617()

情報セキュリティ

Embed Size (px)

DESCRIPTION

q. q. 情報セキュリティ. 第10回:2005年6月17日(金). q. q. 今後の予定. 第10回:6月17日 落ち穂拾い(1) 暗号化ソフトウェア: PGP と GnuPG , SSH 第11回:6月24日 サーバセキュリティ 第12回:7月1日 理論:計算論,暗号プロトコル 第13回:7月8日 企業・組織のセキュリティ:ISMS,個人情報保護法 第14回:7月15日 落ち穂拾い(2),おさらい問題 第15回:7月22日 試験. 落ち穂拾い:RSAの安全性(1). 素因数分解が効率よく行えるなら,RSAは安全でない. 略証: - PowerPoint PPT Presentation

Citation preview

情報セキュリティ情報セキュリティ

第10回:2005年6月17日(金)

2

今後の予定今後の予定

第10回:6月17日 落ち穂拾い(1) 暗号化ソフトウェア: PGPと GnuPG, SSH

第11回:6月24日 サーバセキュリティ

第12回:7月1日 理論:計算論,暗号プロトコル

第13回:7月8日 企業・組織のセキュリティ:ISMS,個人情報保護法

第14回:7月15日 落ち穂拾い(2),おさらい問題

第15回:7月22日 試験

3

落ち穂拾い:RSAの安全性(1)落ち穂拾い:RSAの安全性(1)

素因数分解が効率よく行えるなら,RSAは安全でない. 略証:

Nと Eを既知とし,(素因数分解により) Nの素因数 pが知られているときに, Dを計算できればよい.

q=N/p, L=lcm(p-1,q-1) とし, aE+bL=1を満たす整数の組 (a,b)を拡張ユークリッド法により求めれば, D = a mod L.

4

落ち穂拾い:RSAの安全性(2)落ち穂拾い:RSAの安全性(2)

離散対数問題を効率よく解けるなら,RSAは安全でない.

略証: Nと Eを既知とし,ここから「任意の整数値Mに対して

(ME mod N)D mod N = M」となる整数 Dを計算できればよい.

整数 n1 を 2 n≦ 1< N の範囲で任意に選び, n2=n1E mod N

を計算してから, n2x mod N = n1を満たす整数 xを求める

と(離散対数問題), D=xかもしれない. n1が Nの生成元であれば, D=xとしてよい. n1が Nの生成元でなければ,複数の解があり得るが,

n1 をいくつか選んで計算すれば, Dを特定できる可能性が高くなる.

5

本日学ぶこと本日学ぶこと

暗号化ソフトウェア PGP (Pretty Good Privacy) と

GnuPG (GNU Privacy Guard) …メールやファイルの暗号化

SSH (Secure SHell) …通信の暗号化

6

PGPPGPの鍵リング(の鍵リング( key ringkey ring ))

各利用者が鍵を管理 それぞれの鍵は,作成者も鍵長も暗号アルゴリズムも様々 [email protected]の鍵は,だれでも生成可能

GnuPGでは, ~/.gnupg 以下のファイル

7

GnuPGGnuPGで行う操作(1)で行う操作(1)

自分の鍵(公開鍵&プライベート鍵) 鍵ペア生成 破棄証明書の作成 公開鍵暗号による復号 署名(ファイル,他人の鍵)

他人の鍵(公開鍵) インポート 署名 信頼度設定 公開鍵暗号による暗号化 署名の検証

8

GnuPGGnuPGで行う操作(2)で行う操作(2)

鍵リング 鍵の書き出し(テキスト化) 鍵のインポート・削除 鍵一覧・ fingerprint 公開鍵サーバへ鍵を送受信

その他 公開鍵サーバで鍵の検索 対称暗号による暗号化と復号

使い方は,ここをブックマーク! http://seorg.moo.jp/nateha/index.php?GnuPG

9

PGPPGPのインポート(のインポート( importimport ))

鍵を鍵リングに取り込むこと 主に他人の公開鍵 自分の鍵(公開鍵&プライベート鍵)は,鍵ペア生成で自動的にインポートされる

破棄証明書をインポートすることも 鍵の入手方法は…

本人,または信頼できる人からファイルで インターネットで,公開鍵サーバ( keyserver)から

インポートの後は? まず①正当性を確認,②自分の鍵で署名,③信頼度設定 そうすれば,暗号化や,署名の検証ができる.

10

公開鍵をインポートしたら公開鍵をインポートしたら

他人の公開鍵をインポートしただけでは その鍵が正当なものかわからない. その鍵で暗号化・署名の検証などをしてはいけない.

正当性の確認:所有する鍵の fingerprintを求め,別に公開されている fingerprintと照合する. 「 Takehiko Murakawa <[email protected]

>」( ID: 3A423EBE)の fingerprintは564B 8D8E C58A 0D78 8294 F3E9 0D23 DE18 3A42 3EBE

自分のプライベート鍵で「鍵に署名」をつけると,自分はその鍵を信頼したことになる.

信頼度(所有者信頼)は,第三者がその鍵を信頼するための情報 信頼度情報を,公開鍵サーバに送ることができる.

11

鍵の破棄鍵の破棄

鍵リングから鍵を削除するコマンドを実行する 自分の鍵は?

鍵ペア生成後すぐ,破棄証明書を作成しておく 不要になったほかに,漏洩( compromise)の疑惑があれば,破棄証明書を鍵リングにインポートしたのち,公開鍵サーバに送信すればよい.(鍵リングからの削除はしないほうがよい.)

12

WindowsWindowsで利用可能なで利用可能な GnuPGGnuPG

Cygwinの gpgコマンド Windows Privacy Tools (WinPT)

13

PGPPGPで暗号化・復号のできるメールクライアントで暗号化・復号のできるメールクライアント

Windows用 Datula (シェアウェア) Becky! (シェアウェア) Thunderbird + enigmail など

Linux用 Sylpheed (6階演習室ではできない) Emacs + Mew

14

PGPPGPで暗号化メールを送ってみたい人へで暗号化メールを送ってみたい人へ

第2回レポートを, 「 Takehiko Murakawa <[email protected]>」の鍵で暗号化してメールで送ってかまいません. 期限は, Thu, 23 Jun 2005 12:00:00 +0900まで.それ以

降のメールは平文で送ること. 復号できたら,その旨返信するとともに,加点します. 復号できなかったら,再送依頼のメールを送ります.

メールクライアントで暗号化するのでも,レポートのファイル(doc, pdf, txt)を暗号化して添付するのでもかまいません.

ディジタル署名はつけないでください.

15

SSHSSH

リモートホストとの通信を安全に行うためのプロトコル クライアントは,サーバ(リモートホスト)の認証をする サーバは,ユーザの認証をする

telnet, rlogin, ftp などのコマンドを置き換える SSL/TLSや VPN (Virtual Private Network)とは別物

ローカルホストローカルホスト(SSHクライアント)

リモートホストリモートホスト(SSHサーバ)

16

SSHSSHでできることでできること

リモートログイン… ssh, slogin ポートの転送(ポートフォワーディング)

ファイルのコピー… scp FTPと似た方法でファイルをコピー… sftp

17

SSHSSHの種類の種類

製品かフリーか SSH Tectia…SSH 社の製品 OpenSSH…フリー. Linuxでも広く使われている

プロトコルバージョン SSH1…安全性に問題があり,使われない SSH2… 広く使われている 製品のバージョンとは別!

18

準備準備

リモートホストで SSHサーバを起動させておく TCPのポート番号 22にアクセスできるようにしておく

19

SSH2SSH2プロトコルの概要プロトコルの概要

『情報セキュリティプロフェッショナル総合教科書』 p.374より(一部改変)

クライアントクライアント サーバサーバ

接続要求

バージョン番号通知,ID交換

鍵交換,ホスト認証,暗号化情報の交換

セッション暗号化,ユーザ認証

データ通信

20

SSH2SSH2で使用される暗号アルゴリズムで使用される暗号アルゴリズム

公開鍵認証 RSAまたは DSAによるディジタル署名

鍵の共有 Diffie-Hellman鍵交換の修正版

認証後のデータ通信 AES / 3DES / Blowfish / Arcfour / CAST などから選ぶ

データ通信の暗号化は公開鍵暗号ではなく対称暗号 鍵の共有や公開鍵認証で乱数を使うが,チャレンジ -レスポンス方式ではない( SSH1では使用する)

21

サーバ公開鍵についてサーバ公開鍵について

サーバ公開鍵(サーバのホスト公開鍵)は,SSHサーバが最初に1回だけ生成する.(ユーザは生成しない.)

サーバ公開鍵の送付時にMan-in-the-middle 攻撃が可能! 最初に送付されるサーバ公開鍵は,ユーザの目で確認して, yes/noを選ばなければならない. 確認方法… fingerprintの照合 自己責任で「 yes」を選ぶこともある サーバ公開鍵を,何らかのメディアで転送してもよい.

サーバ公開鍵は ~/.ssh/known_hosts~/.ssh/known_hosts に保存される. それ以降の同じサーバとの接続では,自動的に確認される. サーバが鍵を作り直したら,クライアント側は古い公開鍵情報を削除しなければならない.

ホスト認証(利用者から見たサーバの認証)の注意点

22

ユーザ認証の方法ユーザ認証の方法

パスワード認証 ログインごとにパスワードを入力 従来のリモートログイン( telnet, ftpなど)を安全に行える 字数が少なく安全性にやや不安

公開鍵認証 ログインごとに,ログイン用パスワードとは異なるパスフレーズ( passphrase)を入力

エージェント( ssh-agentコマンド)の利用により,パスフレーズ入力の省力化が可能

あらかじめローカルホストで鍵ペアを生成し,リモートホストの ~/.ssh/authorized_keys~/.ssh/authorized_keys に公開鍵を登録しておく.

どの認証方法を許可するかは, /etc/sshd/sshd_config/etc/sshd/sshd_config に記載する(編集には root 権限が必要).

ユーザ認証(サーバから見た利用者の認証)の注意点

23

ポート転送ポート転送

学外から「 ssh   -L   10110: POPサーバ :110  リモートホスト」を実行すると リモートホストにログインし,コマンド実行などができる. ローカルホストでは,「POPサーバ :25」に代えて「 localhost:10110」でメール受信( POP)が安全にできる. リモートホスト - POPサーバ間は暗号化されていない

ローカルローカルホストホスト

リモートリモートホストホスト

POPサーバ

「 ssh   -L  ポート番号ポート番号 :localhostlocalhost:ポート番号ポート番号 リモートホストリモートホスト」 が有用なことも

24

WindowsWindowsで利用可能なで利用可能な SSHSSHクライアントクライアント

Cygwinの sshコマンド UNIX 上のコマンドとほぼ同じ動作

PuTTY リモートログイン GUIで各種設定

WinSCP GUIでファイル送受信

25

ファイル構成(ファイル構成( LinuxLinux の場合)の場合)

GnuPG ~/.gnupg

gpg.conf pubring.gpg random_seed secring.gpg trustdb.gpg

SSH ~/.ssh

config known_hosts authorized_keys id_rsa.pub id_rsa

いずれのディレクトリも,パーミッションは 700 (他のユーザからは読み書き実行できない)にする. 各ファイルのパーミッションは 600 が望ましい.

詳細は,man gpg と man ssh で

26

暗号化通信の実演暗号化通信の実演

① 暗号化したいファイルを右クリックし,WinPTの機能で暗号化

パスワードやパスフレーズは入力しない② Cygwinの scpコマンドで Linux計算機にコピー

パスワード認証③ Cygwinの sloginコマンドで Linux計算機にログイン

ここでも,パスワード認証④ リモートホストのシェル上で, gpgコマンドによりファイルを復号

プライベート鍵を使うためのパスフレーズを入力⑤ 復号されたファイルが同じものかを,それぞれで

md5sumコマンドを実行して確認

27

まとめまとめ

PGPは,メールやファイルを暗号化するためのソフトウェア

SSHは,通信を暗号化するためのプロトコル 最低1回は,人手による鍵の正当性確認が行われる.