情報セキュリティ



情報セキュリティ
第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