パスワードの有効期間設定及び、パスワードの定期変更についてボクなりに再考してみましたよ。
総務省から「リスト型アカウントハッキングによる 不正ログインへの対応方策について(サイト管理者などインターネットサービス提供事業者向け対策集) 」がリリースされました。思うところがったので以前メモしたのですが、先日、その文書に関わった方と「パスワードの定期変更」についてTwitterでやり取りさせていただきました(やり取り内容はこちら)ので再度「パスワードの定期変更」について総務省からリリースされた文書(以下、文書)を参考に自分なりに考えてみようと思います。
ちなみにボクは、この策に対しては懐疑的、否定的で、リスト型攻撃を含む攻撃(辞書攻撃などを含む)に対抗する場合は、「パスワードの使い回しをやめる」ことと「容易に推測可能なパスワードは設定しない」という対策を行うべきだと考えており、定期変更は必要がないというスタンスです。(もちろん、自ら定期変更を行いたいという方は行っていただいても文句はありません。そこは自由だと思いますので。)
考えるポイントとしては
パスワードの有効期間設定及び、パスワードの定期変更の効果はあるか。
というものです。
また、関連する対策として
「パスワード履歴の保存」というものがあります。
こちらには以下のような記述があります。
パスワードの変更時期が来た際に、利用者が前回まで使用していたパスワードに戻してしまうなど、更新時期が来るたびに2つのパスワードが使い回しされては、攻撃者が保有するリストが再度有効なものになってしまい、意味がありません。そのため、上記(2)のパスワードの定期的な変更と合わせて、パスワードの更新履歴を保存し、変更時に過去のパスワードと照合して、数世代前に使用したパスワードへの変更を認めないようにすることも考えられます。
こちらも整理する際の考慮にいれます。
まずは、文書から読み取れる前提条件などの自分なりの整理。
【前提条件】
・ リスト型攻撃への対応。
・ 対象はオンライン上のサービスである。
・ サービスのユーザID、パスワードは利用者が設定できるサービスである。
・ サービス提供側が行える対策である。
・ ローカルネットワーク上のサービスやスタンドアロンコンピュータは対象外。
【リスト型攻撃の特徴】
・ ある程度の期間に渡り、検知に時間を要する。
・ 数万単位の不正ログインが行われる。
・ 利用者の通報、大量のエラーの発生、特定IPアドレスからの不正ログインの検知、社内の調査によって検知されている。
・ 指名、性別、生年月日、住所などの個人情報が閲覧されている可能性がある。
【定期変更関連以外に文書内で言及されている策】
[予防策]
・ ID・パスワードの使い回しに関する注意喚起の実施
・ 二要素認証の導入
・ ID・パスワードの適切な保存
・ 休眠アカウントの廃止
・ 推測が容易なパスワードの利用拒否
[被害の拡大を防ぐ対策]
・ アカウントロックアウト
・ 特定IのIPアドレスからの通信の遮断
・ 普段とは異なるIPアドレスからの通信の遮断
・ ログイン履歴の表示
整理は以上です。
さて、上記の整理を踏まえて
パスワードの有効期間設定及び、パスワードの定期変更の効果はあるか。
ということですが、効果があるとする主張される方の理由としては以下のものが挙げられるかと思います。
① どこかから漏えいしたリストの無効化を行うことができる。
② 万が一、ログインに成功されたとしても被害の拡大を防止できる。
それぞれ効果があるのかどうかということを考えてみます。
① どこかから漏えいしたリストの無効化を行うことができる。
こちらは、そもそもになるかと思いますが文書のP4で言及されている「ID・パスワードの使い回しなどの関する注意喚起」内にある
サービスごとに異なるパスワードを設定することが本質的な対策となります。
の部分ができていればパスワードの定期変更タイミングまで待つということを行う必要はないと思います。
また、Twitterでのやりとりで出てきたもので
「複数のサービスで定期変更のタイミングが異なるため、その異なるタイミングで各サービスで異なるパスワードを設定することを促すこととなるのではないか?」という意見がありました。
これに関してはあるかもしれませんし、ないかもしれません。
数字的な根拠はありませんが個人的な感覚としては、同じものを設定する、もしくは可能性が高いのではないかと思っています。仮に別のパスワードを設定されることがあったとしても許可されている世代数でパスワードを変更していく(3世代なら3つのパスワードをループさせる)という運用をユーザが行った場合、定期変更のタイミングのズレで一旦異なるパスワードとなったものが同じものになるタイミングを生んでしまう可能性もあるではないかと思います。ですので、必ずしも定期変更が使い回し減らすことには繋がらないのではないかと思います。
リスト型攻撃の特徴とは少し逸れますが、定期変更を繰り返すことで生まれるものはパスワードが容易に推測されるような文字列になり、それが複数のサービスで使い回されることの発生を誘発すると考えています。トレンドマイクロの調べによるとパスワードでログインが必要なWebの利用状況として、1ユーザあたり13.95サイト(標準偏差)を利用しているとのことです。使い回しをしない前提ですと、1人当たり約14のパスワードを覚えることになります。これに対し定期変更を行うとそれぞれのパスワードをその都度、覚えなおしになります。(パスワード管理ソフトやメモしている方は除く。)そうなれば、やはり、覚えやすいパスワード(つまりは攻撃者にも推測されやすい)を設定し、複数サービスで共通のものを設定してしまいがちとなるのではないでしょうか。
また、「どこからか漏れたリスト」と考えた場合、他から漏れたリストだけではなく、漏れた元とリスト型攻撃が行われる対象が同じという場合もあると思います。
漏れたリスト(攻撃者からすると盗んだリスト)のパスワードが平文ではなかった場合(多くの場合そうであってほしいのですが)攻撃者は平文に戻す処理を行う必要があります。いわゆるオフラインクラックですね。この平文に戻す処理を行っている間に定期変更のタイミングがやってくれば、攻撃者のオフラインパスワードクラッキングを振り出しに戻すことが可能と言えるでしょう。
しかし、ここではリスト型攻撃の特徴として文書にも挙げられている
・ 数万単位の不正ログインが行われる。
・ 利用者の通報、大量のエラーの発生、特定IPアドレスからの不正ログインの検知、社内の調査によって検知されている。
といった特徴を利用してサービス提供側が早期発見し、リセットなどの対策を取ってほしいとボクは思います。
また、定期変更が招くと考えらえれる「容易に推測可能な文字列」を設定した場合は、パスワードの保存の方法にもよりますが、オフラインクラックに耐性のないものとなってしまう可能性があると考えられます。
② 万が一、ログインに成功されたとしても被害の拡大を防止できる。
こちらは、不正ログインされたタイミングからほど近く、うまい具合に定期変更のタイミングが来た時には効果はあると思います。ただ、文書中P3で言及されている「これまでのリスト型攻撃による被害の特徴」にある
氏名、性別、生年月日、住所などの個人情報が閲覧されている可能性があ
ること
これが仮に目的であった場合は不正ログインを行われてすぐにでもアクセス可能な情報であると考えられるためうまい具合に定期変更のタイミングで守られるとは考えにくく、守れることはかなりのレアケースなのではないかと考えられます。
それ以外の目的であった場合を考えてみます。
不正ログインを行った後、オンラインバンキングで送金処理を行う、ポイントサービスを用いてポイントを不正利用するなどが考えられると思います。前者の場合は、殆どの場合において新規の送金先に送金する場合は何かしらの追加認証が用意されていますので、実際に送金することはパスワードのみでは行うことができません。(住所変更などを行う場合も別の認証が設けられている場合もありますね。)後者の場合は残念ながら追加の認証がない場合が殆どです。では、これが定期変更のタイミングで守りきれるのか?と考えるとやはり疑問が残ります。
先日こんな事件がありました。
楽天ポイント盗み、電子マネーに=不正アクセス容疑で中国人逮捕-岐阜県警
IDとパスワードが流出! キミの楽天ポイントも知らずに盗まれる?
記事を読む限り、どこからか漏れたリスト(楽天でのログインができるできないの確認はしているかどうかは不明)を買い取ったとされる容疑者が犯行に及んだと考えられます。このケースの場合は、どこかからリストが漏れてから実際の被害が発生するまで、前に例で挙げた目的である個人情報を閲覧されるよりもタイムラグがあると考えられます。これであれば定期変更のタイミングでユーザがパスワードを変更すれば不正ログインすることを防ぐのに間に合うタイミングは多少あると思います。しかし、これもタイミングという曖昧なものに頼るのではなく、どこかから漏れたリストを使われたとしてログインできないよう使い回しをやめるというところに力を注ぐべきではないでしょうか。
また、サービス提供側でできる対策としては賛否が分かれるところではあると思いますが
Adobeの個人情報流出のお知らせ、なぜかEvernoteから
一部のYahoo! JAPAN IDに対するパスワードリセット措置について
といったことを実施しているところもあります。
【まとめ的なもの】
ボクの中では、やはり、どうしても「定期変更」によって得られる恩恵はかける労力に見合わなさすぎるという結論です。
ボクは前述した通り、、「パスワードの使い回しをやめる」ことと「容易に推測可能なパスワードは設定しない」に注力することが先決であるという考えは変わりません。
これら2つの対策は単体でも相当の効果が得られる(前者はリスト型攻撃に対して、後者は辞書攻撃などの推測でのログイン試行に対して)のに対して、定期変更は単体での効果も薄く曖昧で、かつ、この2つの阻害要因ともなりえると思っています。
ユーザにはユーザに委ねられる部分である
・パスワードの使い回しをやめる
・容易に推測可能なパスワードは設定しない
を行ってもらうようにし、サービス提供側が行えることについては定期変更に関するもの以外を運用との兼ね合いを考慮した上で行ってもらうというのが現状の現実解なのではないでしょうか。
もちろん、定期変更をやめることで、この2つの対策が必ず行われ、すべてがクリアになるのかというとそういうわけではありませんが、ユーザに対しては必要最低限の労力をかけてもらうようにし、何を行うべきかを示し、それに注力してもらうべきなのではないかとボクは思います。
対策としては、パスワード管理ソフトの使い方を覚えるか(場合によっては有料のソフトもあるのでお金が必要なケースもあります。)、メモというアナログな方法での運用でカバーかというところですね。どちらでもよいと思いますし工夫次第かと思います。ボクとしてはボクが便利と感じるパスワード管理ソフトをおすすめしたいところですが、すべての人が使いこなせるわけではないのでパスワード管理ソフト1択とはできないと思っています。
また、パスワード管理ソフトって言っても全てが有料というわけではありません。複雑なパスワードを設定して、使い回さず、定期変更が必要なのでパスワード管理ソフトを買わないといけませんよ!なんて言ってくる人がいたらそれは「セキュリティ詐欺」だと思っていいと思います。
「パスワードが長期間変更されていません。」
「パスワードは定期的に変更してください。」
といったようなことが書かれているところが消え
パスワードを設定する際に
「容易に推測可能なパスワードを設定していませんか?」
「他のサイトでのパスワードの使い回しをしていませんか?」
に対するチェックボックスなんかが表示されたり、そこを「はい」にしないと
それらの脅威を説明するページに飛ばされたりする日がくればいいなって思いました。
ちょっと鬱陶しいですかね?