認証は本人かどうかを確かめること
認証とは、名乗った人が本当にその人かを確かめることです。ログイン画面でパスワードを入れるのが、いちばん身近な認証です。
パスワードだけでは、盗まれたら終わりです。方法を2つ組み合わせると、1つ盗まれても、被害を止められます。
このレッスンでは、本人確認の方法を比べ、場面に合うものを選べるようになります。
このレッスンのゴール
メモ
本人確認の方法を比べ、場面に合うものを選ぶことができる。
キーワード
| ことば | いみ |
|---|---|
| 認証 | 名乗った人が本人かを確かめること |
| 認証の要素 | 知っているもの、持っているもの、自分自身の3種類 |
| 多要素認証 | 種類の違う要素を2つ以上使う認証 |
| ハッシュ | 内容から作る、元に戻せない文字列 |
| ソルト | ハッシュを作る前に足す、ユーザーごとのランダムな文字列 |
| 総当たり攻撃 | 考えられる組み合わせを、順に試す攻撃 |
学生が入力するセルは、このプレビューでは空白です。
認証の要素は3種類ある
本人確認の材料は、3種類に分けられます。知っているものは、パスワードや暗証番号です。持っているものは、スマートフォンやICカードです。自分自身は、指紋や顔です。
同じ種類を2つ使っても、多要素認証にはなりません。パスワードと暗証番号は、どちらも「知っているもの」です。
3種類の要素の長所と弱点
| 要素 | 例 | 弱点 |
|---|---|---|
| 知っているもの | パスワード | 推測され、漏れる |
| 持っているもの | スマートフォン | 落とす、盗まれる |
| 自分自身 | 指紋 | 変えられない |
学生が入力するセルは、このプレビューでは空白です。
パスワードは長さで強くなる
総当たり攻撃では、組み合わせの数が多いほど、時間がかかります。小文字だけの8文字は 26 の8乗通りです。ターミナルの python3 -c で、計算できます。
** は、べき乗の記号です。26 ** 8 は、26を8回かけます。
小文字8文字の組み合わせ
python3 -c "print(26 ** 8)"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
大文字、小文字、数字で8文字
python3 -c "print(62 ** 8)"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
小文字12文字の組み合わせ
python3 -c "print(26 ** 12)"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
組み合わせの数の比べ方
| パスワード | 文字の種類 | 組み合わせ |
|---|---|---|
| 小文字8文字 | 26 | 約2088億通り |
| 英数8文字 | 62 | 約218兆通り |
| 小文字12文字 | 26 | 約9.5京通り |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
「P@ss1! のように記号を混ぜれば、短くても強い」と考える人が多くいます。でも、よくある置き換えは攻撃者も知っています。長さが増えるほうが効きます。覚えやすい長い言葉の並びを使いましょう。
サーバはパスワードをハッシュで持つ
安全なサーバは、パスワードそのものを保存しません。パスワードのハッシュを保存します。入力されたものを同じ方法でハッシュにして、比べるだけです。
ハッシュは元に戻せません。ただし、同じ入力からは必ず同じハッシュができます。1文字違えば、全く別の値になります。
sakura2024 のハッシュ
printf 'sakura2024' | sha256sumここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
先頭を大文字にしたハッシュ
printf 'Sakura2024' | sha256sumここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
Linux はハッシュを別のファイルに置く
Linux の /etc/passwd は、誰でも読めるユーザーの一覧です。パスワードの欄は x で、ハッシュは /etc/shadow にあります。
/etc/shadow は、root と shadow グループだけが読めます。ハッシュにもソルトを足すので、同じパスワードでも、ユーザーごとに違う値になります。
root の行を見る
getent passwd rootここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
shadow のモードを見る
stat -c "%a %U:%G %n" /etc/shadowここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。