特にネタがないのでパスワード関連でもうちょっと書いてみます(ネタが無いなら書かなくてもいいんじゃないとかイワナイ)。
2019年7月には、セブンペイが結構大きな不正アクセス事件を起こしたり、ヤマト運輸が不正ログインを受けたりと、認証関連の事件でちょっと目立つことがありました。
セブンペイについては、ブログで勝手にえらそーなことを書いたワケですが。
現在、よく使われている認証は、やはりパスワード認証のみという状況で。
最近ではこんな記事も出ています。
認証方法は「IDとパスワードのみ」が7割超 ネットサービス事業者の甘さ露呈
https://www.itmedia.co.jp/news/articles/1907/29/news047.html
現実問題として、パスワード認証のみのサービスも利用していかなければならない状況は、当面続くと思います。
そんな中で、じゃあどうやって身を守ろうか?といったことを考えてみたいと思います。
(この記事は、あくまで私見(今の私の意見を記録するチラシの裏)だからね!)
モダンなパスワードのルールは
パスワードのルールも、時代によって変化していきます。
最近提唱されているのは、別の記事でも触れましたが、以下がよくまとまっています。
安全なパスワード管理(総務省)
http://www.soumu.go.jp/main_sosiki/joho_tsusin/security/business/staff/01.html
STOP! パスワード使い回し!キャンペーン2018(JPCERT/CC)
https://www.jpcert.or.jp/pr/2018/stop-password2018.html
前にもまとめましたが、
- 使いまわしはしない
- 類推できる文字列(単語等)は使わない
- 数字や記号をできれば混ぜる
- 適切な長さにする(12文字以上)
- 定期的な変更は不要
が推奨されています。
また、最近では、「パスフレーズ」ということで、長い文章のようなものや、あまり関連のない単語を複数繋ぎ合わせるなど、本人には憶えやすいが攻撃者には推測しづらく、総当り攻撃もしづらいものを推奨しています。
私も嫁の名前をパスワードにしています。
コレをいうと、知り合いから「そんなもん推測されやすすぎるだろ!でも、お前独身だろ?」と言われますが。
それに対し私が、「何言ってるんだ、嫁なんて、少なくともこの世に存在する漫画、アニメ、ゲームの数だけいるだろうが。その中からノリで何人か選ぶんだよ!」と答えると、相手は漏れなくドン引きします。べつにいーぢゃねーか、ちくしょーめ。
ところで、昔は「パスワードは定期的(多いのが3ヶ月程度)に変更」というルールが多かったと思います。
最近のガイドでは、「定期的な変更は不要」と言われています。
しかし、あるサイバーセキュリティの教授とお話した際、「でもやっぱり、私は定期的に変えたほうがいいと思うんだけどなぁ」とおっしゃっていました。
これは、もちろんガイドを知らないわけではなく、かといって頭が固い、考え方が古い、というわけでも無いようです。
私も、ちょっと思うところがあるので、掘り下げてみましょう。
そもそも「定期的な変更は不要」と言い出した根拠
大体、この手のものはその辺りの人がちょっと言い出して決まるわけがありません。
専門で調査・研究している人たちの報告やそれによる推奨からなっているわけです。
日本も、総務省やJPCERT/CCが出しているガイドは、アメリカのNISTが出しているドキュメントを参照し、それに準拠した結果です。
NIST Special Publication 800-63B Digital Identity Guidelines (June 2017)
https://pages.nist.gov/800-63-3/sp800-63b.html
この記事を書いた時点(2019年7月31日)での最新版を読んでみると、「5 Authenticator and Verifier Requirements」の「5.1.1.2 Memorized Secret Verifiers」に以下のような記述があります。
Verifiers SHOULD NOT impose other composition rules (e.g., requiring mixtures of different character types or prohibiting consecutively repeated characters) for memorized secrets. Verifiers SHOULD NOT require memorized secrets to be changed arbitrarily (e.g., periodically). However, verifiers SHALL force a change if there is evidence of compromise of the authenticator.
定期変更あたりをざっくり訳してみると、「検証者側が任意(例:定期的)にパスワードの変更を要求すべきではない。ただし、パスワードの漏えいが確実な場合は変更を強制する。」といった意味になっています。
ポイントとしては、「パスワード認証を行う側(検証者側)が定期的(正確には任意)にパスワードの変更を要求すべきではない。例外的に、パスワードの漏えいが認められる場合は強制的に変更させる。」といったところだと思います。
ここには含みがあり、「パスワード認証を行う側(一般的にはサーバ側)」が定期変更を要求するのはダメ、と言っているわけです。
パスワードの定期的変更を強制することがいけない理由
ではなぜ、パスワードを強制的に変更させるのがダメなんでしょうか?
それは、パスワードの「記憶」に問題があるためです。
先の文書の中にも記述がありますが、「記憶」するというのは、記憶する側(ユーザー側)にある程度の負担が生じます。
例えば、私のパスワードでも、「どの作品とどの作品を、どの順番だったっけ?」というのは憶えておかないといけないわけです。
そして、そういったものを定期的に変更を強要されると、毎回考えて憶えるのがだんだん大変になってきます。
しかも、パスワードを使うのは1つや2つではないのです。
そうすると、どうしても人は易きに流れてしまいます。
これが、安易なパスワードの使用やパスワードの使いまわしに繋がってしまうのです。
例えば、YomeA001 → YomeA002 → YomeAC003 ・・・みたいになります。・・・身に覚えがある人もいるんじゃないですかね。
人によっては、YomeA→YomeB→YomeC→YomeA・・・のように、パスワードのパターンを作って、ループして使っている人もいたようです。
これでは、パスワードの漏えいが発生したとき、容易にパスワードが推測できたり、ある一定時期になると漏えいしたパスワードでログインできるようになってしまいます。
これではパスワード変更の効果が見られません。
しかも、パスワードの変更の度に憶えやすい簡単なパスワードになっていくケースすらあったそうです。
それならば、「いっそ少し難しいパスワードにして、それを憶えておいてずっと使ったほうが全然マシ」というのが、パスワードを定期変更を推奨しないという考えの根底にあるといえます。
パスワードを定期的に変更して被害が防げるか?
一方、パスワードを定期的に変更することで、被害が防げるか?といった点も課題になると思います。
例えば、原因がSQLインジェクションの場合では、IDやパスワードが漏えいしている時点で、他の個人情報も一緒に流出しているだろうなぁ、というのが正直なところです。
もっとも、データの格納方法や流出方法によっては認証情報部分だけが漏れていることもあります。
問題は、流出した認証情報がすぐに使われるかどうか?にあります。
もちろん、流出した直後に不正ログインをされてしまったら、不正な操作をされたり、個人情報が漏れたりするでしょう。
一方で、そういった流出データを自分では使わず、ダークウェブなどで販売するケースがあります。
認証情報を盗んだ人間が直接不正アクセスしないのは、不正アクセスによる発覚のリスクや単純に作業量の問題があるなど、一定の理由があるようです。
この場合、認証情報の買い手がお金を支払ってデータを入手し、不正アクセスをし始める間にラグが生じます。
また、認証情報の漏えいも、生のパスワードが漏れるとは限りません。
パスワードハッシュで漏れているケースも多く見られます。
この場合、レインボーテーブルで簡単に解析できるようなパスワードならともかく、ある程度以上複雑なパスワードであれば、解析に時間を要します。
つまり、こういったケースでは、認証情報が流出したとしてもすぐに不正アクセスに繋がるわけではありません。
仮に、この間にパスワードを変更すれば、不正アクセス失敗で被害が防げる、ということにもなります。
つまり、一定の効果を発揮するケースも考えられるということです。
難しいのは、このラグがどれくらいで、結果的にどの程度の間隔でパスワードを変更すると効果があるのか、という判断です。
また、仮に不正アクセスをされてしまって、自分のアカウントで勝手にサービスを利用されていても、パスワード変更のタイミングでそれができなくなります。
つまり、被害に遭っている期間を限定することができます。
簡単にまとめると、
- パスワードの定期的な変更は個人情報等の漏えい対策には明確な効果がなく、漏えい内容、流通状況とパスワード変更の時期によってはラッキー程度で防げることがある。
- 認証情報の流出内容がハッシュ値だった場合、分析に時間がかかるため、分析中にパスワードが変更されれば被害抑止に繋がる。
- 不正アクセスをされる期間を限定することができ、サービスの不正利用や個人情報の参照などをされる期間を限定することで、ある程度の被害範囲を限定できる効果はある。
といったところではないでしょうか。
先ほどの教授が言っていたのは、特に2、3番目の効果はある程度見込めるので、定期変更も効果がないとはいえない、というお考えだったのだと思います(もちろん、私が思い至らないだけで、もっとあるかもしれません)。
もっとも、先に挙げた「パスワードの定期的変更を強制することがいけない理由」で述べた不適切なパスワードは使わない、というのが前提となりますが。
実際のところ、
意識的にパスワードを定期変更 > 強固なパスワード継続使用 > パスワードの定期強制変更
がパスワードの強度順なのかもしれない、と考えた次第です。
パスワードを定期的に変更すべき条件は?
では、「パスワードの定期的変更を強制することがいけない理由」で挙げたようなパスワードは使わないが、自分の意思で定期的にパスワードを変えるという意識高い系ユーザだとしたら、どのようなサービスで定期的にパスワードを変えたほうがいいのでしょうか?
理論的に考えると、お金が関係するサービス、メールなど個人の機微な情報を扱うサービスなどが挙げられるのではないでしょうか。
不正アクセスによる被害が大きいものは、検討対象になるでしょう。
また、セキュリティのレベルも考慮する必要があるでしょう。
例えば、GoogleなどのメールサービスやTwitterなどは、いつもと違う端末やブラウザなどからログインすると、そのログインが本人のものだったか?を確認してきます。
セキュリティにしっかり取り組んでいるサービスの会社は、不正アクセスの監視で目を光らせ、対策となる仕組みも導入しています。
こういった会社の場合、そもそも漏えいのリスクが低く、仮に発生したとしても迅速な通知が期待できます。
そいったサービスの場合は十分な強度のパスワードの設定でよいと思われます。
一方、対策が不十分で、漏えいが起きても自身では検知できず、通報されて気づくような会社もあります。
そういったサービスは、使わないに越したことはないんですが、どうしても使わざるを得ないならば、定期的にパスワードを変えることを検討しても良いと思います。
パスワードを定期変更をしたほうがよさそうなサービスは見分けれる?
パスワードを定期変更したほうがよさそうなサービスとは、セキュリティ対策が甘いサービスとなります。
これを上辺だけで判断するのは困難です。
例えば、パスワードのハッシュ計算を十分強度の高いものを使っているか、ソルトやBCryptを採用しているかなどは分かりません。
とは言っても、セキュリティがしっかりしているかどうかは、節々に出てくるものです。
先に述べた不正アクセス監視システムを導入しているところなどは、やはり対策もしっかりしており、万一のときも速やかに通報されるでしょう。
何か問題が見つかったときの情報の公開の速さも、裏を返せばそれだけ検知や調査のバックボーンがしっかりしている証拠です。
二要素認証、二段階認証の仕組みを積極的に導入し、ユーザに利用できる選択を提供しているようなところもセキュリティに期待ができます(そもそも、これを利用していればパスワードの定期変更に神経を尖らせる必要がないんだけどね)。
一方で、以前に記事に書いたような、時代遅れの基準を使っているようなところは、セキュリティも時代遅れで現代では不十分とみるべきでしょう。
また、問題が発生しても詳細を明らかにしたがらないところは、言っていない問題がまだ裏に山積しているとみるべきです。
もしくは、詳細を明らかにできるような情報収集、調査体制、対策ができていないことの表れのこともあります。
対応が後手に回って遅いところも、同様に体制、対策が不十分と見るべきです。
散々叩いたセブンペイですが、一ヶ月近く経過した今頃になってパスワード一斉リセットをしたとの報道がありました。
こんなもん、記者会見を開いたくらいの時期にやっておくべきことだったろうに。
これで、会見では「対応はしている、遅いという認識ではない。」と言っていたのだから、いやはやもう。
恐らく、対策、体制が不十分で調査に時間がかかったことと、顧客を守る意識の低さの成れの果てではなかろうか。
こういうところの場合は、もう自分で身を守るしかないよね、ってことです。
まあ、私は自分の身を守るために、「コレを使わない」という選択をしましたがねw
(「これが一番安全」と、言ってしまったら身も蓋もないんだけれども。)
過去に漏えい事案を出したところも注意すべきです。
確かに、漏えいしたことによってセキュリティを見直し、対策を強化します。
・・・そうはいっても、ではそういった企業でいきなりセキュリティの専門家が増えて対策を打てるかというと、そういうわけではありません。
また、企業文化というのはなかなか変わらないものですし、システムもそう簡単には一新できないものです。
事故を起こしたところで、再開のためにシステムを全とっかえした企業ってのは聞かないですよ?
特に、複数回の漏えい事案を起こしているような企業は、根治は相当難しいのではないでしょうか。
このように、ユーザを守るための仕組みや体制も、そのバックボーンが垣間見えるポイントかもしれません。
しっかりやっていても事故は起きることはあり、提案した指標は決して保障できるものではないのですが、一方で「起こるべくして起きた」といった事件をみると、ちょっとよく見てみようかな、と思った次第です。