340 likes | 423 Views
最低限 Unix (1) Unix におけるパスワード. 高橋 康人 情報 実験第 2 回 2011/04/22 (Original works : 河野 仁之 ). レクチャー内容. 一般論として のパスワード Unix におけるパスワードの必要性・重要性 パスワード漏えい パスワード 設定の心得 Unix 内部でのパスワード 管理. 表記について. ○○ は ×× で △△ である。 ( □□ ) ×× 強調 部分 △ △ 覚える べき 言葉 □ □ 喩え. レクチャー内容. 一般論として のパスワード
E N D
最低限 Unix (1)Unix におけるパスワード 高橋 康人 情報実験第 2 回 2011/04/22 (Original works : 河野 仁之)
レクチャー内容 • 一般論としてのパスワード • Unix におけるパスワードの必要性・重要性 • パスワード漏えい • パスワード設定の心得 • Unix 内部でのパスワード管理
表記について • ○○は××で△△である。(□□) • ×× • 強調部分 • △△ • 覚えるべき言葉 • □□ • 喩え
レクチャー内容 • 一般論としてのパスワード • Unix におけるパスワードの必要性・重要性 • パスワード漏えい • パスワード設定の心得 • Unix 内部でのパスワード管理
パスワードとは何か(1) • 日本語で言うと「合言葉」 • 普段から身近に存在する • 銀行口座・クレジットカードの暗証番号 • ELMS ・ mixi などのログインパスワード 等々…
パスワードとは何か(2) • すなわちパスワードとは • サービスの利用に当たり、利用権利保持者であることを確認するために用いられる、権利者しか知りえないフレーズ • なぜ必要か? • 権利者以外の利用が認められないサービスだから • 勝手に現金を引き出される • 勝手に日記を書かれる 等々… • Unix においてはどう当てはまるのか? • これを学んでいきましょう
レクチャー内容 • 一般論としてのパスワード • Unix におけるパスワードの必要性・重要性 • パスワード漏えい • パスワード設定の心得 • Unix 内部でのパスワード管理
Unix の利用形態 : アカウントシステム • 共用利用前提( Unix =マンション) • 一つのマシンが複数のユーザによって使われる • 計算機黎明期からの伝統 • アカウントシステム • 安全で円滑な共用を可能にする利用方式 • 権利者を事前に登録 • これが「アカウントの作成」 (部屋の賃貸契約) • 登録された権利者(アカウントホルダー(入居者))のみが Unix へログイン可能 • アカウントホルダー以外には Unix へのログインを認めない • 利用権利保持者=アカウントホルダー • サービス=Unix へのログイン & 各種作業
アカウントとは?(1):アカウント種別 • 計算機管理者( root )(マンション管理人) • 計算機の絶対主権者 • Windows でいう admin に近いが、より強力 • 計算機内での全権限を行使可能 • 例:新アカウントの作成など • (すべての部屋のマスターキーを持つ) • 一般ユーザ • root 以外のアカウント • あくまで利用者 • 許可された範囲(自分の部屋, 共用空間)のみ利用可能 • 計算機自体の運用については不可触 • 例:電源シャットダウンすら不可能
アカウントとは?(2) : アカウント登録情報 • アカウント名(名札, 表札) • 計算機上での「名前」 • ユーザ名, ID, ログインネーム… • アカウントを作成するとホーム領域が作られる • (自分の表札を掲げた部屋) • Windows 開始時の「ようこそ○○さん」の「○○」にあたる • パスワード(部屋の鍵) • アカウント利用者の本人認証フレーズ • その他 • 本名, 住所など…(登録任意) • 基本的には参照されることはない
ログイン • Unix のサービス利用開始手続き • ホーム領域(自分の部屋)に入るという宣言 • 入ると同時にアカウント名を名乗ることになる(名札の着用) • Windows でいう「デスクトップへのログオン」 • 必要な入力事項は2項目のみ • アカウント名 • 基本的に公開されてもよい情報という扱い • パスワード • もちろん非公開情報としての扱い • すなわちパスワードが唯一無二の認証方式 • だからこそアカウントホルダー全員が正しく扱う義務 • 漏えいすると取り返しのつかないことに・・・
レクチャー内容 • 一般論としてのパスワード • Unix におけるパスワードの必要性・重要性 • パスワード漏えい(部屋の鍵が盗まれた!) • パスワード設定の心得 • Unix 内部でのパスワード管理
漏えいの危険性 • パスワードが唯一無二の認証方式 • シンプル故に強力かつ脆弱 • 他者に知られれば容易に「なりすまし」が可能 • (マンションの住人の振りをする) • 世の中はそんなに友好的ではない • パスワードは常に狙われている • ネットワークを通じて世界中から・・・ • あらゆる手段を用いて・・・ • クラック(クラッキング) • 計算機を不正利用すること • ハック(ハッキング)は誤用 • アカウントの乗っ取り = アカウントクラック
アカウントクラック時の被害(1) : 本人 • 自分のアカウント情報書き換え(鍵の変更) • パスワードが変更されればログイン不可 • データの盗難・破壊 • 自分が蓄積した経験が水泡に帰す… • 将来にわたっての継続的な不安 • 盗み見られたデータに基づく恐喝 • ネットワークへのデータ流出に伴う半永久的な損害 • 一旦出てしまえば事実上回収は不可能 • いつどこで悪用されるかわからない
クラック時の被害(2) : 周囲 • 計算機の運用妨害 • 高負荷処理によるサービス妨害 • 他のアカウントへの被害波及 • 一旦ログインできればあとは比較的簡単 • (マンション内連続窃盗/強盗/暴行事件) • 特にルートクラック ≒ 計算機の運用停止につながる • (マンション閉鎖)
ルートクラックの恐ろしさ • 「計算機管理者は絶対主権者」 • 他のアカウントのデータを含め、計算機の全情報を見られる・変更できる • 世界のクラッカー達の鴨リストに載る • 一度でもクラックされると, そのマシン情報はすぐにネットワークを通じて拡散する • 容易に暴けるクラック対象として世界中から集中攻撃を受けるようになる • 数カ月おきにクラックされるようになる • 計算機の運用停止に追い込まれる • こうして joho21 は・・・
クラック時の被害(3) : 世界 • 同一ネットワーク内の他の計算機へ侵入 • 「自分の手」を汚さずに「内側」からクラック • インターネットを通じてより大規模なクラックへの足がかりとして悪用 • クラックした複数のマシンをさらなるクラックのための高速計算に転用 • 多数のマシンを使っての大規模なサービス妨害 • 犯罪等への加担 • フィッシング詐欺などに転用 • 時には国際問題にも発展 • ネットワークにつながった計算機 = 凶器
レクチャー内容 • 一般論としてのパスワード • 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はこのような変形にも対応していることが多い
パスワードマナー • パスワード打鍵時は視線を逸らす • 「ソーシャルクラッキング」と呼ばれる立派なクラック手法 • アカウントの貸し借りはしない • パスワードは誰にも教えない • 計算機管理者も例外ではない • パスワードをメモしない • やむを得ずメモする場合は 捨てない・見せない・失くさない • 同じパスワードを使いまわさない • パスワードは定期的に変更する • 初期パスワードは迅速にログインしたうえで変更する
レクチャー内容 • 一般論としてのパスワード • 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:::0adom:$1$yfr59.ND$n0FRdB.GTdsC9.Hyr4dTr3:14965:0:99999:7:::0adison:$1$e.H/te0$prwgyr6GYr5.kOC.g3llX.:14968:0:99999:7:::0adon:$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