新たにパスワードを考えるのは疲れるし、パスワード管理ソフトでも「マスターパスワード」というものが最低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桁になるかもしれないほどのレベル」まで高めてくれるので、最低限やっておこう。
不正アクセスの確率を減らす
単純に知識不足で罠に引っかかっているだけなので、一度確認して修行してみるといい。
適当に見ておくだけでも、その場面に遭遇したらストッパーが掛かるかもしれない。
コメント
大変申し訳無いながらちょっとケチをつけさせていただくと、
この手法を使ったパスワードのうち、kdbxファイル以外のパスワードは全く覚えられませんでした(ーー;)
パスフレーズ方式はまあありだと思います(あんまり試してない)が、脈絡のない単語が絡んだパスワードが複数個あったらこんがらがりそう。
記号を挟む方式は挟んだ場所を思い出せなくて無限地獄。
ランダムのパスワードは大事をとって長くすればするほど丸暗記が厳しい。そのうえ、頑張って一度覚えてもなかなか使う機会がないと忘れてしまいます。
自分はKeepassの保存先をSync.comにしてキーファイルをOnedriveに置いてAuthyで2段階認証という4層防御でやっているのですが、そうするとKeepassのマスターパスワード以外はどうしても使う機会がほとんどなくなってしまいます。(Authyはたまにパスワードを聞き直してくれますけどね。神様です)
これではいざ「スマホが壊れた!」「パソコンが壊れた!」「家が水没した!」というときに詰んでしまうし、機種変のときも元端末のKeepassを参照しながらやる羽目になって非常に面倒です。
そういうわけで、新手法を提案させていただきたいです。
「何らかの書式に従って個人情報を書く」です。
例えば仮に2001年1月1日生まれで初音ミク推しの山田一郎さんなら
https:\\ichoro.com\twitter\mi9mi9.html (リンク回避のためバックスラッシュ)
みたいにURL型で書いたり、
Dropbox.auth.name(yama1ro).birth=20010101
みたいにオブジェクト言語っぽく書いたり、もっと単純に
2001-jan-tsuitachi-gu-guru-ichi6 (ただし表記揺れには注意)
みたいに数字・ローマ字表記・ハイフン混じりで書いたり、みたいな感じで
いい感じの省略も交えつつ一定の法則に従って書くのが、最重要だけど覚える機会がないパスワードに最適なのではないかと考えました。
こういう書式の種類は無数にあるので、第三者からの安全性はそれなりに高く、かつ覚えやすいものになるのではないかと思います。
なにか粗があれば指摘をお願いします。なかったらもしよければ紹介していただけると喜びます(小声
(内容的にコミュニティのほうに書くべきだったかな…)
コミュニティはもはや見ていないので、書いてはいけないのです( Ꙭ)
※存在するかもしれないURLのバックスラッシュナイスです!
ちょっとよくわかっていないので、「コメント欄でこのような手法ありますよ」パターンで案内させていただきます。
Googleをgu-guruという、「英語の皮を被った日本語」はかなりありだと、私も思っています∩(・∀・∩
※どこに追加しようか迷ったため、大胆にも冒頭に案内を追記
マルチバイト文字は、私が試したセキュリティ関連のサービスだと、
protonmail
tutanota
expressVPN
nordVPN
MEGA limited
やりすぎコミュニティ
が対応していました。
ここのコミュニティのアカウントも実は対応済みなんて、流石ですね。
なぜ対応してるし(゚~゚o) ※正確にはTribeのサービス
英語圏じゃないのに対応しているのは、なにか理由があるのかなってくらい意外と多いですね!
また、追記もしておきました!
記事を改訂することがあればパスフレーズについても触れてほしいですね
紹介されている手法でも強いパスワードを作ることはできると思いますが、
私は、多少桁数は長くなってもいいから普段タイプするのと同じ感覚でパスワード入力がしたいのでパスフレーズの変種であるDicewareを使ってます。
(「やりすぎセキュリティ」->「yarisugisekyurithi」は普段のタイピングそのままなので頭を使う要素がなく自動で手が動くが、記号をいれて傘増しすると「記号はどこに何を入れたっけ?」という思考を慣れるまで経る必要があり、またなかなか慣れない)
簡単にパスフレーズとDicewareについて説明すると
記号を入れるより、文字数増やす方がパスワードの強度に影響するのだから、文章にしてしまえば覚えやすくて強い強度になるじゃん!ってのがパスフレーズで
パスフレーズで使う単語の選択を、あるワードリストからランダムに数語取り出す形式にすれば、(ワードリストの語数)^(パスワードの語数) と簡単にパスワードの強度が計算できて安全性が明瞭じゃん!ってのがDicewareです
本家KeePassでも何か方法はあると思いますが、私が使っているKeePassXCでは公式にDiceware生成機能もあり、ややわかりづらいですが、独自に日本語ワードリストを導入することも可能です。
肝心の日本語ワードリストにはコレ (https://github.com/tsuchm/diceware-ja) などがあります。(これはヘボン式で書かれているのがやや難点ですが、適当に読み替えてもいいでしょう。私は自分で作ったリストがあるのでそれを使っています)
この手法って何も調べずに私の頭の中で適当に作ったものなので、穴が結構あるなー(´ε`;)
いい線いってると思うけども!
途中に「文字数を増やしたほうがいい」と追記したのですが、こんな方法があるのなら普通に紹介させていただきます!
追記:Dicewareを使った方法を記事中に追加。
フルネームローマ字本名+シーザー暗号のパスワードってセキュリティ的にはどうですか?
複雑にするのより、桁数優先のほうがいいかもー!
もちろん12桁以上を目指す形で。
フルネームをそのまま使っちゃうのはなんか嫌なので(感情)、フルネームの2文字目にシーザー暗号を移動させるなどの小細工いれると、なんの根拠もないけど機械じゃなくて人間には強くなれる気がします(゚~゚o)
かさ増しの極意の部分についてですが、
紹介されている方法がなぜ安全なのかがわかりませんでした。。。
以下、気になった点です。
>12桁以上になるように記号をぶち込む(総当り)
12桁以上としている根拠は何なのでしょうか
>最低でも記号を2つ以上入れる(総当り)
なぜ記号が必要なのでしょうか
>誕生日が(20180101)ならさすがにアルファベットを入れるべき
何をもってさすがになのでしょうか
>弱い記号は「-(ハイフン)」となっており、それ以外は普通という認識で良い。
ソースなどありますでしょうか
ちなみにですが、NIST Special Publication 800-63Bはご存知でしょうか(読んだでしょうか)
本当だ、情報元書いてない(゚~゚o)
内閣サイバーセキュリティセンターの、インターネットの安全・安心ハンドブック[みんなでしっかりサイバーセキュリティ]30ページ目「パスワードの安全性を高める」の部分に「ログインパスワードは10桁以上を推奨」と書いてあるのでそれをもとにしています。
ですが、日本のサービスの入力限界は12桁が経験上多い感じもしますし(8桁まだあるけども)、それを考えて12桁というおまけ感の適当で2桁を追加しています。
というか、10桁だと私が気持ち悪いのでそっちの感じの方が強いかも!
これは単に、記号ぶった切りでリスト型攻撃を回避するためです。
今は以下の理由もあってこの記号ぶった切りに意味があるのか疑問ですが(とにかく桁数)、とりあえずリスト型回避としては使えるとして書いています。
参考8文字のWindowsパスワードはわずか2時間半で突破可能と判明 – GIGAZINE
8桁かつ数字しかないため(誕生日は興味本位で推測できてしまうので、その線を切りたい)、リスト型と最低推奨桁数を満たすために「さすがにアルファベットを入れるべき」。
かなり昔にどっかで見たと思ったのですが、検索してもでてこないので不適切ですね。
これは訂正させていただきます∩(・∀・∩
読んでないです!