重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

がidを英数小文字8文字以上としpassを英数小文字8文字以上としたときに
phpコマンドのsleep(1)を使って一回の認証に1秒かかるようにすれば
ロボット認証で認証を破ろうとしても
(26+10)^(8+8)秒=7.95866*10^24秒=2.517*10^17年≒25京年
程度かかるのでほぼ認証を破ることは困難とみてよいでしょうか?

A 回答 (4件)

>100億台のサーバで攻撃しても2500万年かかりますね



その認識は間違いです
100億台のサーバーから「同時」にアクセスするのですから理論上は1秒です。

もちろん現実には100億台のサーバで攻撃すればいわゆる飽和攻撃なのでどんなサーバーも確実に飛ぶでしょう。仮にパスワードを破ることが成功しても攻撃者はWEBサービスを参照することはできません。
    • good
    • 0
この回答へのお礼

ありがとうございます
100億台は意味ありませんね
アクセスしているサーバ以外はサービスを待たされるのですから
一台のサーバーが連続攻撃をするのと脅威は変わらないですね
巷にはパスワードを何回失敗したら暫くアクセスできなくなるという対応や
認証画面に絵をかいて何かを答えさせるといった対応をしていたりしますが
簡単な1秒認証で完璧なガードができるのですべて徒労ですね?

お礼日時:2024/11/22 12:38

>アクセスしているサーバ以外はサービスを待たされるのですから



あー、そこからですか(苦笑)
WEBサーバーというのは複数の接続を同時にこなすことができます。特定の接続がsleepになったからといって別の接続まで止まるということではありません。理論上は大量の同接に対応するサーバーであれば10000接続してsleepがかかったとしても同時に待って同時に開放されるので、理論的には10000秒ではなく1秒なんですよ

とはいえ接続数は設定にもとづく物理的な上限があるので無限に接続はできないのでDDoS攻撃が可能ですがそれは常に1接続しか許諾されていないということではありません。逆に言えばsleepをかけなくてもリソースが枯渇すれば鯖落ちします。
    • good
    • 0
この回答へのお礼

ありがとうございます
正確な表現をすると
セッション数は制限されるので大半は待たされるということで
数が膨大であってもかなり絞られるので認証の完璧さに
揺らぎはないということですね

お礼日時:2024/11/22 13:35

>一回の認証に1秒かかるようにすれば



並行して100攻撃すれば100秒ではなくかかるのは1秒です
    • good
    • 0
この回答へのお礼

ありがとうございます
ただ、100億台のサーバで攻撃しても2500万年かかりますね
高度な推定をして1/10000にしても
2500年かかります
100年も経てば皆死んでます

お礼日時:2024/11/21 21:19

ランダムなパスワードしか許さないなら総当たりの確率で計算していいのですが、


実際には単語ベースのパスワードが使われることがほとんどです。
辞書攻撃食らうともっと早く破られますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます
例えば
小説の一節をローマ字にして
id:wagahaiwanekodearu
pass:namaewamadanai

id:gionsyouzyano
pass:kanenooto
などは覚えやすく見破りにくいのではないでしょうか?

お礼日時:2024/11/21 08:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A