アカウント名:
パスワード:
仮にパスワードが(8文字ではなく)4文字と決まっていたとする。
* アルファベット大文字(26種類)* アルファベット小文字(26種類)* 数字(10種類)* 記号(33種類)
として、4種の文字をを全て含める場合→26×26×10×33×4! = 5,353,920通り
文字種の制約がない場合→95^4 = 81,450,625通り
文字種の縛りを加えることによってパスワードの候補が大幅に減ってしまう(この例だと94%減る)。文字数を大きくすることでこの効果は小さくなっていく。つまりパスワードの最大文字数を最大8文字とか10文字とかに制約しておきながら文字種の縛りを加えているサイトはアホだということになる。# 最小文字数こそ設定すべきだと思うのだが……
全部で〇〇通りという理屈は、ユーザーがランダムにパスワードを生成している場合にしか通用しないよ
現実に、例えば「4桁以上10桁以下、文字種の縛りなし」のシステムを作ったら、可能な総数はだいたい 95^10 ≒ 6*10^19 通りでものすごく多いけど、ユーザーは面倒くさがって小文字だけで 4 文字のパス作るし、攻撃者もユーザーの心理を理解して 26^4 = 456976 通りで総当たり攻撃かけるよ
でも、縛りを入れればいいかと言うとそういうわけでもない例えば「8桁以上、文字種の縛り無し」から「8桁以上、大文字小文字の両方を使う」に変えたとして、2^8 = 256 倍安全になるかといえばそんなことはないユーザーは password → Password に変えてやり過ごすだけだから
何よりもまず大事なのは、8〜10桁以上の範囲で、ユーザーにパスワードのランダムな生成を強制すること文字種の縛りを入れる入れないなんてのは正直どっちでもいいレベルの些末な問題
password→Password→Passw0rd→P@ssw0rd→P@ssw0-d最後の1段階で一気にセキュリティレベルが上がった感じ
pasuwa-doもよろしく。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
こういうことか (スコア:5, 参考になる)
仮にパスワードが(8文字ではなく)4文字と決まっていたとする。
* アルファベット大文字(26種類)
* アルファベット小文字(26種類)
* 数字(10種類)
* 記号(33種類)
として、4種の文字をを全て含める場合
→26×26×10×33×4! = 5,353,920通り
文字種の制約がない場合
→95^4 = 81,450,625通り
文字種の縛りを加えることによってパスワードの候補が大幅に減ってしまう(この例だと94%減る)。
文字数を大きくすることでこの効果は小さくなっていく。
つまりパスワードの最大文字数を最大8文字とか10文字とかに制約しておきながら文字種の縛りを加えているサイトはアホだということになる。
# 最小文字数こそ設定すべきだと思うのだが……
Re: (スコア:0)
全部で〇〇通りという理屈は、ユーザーがランダムにパスワードを生成している場合にしか通用しないよ
現実に、例えば「4桁以上10桁以下、文字種の縛りなし」のシステムを作ったら、
可能な総数はだいたい 95^10 ≒ 6*10^19 通りでものすごく多いけど、
ユーザーは面倒くさがって小文字だけで 4 文字のパス作るし、
攻撃者もユーザーの心理を理解して 26^4 = 456976 通りで総当たり攻撃かけるよ
でも、縛りを入れればいいかと言うとそういうわけでもない
例えば「8桁以上、文字種の縛り無し」から「8桁以上、大文字小文字の両方を使う」に変えたとして、2^8 = 256 倍安全になるかといえばそんなことはない
ユーザーは password → Password に変えてやり過ごすだけだから
何よりもまず大事なのは、8〜10桁以上の範囲で、ユーザーにパスワードのランダムな生成を強制すること
文字種の縛りを入れる入れないなんてのは正直どっちでもいいレベルの些末な問題
Re:こういうことか (スコア:0)
password→Password→Passw0rd→P@ssw0rd→P@ssw0-d
最後の1段階で一気にセキュリティレベルが上がった感じ
Re:こういうことか (スコア:1)
pasuwa-doもよろしく。