Comments
Description
Transcript
情報セキュリティ
情報セキュリティ 第2回:2007年4月20日(金) 本日学ぶこと パスワードと認証 ユーザ認証の基本構成 パスワード解析方法と対策 パスワード管理法 パスワード以外のユーザ認証 2 認証(Authentication)とは ユーザ認証とは メッセージ認証とは ユーザ名とパスワードなどの組み合わせを使って,コンピュータ を利用しようとしている人にその権利があるかどうかや,その人 が名乗っている本人かどうかなどを確認すること 「メッセージが正しい送信者からのものである」という性質 情報セキュリティの三大要素のうち,完全性に関わる要素 3 ユーザ認証とパスワード ユーザ認証のモデル Prover (証明者) ② OK/NG Verifier (認証者) ユーザ情報として「個人識別情報」と「パスワード」の組を用 いて,個人を識別する ①ユーザ情報を入力 入力時,パスワードは画面上に表示されない 個人識別情報は,システムが提供する パスワードは,システムが提供するものもあれば,利用者が設 定するものもある どのようなパスワードを使用すれば安全か? 4 パスワード解析の前提 敵対者の目標:他人の個人識別情報(ユーザ名,口座番号 など)および認証方法を既知として,そこから,認証に必要な パスワードを発見すること Cracker (敵対者) ①Proverの ユーザ情報を入力 ② OK/NG Verifier (認証者) 認証方法 敵対者が同じ認証方法を所有する:UNIXのパスワードクラック いくらでも試せる 敵対者は認証方法を所有しない:Webサーバ,銀行ATM 失敗するとペナルティ 5 パスワード解析の種類 ブルート・フォース・アタック(brute-force attack,総当り法) 辞書攻撃 6 ブルート・フォース・アタック すべてのパスワード候補をVerifierに送り,「当たり」が出るま で続ける 時間(安全性の尺度)は, 1回の判定時間×探索終了までの回数 探索終了までの回数は,パスワードの候補の数に比例 パスワードになり得る値の集合を「パスワード空間」 という 期待値は,パスワード空間のサイズの半分 パスワード空間が大きいほど安全 二分探索法などで 効率よく発見する ことはできない 7 数字によるパスワード(1) 銀行の暗証番号 4桁の数字:10000通り もし敵対者が認証システムを所有していて,(電子工作など で装置を作って)1秒間に100回の入力ができるなら,最大 でも100秒でパスワードが割り出せる 現実には,1回の入力が0.01秒とできないように対処してい るので,一応安全に運用されている 8桁の数字なら?:100000000通り 同様の敵対者の行動で,最大106秒…およそ11.5日 誰もが覚えていられる? 8 数字によるパスワード(2) 10文字 4文字で10000通り 8文字で100000000通り(1.00×108通り) 9 英数字によるパスワード 62文字 4文字で14776336通り 8文字で218340105584896通り(2.18×1014通り) 10 英数字と記号によるパスワード 95文字 4文字で81450625通り 8文字で6634204312890625通り(6.63×1015通り) 11 パスワード空間のサイズ:まとめ 文字数 4 5 6 数字のみ 1.00×104 1.00×105 1.00×106 7 1.00×107 8 1.00×108 1.11×104 1.11×105 1.11×106 1.11×107 1.11×108 英数字 1.48×107 9.16×108 1.50×107 9.31×108 英数字と記号 8.14×107 7.73×109 8.23×107 7.82×109 5.68×1010 7.35×1011 5.77×1010 7.43×1011 3.52×1012 6.98×1013 3.58×1012 7.06×1013 2.18×1014 6.63×1015 2.21×1014 6.70×1015 ちょうど 以内 数字のみ<英数字<英数字と記号 1文字増えるとパスワード空間がうんと大きくなる 12 (前回の補足)鍵空間 ブルート・フォース・アタックで,512ビットの鍵を特定すること ができるか? (参考書p.73, p.75より) 512ビットの鍵 = 鍵空間の大きさは 2512 鍵発見のための(非現実的な)環境 計算機1台で毎秒1020個の鍵を生成し検査できる 計算機は10100台 1020年以内に発見する 答え:できない. 1020×(366×24×60×60)×10100×1020 < 10148 2512 ≒10154 13 辞書攻撃 問題のあるパスワード 個人識別情報そのもの,または一部,または少し付加しただけ takehiko, take, takehiko1, takehi0 プライベートな情報 配偶者や恋人の名前,電話番号や生年月日 辞書に載っている単語 apple, web 辞書に載っている単語を組み合わせただけ appleweb, apple!web 辞書と,選ばれる傾向をもとに,パスワードを発見する方法 を「辞書攻撃」という ツールが存在する ブルート・フォース・アタックと別の方法で見つかってしまう! 14 パスワードの選び方 どのようなパスワードを使用すればよいか? 文字種や字数の制限があれば,それに従う UNIXのパスワードでは,英数字と記号を織り交ぜて, 6文字以上8文字以内にする 自分は思い出しやすいものにする 長ければいいってもんでもない 辞書攻撃で破られるようなパスワードは使用しない パスワードをメモしない(?) あちこちの認証システムで同一のパスワードにしない(?) 15 さらなる問題 Linuxでは,パスワードはどのように管理されている? 自分がネットワーク管理者になったら,パスワードは どのように管理する? 16 UNIXのパスワード(1) 登録 ユーザまたは 管理者が入力 パスワード: "wakayama" ランダム ソルト:"cc" 暗号化 (crypt関数) 暗号化されたパスワード: "ccwp5gV6wOumk" パスワード ファイル /etc/passwd "wakayama"を推測 するのは極めて困難 17 UNIXのパスワード(2) 認証 ユーザが入力 パスワード: "wakayama" ソルト:"cc" 暗号化されたパスワード: "ccwp5gV6wOumk" 暗号化 (crypt関数) パスワード ファイル /etc/passwd "ccwp5gV6wOumk" 等しい? 18 ソルト(salt)の役割 ソルトがないと… ユーザ名 パスワード 暗号化パスワード takehiko wakayama nNAvIrX23n2 murakawa wakayama nNAvIrX23n2 ソルトがあると… ユーザ名 パスワード ソルト 暗号化パスワード takehiko wakayama cc ccwp5gV6wOumk murakawa wakayama se seL7HUUbt2qmA ソルトが異なれば,同じパスワードでも 異なる暗号化パスワードが生成される 19 UNIXのパスワード(3) 最近は /etc/passwdには暗号化したパスワードを書かない /etc/shadowに記載し(シャドウパスワード), rootしか読めない DESではなくMD5をもとに暗号化する パスワード長,ソルト長ともに大きくなった 認証の一元化,ネットワーク化を支援するソフトウェアやシステ ムも広く使われている NIS+ Kerberos LDAP (Lightweight Directory Access Protocol) PAM (Pluggable Authentication Modules) 20 管理者の立場で(1) パスワードはどう設定するか? システムが生成,提供する よいパスワード生成プログラムを選べば安全にできる ユーザは覚えられず,紙などに記録するかも ユーザに自由に決めてもらう 安全性をユーザに委ねる リマインダ(Reminder)を使用する パスワードを忘れた人が,あらかじめ登録しておいた簡単な 質問(例:母親の旧姓は?)に正しく答えれば,パスワードを 教える 質問次第で,パスワードなしと同じになってしまう 現状の最善解は? 管理者が,個人識別情報と初期パスワードを提供する ユーザが認証に成功すれば,まず(今後使用する)パスワード を設定し,初期パスワードを破棄する 21 管理者の立場で(2) パスワードの心得 再発行の注意点 パスワードを忘れた=システムに入れない パスワードを忘れる人がいない組織はない 「暗号化されたパスワード」から,「パスワード」を求めることは 不可能 すぐには再発行しない ソーシャルエンジニアリングのおそれ ユーザ教育として これまで発行したパスワードは使わない ユーザが変更できるようにする場合 現在のパスワードを1回,新しいパスワードを2回入力させる いずれも画面に出さない 新しいのが1回だと,打ち間違いを見抜けない 22 ユーザ認証再考 「タイプ(打鍵)すること」に問題はないか? パスワードでなくてもいいのでは? ネットワーク越しの認証は? 23 打鍵に対するパスワード取得方法 ショルダーハッキング(shoulder hacking) パスワードを入力しているのを肩越しに見て,打鍵を記憶する こと 対策:後ろの人に見せない キーロガー(key logger) キーボードからの入力を監視して記録するソフトウェア 対策:他人も使うコンピュータを使う際に注意する 24 パスワード以外のユーザ認証法 ユーザ認証とは? ユーザの持つ情報を使用して,そのユーザであることを確認・ 証明すること ユーザの持つ情報とは? 持っているもの:IDカードなど 知っていること:パスワードなど 身体的特徴:バイオメトリクス Prover (証明者) ①ユーザ情報を入力 ② OK/NG Verifier (認証者) 25 バイオメトリクス(Biometrics)認証 個人に固有の情報を利用するユーザ認証方式 個人に固有の情報の例 長期間にわたって変化しにくく,類似する特徴・特性を 持つ第三者が皆無かきわめて少ないようなものを用いる 身体的特徴:指紋,虹彩,顔,手の甲の静脈,音声など 身体的な特性:筆跡,打鍵など 問題点 事前登録が必要…心理的な抵抗も 機器が高価 誤認識があり得る 安価な道具でなりすましができる可能性…グミの指 26 指紋入力装置の性能 http://www.hitachi-hec.co.jp/virsecur/shimonni/shimon01.htmより 限りなく0に(最優先) なるべく0に(優先低め) どちらも0にしたいが,一方 を下げると,もう一方は上 がってしまう(トレードオフ) 27 ネットワークを介した認証 リモートログイン(Prover-Verifier間に距離がある)で,盗聴 されることを前提としたユーザ認証方式は? パスワードを暗号化しなければ…盗聴して,リプレイ攻撃 パスワードを暗号化すれば…暗号文を盗聴して,リプレイ攻撃 Prover ①ユーザ情報を入力 Verifier ② 盗聴 Cracker ③盗聴内容を送る ④ (Proverとして)OK 通信されるユーザ情報を毎回違うものにすればいい! ワンタイムパスワード 28 ワンタイムパスワードの例:LM認証 ② 接続要求 ③チャレンジ ① パスワード Client Prover ④レスポンス Server (Verifier) ⑤ OK/NG LMハッシュ = e(パスワード,"KGS!@#$%") チャレンジは毎回異なる文字列(Serverが生成する) レスポンス = e(LMハッシュ,チャレンジ) eはDES暗号化アルゴリズム 29 本日のまとめ パスワードのセキュリティ よいパスワード,よい管理方式を選ぶ ブルート・フォース・アタック以外でも破られることがある パスワードがユーザ認証のすべてではない 30