情報セキュリティ 第9回 2014年6月6日(金) 1/23 本日学ぶこと 本日の授業を通じて 信頼される第三者を用いないセキュリティについて学びます. 「Diffie-Hellman鍵交換」について,概要,考案されたときの安 全性の根拠,および中間者攻撃による脆弱性を理解します. メールやファイルを暗号化するソフトウェアである「PGP」につい て,その鍵管理・暗号化・復号の方法を学びます. 2 Diffie-Hellman鍵交換 DiffieとHellmanが1976年に考案した, 二者間で秘密の数値を共有するプロトコル RSA暗号アルゴリズムの発表(1978年)よりも早い 「鍵交換」と書かれるが,鍵そのものは交換しない. 鍵の手掛かりとなる情報を交換することで,鍵(秘密の数値) を求めている. 頭文字をとって「DH」,「DH方式」などとも呼ばれる. 3 Diffie-Hellman鍵交換の処理と通信 Alice Bob ga % p gb % p 公開値の 計算 公開値の 交換 公開値の 計算 乱数a 乱数b 共有鍵の 計算 共有鍵の 計算 gab % p 共有する値 『新版暗号技術入門―秘密の国のアリス』 p.281を改変 gab % p 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 離散対数問題(一部復習) 入力:素数p,生成元g, 正整数y 出力: y = gz % pを満たす整数z (ただし1≦z<p) 総当り法で解を見つけるのは,多項式時間アルゴリズムで はない. z=1,2,... と解の候補を試すと,解が出るまでのべき剰余計算回 数の期待値は,おおよそ p/2.すなわち p に比例する. 離散対数問題の入力サイズは,p のビット長 |p|≒log2p によっ て決まる. よって,時間計算量は O(p) = O(2|p|) であり,多項式時間では ない. 「gがpの生成元である」の必要十分条件 g % p,g2 % p,…,gp-2 % p がどれも異なる. g % p,g2 % p,…,gp-2 % p がいずれも1ではない. p-1の素因数であるすべてqに対して,g(p-1)/q % p ≠ 1 6 中間者攻撃 カレーライス ください ハヤシライス お願いします (悪意ある) ウエイター 客 カレーライス どうぞ 料理人 ハヤシライス できたよ Diffie-Hellman鍵交換は 中間者攻撃に対する脆弱性を有する 7 Diffie-Hellman鍵交換に中間者攻撃を適用すると(1) Alice ga % p Mallory 公開値の 交換 gm % p Bob 公開値の 交換 gb % p 公開値の 計算 公開値の 計算 公開値の 計算 乱数a 乱数m 乱数b 共有鍵の 計算 共有鍵の 計算 共有鍵の 計算 共有 gam % p gam % p gbm % p 共有 gbm % p 8 Diffie-Hellman鍵交換に中間者攻撃を適用すると(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 9 Diffie-Hellman鍵交換に中間者攻撃を適用すると(3) AliceとMalloryはgam % pを共有し, BobとMalloryはgbm % pを共有する. 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 α 10 Diffie-Hellman鍵交換の補足 実用化されている「Diffie-Hellman鍵交換に基づく情報共有 法」では,中間者攻撃の問題に対応している(RFC 2631). 11 PGPとは Pretty Good Privacy(たいへんよいプライバシー)の略 Philip Zimmermannが開発した暗号化ソフトウェア できること メールやファイルの暗号化と復号 通信の暗号化は ハイブリッド暗号 できない 対称暗号 メールやファイルのディジタル署名とその検証 公開鍵,プライベート鍵の管理 認証局はなく,信頼の網(web of trust)モデルで運用 GnuPG (Gnu Privacy Guard)は,OpenPGP (RFC 4880) という仕様に基づいて作成されたフリーソフトウェア 12 PGPの鍵リング(key ring) 各利用者が鍵を管理 それぞれの鍵は,作成者も鍵長も暗号アルゴリズムも様々 [email protected]の鍵は,誰でも生成可能 GnuPGでは,~/.gnupg 以下のファイル 13 GnuPGで行う操作(1) 自分の鍵(公開鍵&プライベート鍵) パスフレーズを鍵とした 対称暗号により ファイル化されている 鍵ペア生成 失効証明書(破棄証明書)の作成 公開鍵暗号による復号 署名(ファイル,他人の鍵) 他人の鍵(公開鍵) インポート 署名 信頼度設定 公開鍵暗号による暗号化 署名の検証 公開鍵を使う前に, 自分の鍵で署名 しなければならない 14 GnuPGで行う操作(2) 鍵リング 鍵の書き出し(テキスト化) 鍵のインポート・削除 鍵一覧・fingerprint 公開鍵サーバへ鍵を送受信 その他 公開鍵サーバで鍵の検索 対称暗号による暗号化と復号(鍵としてパスフレーズを与える) 15 PGPのインポート(import) 鍵を鍵リングに取り込むこと 鍵の入手方法は… 主に他人の公開鍵 自分の鍵(公開鍵&プライベート鍵)は, 鍵ペア生成で自動的にインポートされる 失効証明書(破棄証明書)をインポートすることも 本人,または信頼できる人からファイルで インターネットで,公開鍵サーバ(keyserver)から インポートの後は? まず①正当性を確認,②自分の鍵で署名,③信頼度設定 そうすれば,暗号化や,署名の検証ができる. 16 公開鍵をインポートしたら 他人の公開鍵をインポートしただけでは その鍵が正当なものかわからない. その鍵で暗号化・署名の検証などをしてはいけない. 正当性の確認:所有する鍵のfingerprint(指紋)を求め, 別に公開されているfingerprintと照合する. 「Takehiko Murakawa <[email protected]>」 (ID: 3BDCC722)のfingerprintは CB1A 7259 2F70 D731 E633 0AA3 983E 47FB 3BDC C722 自分のプライベート鍵で「鍵に署名」をつけると,自分はその 鍵を信頼したことになる. 信頼度(所有者信頼)は,第三者がその鍵を信頼するための 情報 信頼度情報を,公開鍵サーバに送ることができる. 17 鍵の破棄 他人の鍵は? 鍵リングから鍵を削除するコマンドを実行する 自分の鍵は? 鍵ペア生成後すぐ,失効証明書を作成しておく 不要になったほかに,漏洩(compromise)の疑惑があれば, 失効証明書を鍵リングにインポートしたのち, 公開鍵サーバに送信すればよい. (鍵リングからの削除はしない.) 18 PGPの処理~鍵生成 暗号化方式,ビット長,鍵の有効期間,名前,メールアドレス, パスフレーズ(2回)を入力する. 鍵ペアと鍵IDは,乱数を用いて生成される. マウスを動かしていると,より良質の乱数ができる. 19 PGPの処理~公開鍵暗号で暗号化 ハイブリッド暗号(第8回授業)を用いる. メッセージを直接暗号化するための鍵(セッション鍵)を生成 する. メッセージは暗号化の前に圧縮する. メールで送る場合,最後にバイナリデータをテキスト化 (Armor,RFC 4880)する. 『新版暗号技術入門―秘密の国のアリス』 p.324 20 PGPの処理~公開鍵暗号で復号 ハイブリッド暗号の逆順となる. 復号鍵は,計算機内では対称暗号で暗号化して保存されて いる.これを利用可能にするため,ユーザがパスフレーズを 入力する. したがって,1回の復号の中に, 復号鍵を取り出すための復号(対称暗号) セッション鍵を取り出すための復号(公開鍵暗号) メッセージを取り出すための復号(対称暗号) が行われる. 『新版暗号技術入門―秘密の国のアリス』 p.326 21 PGPの処理~対称暗号で暗号化・復号 暗号化・復号したいファイル名を入力に与える. 実行中にパスフレーズを入力する. 暗号化では2回,復号では1回 鍵生成時や,公開鍵暗号での復号時に入力する値とは異なる. そもそも,鍵生成や鍵のインポートをしなくても,対称暗号は使 用可能 22 本日のまとめテスト ① 以下の下線部を訂正しなさい. Diffie-Hellman鍵交換の安全性の根拠は,中間者攻撃の困難 性による. ② あなたがメールを安全(セキュア)にやりとりしたいとき, 「通信を暗号化する」と「それぞれのメールを暗号化する」の うちどちらがよいか,理由とともに答えなさい. 「両方」は禁止 授業メモに記入して提出すること. 23 E
© Copyright 2024 ExpyDoc