見出し画像

#togグラフ 番外編 #1 解説

 本記事では #togグラフ 番外編 #1 の正解の発表・解説を行います。
 まだ解いていない方は、以下の記事を先にお読みください。

 正解だけを見たい方は、目次から「2.1. 正解」に飛んでください。

1. 問題の解説

1.1. 問題

 さて、今回の問題は下図でした。

問題 グラフ (再掲)

 20本 の棒がある「棒グラフ」ですね。
 4, 5, 12, 18本目 は 0 か null のようです。
 また、縦軸が対数スケールになっていますね。

 123456, 123456789 のように連番になっているものが多い印象です。
 111111 のようにゾロ目になっているものもあります。
 これらの数、どこかで見覚えがないでしょうか……?

 見覚えがない方が良い可能性もありますね……。
 見覚え……?
 いや、打ち覚え……ですかね。

 また、 123 が 4つ ありますね。
 重複が存在するのであれば、これらの数は、何らかの文字列の一部である可能性もあります。

 番外編なので、すぐに正解を発表します!
 正解を知りたい方のみ下へスクロールしてください!

2. 正解の解説

2.1. 正解

 さて、正解画像は以下です。

正解

  正解は「よく使われているパスワードトップ20 に含まれる数字」でした!

 なお、 NodePass が発表した 2021年 のランキングに準拠しています。

2.2. 解説

2.2.1. 不正ログイン

 一般的な Webサイト では、メールアドレスとパスワードが分かっていれば、ログインすることが可能です。
 そのうちのメールアドレスは、他者のものでも簡単に知ることができます。

 そのため、パスワードさえ特定することができれば、メールアドレスを知っている相手になりすまして、 Webサービス にログインすることができてしまいます。

2.2.2. 総当たり攻撃

 パスワードを特定するための、最もシンプルな方法は「総当たり攻撃」 (brute force attack) と呼ばれる方法です。
 例えば 4桁 の数字であれば、 "0000" から "9999" まで順番に試す方法ですね。

 金庫や自転車のダイヤルロックを忘れてしまった場合、多くの人がこの方法を試すことでしょう。
 4桁 の数字程度であれば、 10の4乗 = 10,000通り なので、人力でも全通り試すことが可能です。

 ただし、実際には 10,000通り あるからといって、 10,000回 試さなければいけない可能性は低いため、注意が必要です。
 例えば "0000" から試した場合、正解が "1000" なら 1000回 試すだけで済みます。
 だったらと "9000" に設定した場合、 "9999" から逆順に試したら同じく 1000回 ですし、 "0000", "1000", "2000" ……という順番であれば 10回 で特定できます。

2.2.3. 文字数・桁数

 多くの Webサイト では数字だけではなく、英字もパスワードに使用できます。
 英小文字を含めると 36文字 を使用でき、 4桁 であっても 36の4乗 = 1,679,616通り になります。
 さらに、英大文字を含めると 62文字 を使用できるため、 62の4乗 = 14,776,336通り まで増えます。
 さすがにこうなってくると、人力では試せないことでしょう。

 8桁 であれば 36の8乗 = 1,099,511,627,776通り や 62の8乗 = 218,340,105,584,896通り となります。
 8~12桁 のどれか分からない場合、記号等もパスワードに使用できる場合……等も考えると、実際には更に多くなっていきます。

2.2.4. 最大解読時間

 2008年 のデータでは、 8桁 の英数字を全通り試すには、約50年 かかるとされていました。
 当時は機械でも解読が難しかったわけです。
 そのため、 8桁 の英数字でパスワードを設定することが長らく推奨されてきました。

 しかし、 PC の性能向上に合わせて、その時間は短縮されています。
 諸説ありますが、今では 1時間 で解読できるという情報も出ています。

 そのため、近年では 10桁 を要求したり、記号の使用を義務化したりする Webサイト が増えています。

2.2.5. ロック

 8桁 英数字のパスワードは本当に 1時間 で解読できるのでしょうか?
 多くの Webサービス では、パスワードを数回間違えるとロックがかかり、再度試すには 1時間 待たされる等の機能がついています。

 仮に 5回 間違えると 1時間 待たされるサービスの場合、 1日 に 120通り のパスワードしか確認できません。
 試せる回数が 3回 に減ったり、待たされる時間が 1日 に伸びたりすれば、さらにセキュリティは強固になります。

 銀行の暗証番号が 4桁 の数字で十分なのは、試せる回数が少なく、間違えた場合のペナルティが重いからですね。
 逆に、ロック機能がついていないパスワード付きファイル (ZIP や PDF 等) は、 8桁英数字 でも不十分といえます。

2.2.6. パスワードの使い回し

 さて、ここで問題になってくることが、パスワードの使い回しです。

 極端な話、銀行の暗証番号とPDFのパスワードで使い回している人がいたとします。
 PDFのパスワードは  4桁 の数字なら 1秒未満で解読できるため、簡単に入手できます。
 そこで入手したパスワードを銀行で試されてしまったら、お金まで盗まれてしまうわけです。

 ここまで極端でなかったとしても、 Webサイト によってロック機能等のセキュリティの強弱はそれぞれ異なります。
 複数サイトで同じパスワードを使い回している場合、脆弱なサイトで特定したパスワードを利用することで、強固なサイトにまで簡単に不正ログインされてしまいます。

2.2.7 辞書攻撃

 最後に、「桁数の多いパスワード」を使い回さずに設定していれば安全か……という話をします。

 パスワードの特定に使われる方法は「総当たり攻撃」だけではありません。
 「辞書攻撃」 (dictionary attack) と呼ばれるものもあります。

 それは、今回の問題にあったような、「よく使われるパスワードの一覧」等を利用した攻撃方法です。
 10桁 であっても "0123456789" のようなパスワードであれば、多くの人が使っているため、真っ先に試されてしまうわけです。

 また、大文字・小文字・数字・記号を全て使った 15桁 のパスワードであったとしても、 "Suzuki-20220731" のようなパスワードであれば、簡単に推測されてしまいます。
 メールアドレスだけではなく、生年月日や本名等も簡単に入手できるため、それらから導き出した文字列も、かなり早い段階で確認されてしまうことでしょう。

2.2.8 まとめ

 以上より、パスワードを強固にするには、大文字・小文字・数字・記号すべてを使い、桁数を増やした上で、意味の通る文字列を避け、使い回しもしないことが求められます。

 「定期的にパスワードを変更すべき」という考えもありましたが、「定期的に変更される弱いパスワード」よりも「変更されない強いパスワード」の方が、近年は推奨されている印象です。

 「弱いパスワードを使っていても今まで何も起こらなかったから大丈夫」と考えている人もいるかもしれません。
 しかし、攻撃者側の PC の性能は年々進化しているため、時代にあった強さのセキュリティが求められます。

 技術には技術を……ということで、ワンタイムパスワードや二段階認証・二要素認証など、「通常のパスワード」以外のセキュリティを併用していくことも、重要だと思います。

2.3. おわりに

 問題を解いてくださった方々、ありがとうございました。
 他の番外編の問題はこちらで出題しています。

 本編の問題は以下で出題しています。

いいなと思ったら応援しよう!