識別子としての電話番号:SMSベース認証のセキュリティリスクと脆弱性
最近、Facebookユーザーが体験した非常に懸念されるログインについて耳にしました。SMSで受け取ったパスワード回復コードを入力すると、誤って他人のFacebookアカウントにログインしたというのです。
このユーザーがSMSの受信に使用した電話番号は、他人が以前所有していた番号がリサイクルされたものでした。最初の所有者がFacebookアカウントと番号の関連付けを解除していなかったため、この番号を使用してSMSベースの認証を試みた結果、最初の所有者のアカウントにログインしたのです。非常にSMSベース認証のセキュリティリスクや脆弱性の問題がある出来事です。
この記事では、このようなインシデントにつながった古いアイデンティティの概念、現在モバイル認証(SMS認証)を使用しているユーザーへの潜在的影響、同様のセキュリティリスクから自分自身を守る方法について説明します。
識別子としての電話番号
電話の本来の意図は、単に音声通信により人々をつなぐことでした。その結果、電話番号が主たる公開識別子になるまでに、当然ながら時間はかかりませんでした。しかし、アナログからデジタルの通信に移行し、携帯電話がより洗練されるにつれ、用途が変化し始めました。音声通信からデータ使用へと変化し、デバイスではなくアプリケーションに焦点が当てられるようになったのです。この変化の中心にあったのが、もちろんアイデンティティです。
今日のユーザーに対しては、セキュリティとログインの目的でアカウントを他の識別子にリンクするよう、アプリサービスからの要求が高まっています。摩擦をできるだけ抑えてユーザー登録を急ぐ中、多くのアプリケーションやサービスの開発者は、利用可能な最も簡単な識別子、つまり電話番号を利用するようになりました。その結果、アイデンティティ改革の中心に携帯電話が位置することになったのです。しかし、問題は電話番号が安全な識別子として設計されていないということです。
電話番号は、加入者を識別して通話をルーティングするための手段として開発されました。静的な存在ではありません。動的で有限なリソースであるため、使用されなくなるとリサイクルされます。これは、以前は大した問題ではなく、誤った相手に電話がかかる程度の影響しかありませんでした。しかし、アイデンティティベースのセキュリティ環境が進化し続ける中、電話番号が識別子として使用されるようになったため、新しいセキュリティの問題が発生し始めています。知らない人からの間違い電話はいら立たしいものですが、他人のプライベートな写真や秘密のメッセージにアクセスできることは、はるかに大きな問題です。
誰にでも起こり得るセキュリティリスク
自分が使用している番号がリサイクルされたものかどうかを確実に調べる方法はありません。最も手堅い方法は、Googleまたは電話帳で自分の電話番号を検索することです。しかし、長期間使っている番号である場合を除いて、リサイクルされた番号であると仮定して間違いないでしょう。
ここで覚えておくべき重要なことは、リサイクルされた番号を使用してリスクが高まるわけではないという点です。むしろ、リスクの大半は以前のユーザーとサービスが負うことになります。リサイクルされた番号を使用すること自体に問題はありませんが、注意が必要です。自分が以前使っていた番号は、現在おそらく他人によって使用されています。
SMSベース認証の脆弱性から自衛のためにできることとは?
まず、電話番号の変更、電話事業者の乗り換えなど、新たしい番号への切り替えを伴う何らかの変更を行う場合、その変更を行う前に、すべてのアプリケーションやサービスから古い番号を削除(または関連付けを解除)します。
同様に、携帯電話を販売または返品する場合は、最初に工場出荷時設定にリセットしてデータを消去します。
次に、セキュリティで保護されたアイデンティティベースの二要素認証または多要素認証をサポートしているサービスでは、その手法を必ず使用します。以前の番号がリサイクルされたと考えるかどうかにかかわらず、SMSだけに頼った認証を使用してはなりません。
SMSも電話番号と同様、完全な安全性を意図して設計されたものではありません。電話網に依存して機密を保持し、ユーザーではなく電話番号にリンクされています。その結果、時間が経つにつれてSMSベース認証の脆弱性が見つかり、それ自体が認証手法として安全でなくなっています。
2016年、NISTはSMSを安全と見なさなくなったと示唆するようになり、2FAのトランスポートとして非推奨にするよう提案しました。その後、NISTは姿勢を軟化させましたが、その理由の妥当性は今も変わりません。SMSは安全な情報のトランスポートとして設計されたものではないのです。多くの欠陥があることから、いつまでも安全も使用できるわけではありません。
電話番号のリサイクルがより頻繁に行われるようになり、携帯電話をハイジャックする方法が広く知られるようになっている現在、その有効期間は終わりを迎えようとしています。被害者の番号を移動することを目的としたソーシャルエンジニアリング攻撃から、前述のような番号のリサイクルによる偶発的事件まで、SMSに付随するセキュリティリスクが増加しています。確かに、二次要素を使用しないよりは安全ですが、OTPやトークンベースの認証など、より安全な代替手段は他に存在します。
ライフサイクル管理の自動化がもたらすこと
番号のリサイクルによるログインエラーは、はるかに大きな問題の前兆です。多くのサービスは、多くのリスクがあるにもかかわらず、依然として携帯電話の番号だけを識別子として使用しています。
公開識別子だけに頼ってはなりません。デバイスや電話番号に偶然アクセスした他人ではなく、本人が確実にサービスを使用していることを確認するために、追加のアイデンティティベースの認証が常に必要です。
これは携帯電話番号を完全に放棄すべきであるという意味ではなく、使用方法を見直す必要があるということです。企業は、最新のリスクに対応できるように、認証の流れとサービスのアーキテクチャーを更新する必要があります。最後に、ユーザーは、SMSベースの認証が期待するほど信頼できないという点に注意する必要があります。