問題 20★★★

社外から経費精算システムにログインするとき、パスワードに加えて、登録したメールアドレスに 届く確認コードを入力させている。ところが、そのメールは同じIDとパスワードで開けるWebメールで、 フィッシングでパスワードを盗まれた社員のアカウントに不正ログインされた。 見直しとして、最も適切なものはどれか。

正解:エ

各選択肢の解説

  1. ア確認コードの桁数を増やし、有効期限を短くする。

    誤り。確認コードを推測されにくくする対策です。今回は推測されたのではなく、 盗んだパスワードでWebメールを開いて、届いたコードをそのまま読まれています。 桁数や期限を変えても、攻撃者は同じ方法でコードを手に入れられます。

  2. イ確認コードに加えて、秘密の質問への回答も求める。

    誤り。秘密の質問は、パスワードと同じ「本人が知っていること」(知識)の要素です。 確認の段階は増えても要素の種類は増えないので、多段階認証にとどまります。 偽サイトで一緒に入力させれば、パスワードと同時に盗まれます。

  3. ウパスワードを定期的に変更させ、過去と同じ値を禁止する。

    誤り。定期変更は、盗まれたパスワードが使われ続ける期間を区切るだけです。 フィッシングで盗まれた直後に使われれば防げません。また、確認コードが 同じパスワードで読めてしまうという仕組みの弱点は残ります。

  4. エ確認コードを、社員の端末だけに入れた認証アプリで表示させる。

    正解。コードの受け取り先を、パスワードでは開けない社員の手元の端末にすれば、 確認コードは「持っているもの」(所有)の要素として働きます。パスワードを 盗んだだけではコードが読めず、2つの要素が独立します。

理解を深めるために

2つ目の鍵が、1つ目の鍵で開く箱に入っていた

玄関に鍵を2つ付けても、2つ目の鍵を1つ目の鍵で開く郵便受けにしまっていたら、 1つ目の鍵を盗んだ人は2つとも手に入れます。今回の構成はこれと同じです。 確認コードを送ったWebメールが、ログインと同じIDとパスワードで開けたので、 パスワードを盗まれた時点で確認コードも読まれてしまいました。

多要素認証は「独立した要素」を組み合わせて初めて効く

多要素認証は、種類の違う要素を組み合わせる認証です。

  • 知識: パスワード、PINコード、秘密の質問
  • 所有: 本人の端末、ICカード、ワンタイムパスワードを表示するトークン
  • 生体: 指紋、静脈、顔

要素の種類が違うのは、1つの攻撃で両方を奪われにくくするためです。 確認コードは本来「所有」の要素ですが、その受け取り先が知識(パスワード)だけで開けるなら、 実質はパスワード1つの認証です。要素の種類だけでなく、一方を奪えばもう一方も手に入る 関係になっていないかを確かめる必要があります。

なお、認証アプリのコードでも、偽サイトがその場で入力を中継する攻撃には弱さが残ります。 そこまで防ぐなら、正規サイトに結び付いたパスキーを検討します (パスキーの問題)。

混同しやすい見直し案との違い

見直し案 何が変わるか
端末の認証アプリでコードを表示 パスワードを盗んでもコードが読めない(要素が独立)
コードの桁数・有効期限 推測されにくくなるが、読まれる経路は残る
秘密の質問を追加 知識の要素が増えるだけ(多段階認証)
パスワードの定期変更 盗まれてから使われるまでが短いと効かない

「段階が2つあるか」ではなく「1つを盗まれても、もう1つは無事か」で判断します。

前の問題へ次の問題へ