中間者攻撃を想定した認証方式の検討【情報処理安全確保支援士試験 平成31年度 春期 午後1 問2 No.2】
情報処理安全確保支援士試験 平成31年度 春期 午後1 問2 設問2
【出典:情報処理安全確保支援士試験 平成31年度 春期 午後1問2(一部、加工あり)】
【認証方式の強化】
情報システム部長からメールサービスPの認証方式の強化について、次の2点が要求された。
要求1 U社以外の無線LANに接続したとしても手口Gを防ぐこと
要求2 手口Gに限らず、偽サイトにアクセスしてしまったときにフィッシングの手口によるメールサービスPへの不正アクセスを防ぐこと
Tさんが調査したところ、メールサービスPは、単体ではパスワード認証にしか対応していないが、認証連携の機能があることが分かった。認証連携機能を使えば、メールサービスPにアクセスしようとしたときに、他のID管理サービスにリダイレクトされ、そこで認証が行われ、認証に成功すると、メールサービスPにアクセスできるようになる。そこで、X社が提供するクラウドサービス型ID管理システム(以下、IDaaS-Xという)が対応している、より強力な認証方式を利用することにした。IDaaS-Xでは、認証サーバXを使って利用者を認証する。
IDaaS-Xが対応している、より強力な認証方式には、次の2種類がある。
- ワンタイムパスワード(以下、OTPという)認証方式
TOTP(Time-based One-Time Password algorithm)用のスマートフォンアプリケーションプログラム(以下、TOTPアプリという)を利用した認証方式 - パスワードレス認証方式
WebAuthn(Web Authentication API)対応のWebブラウザ及び生体認証対応のオーセンティケータを搭載したデバイスを利用した認証方式
Tさんは二つの認証方式について、要求1及び要求2を満たすことができるかを検討した。
Tさんは、まずOTP認証方式を検討した。IDaaS-XにおけるTOTPアプリ登録処理を図3に、OTP認証方式の認証処理を図4に示す。
OTP認証方式を利用した場合、ログインには時刻によって変化するOTPも必要になるので、パスワードが窃取された場合でも不正ログインを防ぐことが可能となる。しかし、③OTP認証方式を利用し、かつ、登録処理を正しく行ったとしても、要求2を満たすことができないおそれがある。
次にTさんは、パスワードレス認証方式を検討した。IDaaS-Xにおけるオーセンティケータ登録処理を図5に、認証処理を図6に示す。
④パスワードレス認証方式を利用すれば、要求2を満たすことができると考えられた。
Tさんは、検討結果を情報システム部長に報告した。情報システム部長は、海外拠点QにおけるメールサービスPへのパスワードレス認証方式の導入を、Tさん及びYさんに指示した。
海外拠点で従業員に貸与しているスマートフォンとノートPCにはオーセンティケータが搭載されていたので、パスワードレス認証方式を速やかに導入することができた。
U社では、他の海外拠点でのクラウドサービスについても、同様の方式を導入することにした。
③について、偽サイトにおいてどのような処理が行われればメールサービスPへの不正アクセスが成立するか。行われる処理を35字以内で述べよ。:OTPの入力を要求し、OTPを認証サーバXに中継する処理
要求2は「手口Gに限らず、偽サイトにアクセスしてしまったときにフィッシングの手口によるメールサービスPへの不正アクセスを防ぐこと」です。
図4の認証処理を見ると、Webブラウザから認証サーバXに送信する認証に必要な情報は、「利用者ID」「パスワード」「OTP」であることがわかります。
このうち「利用者ID」「パスワード」については、フィッシング手口による偽サイトにアクセスした状況下では、攻撃者はすでにこの情報を認識しています。
したがって、残りの「OTP」が必要になりますが、この値はTOTPアプリが現在時刻から算出しリアルタイムに変化するものです。
しかし、この値についても、同じくフィッシング手口による偽サイトにアクセスした状況下では、Webブラウザと認証サーバXの間に攻撃者が介在し、通信を盗聴しながら中継することで、攻撃者はリアルタイムに認識することができます。
c:秘密鍵A、d:公開鍵A
署名Lによる「なりすまし検出」のためのディジタル署名に関する公開鍵、秘密鍵の使用について問われています。
「なりすまし検出」のためのディジタル署名の動作は以下の通りです。
- 送信者の秘密鍵を用いてディジタル署名を生成
- 送信データとディジタル署名を送信
- 受信者は送信者の公開鍵を用いてディジタル署名を検証(復号)
- ディジタル署名を検証(復号)できれば、なりすましがないことを確認できる
ここでは、オーセンティケータ登録処理で使用するという主旨から、注記にあるデバイスごとにユニークな公開鍵A、秘密鍵Aを用いることになります。
e:秘密鍵K、f:公開鍵K
署名Mによる「なりすまし検出」のためのディジタル署名に関する公開鍵、秘密鍵の使用について問われています。
図5の記載にある「利用者IDとドメインの組みに対してIDcを発行 IDcごとの公開鍵K、秘密鍵Kを生成」とあり、図6での「利用者IDとドメインの組みに対してIDc」と共に取得するのは公開鍵Kか秘密鍵Kであることが分かります。
その後、署名Mを生成しているので、取得するのは秘密鍵Kとなります。
④について、理由を図5又は図6中の字句を用いて、40字以内で述べよ。:認証サーバXでオリジンbとオリジンsの一致を確認しているから
図6の認証処理を通過させるには、認証サーバに送信する以下の内容が正しくセットされている必要があります。
- IDc:認証サーバから受信したデータのまま送信するため正しい
- H(ドメイン):認証サーバから受信したデータのまま送信するため正しい
- オリジンb:「WebブラウザがアクセスしたWebサイトのオリジン」と「攻撃者が用意した偽サイトのオリジン」のため正しくない。ただし、データ改ざんすれば正しい値にセットできる可能性がある。
- 乱数c’:認証サーバから受信したデータのまま送信するため正しい
- 署名M:攻撃者は公開鍵Kを持っていないため署名Mを復号できず、正しい値をセットできない。オーセンティケータ登録処理で公開鍵Kを入手したとしても、秘密鍵Kを持たないため署名Mを再生成できない
したがって、正解は以下の通りです。
「認証サーバXでオリジンbとオリジンsの一致を確認しているから」(IPA解答例)
「攻撃者はオーセンティケータの秘密鍵Kを持たず、署名Mを再生成できないから」