TOTP対SMS:どの二要素認証方法がより安全か?


どちらもなしよりはマシ

これを最初に言っておきましょう:SMSベースの2FAと2FAなしのどちらかを選ぶ場合、SMSをオンにしてください。弱い2番目の要素でも、2番目の要素がないよりは優れています。しかし、SMSとTOTP認証アプリのどちらかを選べる場合は、認証アプリが優れた選択です。理由は以下の通りです。

SMS 2FAの仕組み

SMSベースの2FAでアカウントにログインすると、サービスはあなたのスマートフォン番号に短い数字コードを含むテキストメッセージを送信します。コードをログインフォームに入力し、一致すれば認証されます。

シンプル。広くサポートされています。ほとんどの人がテキストを受信できるスマートフォンを持っています。

問題は、SMSが通信のために設計され、セキュリティのために設計されたわけではないことです。テキストメッセージはキャリアのネットワークを通過し、その経路上で問題が起こりうるいくつかのポイントがあります。

TOTPの仕組み

TOTPは、共有された秘密と現在時刻を使ってデバイス上でコードを生成します。完全な説明が必要な場合は、TOTPの仕組みの別記事があります。簡単に言えば:あなたの認証アプリとサーバーは両方とも同じ秘密鍵のコピーを持っています。両方とも現在時刻を知っています。そのため、30秒ごとに同じ6桁のコードを独立して生成します。ネットワークは不要です。

SMSが劣っている点

SIMスワッピング

これが最大の問題です。SIMスワップ攻撃は、誰かがあなたの電話キャリアに、あなたの番号を新しいSIMカードに転送するよう説得したときに発生します。攻撃者はカスタマーサポートに電話し、あなたになりすまし(データ侵害、ソーシャルメディア、またはソーシャルエンジニアリングからの個人情報を使用)、自分のデバイスであなたの番号をアクティベートするよう求めます。

彼らがあなたの番号を制御すると、あなたのSMSコードを受信します。そして、SMSベースの2FAを使用しているあらゆるアカウントにログインできます。

SIMスワッピングは理論上のものではありません。暗号通貨の窃盗、企業アカウントへの侵入、ジャーナリストや活動家を標的にするために使用されてきました。FBIのインターネット犯罪苦情センターは、1年間で2,000件以上のSIMスワッピング苦情を受け取りました。

SS7脆弱性

SS7は、電話ネットワークが通話とテキストをルーティングするために使用するプロトコルセットです。1970年代に設計され、当時ネットワーク上にいたのは信頼された通信会社だけでした。セキュリティは優先事項ではありませんでした。

研究者は、SS7ネットワークにアクセスできる攻撃者が、被害者に知られずにテキストメッセージを傍受できることを実証しました。この種の攻撃には技術的な熟練度とネットワークアクセスが必要なため、ランダムなスクリプトキディが実行するものではありません。しかし、国家規模の攻撃者や資金力のある犯罪グループがそれを使用してきました。

ネットワーク依存

SMSは携帯サービスを必要とします。電波がないと、コードも届きません。海外旅行中、地下室にいる場合、または電波が不安定な場所では、ログインできない可能性があります。

TOTPはオフラインで動作します。コードはデバイス上でローカルに生成されます。機内モードでも、潜水艦の中でも、どこでも。デバイスの時計がおおよそ正確であれば、コードは動作します。

配信遅延

テキストは時々遅れて届きます。キャリアの輻輳、ネットワーク問題、または国際ルーティングで、SMSが数秒から数分遅れることがあります。コードを受信する前に期限切れになった場合、新しいものをリクエストする必要があります。面倒ですし、素早くログインする必要があるときには時々本当の問題になります。

TOTPコードは即座に利用可能です。アプリを開けば、コードがそこにあります。

SMSが優れている点

利便性です。アプリをインストールする必要がありません。QRコードをスキャンする必要がありません。「秘密鍵」が何かを理解する必要がありません。サービスがコードをテキストで送信し、あなたはそれを入力します。認証アプリを管理することに慣れていない人には、SMSは設定と使用がより簡単です。

バックアップの問題もあります。スマートフォンをなくした場合、キャリアから同じ番号の新しいSIMを入手できます。バックアップを設定していなければ、認証アプリへのアクセスを回復するのはより困難です。

セキュリティギャップを平易に言えば

核心的な違い:TOTPコードはネットワークを経由して送信されることはありません。デバイス上で生成され、ログインフォームに入力されます。それだけです。傍受されるメッセージも、ソーシャルエンジニアリングされるキャリアも、悪用されるプロトコル脆弱性もありません。

SMSコードは、あなたがコントロールしないインフラストラクチャを経由します:あなたのキャリアのネットワーク、SS7ルーティング、携帯基地局。すべてのホップが潜在的な傍受ポイントです。

NIST(米国国立標準技術研究所)は、2016年にSMSを「制限付き」認証器としてフラグし、サービスにアプリベースまたはハードウェアベースの方法への移行を推奨しました。その推奨は変わっていません。

実用的な比較

SMSTOTP
携帯サービスが必要はいいいえ
SIMスワッピングに脆弱はいいいえ
SS7傍受に脆弱はいいいえ
設定の難易度低〜中
コード配信時々遅延即座
オフラインで動作いいえはい
オープン標準いいえはい(RFC 6238)

結論

サービスがTOTPをオプションとして提供している場合は、それを使用してください。設定に1分かかり、実質的により安全な2番目の要素が得られます。SMSが唯一利用可能なオプションの場合は、それでも使用してください。どんな2番目の要素も、パスワードだけに比べてリスクを減らします。

今すぐ試せる無料のブラウザベースTOTPジェネレーターについては、2fa.zipをご確認ください。

二要素認証でアカウントを保護しましょう

ブラウザ上でTOTPコードをすぐに生成できます。

無料の2FA認証コードジェネレーターを試す

関連記事