最低限 Unix (1) Unix におけるパスワード 高橋 康人 情報実験第 2 回 2011/04/22 (Original works : 河野 仁之) レクチャー内容 1. 2. 3. 4. 5. 一般論としてのパスワード Unix におけるパスワードの必要性・重要性 パスワード漏えい パスワード設定の心得 Unix 内部でのパスワード管理 表記について • ○○は××で△△である。(□□) – ×× • 強調部分 – △△ • 覚えるべき言葉 – □□ • 喩え レクチャー内容 1. 2. 3. 4. 5. 一般論としてのパスワード Unix におけるパスワードの必要性・重要性 パスワード漏えい パスワード設定の心得 Unix 内部でのパスワード管理 パスワードとは何か(1) • 日本語で言うと「合言葉」 • 普段から身近に存在する – 銀行口座・クレジットカードの暗証番号 – ELMS ・ mixi などのログインパスワード 等々… パスワードとは何か(2) • すなわちパスワードとは – サービスの利用に当たり、利用権利保持者であるこ とを確認するために用いられる、権利者しか知りえな いフレーズ • なぜ必要か? – 権利者以外の利用が認められないサービスだから • 勝手に現金を引き出される • 勝手に日記を書かれる 等々… • Unix においてはどう当てはまるのか? – これを学んでいきましょう レクチャー内容 1. 2. 3. 4. 5. 一般論としてのパスワード Unix におけるパスワードの必要性・重要性 パスワード漏えい パスワード設定の心得 Unix 内部でのパスワード管理 Unix の利用形態 : アカウントシステム • 共用利用前提( Unix =マンション) – 一つのマシンが複数のユーザによって使われる • 計算機黎明期からの伝統 • アカウントシステム – 安全で円滑な共用を可能にする利用方式 1. 権利者を事前に登録 • これが「アカウントの作成」 (部屋の賃貸契約) 2. 登録された権利者(アカウントホルダー(入居者))の みが Unix へログイン可能 • アカウントホルダー以外には Unix へのログインを認めない • 利用権利保持者=アカウントホルダー • サービス=Unix へのログイン & 各種作業 アカウントとは?(1): アカウント種別 • 計算機管理者( root )(マンション管理人) – 計算機の絶対主権者 • Windows でいう admin に近いが、より強力 – 計算機内での全権限を行使可能 • 例:新アカウントの作成など • (すべての部屋のマスターキーを持つ) • 一般ユーザ – root 以外のアカウント – あくまで利用者 • 許可された範囲(自分の部屋, 共用空間)のみ利用可能 – 計算機自体の運用については不可触 • 例:電源シャットダウンすら不可能 アカウントとは?(2) : アカウント登録情報 • アカウント名(名札, 表札) – 計算機上での「名前」 • ユーザ名, ID, ログインネーム… • アカウントを作成するとホーム領域が作られる – (自分の表札を掲げた部屋) • Windows 開始時の「ようこそ○○さん」の「○○」にあたる • パスワード(部屋の鍵) – アカウント利用者の本人認証フレーズ • その他 – 本名, 住所など…(登録任意) – 基本的には参照されることはない ログイン • Unix のサービス利用開始手続き – ホーム領域(自分の部屋)に入るという宣言 • 入ると同時にアカウント名を名乗ることになる(名札の着用) – Windows でいう「デスクトップへのログオン」 • 必要な入力事項は2項目のみ – アカウント名 • 基本的に公開されてもよい情報という扱い – パスワード • もちろん非公開情報としての扱い • すなわちパスワードが唯一無二の認証方式 – だからこそアカウントホルダー全員が正しく扱う義務 • 漏えいすると取り返しのつかないことに・・・ レクチャー内容 1. 2. 3. 4. 5. 一般論としてのパスワード Unix におけるパスワードの必要性・重要性 パスワード漏えい(部屋の鍵が盗まれた!) パスワード設定の心得 Unix 内部でのパスワード管理 漏えいの危険性 • パスワードが唯一無二の認証方式 – シンプル故に強力かつ脆弱 • 他者に知られれば容易に「なりすまし」が可能 • (マンションの住人の振りをする) • 世の中はそんなに友好的ではない – パスワードは常に狙われている – ネットワークを通じて世界中から・・・ – あらゆる手段を用いて・・・ • クラック(クラッキング) – 計算機を不正利用すること • ハック(ハッキング)は誤用 – アカウントの乗っ取り = アカウントクラック アカウントクラック時の被害(1) : 本人 • 自分のアカウント情報書き換え(鍵の変更) – パスワードが変更されればログイン不可 • データの盗難・破壊 – 自分が蓄積した経験が水泡に帰す… • 将来にわたっての継続的な不安 – 盗み見られたデータに基づく恐喝 – ネットワークへのデータ流出に伴う半永久的な 損害 • 一旦出てしまえば事実上回収は不可能 – いつどこで悪用されるかわからない クラック時の被害(2) : 周囲 • 計算機の運用妨害 – 高負荷処理によるサービス妨害 • 他のアカウントへの被害波及 – 一旦ログインできればあとは比較的簡単 • (マンション内連続窃盗/強盗/暴行事件) – 特にルートクラック ≒ 計算機の運用停止につな がる • (マンション閉鎖) ルートクラックの恐ろしさ • 「計算機管理者は絶対主権者」 – 他のアカウントのデータを含め、計算機の全情報 を見られる・変更できる • 世界のクラッカー達の鴨リストに載る 1. 一度でもクラックされると, そのマシン情報はす ぐにネットワークを通じて拡散する 2. 容易に暴けるクラック対象として世界中から集 中攻撃を受けるようになる 3. 数カ月おきにクラックされるようになる 4. 計算機の運用停止に追い込まれる – こうして joho21 は・・・ クラック時の被害(3) : 世界 • 同一ネットワーク内の他の計算機へ侵入 – 「自分の手」を汚さずに「内側」からクラック • インターネットを通じてより大規模なクラックへ の足がかりとして悪用 – クラックした複数のマシンをさらなるクラックのための 高速計算に転用 – 多数のマシンを使っての大規模なサービス妨害 • 犯罪等への加担 – フィッシング詐欺などに転用 – 時には国際問題にも発展 • ネットワークにつながった計算機 = 凶器 パスワードは 自分と仲間と世界を 守る盾 レクチャー内容 1. 2. 3. 4. 5. 一般論としてのパスワード Unix におけるパスワードの必要性・重要性 パスワード漏えい パスワード設定の心得 Unix 内部でのパスワード管理 良いパスワードの条件 • パスワードにも善し悪しがある – 「弱い」パスワードはほとんど役に立たない – (革の盾より鉄の盾、ミスリルの盾) • 必要な条件 – なによりも頑丈さ (十分な長さ) – 他者にとっての使いにくさ(憶えにくさ, 連想しにくさ) • 理想 – 自分にとっての使いやすさ (憶えやすさ, 連想しやす さ) • まずは敵を知るところからはじめましょう クラッカーの手法(1): Brute Forth Attack • 総当たり攻撃 – パスワードとして可能な全ての組み合わせを片っ 端から試す • 原理的には確実にパスワードを解読可能 • ただし解読に要する時間は字数に大きく依存 – 一文字増えるごとに指数関数的に長くなる クラッカーの手法(2): Dictionary Attack • 辞書攻撃 – あらゆる分野の 100 万語とも言われる単語を記 録したクラッキング用辞書を用いる • オンライン英和辞典でも 8 万語程度 • これ単体で確実にクラックできる保証はない – 無作為な文字列には対応できない • ただし BFA より極めて効率的 – 完全に無作為なパスワードはほとんど存在しな いため 具体的なパスワード設定条件 • 可能な範囲でばらばらの文字・記号を使う – 大文字, 小文字, 数字, 記号 • 8文字以上並べる • 推定しやすい言葉を用いない – 辞書にある単語 – 個人情報から連想できる言葉 – 以上を簡単な規則で置き換えた言葉 なぜいろいろな文字・記号を 用いるべきか • 合計 : 89 種 – アルファベット大小文字 : 52 種 – 数字 : 10 種 – 記号 (例) : 27 種 • 組み合わせ数 ( 8 文字) – 小文字 + 数字の場合 • 36^8 = 2.82 * 10^12 通り – 全てを用いた場合 • 89^8 = 3.93 * 10^15 通り • BFA, DA 両方に対して有効な防御策 BFA への防御策 : なぜ 8 文字以上か • Brute Forth Attack に対する十分な強度 – 例 : Core2Duo T8300 搭載機(89文字の場合) – 400万アタック / sec • 7文字 : 129 日 • 8 文字 : 31 年 – 注:クラックにこれだけかかるというわけではない! • ただし Dictionary Attack には効果がない – 辞書に載っていれば長くても短くても関係なし DA への防御策 : 推定しやすい言葉とは?(1) • クラッキング辞書にある単語 – 言語・分野問わずあらゆる単語, 固有名詞など • Flower, disneyland, shiokara, kannaoto, hokudai … – どんなにマニアックな単語も不可 • Antidisestablishmentarianism – 国教廃止条例反対論 • Pneumonoultramicroscopicsilicovolcanoconiosis – 塵肺症 • 個人情報から推定できるもの – 本名, 住所, アカウント名, 学籍番号等々 • Kuramoto, sapporo, keikei, s20151234k … DA への防御策 : 推定しやすい言葉とは(2) • 以上を簡単な規則で変形したもの – 逆つづり, 繰り返し • Rewolf, flowerflower, otomarukotomaruk – 大文字⇔小文字, 0 → o, s → $ などの置き換え • Fl0wer, ReWo1F, $app0r0, Rew0lf1owEr – DA はこのような変形にも対応していることが多い パスワードマナー • パスワード打鍵時は視線を逸らす – 「ソーシャルクラッキング」と呼ばれる立派なクラック手法 • アカウントの貸し借りはしない • パスワードは誰にも教えない – 計算機管理者も例外ではない • パスワードをメモしない – やむを得ずメモする場合は 捨てない・見せない・失くさない • 同じパスワードを使いまわさない • パスワードは定期的に変更する • 初期パスワードは迅速にログインしたうえで変更する 自分にとって「のみ」 使いやすいパスワード レクチャー内容 1. 2. 3. 4. 5. 一般論としてのパスワード Unix におけるパスワードの必要性・重要性 パスワード漏えい パスワード設定の心得 Unix 内部でのパスワード管理 Unix のデータ管理概念 • ファイル – Unix におけるひとまとまりのデータ – Windows でいう「ファイル」 • ディレクトリ – ファイルをまとめるための特殊なファイル – Windows でいう「フォルダ」 • 階層構造 – 次回講義参照 Unix 内のアカウント情報 • 他の情報と同じくファイルとして保存 – 3つに分けて保存されている • /etc/passwd – アカウントの基本情報。閲覧制限なし • /etc/shadow – アカウントの暗号化済みパスワード情報。 root のみ閲覧可。 • /etc/group – グループの基本情報。閲覧制限なし??? – グループについては ??? を参照 /etc/shadow の中身(一例) addii:$1$Utev74.c$dyH520./rf0pQydGHu6f01:14962:0:99999:7:::0 adom:$1$yfr59.ND$n0FRdB.GTdsC9.Hyr4dTr3:14965:0:99999:7:::0 adison:$1$e.H/te0$prwgyr6GYr5.kOC.g3llX.:14968:0:99999:7:::0 adon:$1$y.JgtEf5$lp.TH..7esCf7fpHYre4./:14965:0:99999:7:::0 bob:$1$Dol/are4$r3M4h6.dlWYo9goIcGY64.:14961:0:99999:7:::0 david:$1$OgoWhdOf$uhBfrD./07c5TG43.ZqP/V:13965:0:99999:7:::0 addii:$1$Utev74.c$dyH520./rf0pQydGHu6f01 /etc/shadow で使われている 暗号化方式
© Copyright 2024 ExpyDoc