神奈川工科大学大学院 情報工学専攻 1年 1185003 小林 亮 labo@js3.sakura.ne.jp インターネットセキュリティ特論 第2章 リユーザブルパスワードシステムの進化 2.1 ~ 2.3 神奈川工科大学大学院 情報工学専攻 1年 1185003 小林 亮 labo@js3.sakura.ne.jp 授業での発表後に, 先生からご指摘いただいた箇所を修正しました. 訂正前と訂正後,両方のスライドを残してあります. 訂正前のスライド7枚目 → 訂正後のスライド 8枚目 訂正前のスライド9枚目 → 訂正後のスライド10枚目
発表範囲 2.1 パスワード:ユーザの知識 2.2 認証とベースシークレット 2.3 Unixのパスワードシステム 教科書 P.35 ~ P.46
2.1 パスワード:ユーザの知識 パスワードの歴史 パスワードとダイヤル錠 初期パスワードを使い続ける危険性
パスワードの歴史(1) ・城門に立つ門番 合言葉は? ***** 門番 ・アリババと四十人の盗賊 「開け、ゴマ」 開け、ゴマ
パスワードの歴史(2) ・ダイヤル錠の発明 パスワードとダイヤル錠 どちらも、人間の記憶に頼る認証方式 パスワードとダイヤル錠には 主に、金庫や南京錠に使われる ダイヤルを回して、設定された数字と合致すると鍵が開く パスワードとダイヤル錠 どちらも、人間の記憶に頼る認証方式 パスワードとダイヤル錠には いくつかの重要な共通点がある 画像引用:http://sinntosi.hatiju-hatiya.com/index.html
パスワードとダイヤル錠の共通点 ・初期パスワード(番号)は予測可能な番号に設定されている 購入者が再設定することを前提としているが、 再設定を忘れる人も多く、攻撃者のターゲットに ・特に根拠のないランダムな数字は人間にとって覚えにくい 個人情報をもとにした数字を選ぶ傾向があり、 攻撃者のターゲットに ・パスワード(番号)が紙に書き留めておかれることが多い 紛失や外部への流出の危険
初期パスワードを使い続ける危険性(1) ・ダイヤル錠の特徴 ・初期パスワード(番号)を使い続けると… 000000 123456 見た目からはパスワードを推測できない 2桁の数字(00~99)を3つ使うダイヤル錠であれば、 パスワードは100万通り 100×100×100=1,000,000 ・初期パスワード(番号)を使い続けると… 000000 123456 112233 ……… 初期パスワードに使われやすい番号のリスト トライアウトコンビネーション トライアウトコンビネーションはわずか100通りほど 簡単に破られる可能性 画像引用:http://sinntosi.hatiju-hatiya.com/index.html
初期パスワードを使い続ける危険性(1) 訂正版 ・初期パスワード(番号)を使い続けると… 000000 123456 112233 ……… 初期パスワード(番号)に使われる番号や文字列のリスト 例) 金庫メーカーごとの 製造時の初期解錠番号に使われる番号のリスト 000000 123456 112233 ……… トライアウトコンビネーション トライアウトコンビネーションはわずか100通りほど 簡単に破られる可能性 画像引用:http://sinntosi.hatiju-hatiya.com/index.html
初期パスワードを使い続ける危険性(2) ・コンピュータの世界でも同じ root user member ……… 0000 1234 pass トライアウトコンビネーション しかし、初期パスワードのまま 変更しない利用者は多い root user member ……… 0000 1234 pass ……… 1990年代半ば インターネット用ルータでの 大規模なセキュリティ問題が発生 ユーザ名 パスワード
初期パスワードを使い続ける危険性(2) 訂正版 ・コンピュータの世界でも同じ root user member ……… 0000 1234 トライアウトコンビネーション 例) ネットワーク機器メーカーごとの 製造時の初期パスワードに使われる文字列のリスト root user member ……… 0000 1234 pass ……… しかし、初期パスワードのまま 変更しない利用者は多い 1990年代半ば インターネット用ルータでの 大規模なセキュリティ問題が発生 ユーザ名 パスワード
初期パスワードを変更すれば安全? ・他人が推測しやすいパスワードでは意味がない 19881021 2430201 046241 ……… 誕生日 郵便番号 電話番号 ……… kobayashi kanagawa kait ……… 名前 住所 所属 ……… 初期パスワードを変更する際、 他人でも推測しやすい情報から選ぶケースが多い
2.2 認証とベースシークレット リモート認証となりすまし ベースシークレット 文化背景的認証 ランダムシークレット認証
リモート認証となりすまし Webサイト や コンピュータ ・なりすましとは ID:○○○○ Pass:■■■■ 正規ユーザ ID:○○○○ 正規ユーザのふりをして Webサイトやシステムにログインする 悪質ユーザ
ベースシークレット ・ベースシークレットとは ・ベースシークレットを使った実用的な認証方式 「一意」でかつ、「秘密」の情報のこと 1. 文化背景的認証 個人情報やその人独自の特徴など、 攻撃者に知られる可能性が少なそうな情報に基づく認証 2. ランダムシークレットに基づく認証 攻撃を企てる者が決して入手できないはずの秘密情報に基づく認証 文化背景的認証よりも強固な認証が可能
文化背景的認証(1) ・文化背景的認証の例(1) ・強み オペレータ ・弱み 銀行やクレジットカード会社への電話手続き 住所をお教えいただけますか? お母様の旧姓をお教えいただけますか? 生年月日と干支をお教えいただけますか? ・強み 各個人に固有の知識や性質をもとにしている ・弱み 必ずしも秘密ではない (家族や友人は知っている可能性がある) 変更することができない オペレータ
文化背景的認証(2) ・文化背景的認証の例(2) サイトによって違う オンラインバンキングへのログイン手続き 「最も好きな動物は何ですか?」 「中学3年生の担任の先生の名前は何ですか?」 あらかじめ質問項目が用意されている 2. 質問項目を各自で自由に設定できる サイトによって違う ゆうちょダイレクト:http://www.jp-bank.japanpost.jp/direct/pc/dr_pc_index.html
ランダムシークレット認証(1) ・ランダムシークレット認証の例(1) ・強み ・弱み トークンやパスワードを使用した認証 紛失や盗難が発生した場合や、 攻撃を受ける危険性が生じた場合に、 ベースシークレットを変更できる ・弱み 認証システムと利用者との間で ランダムシークレットを一致させる必要がある 新規にユーザ登録を行う際は、 初期ユーザ名とパスワード(もしくはトークン)を 確実に本人だけに渡す必要がある パスワード ******
ランダムシークレット認証(2) ・ランダムシークレット認証の例(2) 磁気ストライプカードを使用した認証 磁気ストライプ部分にベースシークレットのデータを記録 どのようなデータが書き込まれているか、目視では分からない 紛失した場合や、複製された可能性がある場合は、 別のベースシークレットが記録されたカードに交換すれば良い
ランダムシークレット認証(3) ・ランダムシークレット認証の例(3) 発行元企業 2111-3333-6666-5252 アカウント番号を使用した認証 2111-3333-6666-5252 9255-1256-9823-4211 発行元企業 7752-5665-7122-3365 発行元が利用者ごとに識別番号(文字列)を用意 第三者にはどの番号がどの利用者に対応しているか分からない アカウント番号を忘却した場合や、盗難された可能性がある場合は、 別のアカウント番号を発行してもらえば良い 例:クレジットカード番号
2.3 Unixのパスワードシステム Unixシステムでのパスワードのハッシュ化 Unixのログイン処理の流れ Unixのログイン処理の特徴
パスワードのハッシュ化(1) ・当初のUnixにはパスワード認証は実装されていなかった 後にパスワード認証が実装された 当初は /etc/passwd というテキストファイルに平文のパスワードを格納 1973年頃 パスワードのハッシュ化を実装 ハッシュ化を実装したことで、 パスワードファイルを誰でも参照できるようにしつつ、 パスワードのセキュリティを保つことができた
パスワードのハッシュ化(2) ・Unixのパスワードファイルの例 kait:5YgkEo542mWvc:12:31:Kobayashi:/home/kait:/bin/csh 各フィールドをコロン(:)で区切っている kait : ユーザ名 5YgkEo542mWvc: ハッシュ化されたパスワード 12 : ユーザID 31 : グループID Kobayashi : GCOSフィールド(本名など) /home/kait : ホームディレクトリ /bin/csh : シェルプログラム
Unixのログイン処理の流れ ユーザ名の入力 入力されたユーザ名をパスワードファイル内から探し、 見つかった場合はパスワードハッシュを取り出す パスワードの入力 入力されたパスワードをハッシュ化し、 パスワードファイルから取り出したハッシュと比較 双方が一致 双方が不一致 ログイン成功 ログイン失敗 ユーザの操作 loginプログラムの処理
Unixのログイン処理の特徴(1) ユーザ名の入力 入力されたユーザ名をパスワードファイル内から探し、 見つかった場合はパスワードハッシュを取り出す ユーザ名が見つかった ユーザ名が見つからなかった パスワードの入力 1. 入力されたユーザ名がパスワードファイルに登録されていなかった場合でも、 「Invalid password(パスワードが不正)」というメッセージを表示する 正当なユーザ名を知らせずに済む 2. 入力されたユーザ名がパスワードファイルに登録されていなかった場合でも、 入力されたパスワードのハッシュ計算を必ず行う 反応時間の遅れの有無でユーザ名の正誤を判断されないため
Unixのログイン処理の特徴(2) 3. 3回以内に正しいパスワードを入力しないと、ユーザとの接続を切断する 3. 3回以内に正しいパスワードを入力しないと、ユーザとの接続を切断する 悪質なユーザのパスワード推測行為に手間をかけさせるため 4. loginプログラムは全てのログインイベントをログ記録している 悪質なユーザによるパスワード推測行為を 管理者が検知したり、追跡したりする際に役立つ 5. loginプログラムが使用するRAM領域を、他のプログラムが盗み見ることはできない スニッファ攻撃のいくつかを防ぐことができる これらのパスワード保護機能は古典的なものであり、 近年のUnixシステムでは、より充実した保護機能を実装していることが多い
2.4章に続きます...