q q 情報セキュリティ 第9回:2007年6月15日(金) q q 本日学ぶこと “信頼される第三者”を用いないセキュリティ q q Diffie-Hellman鍵交換 PGP,GnuPG Diffie-Hellman鍵交換により,認証局なしに鍵となる値を共 有できる.ただしman-in-the-middle攻撃に弱い. PGPでは,誰をどの程度信頼するかは各ユーザが設定する. 2 Diffie-Hellman鍵交換 Whitfield DiffieとMartin Hellmanが1976年に考案した, 二者間で秘密の数値を共有するプロトコル q RSA暗号アルゴリズムの 発表(1978年)よりも早い 一人で実行する手順は アルゴリズム 二人以上で実行する手 順はプロトコル 「鍵交換」と書かれるが,直接鍵を交換 してはいない.鍵の手掛かりとなる情報を交換することで,鍵 (秘密の数値)を求める. 頭文字をとって「DH」,「DH方式」などとも呼ばれる. 3 Diffie-Hellman鍵交換の処理と通信 Alice Bob GA % P GB % P 公開値の 計算 公開値の 交換 公開値の 計算 乱数A 乱数B 共有鍵の 計算 共有鍵の 計算 GAB % P 共有する値 GAB % P 図の出典:『暗号技術入門―秘密の国のアリス』 p.281を改変 4 Diffie-Hellman鍵交換の数学的背景 公開情報:素数P,生成元G GはPに依存する. Aliceが秘密に持つ情報:A Gは必ずしも素数ではない. Bobが秘密に持つ情報:B Alice→Bob:GA % P Bob→Alice:GB % P Aliceの鍵生成:(GB % P)A % P = GAB % P Bobの鍵生成:(GA % P)B % P = GAB % P AliceとBobの処理は,乱数生成・べき剰余のみなので,高速 P,G,GA % P,GB % Pを盗聴しても,そこからAやBを得る ことはできない(離散対数問題を解くことと等価)なので安全 であると言える. 5 man-in-the-middle攻撃 カレーライス ください ハヤシライス お願いします (悪意ある) ウエイター 客 カレーライス どうぞ 料理人 ハヤシライス できたよ 6 Diffie-Hellman鍵交換に man-in-the-middle攻撃を適用すると(1) Alice Mallory Bob GA % P GM % P GB % P 公開値の 交換 公開値の 交換 公開値の 計算 公開値の 計算 公開値の 計算 乱数A 乱数M 乱数B 共有鍵の 計算 共有鍵の 計算 共有鍵の 計算 共有 GAM % P GAM % P GBM % P 共有 GBM % P 7 Diffie-Hellman鍵交換に Man-in-the-middle攻撃を適用すると(2) 公開情報:素数P,生成元G Alice,Bob,Malloryが秘密に持つ情報:A, B, M [Alice] → GA % P → [Mallory] → GM % P → [Bob] [Bob] → GB % P → [Mallory] → GM % P → [Alice] Aliceの鍵生成:(GM % P)A % P = GAM % P Bobの鍵生成:(GM % P)B % P = GBM % P Malloryの鍵生成1:(GA % P)M % P = GAM % P Malloryの鍵生成2:(GB % P)M % P = GBM % P 8 Diffie-Hellman鍵交換に man-in-the-middle攻撃を適用すると(3) AliceとMalloryはGAM % Pを共有し, BobとMalloryはGBM % Pを共有する. q AliceとBobの間では情報を共有していないが, Aliceは,BobとGAM % Pを共有していると思っている. Aliceが,GAM % Pを鍵として暗号文を作り,Bobに送ったら, Malloryはそれを受け取ってGAM % Pで復号し, GBM % Pで 暗号化したものをBobに渡す. AliceとBobの間で秘密にしたい通信内容が,Mallory にも知れてしまう! Alice α E(GBM%P,α) E(GAM%P,α) α Bob Mallory α 9 Diffie-Hellman鍵交換の補足 実用化されている「Diffie-Hellman鍵交換に基づく情報共有 法」では,man-in-the-middle攻撃の問題に対応している. 10 PGPとは Pretty Good Privacy(たいへんよいプライバシー)の略 Philip Zimmermannが開発した暗号化ソフトウェア できること q q q メールやファイルの暗号化と復号 通信の暗号化はできない ハイブリッド暗号 ⇒SSH, SSL 対称暗号 メールやファイルのディジタル署名とその検証 公開鍵,プライベート鍵の管理 GnuPG (Gnu Privacy Guard)は,OpenPGPという仕様に 基づいて作成されたフリーソフトウェア 11 PGPの鍵リング(key ring) 各利用者が鍵を管理 q q q それぞれの鍵は,作成者も鍵長も暗号アルゴリズムも様々 [email protected]の鍵は,だれでも生成可能 GnuPGでは,~/.gnupg 以下のファイル 12 GnuPGで行う操作(1) 自分の鍵(公開鍵&プライベート鍵) q q q q 鍵ペア生成 破棄証明書の作成 公開鍵暗号による復号 署名(ファイル,他人の鍵) 他人の鍵(公開鍵) q q q q q インポート 署名 信頼度設定 公開鍵暗号による暗号化 署名の検証 13 GnuPGで行う操作(2) 鍵リング q q q q 鍵の書き出し(テキスト化) 鍵のインポート・削除 鍵一覧・fingerprint 公開鍵サーバへ鍵を送受信 その他 q q 公開鍵サーバで鍵の検索 対称暗号による暗号化と復号(鍵としてパスフレーズを与える) 14 PGPのインポート(import) 鍵を鍵リングに取り込むこと q q q 鍵の入手方法は… q q 主に他人の公開鍵 自分の鍵(公開鍵&プライベート鍵)は, 鍵ペア生成で自動的にインポートされる 破棄証明書をインポートすることも 本人,または信頼できる人からファイルで インターネットで,公開鍵サーバ(keyserver)から インポートの後は? q q まず①正当性を確認,②自分の鍵で署名,③信頼度設定 そうすれば,暗号化や,署名の検証ができる. 15 公開鍵をインポートしたら 他人の公開鍵をインポートしただけでは q q その鍵が正当なものかわからない. その鍵で暗号化・署名の検証などをしてはいけない. 正当性の確認:所有する鍵のfingerprint(指紋)を求め, 別に公開されているfingerprintと照合する. q 「Takehiko Murakawa <[email protected]>」 (ID: 3A423EBE)のfingerprintは 564B 8D8E C58A 0D78 8294 F3E9 0D23 DE18 3A42 3EBE 自分のプライベート鍵で「鍵に署名」をつけると,自分はその 鍵を信頼したことになる. 信頼度(所有者信頼)は,第三者がその鍵を信頼するための 情報 q 信頼度情報を,公開鍵サーバに送ることができる. 16 鍵の破棄 鍵リングから鍵を削除するコマンドを実行する 自分の鍵は? q q 鍵ペア生成後すぐ,破棄証明書を作成しておく 不要になったほかに,漏洩(compromise)の疑惑があれば, 破棄証明書を鍵束にインポートしたのち, 公開鍵サーバに送信すればよい. (鍵リングからの削除はしないほうがよい.) 17 PGPの処理~鍵生成 暗号化方式,ビット長,鍵の有効期間,名前,メールアドレス, パスフレーズ(2回)を入力する. 鍵ペアと鍵IDは,乱数を用いて生成される. q マウスを動かしていると,より良質の乱数ができる. 18 PGPの処理~公開鍵暗号で暗号化 ハイブリッド暗号(前回授業)を行う. メッセージを直接暗号化するための鍵(セッション鍵)を生成 する. メッセージは暗号化の前に圧縮する. メールで送る場合,最後にバイナリデータをテキスト化 (Armor)する. 19 PGPの処理~公開鍵暗号で復号 ハイブリッド暗号の逆順となる. 復号鍵は,計算機内では対称暗号で暗号化して保存されて いる.これを利用可能にするため,ユーザがパスフレーズを 入力する. したがって,1回の復号の中に, q q q 復号鍵を取り出すための復号(対称暗号) セッション鍵を取り出すための復号(公開鍵暗号) メッセージを取り出すための復号(対称暗号) が行われる. 20 PGPの処理~対称暗号で暗号化・復号 暗号化・復号したいファイル名を入力に与える. 実行中にパスフレーズを入力する. q q 暗号化では2回,復号では1回 鍵生成時や,公開鍵暗号での復号時に入力する値とは異なる. そもそも,鍵生成や鍵のインポートをしなくても,対称暗号は使 用可能 21 PGPを手っ取り早く使いたいなら Windows q Linux q GnuPG Win32版 + WinPT gpgコマンド メールクライアント q q Firefox + FireGPG + GMail Thunderbird + enigmail 22 PGPで暗号化メールを送ってみたい人へ メールを 「Takehiko Murakawa <[email protected]>」 (ID: 3A423EBE)の 鍵で暗号化して送ってかまいません. q q q q うまく復号できたら,その内容に返信します. 復号できなかったら,その旨返信します. ディジタル署名はつけないでください. 第2回レポートの答案を暗号化して送らないでください. 23
© Copyright 2024 ExpyDoc