見出し画像

パスワードの安全な運用方法教えます#1(iパス講座)

みなさん、パスワードっていっぱい持ってますよね?どうしてますか?桁数が多くて出鱈目な文字列で重複していないパスワードを100個200個ぐらい作って全部頭の中にだけ記憶していますか?

マジでそうしている超人にはこの記事は不要ですが、そうでない人向けに、安全なパスワードの運用方法を解説したいと思います。

結論を最初に書いてしまうと、「アプリに覚えさせろ」「2段階認証しろ」「使えるなら他の認証方法を使え」です。これ以上の裏技や豆知識は出てきません。
そしてかなり記事が長くなりそうなので、この記事では「アプリに覚えさせろ」についてだけ話します。後半の内容はまた別記事で…

※この記事は「現実の身近な事例でITパスポート試験の内容をふんわり理解してみよう」という試みの一環として書かれています。が、別に試験とか関係なく読み物として面白いはずなので読んでください。読もう。

前提:なぜパスワードを安全に運用しなければいけないのか

まずは事前知識として、パスワードにまつわる危険などの話をしておきましょう。

みなさんはメールやアプリやSNSやその他あらゆるwebサービスにおいて、パスワードなるものを頻繁に利用していると思います。
インターネットで何をやるにしても大抵は「アカウント」を作る必要があって、そのために大体メールアドレスとパスワードが必要なので、利用するパスワードの数はいち個人でも平気で100とか200とかになると思います。

で、そのパスワードが他人に知られたりすると不正アクセスを招くこととなり、
SNS乗っ取り、個人情報流出、クレカや電子マネーの悪用、など挙げればキリがないほど無限に広がる犯罪被害に遭うこととなります。

自分が犯罪の被害者になるだけならまだしも、乗っ取ったアカウントで他人を誹謗中傷されたりサイバー攻撃されたり、膨大な量の業務上の機密情報や顧客情報が丸ごと流出したりしようもんなら、(そもそも悪いのは犯罪者であっても)自分が何らかの責任を取らなきゃいけない事態にすらなりかねません。

パスワードを他人に知られるというのは文字通り致命的な事態になりかねないので、我々はなんとしてもパスワードを安全に運用しなければならないのです。

しかし一方で、先にも言った通り現代社会ではパソコンやスマホで何をするにも二言目にはアカウント、パスワードを設定してください、と来たもんだ。
現代のICT社会における、パスワードにまつわる問題の根っこには、

  • 要求されるパスワードの総数が多すぎて覚えきれない

  • アカウントが自分の人生や社会を左右しうるほど重要になりすぎている

この2点があるわけですね。

パスワードに関する攻撃手法

クラッカーと呼ばれる犯罪者野郎はどんな風にパスワードを盗んだり、認証システムに不正アクセスしたりするかご存じでしょうか。手法を知っていれば対策もできます…というか、手法を知ると人類の愚かさに愕然とするかもしれません…

総当たり攻撃と辞書攻撃

最も単純なパスワード突破の手法は、「片っ端から全部入力する」です。
銀行の暗証番号であれば、0000〜9999までの1万通りを試せば絶対いつか当たります。
これが総当たり攻撃です。

実際の銀行のシステムでは3回入力を間違えると口座がロックされるため、総当たり攻撃はできません。物凄く古典的であり、対策も非常に容易な手法です。

とはいえ、4桁の数字では3/10000の確率で偶然当てられる可能性もあるわけですし、(もちろん銀行では無理ですが)もしプログラムとかで自動的に総当たりできるような状況であれば、1万通りなんて一瞬で終わります。

その対策のため、一般的にパスワードには「①文字数を増やせ」「②大文字・小文字・数字を混ぜろ(できれば記号も)」などと言われるわけです。
例えば大文字・小文字・数字が混じった8文字のパスワードは62の8乗=約218兆通りあるので、偶然で当たる可能性は0と言っていいでしょう。

なお、プログラムとかで自動的に総当たりする場合、実は218兆通りでもすぐ終わっちゃうので実際にはもっと桁数と文字種が多い方がいいです…8桁のパスワードをIPAが推奨していたのももう10年以上前なのだ…テクノロジーは際限なく進化する…

さて、総当たり攻撃は相手がよっぽど桁数の少なくショボいパスワードにでもしていない限り現実的に上手くいかないので、総当たり攻撃の確度をもう少し上げた手法が浮上します。辞書攻撃です。

先日、2021年版・最もよく使われているパスワードランキングが発表されました。

トップ5だけ抜き出してみると、

  1. 123456

  2. 123456789

  3. 12345

  4. qwerty

  5. password

まあひどい文言が並んでいるわけだ…
もうちょっと下の方も見てみると、「dragon」とか「monkey」みたいに単純な英単語もあるんですね。

こんな風に「パスワードに使われがちなフレーズ」というのは確かに存在しており、それを一つの「辞書」に集めて、辞書に載っているフレーズで総当たり的にパスワード突破を試みるのが辞書攻撃のやり方です。

この辞書攻撃の存在があるので、世間ではよく「③単純な英単語や規則的な文字列などを使うな」と言われるのです。

パスワードリスト攻撃

辞書攻撃も、結局は「何回か入力を間違えたらロックされる」みたいな仕組みで防げるし、他にもいくらでも対策方法があるので、これ単体で戦果を挙げることは難しいです。
そこで、いま多いのはパスワードリスト攻撃です(リスト型攻撃とか、アカウントリスト攻撃と呼ばれる場合もあります)

まず何らかの方法でアカウント情報のリストを不正に入手し、そのリストを元にパスワード突破を試みる手法なのですが…
世の中の多くの人は、100も200もあるパスワードを全て違うフレーズにして全て暗記などできるわけがないので、同じパスワードを色んなアカウントに使い回しています。

なので、たった一つのとあるWebサービスでアカウント情報の流出事件などが起これば、その流出データを元に他のWebサービスのアカウントにも次々と不正アクセスできてしまう可能性が高いのです。

個人の扱うアカウントの数が増えれば増えるほど、そのどれか一つが流出するリスクは高まります。
個人の扱うアカウントの数が増えれば増えるほど、覚えきれなくなるのでパスワードを使い回す可能性は高まります。

クラッカーにとって、パスワードリスト攻撃は非常に合理的で効率的なのです。
クラッカーからしても、例えば強固なセキュリティが施された大手IT企業のWebサービスに正面から攻撃を仕掛けたくはないはずですが、そこらのしがない小規模なWebサービスであれば簡単にクラッキングできるかもしれないと考えますよね。そういうところでアカウント情報を窃取できれば、そのリストによって大手のWebサービスにも不正アクセスできる可能性が高いんです。ちょろいもんですよ。
いくら大手のWebサービスが強固なセキュリティ設定を施していたとしても、ユーザー側がパスワードを使い回していたら意味が無いんですね。

だから、パスワードは「④使い回すな」と言われるわけです。
全人類がパスワードの使い回しをやめればリスト攻撃は実質的に滅びるんですが、まずそうならないのでリスト攻撃は今後も主流であり続けるでしょう…人類は愚か…

ちなみに総当たり攻撃、辞書攻撃、パスワードリスト攻撃いずれもiパス試験の範囲なので覚えましょう。もっと言うと不正アクセスもそうですね(iパスノルマ達成)

安全なパスワード、試しに作ってみよう

攻撃手法はもっと色々あるけど、一旦情報を整理します。
ここまでの文章で合間にちょこちょこ出てきた、パスワードに関する攻撃への対策部分を抜き出してみましょう。

①文字数を増やせ
②大文字・小文字・数字を混ぜろ(できれば記号も)
③単純な英単語や規則的な文字列などを使うな
④使い回すな

文字数について具体的な数値は挙げていませんが、例えば30文字ぐらいとして、①〜④を満たすパスワードを考えてみます。つまり、

  1. 「30文字」で、

  2. 「大文字・小文字・数字・記号混じり」で、

  3. 「規則性の無いランダムな文字列」を、

  4. 「使い回さない」、試しに10個作る

作ってみました。それがこれ↓

  1. M|49orVq9MOpZve./djiExm#EDUF74

  2. TCpAnoIXU1W7Z2tjReb70Zsky9xUh7

  3. L)H#&05BXe%ZemYhh9FobLx(H+n)m

  4. #i7$cIs/ESQ~Vo3dr&KvmdenntjBc

  5. 5!/YJq$5PSRycLbcBA22DVVOcd%6KD

  6. BUQzV6rn9TskHmO1).i8)T$LtMlZai

  7. 3#1KS$nPNp735Z9f6.0).*OSyDA98i

  8. BX2mawZ4psW6$5Qu+bb6(d~gT-HPs6

  9. gwNNOrw)QD+/6-Tc.,joB0cO|sHxxM

  10. LLjVBiH!cRBlt8ZEOsB7gAlcE69ho/

うーん強そうだ。
で、問題はこんな感じのパスワードをこの調子で100個200個作ったとして、覚えられるか?って話です。

無理に決まってんだろ。

アプリで自動生成し、アプリに覚えさせよう

さっきのパスワード群、覚える以前に作るところからしても無理がありますよね。どうやって作るんだよ。

でも簡単な方法があるんです。それが、パスワード管理アプリを導入することです。

パスワード管理アプリとは何か?ざっくりと以下のようなことができるアプリです。

  • アカウント情報(WebサービスのURLと、ID・パスワードといったログインに必要な情報など)を安全に保存、管理できる

  • 保存したアカウント情報を、Webサイトの入力フォームなどに自動入力できる

  • 強固なパスワードを自動生成できる

パスワード管理アプリを使えば、めちゃくちゃ複雑なパスワードを100個でも200個でもアプリが覚えてくれます。
アカウントを新規作成するときやパスワードを変えたいときは、めちゃくちゃ複雑なパスワードを自動生成してくれます。
ログインするときには自動入力もしてくれます。
人間が複雑で長いパスワードを頑張って作り、いちいち暗記し、その都度入力する手間が全て省けます。

そういうアプリって危なくないですか?

大きなリスクがあるとすれば、「そのパスワード管理アプリに保存した情報が流出したらどうするの?」という点ですが…
普通、パスワード管理アプリに保存した情報は高度に暗号化されているため、暗号化した情報だけが流出しても実質的に被害は無いと言って良いです(暗号解読は理論上可能だが極めて困難だからです)

アプリで暗号化されている情報は復号(元のデータに戻すこと)しないと使えるようにならないため、復号に必要なマスターパスワードだけは自分の頭で暗記する必要があります。
マスターパスワード一つだけを全力で覚えれば、それ以外のあらゆるパスワードは覚えなくて済み、覚えなくていいのでいくらでも複雑なパスワードにできてしまいます(実際、私は可能であれば特に意味なく40桁とか50桁とかのパスワードを作ってます)
相乗効果で安全性がスゴイ!

アプリを使うか使わないか、どう判断すれば?

パスワード管理アプリのリスク(クラッキングや情報流出など)と、
自力で覚えることの困難さから生じるリスク(簡単なパスワードを使ってしまう、使い回してしまう)を天秤にかけて、
より安全だと思う方を選びましょう。

…ただ、私個人としてはアプリが必須だと感じています。

どっちが安全というか、自力で全て覚えて使い回さないというのは私にはできないので、比較にならないんですよね…できない以上アプリを使う以外の選択肢が無いんです…
他の方法として「紙のノートにメモする」みたいな方法もあるんですよ。これは冗談で言っているのではなくガチです。データとして存在する限りインターネット経由で世界中から狙われるリスクが生じますが、紙であれば少なくとも海外や遠方のクラッカーから狙われることはありません。パスワードを使い回すリスクに比べたら、パスワード100個を全てノートにメモしてノートを大事に持っておく方が遥かに安全です。マジで。

まあ、ついでに言うとアプリは安全性だけでなく利便性も非常に高いので、少なくとも私は紙ではなくアプリを選びました。

より具体的にアプリ名まで言うと、私はオープンソースであるBitwardenを使っています。理由はオープンソースで一番信頼できるからです。
なんでオープンソースを信頼しているのかの説明は完全に記事一本分になるのでここでは割愛!機会があれば別記事で!

ここまでのまとめ

  • パスワードは流出したら人生終わるのに必要数が多すぎ!

  • 複雑なパスワードを使い回さずに全部覚えるとか無理!でも使い回すとリスト攻撃の餌食!

  • だからパスワード管理アプリを使いましょう

今回はここまで!

次は2段階認証の話!
最近はSNS上の有名なクリエイターがアカウントを乗っ取られて自分の作品を全部消されたとか、悲しい話もよく聞くので…ちゃんと2段階認証しようね!!!!!!!という話です。

iパスに関する記事をまとめたマガジンはこちら↓


この記事が気に入ったらサポートをしてみませんか?