複雑で強いのに忘れにくいパスワードの作り方と、正しい管理法
セキュリティの観点から破られにくいパスワードの作り方を解説します。破られにくい上に持ち主は覚えやすいという2つの条件を両立できるパスワードの作り方に特化します。
パスワードを破られてしまうと大変なことになるという意識をお持ちの方の多くは、「強いパスワードを設定する」ということの重要性をすでに認識されていると思います。
それを踏まえて次に生じるのは、それではどんなパスワードにすれば良いのか?セキュリティ上有効なパスワードの作り方は?といった疑問だと思います。
簡単なパスワードだとすぐに破られてしまうことは分かっているので、その対策となる有効なパスワードの作り方を知りたいとお感じでしょう。
そこで、この記事ではセキュリティの観点から破られにくいパスワードの作り方を解説します。しかし、攻撃者にとって破ることが難しいということは、持ち主にとっても覚えにくいパスワードになりがちです。それだと持ち主が忘れてしまう恐れもあるので、破られにくい上に持ち主は覚えやすいという2つの条件を両立できるパスワードの作り方に特化したいと思います。
「そろそろパスワードをちゃんとしておきたい」とお考えの方にとっては良い機会なので、ぜひパスワードのセキュリティ強化を始めましょう。
1.「強いパスワード」が必要な理由
1-1.攻撃者はあなたのパスワードを狙っている
ネットバンキングやクレジットカード会社の管理ページなどをはじめ、ネット上で利用できるサービスが多様になるほど、それぞれのアカウントを守るためのパスワードの取り扱いがナーバスになってきています。
簡単な文字列やすぐに連想されてしまうようなパスワードではアカウントを守るのに十分とは言えず、もしそのパスワードを破られてしまうと大きなダメージにつながってしまいます。そのような簡単なIDとパスワードを使い回して他のサービスなどを使用していたら、目も当てらない被害を受ける可能性もあります。
これを攻撃者の立場で考えてみると、以前よりもパスワードをハッキングする価値が向上しているとも言えます。
1-2.総当たり攻撃でパスワードが破られるまでの時間
攻撃者がパスワードを解読するのに用いられる有名な手段に、ブルートフォースアタック(総当たり攻撃)があります。1つずつ順に文字を変えながら文字列を試していく方法で、とても原始的ではありますが理論上はいつかパスワードの正解に行き当たることができる手口です。
IPA(情報処理推進機構)の調査によると、パスワードの文字数や構成による解読までの時間は以下のようになります。
(表の数値は2008年時点の計測値となります)
出典:IPA (独立行政法人 情報処理推進機)
英文字の4桁ならわずか3秒ですが、それを10桁にするだけで32年となるため事実上破ることが不可能なレベルになります。また、英文字の大文字と小文字の区別を入れて数字を足すだけで8桁なら50年、10桁なら20万年です。
2008年のレポートではありますが、コンピュータの処理速度が向上したとしても、数万年かかる処理を数秒で終了させるにはまだまだ長い時間を要するはずです。
このように、パスワードの桁数を増やしたり異なる種類の文字を混ぜることで解読までの時間が飛躍的に伸びることから、複雑な文字列にすることがブルートフォースアタック対策になることがお分かりいただけると思います。
ブルートフォースアタックについては、「ブルートフォースアタックとは?実験から分かる危険性と有効な4つの対策」にさらに詳しい解説があります。独自に行った実験結果も掲載していますので、ぜひそちらも併せてお読みください。
1-3.他にもある、不正ログインの手口
1-3-1.逆総当たり攻撃
ブルートフォースアタックの逆版として知られるのが、リバースブルートフォースアタック(逆総当たり攻撃)です。ブルートフォースアタックではIDを固定した上でパスワードを解読するために文字列を総当たりで試していきますが、逆総当たり攻撃ではパスワードの文字列を固定した上でID部分を総当たりで試していきます。
推測されやすいパスワードを使用していると、この逆総当たり攻撃によって不正ログインをされてしまう可能性があります。
1-3-2.辞書攻撃
総当たり攻撃や逆総当たり攻撃の場合、意味のない文字列であっても手当たり次第に組み合わせを試していくのですが、辞書攻撃は「意味のある言葉」からパスワードを解読していきます。
人間は自分が覚えやすいように、パスワードを何らかの意味のある言葉にしている可能性があります。それを突く形で、「意味のある言葉」だけを辞書化した上で総当たり攻撃を仕掛けるというわけです。
ここでいう「意味のある言葉」とは、人名や有名人の名前、地名などの固有名詞に加えて身の回りにあるさまざまな単語です。例えばリンゴを示すappleという言葉だけでも、これをパスワードに使用している人は世界中に数えきれない人いることでしょう。
辞書攻撃は、人間が覚えやすいようにする工夫を逆手にとった攻撃の手口です。
1-3-3.ソーシャルエンジニアリング
ここまでの手口はすべてコンピューターが行うものですが、ソーシャルエンジニアリングはとても物理的な手口です。パスワードの持ち主が使用しているデスクの周りにあるメモを探したり、パスワードを入力している様子を盗み見したり、さらにはゴミ箱に捨てられたゴミからパスワードに関する情報を盗み取ろうとする手口もあります。
コンピューター上のセキュリティを強固にしていても使用する人間のセキュリティ意識が希薄な場合、ソーシャルエンジニアリングによってパスワードが漏洩する恐れがあります。
2.セキュリティを高めるパスワードの考え方
2-1.桁数を増やす
前章の「1-2.総当たり攻撃でパスワードが破られるまでの時間」で解説したように、ブルートフォースアタックによるパスワード解読を防ぐには、パスワードの桁数を増やすのが最も簡単な対策です。4桁よりも5桁、5桁よりも6桁といった具合に桁数を増やすだけで解読の難易度は飛躍的に向上します。
さらに、パスワードが何桁なのかを知られないようにすることも有効です。桁数が分かっているだけでブルートフォースアタックに使用するツールの「手間」が省けるため(該当する桁数以外を試す必要がないため)、パスワードの桁数そのものも機密情報であると認識してください。
2-2.異なる種類の文字を組み合わせる
桁数の次に工夫したいのが、パスワードに使用する文字の種類です。銀行の暗証番号のように数字しか使えないのであれば無理ですが、パス「ワード」というだけあって通常は英文字や記号などを使うことができます。
文字数を増やすということはそれだけブルートフォースアタックの工数が増えるため、解読に要する時間が天文学的に増えていきます。
2-3.意味のある文言を使わない
意味のある文言を使うことは、辞書攻撃の有効性を高めてしまいます。人間にとって覚えやすい言葉は、攻撃者にとっても推測しやすい言葉であると認識しましょう。
既存の単語や固有名詞を使うのではなく、あくまでもランダムな文字列であることが基本です。
2-4.ユーザーゆかりの文字列は使わない
ユーザーが田中という人だとします。その人がパスワードに「tanaka」という言葉を含めていたら、この人を狙ったパスワード解読を容易にするのは言うまでもありません。
ユーザーの子供やペットの名前なども同様で、特定のアカウントを狙った辞書攻撃の精度を高めてしまうことになります。
2-5.パスワードに使ってはいけない文字列ランキング
セキュリティ意識の低いユーザーが使っているありがちなパスワードのランキングというものがあります。弊社調べで25位までをランキングしていますので、以下にご紹介します。
1 – 123456
2 – password
3 – 12345
4 – 12345678
5 – qwerty
6 – 123456789
7 – 1234
8 – baseball
9 – dragon
10 – football
11 – 1234567
12 – monkey
13 – letmein
14 – abc123
15 – 111111
16 – mustang
17 – access
18 – shadow
19 – master
20 – michael
21 – superman
22 – 696969
23 – 123123
24 – batman
25 – trustno1
上にいけばいくほど、誰もがまず思いつきそうなパスワードになっていることが分かります。こうしたパスワードを使用しているということは、ブルートフォースアタックなどの攻撃以前に手動で簡単に破られてしまう可能性があることを肝に銘じておきましょう。
3.今すぐ使える強いパスワードの作り方5ステップ
自分自身だけが知るパスワード作成の法則があれば解読されにくい、かつ別々のパスワードをいくつでも作成することができます。
ここでは一つの例としてそのオリジナルのパスワード作成のルールをご紹介します。
3-1.ベースになる文字列を作る
まずはパスワードのベースとなる言葉を1つ用意します。その方法として、以下の2つを提案したいと思います。
3-1-1.好きな固有名詞を何か1つ決める
パスワードのベースとなる固有名詞は、好きな人やアーティスト、歴史上の人物などから選ぶのが良いでしょう。この場合、ご本人や家族、ペットの名前、お住いの地域名などは類推されやすくなるので好ましくありません。あまりご自身の趣味・趣向と関係のない固有名詞から選ぶのが効果的です。
3-1-2.好きな文章を作って頭文字を文字列にする
前項の他にベースとなる文字列を作成するために文章を作り、頭文字をつなぎ合わせるという方法も良いでしょう。例えば「私は沖縄生まれです」という文章を作り、それを「Watashi ha Okinawa umare desu」といったようにローマ字で文章を書き直し、それぞれの頭文字をつなぎ合わせるといった具合です。この場合だと「whoud」となります。英語の文章から頭文字を取っても構いませんが、日本語の方が外国の攻撃者から類推されにくいので、ここは敢えて日本語を使うのが効果的かもしれません。
3-2.サービス名のアルファベットでパスワードを挟む
パスワードは使い回すことなく利用サービスごとに変えるのがセキュリティの基本です。例えばFacebookのパスワードであればfbというイニシャルを作り、その1文字ずつで任意の文字列を挟みます。
前項の例で作成した「whoud」を挟むのであれば、「fwhoudb」といった具合です。その他にもインスタグラムでればig、ツイッターであればtw、アマゾンであればazといったように、2文字の文字列に略した上で文字列を挟みます。
3-3.アルファベットの一部を記号に置き換える
次に、アルファベットに記号を加えることでパスワードの難読性を高めたいと思います。そこで提案したいのが、アルファベットの一部をある法則性に基づいて置き換えるというものです。
よく似た文字だと覚えやすいので、このような法則性を持たせてみてはいかがでしょうか。
s→$
a→@
o→0(ゼロ)
z→2
w→3(wを左に回転させると3のようになるため)
b→6
これは一例ですが、その他にも置き換えができるものを置き換えていただいて構いません。この法則性で先ほどの文章から作った文字列を置き換えてみましょう。
fwhoudb → f3h0ud6
これだけでかなりパスワードの難読性が高まっています。
3-4.好きな2桁の数字を決め、最後にパスワードの両側から挟む
最後に、好きな2桁の数字を決めておき、その2桁の数字で作ったパスワードを両側から挟みます。ここで決める数字は、例えばキャッシュカードの暗証番号の上2桁といったように、他のサービスで利用している番号の一部でも構いません。パスワードが2580だとしたら、挟む数字は2と5です。先ほどのパスワードを挟むと、こうなります。
f3h0ud6 → 2f3h0ud65
9桁でアルファベットと数字が混在したランダムなパスワードが完成しました。仮にこのパスワードを忘れてしまったとしても、作り方を覚えていれば再び作ることができるので、完全に紛失するリスクは大幅に低くなります。
このため、パスワードをメモするというよりパスワードの作り方を自分だけが分かる方法でメモしておくのが良いでしょう。
4.強いパスワード作りに役立つパスワード生成ツール
この記事では自分だけのオリジナルルールでのパスワードの作り方を解説していますが、ランダムで破られにくいパスワードを自動的に生成するツールもあるので、それもご紹介しておきましょう。
こちらで3つの生成ツールをご紹介していますが、「正しいパスワード生成と管理で不正ログインを防ぐ方法とお役立ちツール7選」にはさらに多くのツールや、パスワードを強くする考え方などについて解説しています。
4-1.ノートン パスワードジェネレータ
ノートンのサービスとして、誰でも無料で利用できます。パスワードを生成するルールを自分で設定できます。
4-2.LastPass パスワード生成
パスワード生成アプリのLastPassが提供しているパスワード生成サービスです。シンプルな操作性で、アクセスをするとすでにパスワードが生成されています。
⇒LastPass パスワード生成 (リンク先は英語)
4-3.ちょっと便利帳「パスワード自動生成ツール」
通常パスワードでは使わないひらがな、カタカナを含めたパスワードが生成できる点がユニークです。
5.パスワードの安全な管理方法
5-1.意外と安全?紙のメモを厳重に保管する
せっかく複雑なルールで難解なパスワードを作ったとしても、それを安易に保管していて見られてしまうようでは意味がありません。本当は記憶しておくのが基本ではありますが、忘れてしまっては元も子もありません。
推奨こそ出来かねますが、紙のメモは確実です。簡単に見られてしまうような場所に置いておくのは論外ですが、パスワードを書いた紙を写真などでデータにしておかなければネットワークを介して盗むことはできません。また、厳重に管理できれば直接それを盗み出されない限りパスワードを知られることはありません。
そう考えると、紙に書いて厳重管理することは意外と安全なのかもしれません。
万が一の事態に備えて、こうした紙のメモにはパスワードそのものではなく、そのパスワードの作り方を自分だけが分かる方法で書き留めておくのも一つの手段です。
5-2.Excelに記録してパスワードでロックする
Excelにはパスワードでファイルをロックする機能があります。Excelファイルの中にパスワード一覧を書き留めておいて、そのExcelファイルにロックを掛けておくと、事実上「1つのパスワードで多くのパスワードを保管」しているのと同じ効果が得られます。
当然ですが、このExcelファイルのパスワードは決して他人に知られないようにしてください。
5-3.パスワード管理ツールを利用する
IDとパスワードを強固なセキュリティ環境で保管できるソフトやアプリがあります。これらを導入すると、そもそも人間がパスワードを覚える必要がなくなります。
代表的なツールとしては「ノートンパスワード マネージャー」「1password」「LastPass」などがあります。
5-4.理想的なのは頭の中だけに記憶する
各種アプリの使用や紙のメモよりも、実は最も理想的なのはどこにも書き留めることなく頭の中だけに記憶しておくことです。複雑な文字列だと記憶するのが難しいかも知れませんが、パスワードの作り方だけを知っておけばいつでも再作成できるので、パスワードそのものを覚えられなくても理想的なパスワード管理が可能になります。
6.アカウントを守るためにさらに知っておきたいセキュリティ知識
6-1.二段階認証、二要素認証
セキュリティ強化の方法論として、二段階認証もしくは二要素認証を導入するサービスが増えています。これは一度のIDとパスワード入力だけでログインを完成させず、別の端末に届く認証コードの入力を求めるなど、2つの段階を踏んで認証をする仕組みのことです。
二要素認証は、IDとパスワードだけでなくトークンやスマートフォンアプリなどを使ってワンタイムパスワードを使って認証をするなどの仕組みで、こちらも二段階認証と同様のセキュリティ強化が期待できます。
二要素認証については「二要素認証(2FA)とは?セキュリティ向上のポイント5つ」に、ワンタイムパスワードについては「ワンタイムパスワードとは? – 使い方と安全性を簡単解説」にそれぞれ詳しい解説がありますので、そちらも併せてお読みください。
6-2.セキュリティの質問に対して無関係の答えを設定する
セキュリティ強化のために「秘密の質問」を設けているサービスがあります。出身中学校の名前や母親の旧姓を設定するなど、その本人しか知り得ないような情報を秘密の合言葉にする考え方です。
しかし、SNSが普及している昨今ではこの方法には危険があると指摘されています。なぜなら、SNSでその人しか知らないような情報を第三者が知り得る可能性が高まっているからです。
そこで敢えて、秘密の質問に対する答えに全く関係のない答えを設定しておくのもひとつの手です。「母親の旧姓は?」という問いに対して「エベレスト」と設定しておくといった具合です。
7.まとめ
以前であればここまで考える必要は無かったかもしれませんが、今やパスワードの作り方からセキュリティ強化を考えるべき時代となりました。それだけネットサービスが発展した証拠なのかもしれませんが、パスワードで守るものの価値が高くなっているだけにパスワードもそれにふさわしいセキュリティを有していなければ安心できません。
具体的な作り方を解説しましたが、この記事で紹介したということはこの法則性を攻撃者が参考にするかも知れません。そこで、パスワードの作り方にご自身で何かひとつオリジナルの要素を加えてみるのも有効です。
自分だけが分かる法則性やルールを決めてしまえば、どれだけネットサービスが増えてもオリジナルのパスワードをどんどん作れるようになるので、ぜひ自分自身のオリジナルルールを決めてみてください。
※記事内容の利用実施は、ご自身の責任のもとご判断いただくようお願い致します。