ウェブサービスにおける数字6桁の認証コードの強度を知りたいです。
10万通りしかないので簡単に突破できてしまうのではないかと思いました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
#1
総合スコア4248
投稿2025/04/07 00:26
一般的に6桁の認証コードは入力されたメールアドレスに送信し、短い有効期限(5分など)を設定したり一度使用したら無効にする運用をする事が多いですよね。
強度自体は低くてもほぼ問題がないようになっていると思います。
入力ミスを一定回数したら無効にするなどさらにセキュリティを向上させる事も出来ますね。
#2
総合スコア4286
投稿2025/04/07 00:35
こんにちは。
個人的な意見になりますが、
仮に主要な認証を6桁の数値にしてしまうと、弱すぎて使い物にならないと考えます。
実際に存在する6桁の数値認証というと、通常の ID(メールアドレス)/パスワードの認証に加えての多要素認証での利用が見られると思います。
これは通常の認証要素をクリアした上で、メールアドレスやワンタイムパスワードトークンなどの所有を確認するためのものなので、主要な認証とは異なります。所有の確認さえできればよいため、6桁の数値でも十分に目的を達成できるのです。
他の例として、銀行のキャッシュカードなどは4桁の数値で認証を行っていますが、これはカードの所有という要素をクリアしないといけない点でセキュリティを担保しています。個人的にはもはや4桁では弱い気がしますが。
オンラインで利用する際にはこれらの認証では弱すぎるので、もし仮に、カードの番号と暗証番号だけでオンライン決済ができてしまうサービスがあったとしたら、直ちに利用をやめたほうがよいですね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア146506
投稿2025/04/07 04:09
背景事情(想定するサービス形態など)を書いていないのは、書き漏れでしょうか、それとも意図的なものでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
総合スコア21384
投稿2025/04/07 05:05
10万通りしかないので簡単に突破できてしまうのではないかと思いました
確かに、特定条件下ではかなり危険ではあると思います
もちろんそうはならないよう、対策を施す必要があります
そもそもワンタイムパスワードって何でこんな脆弱やねんって話から
ワンタイムパスワードは下記の前提を元にしています
- スマホを物理的に所持している
- SMSとして受け取れる端末を物理的に所持している
- メールアドレスを即座に受け取れる
悪意の第三者が当人のスマホ等を所持しているとか
その人のメールを読み書きできる状況であれば
そもそも何のセキュリティを施そうとも無駄ですからね
後は回数制限さえきっちり決めておけば問題ないだろうとしています
3回失敗したら「お前このスマホ持ってないやろ?偽物か?」と疑えば良いだけ
次に何が危険やねん?
どういう状況だったら危険やねん?って話をしていきます
質問文の通りで、例え3回しか挑戦する機会がなかったとしても
100万回ログインして3個の6桁数字を入力という施行をすれば良いのです。
いつかは突破されてしまうでしょう。
なので、そこに到達される前に
Webサービスの管理者が攻撃を検知してアクションを行う必要があるのです。
正規のユーザーに対して「攻撃らしきアクセスを検知したので、アカウントを一時凍結しました」などと通知したり、
アカウントの凍結作業を行ってくれると安心ですね。
Webサービスの管理者が何もしてくれない放ったらかしなサービスであった場合、
質問文の懸念通りで面倒くさい以上の障壁にはなりえません。
我々利用者は、この辺の体制がちゃんとしている事業者を選ぶ必要があるというわけですし、
それらのサービスの開発者になった場合、認証失敗が連続したら少ない労力で迅速な対応ができるようなシステムを構築する必要があるわけですね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#6
総合スコア86255
投稿2025/04/07 17:12
編集2025/04/08 17:06ウェブサービスにおける数字6桁の認証コードの強度を知りたいです。
質問にストレートに回答すると、他の回答と重なりますが、6桁認証コードの使い方(=設計)次第です。
普通は、システムの想定する脆弱性強度を保てるような設計にします。
普通の流れの「ユーザIDとパスワードで認証する。その次に、二要素認証のために登録済みメールアドレスや電話番号に認証コードを送り、それを元の画面に入力させる」でいくと、まずIDとパスワードの組が漏れたケースでの話になるかと思います(またはブルートフォースで突破)。で、IDとパスワードを入手したが二要素認証パスコードを受け取れない悪人が、6桁数字のパスコードを適当に入力して突破できる可能性は、1回発行したパスコード入力の再試行を許さないなら、100万分の1ですね。再発行や再トライを無限に繰り返せるなら確率はどんどん上がっていきますが。
ここまでは当たり前のことなので、ご認識済みですよね?
あとは、その確率をどう評価するか。昔は、IDとパスワードが漏ればそれで突破されていたのを、漏れた場合でも100万分の99万9999は救えるという事で満足するのかしないのか。
一般論としては、
①利用者にどの程度の作業までさせるのか(=利用者はどれいくらいのめんどくささまで許容しそうか)
②利用者のIT環境はどんなものを前提にするか?(スマホ所有で回線契約必須?とか)
③利用者のITリテラシーはどの程度と想定するか
④利用者が登録済みのメールアドレスや電話番号が使えなくなっている状態の場合に、運営側としてはどうしたいか
⑤どの程度の強度を保ちたいか
⑥仮に不正ログインされた場合の被害は何か?(お金?個人情報?何も無し?)
⑦・・・・
などを総合的に判断して、二要素認証にどういった手段を使うかを決めるのでしょうね。
その検討の結果で決まった手段が「6桁の認証コード」であれば、それで良いと言うことでしょう。
④でいうと、IDとパスワードでログインできた状態で、二要素認証の電話番号を自由に変更できる仕様だとすると、何桁であっても突破されますね。
追記:
タイトルの、
6桁の認証コードは総当たり攻撃に弱いかどうか
に回答してませんでしたが、上に書いた、
普通の流れの「ユーザIDとパスワードで認証する。その次に、二要素認証のために登録済みメールアドレスや電話番号に認証コードを送り、それを元の画面に入力させる」、
であれば、総当たり攻撃は無理ですね。せいぜい2-3回のトライで、それらに失敗したら認証コードを再発行するしかないでしょうから、またゼロからトライです。おそらく再発行回数にも上限があるはずで、それでサイト側が異常に気づきます。平行して、本人に認証コードが何度も届くので本人も異常に気づきます。
数字4桁とか6桁の認証コードというのは、二要素認証でしか見たことが無いのですが、総当たり攻撃可能なようなケースでの「6桁の認証コード」というのは、一体どんなケースを考えての質問でしょうか?
質問の趣旨が、「総当たり攻撃が可能なケースで、6桁の数字を認証に使うのは有りか無しか?」の検討であるなら、「無し」というのが自明でしょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#7
皆さん回答ありがとうございます!
制限がなければやはり脆弱なのですね、、、
ちなみに多要素認証でなくてもidとコードさえ合えば乗っ取られてしまう恐れのあるサービスは実際にあります
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。