クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

パスワードと二段階認証でアカウントを守る

このレッスンのあとで: アカウントの安全な決まりを決めて、チェックすることができる。

45分のレッスンコマンド3件Linux 権限昇格のラボ:setuid のバイナリ、sudo のルール、cron のジョブ

パスワードが盗まれるとどうなるか

アカウントとは、サービスを使うための自分専用の入口です。パスワードが盗まれると、他人が自分になりすまして入れてしまいます。

メッセージを読まれたり、勝手に買い物をされたりします。この回では、盗まれにくいパスワードの条件と、二段階認証のしくみを学びます。

ラボのルール

注意

ラボのマシンは、あなた専用のコピーです。調べてよいのは、自分のコピーだけです。許可なく他人のマシンやアカウントに試すのは、不正アクセス禁止法に反します。ここで学ぶ目的は、守る側として弱点を知ることです。

このレッスンのゴール

メモ

アカウントの安全な決まりを決めて、チェックすることができる。

キーワード

ことばいみれい
認証本人かどうかを確かめることパスワードを入れてログインする
総当たり攻撃考えられる組み合わせを、片っぱしから試す方法
ハッシュ元にもどせないように、文字列を別の文字列に変えたもの
二段階認証パスワードのほかに、もう1つ別の方法で本人を確かめること
パスワード管理ツール長いパスワードを安全に覚えておいてくれるアプリ
使い回し同じパスワードを、いくつものサービスで使うこと

学生が入力するセルは、このプレビューでは空白です。

強いパスワードは、何で決まるのか

攻撃する側は、パスワードを当てるために、組み合わせを片っぱしから試します。これが総当たり攻撃です。

組み合わせが多いほど、時間がかかります。多くするのに一番効くのは、記号を混ぜることより、長くすることです。

例: 長さと文字の種類で変わる数

パスワード組み合わせの数
数字4桁(暗証番号)1万通り
数字6桁100万通り
小文字8文字約2088億通り
英数字(大小)8文字約218兆通り
小文字12文字約9.5京通り

学生が入力するセルは、このプレビューでは空白です。

自分で組み合わせの数を出す

コード: python
# 文字の種類の数を、長さの回数だけかけます。
kinds = 26
length = 8
print(kinds ** length)

# 長さを12に変えて、もう一度動かしてみましょう。

ラボで自分の名前を見る

コマンド
whoami

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

サービスはパスワードをどう保存するのか

良いサービスは、パスワードそのものを保存しません。ハッシュに変えたものを保存します。

ログインのとき、入れた文字列を同じ方法でハッシュにして、保存したものと比べます。一致すれば入れます。データが漏れても、元のパスワードはすぐには分かりません。

パスワード欄を見る

コマンド
awk -F: '{print $1 ":" $2}' /etc/passwd | head -n 3

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

ファイルの権限を見る

コマンド
stat -c '%n %A' /etc/passwd /etc/shadow

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

出力は何を表しているのか

1つ目の Run では、どの行も2つ目が x でした。パスワード欄には x しかなく、本物は別のファイルにあります。

2つ目の Run では、/etc/passwd は全員が読め、/etc/shadow は一般の利用者が読めません。ハッシュを置く場所を、読める人で守っているのです。

二段階認証は、なぜ強いのか

パスワードが盗まれても、もう1つ別の方法で本人を確かめれば、入られずにすみます。これが二段階認証です。

本人の確かめ方は、大きく3つに分かれます。2つ以上を組み合わせるほど、破るのが大変になります。

本人の確かめ方3種類

種類例
知っているものパスワード、暗証番号
持っているものスマホの認証アプリ、セキュリティキー
本人そのもの指紋、顔

学生が入力するセルは、このプレビューでは空白です。

よくある間違い

注意

「P@ssw0rd」のように、文字を記号にかえたパスワードは安全だと考えがちです。しかし、これは攻撃する側もよく知っている形です。また、同じパスワードの使い回しは、1つ漏れると全部に入られます。

管理者が決める3つの決まり

学校や会社のアカウントを守るなら、まず3つを決めます。1つ目は、長さの下限です。12文字以上が目安です。

2つ目は、よくあるパスワードを禁止することです。3つ目は、二段階認証を必須にすることです。決まりは、プログラムで自動チェックできます。

このラボとソースについて: Linux 権限昇格のラボ:setuid のバイナリ、sudo のルール、cron のジョブ

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。