記憶できる程度のパスワードを付けるのはもうやめよう
あらゆるWebサイトでユーザー名とパスワードを要求されますし、いちいち「予想されづらいパスワードを付けてください」「他のサイトで使っていないパスワードを設定してください」「定期的にパスワードを変更してください」と言われ、挙句の果てに一定期間ごとに強制的にパスワードを変更させるWebサイトまであります。
もういいかげんにしてほしいですよね。予測されづらい十分に長いパスワード※を付けているなら定期的にパスワードを変更することにセキュリティ上の優位性などないというのに。
(※例えば英数字大文字小文字記号等を含む完全ランダムな20桁のパスワード)
パスワードの定期的な変更は不要
パスワードの定期的な変更なんて余計にパスワードが単純化※するだけで百害あって一利なしくらいに考えていましたが、最近ようやく総務省からもガイドラインでパスワードの定期的な変更は不要である旨のお達しが出ました。
なお、利用するサービスによっては、パスワードを定期的に変更することを求められることもありますが、実際にパスワードを破られアカウントが乗っ取られたり、サービス側から流出した事実がなければ、パスワードを変更する必要はありません。むしろ定期的な変更をすることで、パスワードの作り方がパターン化し簡単なものになることや、使い回しをするようになることの方が問題となります。定期的に変更するよりも、機器やサービスの間で使い回しのない、固有のパスワードを設定することが求められます。
定期的にパスワードを変更してください、なんて言われたら大抵の人は password1 → password2 → password3というように頭や末尾の一部を変更してお茶を濁すのではないでしょうか。昔、IT業界の同僚とこの話をした際、その同僚は「あぁたしかに4月ならapr、5月ならmayとか後ろに付けるだけだねーw」なんて笑っていたのを思い出します。
但し、例外もあります。企業内のシステム管理者とかですね。彼らは複数人で管理者権限のIDとパスワードを共有することがありますが、こちらは定期的に変更しないとマズイです。なぜなら共有している同僚が退職や異動でいなくなる可能性があるため、古いパスワードをそのまま使い続けるのは危険なためです。
まぁそんな運用するなよ、という話ではありますが…運用する機材によっては管理者IDとパスワードがひとつしか付けられない、というモノも存在するのです。
自分が記憶できる時点でパスワードとしては失格
他人からは推測されづらく、自分は記憶できるパスワードをつけよう、なんて書いてあるサイトもありますが、記憶できるほど簡単な、あるいはそれ自体に意味があったり規則性のあるパスワードはとても危険です。
大昔は英語、数字、記号を組み合わせて6桁もあれば7,827億通りもの組み合わせがあり、ブルートフォースアタック(コンピューターでの総当たり攻撃。自転車のダイヤル錠を適当にまわして解錠する光景を思い浮かべると想像しやすい。)では年単位の時間がかかりました。
しかし、最近はCPUの性能向上に加え、GPUの演算能力も使ってパスワード解析をするソフトが登場しており、素人でも手に入れられる機材とソフトで6桁くらいのパスワードなら数時間程度で解析完了してしまうようです。
もちろん、Webサイトであればそう簡単にブルートフォースを許さないよう、3回間違えたらロックアウトするような仕組みを搭載するのが普通ですが、これも絶対ではありません。
最近だとPayPayのクレジットカード不正利用事件が記憶に新しいでしょうか。あれはロックアウトの仕組みを搭載していなかったため、パスワード総当たり攻撃によってハッキングされ、クレジットカード情報が漏洩したのが原因でした。
(十分に長いパスワードを設定していた人は被害には合わなかった)
これはさすがにお粗末過ぎる例ですが、PayPayくらいの規模でもやらかすのです。それ以下のセキュリティレベルのWebサイトなんてインターネット上に山程ありますから、普段から
- 複数のWebサイトでパスワードを使い回さない
- 20桁以上の十分に長いパスワードを付ける
というクセを付けたほうが良いでしょう。
そんな20桁以上のパスワードなんて覚えられるわけがない、ですよね。しかも全部のサイトで違うパスワードを使うなんて尚更難しい。
だからといって生年月日との組み合わせはもちろん、親類の誕生日を混ぜたり、電話番号を混ぜたり、あれこれ工夫している人もいますが、そういう一定のルールがある以上、SNS等による個人情報の流出とコンピューターのアルゴリズムの進化による合わせ技でこれもすぐに自動解析されるようになるでしょう。
例えば、Googleは広告をカスタマイズするために貴方のインターネット利用状況を解析し情報収集しています。
https://adssettings.google.com/authenticated?hl=ja
こうした情報をGoogle以外が収集していないわけがありません。ユーザー情報は貴重なマーケティングデータになりますから、性別、年齢、出身地等はもちろんのこと、貴方がどんなジャンルに興味があって、活動的なのは何時から何時くらいなのか等、あらゆる情報が収集されています。そういったデータが少しセキュリティの甘いサイトに収集されて、流出した場合、そのデータを使って更に精度の高いパスワードハッキングが実行されるでしょう。際限がありません。
パスワードの管理はパスワード管理ソフトに任せる
最近、百均などでパスワード管理帳が売れているらしく、SNS上では「おいおい、そもそもパスワードを紙に書くなよwww」とか叩かれていることも多いようですが、頭の中だけに入っているよりは全然マシだと思います。
しつこいですが、人間の頭で覚えられる程度のパスワード=コンピューターで解析可能と考えるべきでしょう。
なので、そのパスワード管理帳を外に持ち出したりするのはよくありませんが、自分しか入れない場所に保管されているならその管理方法で問題はないと思います。
しかし、スマホしかり、自宅以外から特定のWebサイトにログインすることなんて日常茶飯事ですよね。
そういう場合はパスワード管理ソフトに任せてしまうのが良いと思います。
ぼくが使っているパスワード管理ソフトは KeePass Password Safe です。
https://keepass.info/
これが超絶オススメ!というわけではなく、オープンソースで安心できてWindowsとAndroidで使えるのがコレしか見つからなかった、というのが実際のところですw
UIとかけっこう古いデザインですしね…。
パスワード管理ソフトはどれも同じような作りだと思いますが、主な特徴は
- WebサイトのURL、ID、パスワードなどを複数登録可能
- 登録したWebサイトを開き、IDとパスワードを自動入力する機能がある
- 登録した情報はマスターパスワードを使って暗号化される
- マスターパスワードの代わりにキーファイルを使うことも出来る
- パスワードの自動生成機能もある
といったところです。
うーん、機能を列挙したらむしろわかりづらいかな?
要するに1つのマスターパスワードだけ記憶すれば他のパスワードは覚えなくて良いということです。
もちろんマスターパスワード自体も記憶できないほど複雑なほうが良いし、なんならキーファイルという形にすればそのキーファイルがなければ開けないので、より一層素晴らしいですけどね。
暗号化されたパスワードをクラウドで同期することも出来る
KeePassの場合、KeePass.kdbxというファイルに登録したWebサイトのログイン情報が保存されるのですが、これはマスターパスワードによって暗号化されているため、例えばGoogle DriveやDropBoxといったクラウド上に置くことも可能です。
(ログイン情報を記述した暗号化されていないテキストファイルを置くよりは安全という意味)
そうすると手持ちのWindows PCでクラウド上のKeePass.kdbxを同期して使うことも出来ますし、Androidの場合はKeepass2Androidというアプリを使えば直接Google DriveにあるKeePass.kdbxを開くことも可能。
https://play.google.com/store/apps/details?id=keepass2android.keepass2android
最近は指紋認証にも対応したので、指紋認証機能のあるAndroidタブレットやスマホなら、指でポチっとするだけでKeePassが開けるという便利さ。
パスワードの自動生成機能
KeePassにはパスワードの自動生成機能があるのですが、これがなかなか便利です。
下記のように生成するパスワードの文字数や文字種を選んで生成することができます。
パスワードのルールってけっこうサイトによってまちまちじゃないですか。
必ず大文字小文字は入れなければいけないというところもあれば、特殊文字($とか&)を入れるとエラーになるところもあるし、ひどいところでは7文字以上のパスワードが設定できないなんてところもあったなぁ。さすがにそれはサポートに連絡してパスワードの文字数を増やすようお願いしましたけど…。(昔の話ですけど天下のauですよ)
そうして生成されるパスワードの例がこれですが、当たり前ですけどこんなの記憶できませんよね。でも、こういうパスワードを使わないと簡単にハッキングされてしまうのが実情です。
記憶できる程度のパスワードに慣れてしまっている方がいきなりパスワード管理ソフト方式にするのは大変かもですが、銀行やクレジットカード、あるいはメインで使っているメールアドレスのパスワードとか、大事なところから少しずつでも切り替えていくことをおすすめします。
セキュリティと利便性はトレードオフ
WebサイトにログインするたびにKeePassを起動しなければならないという面倒くささはあるものの、Webサイトならブラウザに記憶させる手もあるし、Amazonとかならショッピングアプリもあるのでそちらに記憶させるという手もあると思います。
そりゃね、最上級を望むなら、すべてのサイトでブラウザのパスワード保存機能は使わずにその都度入力したほうが良いですけど、そのためにパスワードを簡単にするなんて本末転倒じゃないですか。
あちらこちらでよく言われていることではありますが、結局、セキュリティと利便性は天秤の関係なので、どのくらいで良しとするかは個々人の判断に委ねられています。
- パスワード管理ソフトを使い、マスターパスワードとキーファイルでがちがちに固める
- パスワード管理ソフトは使うけど、(暗号化された)DBはクラウド上に保管して共有する
- パスワード管理ソフトもブラウザのパスワード記憶も両方使う
- ソフトは信用ならん!パスワードは紙に書いて管理する
などなど色んなやり方があると思います。
サイトごとにパスワードを変えないと危ないから、という理由で決まった特定のパスワードの前とか後ろのサイト名の頭文字を付けて分ける、なんて仕組みを提唱している方もいます。
(例: amazonなら「a12345」、Googleなら「g12345」とか)
こんなのでも1つのパスワードを各サイトで使い回すよりは安全でしょ?と言われたら、まぁそれはそのとおりと言うしかない。
そこまでちゃんと考えているならパスワード管理ソフト使おうよ、とは思いますが。
まとめ
- 人が記憶できる程度のパスワードはハッキング可能と考えよう
- パスワードは20文字以上で複雑なモノをソフトで自動生成するのが良い
- パスワードの使い回しは厳禁
- 当然記憶なんてできないのでパスワード管理ソフトに頼ろう
- WindowsとAndroidならKeePass Password Safeが一応おすすめ
といったところでしょうか。
KeePassが「一応」おすすめ、となってしまうのは、やはり最近のソフトほどイケてないというか、ブラウザとの連携も少々お粗末だし、PCがあまり得意でない人にはおすすめしづらいのが難点なんですよね。
一方、Android版のKeepass2Androidは別の人が作っていて洗練されているのでこちらは普通にオススメです。