Multi-Factor Authenticationは多くのサイトで実装されている認証機能として普及されてきました。チャレンジの種類もEmailやSMSだけでなく、携帯電話にインストールされたAuthenticatorをタップ(Push MFA)するだけで多要素認証が完了するものもあります。この記事ではPush MFAの危険性と回避策をまとめます。
正常なLoginリクエスト
ユーザは予めIdentity ProviderやMFA Providerにアクセスして所有する携帯電話をMFAデバイスとして登録します。1次要素であるID/Passwordの検証に成功すると、Identity ProviderからMFA Providerに対して2次要素であるPush MFAを要求します。要求を受けたMFA Providerはユーザが利用しているBrowserを介さずに、直接携帯電話にインストールされたAuthenticatorにPush MFAのChallengeを送信します。
犯罪者が介入するLoginリクエスト
犯罪者は予めDarkWebで漏洩したID/Passwordを購入して、購入したID/Passwordでサイトにログインします。MFA Providerから2次要素の検証を求められますがMFA Challengeはユーザの携帯電話にインストールされたAuthenticatorに直接送信され、ユーザは特に意に介さずPushします。2次要素の検証に成功したためIdentity ProviderからRelying PartyにTokenが発行され犯罪者はRelying PartyにLoginしてしまいます。
Phish Proof MFAによる正常なLoginリクエスト
ユーザが所有する携帯電話をMFAデバイスとして登録して、更に自分が利用しているBrowserとAuthenticatorをペアリングします。2次要素の要求を受けたMFA Providerはユーザが利用しているBrowserを介して携帯電話にPush MFAのChallengeを送信します。MFAのChallengeには携帯電話にインストールされたAuthenticatorのIDが含まれており、自分のBrowser以外からのMFA Challengeリクエストは遮断され携帯電話にインストールされたAuthenticatorにChallengeが送信されることはありません。
Phish Proof MFAと犯罪者が介入するLoginリクエスト
犯罪者は、MFA Providerから送信されてくるChallengeに紐付いたAuthenticatorを持っていないため、リクエストは遮断されてIdentity ProviderからRelying PartyにTokenが払い出されることはありません。
おわりに
2020年初頭から発生した新方コロナウィルス感染症の拡大により、社会におけるOnlineサービスの重要性はより一層高まりました。同時に、サイバー犯罪者の数も手口も向上しており、多要素認証があるからアカウントの乗っ取り対策は100%万全とは言えなくなりました。この記事ではFIDO2に対応したPhish Proof MFAによる多要素認証の安全性向上を例としてご紹介しております。あくまで安全性向上のためこれも100%安全とは言い切れませんね。多くのユーザ様が日々携帯電話のAuthenticatorに送信されてくるPush MFAのリクエストに"うるさいなぁ"といった感じで無条件にPushしているのではと推測しています。身に覚えのないリクエストは必ずDenyすることをお勧めします。