Download presentation
Presentation is loading. Please wait.
1
q q 情報セキュリティ 第10回:2005年6月17日(金) q q
2
今後の予定 第10回:6月17日 第11回:6月24日 第12回:7月1日 第13回:7月8日 第14回:7月15日 第15回:7月22日
落ち穂拾い(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は安全でない. 略証:
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は安全でない. 略証:
NとEを既知とし,ここから「任意の整数値Mに対して (ME mod N)D mod N = M」となる整数Dを計算できればよい. 整数n1 を2≦n1<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
PGPの鍵リング(key ring) 各利用者が鍵を管理 それぞれの鍵は,作成者も鍵長も暗号アルゴリズムも様々
GnuPGでは,~/.gnupg 以下のファイル
7
GnuPGで行う操作(1) 自分の鍵(公開鍵&プライベート鍵) 他人の鍵(公開鍵) 鍵ペア生成 破棄証明書の作成 公開鍵暗号による復号
署名(ファイル,他人の鍵) 他人の鍵(公開鍵) インポート 署名 信頼度設定 公開鍵暗号による暗号化 署名の検証
8
GnuPGで行う操作(2) 鍵リング その他 使い方は,ここをブックマーク! 鍵の書き出し(テキスト化) 鍵のインポート・削除
鍵一覧・fingerprint 公開鍵サーバへ鍵を送受信 その他 公開鍵サーバで鍵の検索 対称暗号による暗号化と復号 使い方は,ここをブックマーク!
9
PGPのインポート(import) 鍵を鍵リングに取り込むこと 鍵の入手方法は… インポートの後は? 主に他人の公開鍵
自分の鍵(公開鍵&プライベート鍵)は, 鍵ペア生成で自動的にインポートされる 破棄証明書をインポートすることも 鍵の入手方法は… 本人,または信頼できる人からファイルで インターネットで,公開鍵サーバ(keyserver)から インポートの後は? まず①正当性を確認,②自分の鍵で署名,③信頼度設定 そうすれば,暗号化や,署名の検証ができる.
10
公開鍵をインポートしたら 他人の公開鍵をインポートしただけでは
その鍵が正当なものかわからない. その鍵で暗号化・署名の検証などをしてはいけない. 正当性の確認:所有する鍵のfingerprintを求め, 別に公開されているfingerprintと照合する. 「Takehiko Murakawa 3A423EBE)のfingerprintは 564B 8D8E C58A 0D F3E9 0D23 DE18 3A42 3EBE 自分のプライベート鍵で「鍵に署名」をつけると,自分はその鍵を信頼したことになる. 信頼度(所有者信頼)は,第三者がその鍵を信頼するための情報 信頼度情報を,公開鍵サーバに送ることができる.
11
鍵の破棄 鍵リングから鍵を削除するコマンドを実行する 自分の鍵は? 鍵ペア生成後すぐ,破棄証明書を作成しておく
不要になったほかに,漏洩(compromise)の疑惑があれば, 破棄証明書を鍵リングにインポートしたのち, 公開鍵サーバに送信すればよい. (鍵リングからの削除はしないほうがよい.)
12
Windowsで利用可能なGnuPG Cygwinのgpgコマンド Windows Privacy Tools (WinPT)
13
PGPで暗号化・復号のできるメールクライアント
Windows用 Datula (シェアウェア) Becky! (シェアウェア) Thunderbird + enigmail など Linux用 Sylpheed (6階演習室ではできない) Emacs + Mew
14
PGPで暗号化メールを送ってみたい人へ 第2回レポートを, 「Takehiko Murakawa 期限は,Thu, 23 Jun :00: まで.それ以降のメールは平文で送ること. 復号できたら,その旨返信するとともに,加点します. 復号できなかったら,再送依頼のメールを送ります. メールクライアントで暗号化するのでも,レポートのファイル (doc, pdf, txt)を暗号化して添付するのでもかまいません. ディジタル署名はつけないでください.
15
SSH リモートホストとの通信を安全に行うためのプロトコル telnet, rlogin, ftp などのコマンドを置き換える
クライアントは,サーバ(リモートホスト)の認証をする サーバは,ユーザの認証をする telnet, rlogin, ftp などのコマンドを置き換える SSL/TLSやVPN (Virtual Private Network)とは別物 ローカルホスト (SSHクライアント) リモートホスト (SSHサーバ)
16
SSHでできること リモートログイン…ssh, slogin ファイルのコピー…scp FTPと似た方法でファイルをコピー…sftp
ポートの転送(ポートフォワーディング) ファイルのコピー…scp FTPと似た方法でファイルをコピー…sftp
17
SSHの種類 製品かフリーか プロトコルバージョン SSH Tectia…SSH社の製品
OpenSSH…フリー.Linuxでも広く使われている プロトコルバージョン SSH1…安全性に問題があり,使われない SSH2…広く使われている 製品のバージョンとは別!
18
準備 リモートホストでSSHサーバを起動させておく TCPのポート番号22にアクセスできるようにしておく
19
SSH2プロトコルの概要 クライアント サーバ 接続要求 バージョン番号通知,ID交換 鍵交換,ホスト認証,暗号化情報の交換
セッション暗号化,ユーザ認証 データ通信 『情報セキュリティプロフェッショナル総合教科書』p.374より(一部改変)
20
SSH2で使用される暗号アルゴリズム 公開鍵認証 鍵の共有 認証後のデータ通信 データ通信の暗号化は公開鍵暗号ではなく対称暗号
RSAまたはDSAによるディジタル署名 鍵の共有 Diffie-Hellman鍵交換の修正版 認証後のデータ通信 AES / 3DES / Blowfish / Arcfour / CAST などから選ぶ データ通信の暗号化は公開鍵暗号ではなく対称暗号 鍵の共有や公開鍵認証で乱数を使うが,チャレンジ-レスポンス方式ではない(SSH1では使用する)
21
ホスト認証(利用者から見た サーバの認証)の注意点
サーバ公開鍵について ホスト認証(利用者から見た サーバの認証)の注意点 サーバ公開鍵(サーバのホスト公開鍵)は,SSHサーバが最初に1回だけ生成する.(ユーザは生成しない.) サーバ公開鍵の送付時にMan-in-the-middle攻撃が可能! 最初に送付されるサーバ公開鍵は,ユーザの目で確認して,yes/noを選ばなければならない. 確認方法…fingerprintの照合 自己責任で「yes」を選ぶこともある サーバ公開鍵を,何らかのメディアで転送してもよい. サーバ公開鍵は ~/.ssh/known_hosts に保存される. それ以降の同じサーバとの接続では,自動的に確認される. サーバが鍵を作り直したら,クライアント側は古い公開鍵情報を削除しなければならない.
22
ユーザ認証(サーバから見た 利用者の認証)の注意点
ユーザ認証の方法 ユーザ認証(サーバから見た 利用者の認証)の注意点 パスワード認証 ログインごとにパスワードを入力 従来のリモートログイン(telnet, ftpなど)を安全に行える 字数が少なく安全性にやや不安 公開鍵認証 ログインごとに,ログイン用パスワードとは異なるパスフレーズ(passphrase)を入力 エージェント(ssh-agentコマンド)の利用により,パスフレーズ入力の省力化が可能 あらかじめローカルホストで鍵ペアを生成し,リモートホストの ~/.ssh/authorized_keys に公開鍵を登録しておく. どの認証方法を許可するかは,/etc/sshd/sshd_config に 記載する(編集にはroot権限が必要).
23
ポート転送 学外から「ssh -L 10110:POPサーバ:110 リモートホスト」を実行すると
リモートホストにログインし,コマンド実行などができる. ローカルホストでは,「POPサーバ:25」に代えて「localhost:10110」でメール受信(POP)が安全にできる. リモートホスト-POPサーバ間は暗号化されていない POP サーバ ローカル ホスト リモート ホスト 「ssh -L ポート番号:localhost:ポート番号 リモートホスト」 が有用なことも
24
Windowsで利用可能なSSHクライアント
Cygwinのsshコマンド UNIX上のコマンドとほぼ同じ動作 PuTTY リモートログイン GUIで各種設定 WinSCP GUIでファイル送受信
25
ファイル構成(Linuxの場合) GnuPG SSH
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のscpコマンドでLinux計算機にコピー パスワード認証 CygwinのsloginコマンドでLinux計算機にログイン ここでも,パスワード認証 リモートホストのシェル上で,gpgコマンドによりファイルを 復号 プライベート鍵を使うためのパスフレーズを入力 復号されたファイルが同じものかを,それぞれで md5sumコマンドを実行して確認
27
まとめ PGPは,メールやファイルを暗号化するためのソフトウェア SSHは,通信を暗号化するためのプロトコル
最低1回は,人手による鍵の正当性確認が行われる.
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.