SMSを利用した2要所認証を利用しよう、と検索される方も多いのでブログを書きます。SMSを利用した2要素認証の場合、Google認証システムを利用した場合に比べ、アプリの導入が不必要で容易に導入できます。しかし、リスクが高い部分があるので注意が必要です。
SMSを利用した2要素認証のリスク
SMSを利用したことがある方なら直ぐにリスクに気付くと思います。
- SMSメッセージは携帯電話がロックされている状態でも、ステータスバーにメッセージが表示される
SMSメッセージはいつでも見えてしまう電話は多いです。例えば、同僚が携帯電話をデスクに置いたままにしていれば、送信されたSMSメッセージのワンタイムパスワードを見ることができます。会社のデスクに携帯電話を充電したまま置いている状態は少なくありません。
この他にもTOTP(時間ベースのワンタイムパスワード)と同じ種類の脆弱性がある場合もあるかも知れません。ワンタイムパスワードは数値であり整数型として表現できるので、数値として比較していれば問題はないです。しかし、文字列として比較している場合、実装によってはタイミング攻撃に脆弱になります。
参考:OTP(ワンタイムパスワード、2要素認証)とタイミング攻撃
タイミング攻撃は実装上の問題なので、利用しているサービスや自分のコードが問題ないことを確認すればOKです。
まとめ
SMSメッセージがロック状態でも見れてしまう問題は、認証の安全性を向上させるための2要素認証とは無視するには大きいリスクです。利用される場合はGoogle認証システムも使えるようにする、などのオプションも実装すると良いと思います。