正解:エ
各選択肢の解説
ア確認コードの桁数を増やし、有効期限を短くする。
誤り。確認コードを推測されにくくする対策です。今回は推測されたのではなく、 盗んだパスワードでWebメールを開いて、届いたコードをそのまま読まれています。 桁数や期限を変えても、攻撃者は同じ方法でコードを手に入れられます。
イ確認コードに加えて、秘密の質問への回答も求める。
誤り。秘密の質問は、パスワードと同じ「本人が知っていること」(知識)の要素です。 確認の段階は増えても要素の種類は増えないので、多段階認証にとどまります。 偽サイトで一緒に入力させれば、パスワードと同時に盗まれます。
ウパスワードを定期的に変更させ、過去と同じ値を禁止する。
誤り。定期変更は、盗まれたパスワードが使われ続ける期間を区切るだけです。 フィッシングで盗まれた直後に使われれば防げません。また、確認コードが 同じパスワードで読めてしまうという仕組みの弱点は残ります。
エ確認コードを、社員の端末だけに入れた認証アプリで表示させる。
正解。コードの受け取り先を、パスワードでは開けない社員の手元の端末にすれば、 確認コードは「持っているもの」(所有)の要素として働きます。パスワードを 盗んだだけではコードが読めず、2つの要素が独立します。
理解を深めるために
2つ目の鍵が、1つ目の鍵で開く箱に入っていた
玄関に鍵を2つ付けても、2つ目の鍵を1つ目の鍵で開く郵便受けにしまっていたら、 1つ目の鍵を盗んだ人は2つとも手に入れます。今回の構成はこれと同じです。 確認コードを送ったWebメールが、ログインと同じIDとパスワードで開けたので、 パスワードを盗まれた時点で確認コードも読まれてしまいました。
多要素認証は「独立した要素」を組み合わせて初めて効く
多要素認証は、種類の違う要素を組み合わせる認証です。
- 知識: パスワード、PINコード、秘密の質問
- 所有: 本人の端末、ICカード、ワンタイムパスワードを表示するトークン
- 生体: 指紋、静脈、顔
要素の種類が違うのは、1つの攻撃で両方を奪われにくくするためです。 確認コードは本来「所有」の要素ですが、その受け取り先が知識(パスワード)だけで開けるなら、 実質はパスワード1つの認証です。要素の種類だけでなく、一方を奪えばもう一方も手に入る 関係になっていないかを確かめる必要があります。
なお、認証アプリのコードでも、偽サイトがその場で入力を中継する攻撃には弱さが残ります。 そこまで防ぐなら、正規サイトに結び付いたパスキーを検討します (パスキーの問題)。
混同しやすい見直し案との違い
| 見直し案 | 何が変わるか |
|---|---|
| 端末の認証アプリでコードを表示 | パスワードを盗んでもコードが読めない(要素が独立) |
| コードの桁数・有効期限 | 推測されにくくなるが、読まれる経路は残る |
| 秘密の質問を追加 | 知識の要素が増えるだけ(多段階認証) |
| パスワードの定期変更 | 盗まれてから使われるまでが短いと効かない |
「段階が2つあるか」ではなく「1つを盗まれても、もう1つは無事か」で判断します。