SNSやウェブサービスからIDやパスワードなど個人情報が流出したニュースをたまに耳にする。 2024年にはニコニコ動画がサービスを長期間停止するほど大きな被害があった。 どんなに強固なパスワードを考えても、どこからかパスワードが漏れてしまうと意味がなく、パスワードの使い回しが一番危険なのかもしれない。
ただ、何か新規にパスワードを作らなければいけないとき、一応まじめに考える。 昔私は基本的に8桁で作っていたが、その後10桁、12桁など桁数を増やしている。 コンピュータの進化とともに、時代に合わせてパスワードを見直している。
安全とされるパスワードは、基本的に総当たり攻撃(ブルートフォースアタック)を想定していて、それに強いパスワードを指している。 総当たり攻撃というのは、例えば数字4桁のパスワードの場合、0000、0001、0002、・・・、9997、9998、9999と全ての組み合わせを試せばいずれ当たるというもの。 つまりパスワードは、桁数が多く、文字の種類が豊富なほど良いということになる。 数字は0~9の10種類しかないが、英字はa~zまで26種類あり、さらに大文字のA~Zもある。 またパスワードには !"#$%&'()=-^~\|@`[{;+:*]},<.>/?_ などの記号も使える場合がある。 パスワードはこれら全て混ぜて作るのが理想的とされる。
いろいろな種類の文字や記号を混ぜると覚えにくいので良くないという意見もあるが、覚えられるならその方が良い。 それに文字列の区切りとして大文字や記号を入れた方が覚えやすい場合もある。
いくつかのサイトで試したが、Google、Yahoo! Japan、Amazon、X(旧Twitter)、Facebook といった大きいサイトはパスワードに記号も使えるが、一部の通販サイトなど、記号が使えないサイトも結構ある。
下表は、使用する文字の種類と各桁数における総当たりに必要な試行回数を記した。 例えば数字(0~9)の4桁は、0000から9999まで1万通りの組み合わせしかない。 サイトでパスワードを決める際、安全性の目安が表示されるサイトがあるが、概ね数字、英字(大小)、記号(使用可能な場合)を組み合わせて10桁程度で「安全」と表示される。 例えば、英字(大小あり)+数字+記号31文字の10桁のパスワードを総当りする場合、48,398,230,717,929,300,000(約4839京)ものパターンが存在する。
使用する文字の種類 | 使用可能文字数 | 4桁 | 6桁 | 8桁 | 10桁 |
数字(0~9) | 10 | 10,000 | 1,000,000 | 100,000,000 | 10,000,000,000 |
英字(小文字a~zのみ) | 26 | 456,976 | 308,915,776 | 208,827,064,576 | 141,167,095,653,376 |
英字(小文字a~zのみ)+数字 | 36 | 1,679,616 | 2,176,782,336 | 2,821,109,907,456 | 3,656,158,440,062,980 |
英字(大小あり)+数字 | 62 | 14,776,336 | 56,800,235,584 | 218,340,105,584,896 | 839,299,365,868,340,000 |
英字(大小あり)+数字+記号31文字 | 93 | 74,805,201 | 646,990,183,449 | 5,595,818,096,650,400 | 48,398,230,717,929,300,000 |
英字(大小あり)+数字+記号32文字 | 94 | 78,074,896 | 689,869,781,056 | 6,095,689,385,410,820 | 53,861,511,409,490,000,000 |
英字(大小あり)+数字+記号34文字 | 96 | 84,934,656 | 782,757,789,696 | 7,213,895,789,838,340 | 66,483,263,599,150,100,000 |
総当り攻撃はコンピュータの性能が良いほど速く試行でき、コンピュータの進化により総当りに要する時間は短縮されつつある。 総当り攻撃にどのくらい時間がかかるか実験している人もいる。 ただ、ウェブサーバーに対して何億何兆という総当り攻撃を行った場合、きちんと管理されているウェブサーバーであればそれに気づいて対処するだろう。 サイトによっては一定の試行回数を超えたらログインできなくなるものもある。 または自動的に検出しているサイトもある。
総当りの試行回数が少なすぎるパスワードや推測されやすいパスワードでない限り、無駄に長い試行回数が多いパスワードを作るのはあまり意味がないのかもしれない。 強固なパスワードを設定したにも関わらずアカウントが乗っ取られた場合、きちんと管理されていないウェブサーバーであったり、ローカルのパソコンなどからパスワードが漏れた可能性もある。 パスワードの使いまわしを避けたり、信頼性の低いソフトウェアのインストールを避けることが大切。