新たにパスワードを考えるのは疲れるし、パスワード管理ソフトでも「マスターパスワード」というものが最低1つ必要だ。
ようは、誕生日や電話番号といった迷惑なパスワードをかさ増し・追加させて強化する。
現在はDicewareを使った方法が簡単かつ余計な考えもいらないので、これだけ使っていれば良い。
Dicewareを使っていても、覚えるものが多すぎてややこしい場合は、コメント欄で教えてもらったiwannaeatoudonさんの方法がヒントになるかもしれない。
回避の心得
非推奨なはずの誕生日にはメリットがある。
ただ、そのまま使えばいつもどおり「最悪のパスワード」であり、利用しているサービスに「多大な迷惑を与える爆弾」である。
これは、
- リスト(使い回しでアウト)
- 辞書(単語系でアウト)
- 総当たり(数字のみ系などがアウト)
といったあらゆる攻撃方法が誕生日パスワードを引き当ててしまうからだ。つまり、この3つを回避することで激烈な安全が手に入る。
ということで、忘れにくいメリットを活かし、華麗に「辞書」・「総当たり」攻撃を避ける使い方を維持していき、不正アクセスを回避していく。
かさ増しの極意
誕生日などに他の文字列を混ぜてかさ増しをする。
コツは、意味のある数字(誕生日)や単語じゃないものに破壊して次の3つを守ること。
- 12桁以上になるように記号をぶち込む(総当り)
- 最低でも記号を2つ以上入れる(総当り)
- 何かの単語の間を記号でブッタ切り(辞書)
推奨桁数参考インターネットの安全・安心ハンドブック[みんなでしっかりサイバーセキュリティ]30ページ目:パスワードの安全性を高めるに10桁推奨とある
例:パスワードが『YarisugiSecurityNo1』だった場合。
誕生日が(20180101)ならリスト型回避と最低推奨桁数を満たすためにアルファベットでかさ増すべきなので、「20/1r80_1y01」のような感じ。
パソコンで記号を選んでしまうとスマホで入力する際に記号の場所がわからず困るので、スマホを開き、わかるところにある記号を選ぼう。
「スペース」はパスワードとして簡単かつ優秀なのだが、日本のサービスがほぼほぼ対応していないため「かさ増しの極意で使用する」のだけは禁止。
なお、2017年の時点で「パスワードに記号・大文字・小文字を混ぜるという一般的な手法は間違いだったと専門家」が言っているため、今は桁数の方がとにかく重要な模様。
参考The Man Who Wrote Those Password Rules Has a New Tip: N3v$r M1^d! – WSJ(英語:会員登録必須)
さらに、わかりやすく桁数が重要なのか視覚化してくれるサイトもある(使う予定のパスワードを入力するのは禁止)。
Dicewareを使った方法
ダイスウェア (Diceware) とは、ダイス(さいころ)を使って「ダイスウェア単語一覧」と呼ばれる単語一覧から単語をランダムに選び、パスフレーズを作る方法のことである。
引用:Diceware Passphrase Home Page (日本語公式)
この方法はコメント欄でれっかさんに教えてもらった。
- ステップ.1まず適当にダイスを1度に5個振るか、1つのダイスを5回振る
ネットでも振れる。サイコロを振る
- ステップ.2そうすると1~6の数字を5つ獲得できるので、以下のワードリストと照らし合わせてメモ。
- ステップ.3上記を5回繰り返して文字数を20桁付近にする
上記ワードリストはdiceware_jp.txt・diceware-ja/wordlist.csvどちらを使ってもよいが、公開リスト(レインボーテーブル)を使うことで攻撃が成功してしまう可能性があるため、思いついた単語を自分で追加しよう。
それを5単語合わせれば、大体20文字以上になっているはずだ。
「数字」や「記号」が入っていないとパスワード登録を受け付けないサービス対策のために、適当に数字と記号を付ける習慣があるといいだろう。極端な話最後に「3-」など付ければ回避可能で、大体ハイフンは対応している。
まとめると、
- 最低でも1単語だけ自分で考えた番号を混ぜる(おすすめ・というかこれでOK)
- 最低でも1単語はワードリストと被らない、自分で考えた単語にする
をやっておけば良い。
「これじゃあ少ない!」というなら、造語もオススメである。
Twitter大好き人間なら、「tuihai○○(自分のニックネーム)」とかの適当なもので良い。
今作ったパスワードを使い回すのは結局意味がないため、パスワード管理ソフトの導入は諦めてするように。
四字熟語というマルチバイト文字で抽選を増やす
やりすぎコミュニティでAlek Andersonさんによるでマルチバイト文字、ようは漢字・四字熟語を使ったセキュリティ向上作戦を教えてもらった。
先程まで「文字数だけでいい」と言っていたが、文字数を稼げないのはどうかと思うため、入れても1つ(4文字)だけでいいだろう。
何だったら漢字一つだけでもマルチバイト抽選を増やせる(ほとんどの総当りツールにマルチバイトが対応しているとは思えない)。
そして、使う場所は限られる(自分で探すのはあり:教えてもらったマルチバイト対応ツール一覧)。
- 圧縮・解凍ソフト:7-Zip
- 圧縮・解凍ソフト:WinRAR
- パスワード管理ソフト:Bitwarden
- パスワード管理ソフト:1Password
- クラウドのファイル暗号化ソフト:Cryptomator
- ファイル暗号化ソフト:VeraCrypt(パスワードを表示させないとマルチバイト入力不可)
- メールサービス:ProtonMail
- メールサービス:Tutanota
- クラウド:MEGA
- VPN:NordVPN
- VPN:ExpressVPN
試していないだけで、もしかして結構ある?(゚~゚o)
マスターパスワードは他で流用しない前提ため、Bitwardenに対してかなりいい感じの防御層を追加できるだろう。
四字熟語はランダムで表示してくれるExcelをAlek Andersonさんが作ってくれたので、試しに使ってみるとい。
記憶術の極意
パスワードジェネレータを使い「小文字のアルファベットと数字を混ぜた12桁」を作成し、メモをとってこよう。
※かさ増しの極意の前か後ろに付け足してもいいが、新しく作成するのを推奨する。
このままだと「パスワードを厳重にしよう!」と同じの「極意要素皆無」なので補足。
実は毎日使用しているサービスを「ログイン情報を記憶しない」にして追い込み効果を発生させた状態にすると、「気づいたら」覚えている。
- ログインしなければ死活問題
- ログインしなければ遊べない
という状態を作り出すために、さきほど作成したパスワードを「毎日使うサービス」に設定し、「毎回入力する状態」を最低でも5日間続けよう。
あとは作成したメモを財布か何かにしまい、「記憶に定着したら」細かく破って捨てる。
ようするに記憶に定着するまでは研修期間であり、「セキュリティを犠牲にして定着を優先」している。
この「馴染みのない文字列を複数記憶する」のはかなりキツイので、基本的にはパスワード管理ソフトでお馴染み「マスターパスワード用」としての用途が適切だ。
画面ロックを誕生日から脱する際は、この方法がすごい使えるよ! スマホが使えないのは死活問題だからね!
連結の極意
前か後ろに誕生日を付け足すだけだ。
「記憶術で習得したパスワード」の前か後ろに付ける「塊版かさ増しの極意」のようなもので、連結をイメージするとわかりやすいはず。
メリットは桁数を激烈に増やせること。
気になるなら誕生日を半分に分けて入れたり、ミドルネームのような使い方をしてもOK。
かさ増しの極意は禁忌といったが、誕生日ではなく「記号で不自然なところでブッタ切る」ことは効果があるので、かさ増せるならドンドン増やそう。
これら極意3つを併用すると、「記号を含めた15桁以上を使用している状態にボリュームアップ」しているはずだ。
こうすることで辞書攻撃を回避しつつ、実は桁数を増やしたほうが効果的だった問題にも対応できる。
記憶するパスワードを減らす
記憶する絶対数が多いかぎり、確実に使い回す。
そうなると、この方法で作成したパスワードがどこかで流出したら「リスト型攻撃により他のサービスにも侵入」されてしまう。
使い回しはいかに強固に設定しても一気に無意味になる「一発アウト迷惑行為」なので、絶対にやめよう。
セキュリティに気をかけている人はパスワード管理ソフトを常識として使用しているため、知識を強奪するといい。
どうしても使い回したい
もはや何も言わないが、「パスワードを変更」せずに強度を底上げする方法はある。
誕生日でも「記号を含めた64桁になるかもしれないほどのレベル」まで高めてくれるので、最低限やっておこう。
不正アクセスの確率を減らす
単純に知識不足で罠に引っかかっているだけなので、一度確認して修行してみるといい。
適当に見ておくだけでも、その場面に遭遇したらストッパーが掛かるかもしれない。
コメント
Dicewareですが、公開単語リストを素朴に使うのではなく、それぞれにぷっぷさんご推奨のブッタギリ等を混ぜる必要がありと思います。理由は公開レインボーテーブル。
レインボーテーブル作成の元パスフレーズとして、公開単語リストなど恰好のネタですから、新しい単語リストが公開されたら直ぐにレインボーテーブル入りしていると考えるのが妥当で、すなわち公開単語リストを素朴に使ったパスフレーズは「脆弱なパスフレーズ」入りしていると考えるのが妥当と思えるからです。
自分で考えた文字列を混ぜるのは、理にかなっていたのですね∩(・∀・∩
ヤッタネ!
参考レインボーテーブル (rainbow table)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
記事中の例をそれっぽくしておきました。
返信・追記ありがとうございます!自分でも説明が下手くそだなーと思ったので追記します(;一_一)
(以下、丸括弧内は例)
書式の数については、プログラミングを齧っている人ならいろんな言語からとってくればたくさん作れます。プログラミングをやってなくても、ローマ字文章にする(TyouanzennaKi-pasu@YamadaIchiro)とか、記号をはさむ種類とはさみ方にパターンをつける(Ya[madaIc]iro2001:0101)とか、いろいろやりようはあります。
・・・が、そもそも覚えやすくするためのものなので、あんまりたくさんの書式でやる必要はないと思います。まさかクラッカーさんもhttp://で始まるパスワードがあるとは思わないでしょうし(マイナーな形式ならなおさら)。
なので形式はいくつかに絞って、鍵となる情報のバリエーションを増やすべきです。
例えば、名前の母音だけとってくる(aaaiio)みたいに個人情報を符牒化する。あるいは誕生星座をつかうとか、もし数学好きなら円周率や√2といった無理数を使う。
という具合で「自分にとってはわかりやすいが推測されづらい」文字列を使うのが大事だと思います。
もちろんこれも書式と同様あまり多すぎると覚えられませんので複雑化はほどほどに。
こうやって生み出した文字列を2,3種類の書式に従って組み合わせれば、覚えやすく推測されづらいパスワード(パスフレーズ?)の完成です。
ぜんぶ組み合わせるとこんな感じ:
2001/01/01生まれ(やぎ座)、数学好きの山田一郎さんのAuthyパスワード
nidankai-2001yagi=Ymdchr-1.414
KeePassによると147ビット強度とのことなので、十分なものができました。
完全に理解した(*゚▽゚)(大嘘)
次になにかマスターパスワード的なものを作る時は、試してみて染み込ませます!