文字を許可せず、パスワードの長さを制限する正当な理由はありますか?


39

パスワードを許可する長さを制限したり、特定の文字を禁止したりするサイトを数多く目にしました。パスワードの検索スペースを広げて長くしたいので、それは私に制限されています。また、それらがハッシュされていないかもしれないという不快な感覚を私に与えます。

そこにあるの良いアッパー長さを設定したり、パスワードの文字を除くいずれかの理由は?


26
もちろん!これにより、人のパスワードを総当たり攻撃するのが簡単になります!:P
FrustratedWithFormsDesigner

4
有効な「技術的」理由または有効な「ビジネス」理由を話しているのでしょうか?
マーティンヨーク

1
@マーティン:私は技術的なことを考えていましたが、どちらかと思います。
クリス

11
@JYeltonなぜ元のパスワードの長さが気になるのですか?ハッシュは常に同じサイズになります。私は確かにあなたが平文でそれらを保存していないことを願っています
...-Pewpewarrows

回答:


27

いや

正当な理由はありません。

編集:否定を証明することはできないため、正当な理由がないことを証明することはできません。他の人が指摘したように、ハッシュは入力のサイズに関係なく同じサイズになり、有効な文字を(質問コンテキストから)削除すると、状態空間が減少するだけです。答えは一見して明らかです:正当な理由はありません。良い音や良いように思える理由はたくさんあるかもしれませんが、そうではありません。もしそうであれば、誰かがすでにそれらをここに投稿している、またはここにない場合は確かにsecurity.stackexchange.comに投稿し、この回答はそれほど強く支持されなかっただろう。


3
同意しますが、Kissakiがエンコードに関して行ったコメントは有効です。一部のスタック/プログラマーは、エンコードを正しく取得できないようです。ASCIIに制限することは、機能させるための安価なハックです。
edA-qa mort-ora-y

10
少なくとも詳しく説明してみてください。事実としてこれを知らないか、または一般的/既存の理由が有効ではないと信じる理由があります。疑いの恩恵を与え、後者を仮定して、あなたはそれらの理由がなぜ有効でないのかを説明するべきです。
アーロンノート

8
-1-パスワードを特定の文字セットに制限する理由はいくつか考えられます。同様に、キーボードを使用して入力するパスワードだけでなく、プッシュホン電話のパスワードもサポートする必要があることも念頭に置いておく必要がある状況です。
-rjzii

9
-1。正当化せず、意見だけ。ブランケットステートメントを作成する場合は、バックアップしてください。
マイケルK

4
これは現在、私たちのメタディスカッションサイトで議論されています。1語の回答が非常に人気がある理由と、このような回答の品質を向上させるためにできることを理解することが役立ちます。

25

長さを制限することは、ハッシュの実行時間と帯域幅を制限するための手段になります(とにかく両方とも本当に限界です)。それ以外には、特にセキュリティの観点から、正当な理由はありません。

「人々はより長いパスワードをより簡単に忘れるだろう」と言うことができますが、それは本当に馬鹿げた声明であり、まったく意味を成していません。

文字に関しては、将来のデータ転送および/または移行に関する潜在的なエンコードの問題を知っている限り(たとえば、2年でASCIIからUTF-8に切り替える)、より多くの文字を許可することはパスワードの強度にのみ有効です。


4
最新のプロトコルの長さのオーバーヘッドを考えると、特定の攻撃/ナンセンスを防ぐための1Kのような上限以外には、絶対に正当な理由にはなりません。
edA-qa mort-ora-y

3
ハッシュの実行時間を制限することは一般に悪いです。ハッシュの計算に時間がかかるほど、ブルートフォースに時間がかかります。
-tdammers

それは正しいが、それは常にトレードオフです。常に最も時間がかかる最適なハッシュを計算する必要はありません。したがって、VPNなどでの非対称ハンドシェイクと対称データストリーム
Kissaki

17

はい、特殊文字には理由があります。

特殊文字を許可しないことは、セキュリティに関連するというよりも、使いやすさの問題です。まず第一に、エンコードの問題によってそれらが破壊される可能性があります。第二に、常に同じエンコーディングを使用することを保証したとしても、入力デバイスの問題が残っています。同じキーボードレイアウトで、フルキーボード(ほとんどのモバイルデバイスが不要)に依存することになります。後で言語間だけでなく、OS間でも異なります。Windows、Linux、およびOSXのレイアウトは少し異なる場合があります。そのため、次のようなパスワードを許可しない正当な理由があります√Ω≈ç∫∞§…¬å∑±


3
ユーザーにパスワードを提供する場合を除きます。つまり、ユーザーが自分でパスワードを入力する場合は、奇妙な数学記号を使用することを選択するのがビジネスです。今、私はここでエンコードの問題に同意しますが、特定の文字をarbitrarily意的に防ぐための実際の正当な理由よりもレーダーの無能さの下を通過するための言い訳の多くを見つけます。
ニュートピア

2
@new:彼らのビジネスではありません。彼らが足を踏み入れたとしても、彼らはあなたのアプリケーションに問題があると認識し、サポートに電話します。
バルテック

7
@Newtopian:ユーザーとして、無知の理由(電子メールアドレスに「+」を指定できないなど)によって制限されると、私はそれを嫌います。ただし、場合によっては、ユーザーにぶら下がるためのロープをあまり与えないことをお勧めします。これはそのような機会だと思います。特定のキャラクターを「任意に」防ぐことではありません。
ザノ

1
ギリシャ人、アラブ人、中国人、その他すべてがUS-ASCIIを使用していると主張していますか?
-l0b0

@ l0:いいえ、一部のレイアウトにはない特殊な文字ではなく、言語で通常使用される一般的な文字を使用することを推奨しています。
バルテック

13

Chaseの顧客がパスワードの大文字と小文字を区別しないことに気付いた数年前、セキュリティの世界で少し論争がありました。彼らのウェブページは、30年前のOS / 400バックエンドシステムのフロントエンドに過ぎず、ケースを無視するという技術的な制限があったことが判明しました。これを修正すると、明らかに数百万ドルの費用がかかります。

要点は、特定の長さを超えるパスワードを許可しないという、従来の高価な理由があるかもしれないということです。
(この言い訳を容認していないことに注意してください...)


1
限り、これが何らかの方法でパスワードを制限する唯一の正当な理由です...そもそも基礎となるシステムがそのような制限を保持する場合のみです。
ニュートピア

8

最大のパスワード制限を実施するほとんどの銀行、IT部門などは、技術的な理由からそうしません。彼らは、パスワードハッシュがどのように機能するか、複雑なパスワードを保存する方法を完全に認識しています。パスワードを忘れた人をサポートするための呼び出し回数が減るため、これらの制限が課せられます。これは、そのような制限を課す正当な理由ですか?決して。しかし、それにもかかわらず、それが主な理由です。


1
サポートコールの削減はvalid Business reason(個人的には相関関係があるとは実際には思わない)
マーティンヨーク

2
さて、パスワードをリセットしたり、覚えやすい十分に複雑なパスワードを選択する方法をユーザーに教育したりする方法は他にもあります。職場での最後の数個のパスワードは25文字を超えていて、覚えるのに何の問題もありませんでした。また、おそらく、長いパスワードを思い出すのに苦労している人々は、より短いパスワードを選択しますが、実際にどのくらいの頻度かはわかりません。サポートコールを減らすことは、一見有効なビジネス上の理由のように見えますが、それでもパスワードの長さを制限するのはお粗末な理由です。
グレッグジャクソン

1
私(および多くの人々)は、出力をほとんど不可能にせずに(覚えているだけでなく)25文字を正確に入力すると思います。これまでのところ、これを入力中に5つのタイプミスを修正しました!
ジェリー

まあ、覚えることはタイピングと同じではありません。長いパスワードを選択する方法を知っていれば、長いパスワードを覚えることは非常に簡単です。物語や演劇、または詩の一部や歌の歌詞から線を引くだけです。そこにある1つまたは2つのこと(意図的なつづりの間違い、単語のように聞こえるか、同じことを意味する単語など)を変更する限り、それは非常に簡単で非常に安全です。確かに、それを入力するのは難しいかもしれませんが、8/10/12文字未満を入力するように銀行に強制することは言い訳にはなりません。
グレッグジャクソン

モバイルデバイスでその25文字のパスワードを入力してみてください
リーライアン

7

すべての入力デバイス(ハードウェアに関して)が、フルキーボードのすべての文字を持っているわけではありません。パスワードマネージャーを使用していない場合、そのようなパスワードの入力に問題があることに気付くでしょうか?また、Unicodeはまだ標準ではありません(はるかに遠い)。


1
通常、パスワードを入力する人は、パスワードの作成と認証に同じハードウェア(またはハードウェアクラス)を使用します。これが文字セットまたは長さを制限する際の議論であるかはわかりません。Unicodeに関しては、サーバー側(認証部分)を構築するときに、なぜサイズまたは文字セットを制限するのですか?パスワードの入力が必要なシステムは、このパスワードのシステムへの入力方法を制御できる必要があります。したがって、クライアントにユニコードが必要な場合は、そうする必要があります。
ニュートピア

@Newtopianあなたは、レガシーシステム、またはあなたの制御外のシステムとインターフェースする必要がないと仮定しています。
grahamparks

1
彼らはのために尋ねた良い本ではない、その理由は良い理由

2
@Jarrod-パスワードを入力できないことは正当な理由ではありませんか?!いずれにせよ、私はあなたがより良いもの(あるいはまったく)を思い付くのを見ませんでした。
ルーク

3
あなたはそれがありませんデバイスからそれらを選ぶことができませんでした知っていた場合は、それらの文字を使用しているべきではありません@Rook 良い皆のためにそれらを制限する理由、それは作る良いあなたが理由個人的にそれらを使用しません。

7

上限の長さを設定するか、パスワードの文字を除外する理由はありますか?

推測して、これらの制限のいくつかは、& < > #ハッカーを締め出すためのWebサイトでの文字フィルタリング()によるものだと言います。他のものは、先のとがった髪のボスの委員会から出てくる骨の生えたアイデアです。

私は、(私の意見では)非常に愚かな「セキュリティ」の決定に何度も出くわしました。例として、ある大規模な投資会社が年金だけでなくIRAアカウントも処理しています。行うために任意の電話に自分のパスワードを入力するために私を必要と年金との接触を(あなたがそうでない場合は、それらを達することができません)。私の証券会社/ IRAアカウントでは、文字(大文字と小文字)と句読点を使用しています。これらの文字は電話番号パッドには表示されません。電話でパスワードを使用してログインできない場合は、証券会社のアカウントのパスワードを、電話で入力できるものにリセットできます。

私の給与計算システム(私が働いているコンサルティング会社用)には数字と数字のみが必要です-これにより、ユーザーが電話をかける(これをやったことがない)かWebインターフェースを使う(これだけを使用する)かどうかにかかわらず、同じデータベースを使用できます。

とはいえ、オフィスでパスワードを変更するときが来ました。システムに受け入れられるパスワードを見つけるのに約半日かかると思われるほどクレイジーな制限があります:少なくとも2つの大文字、少なくとも2つの小文字、少なくとも2桁(+/- 1は不可)前のパスワードから)、少なくとも2つの非英数字/非数字、最後の24のパスワードのいずれとも一致することはできず、英語の単語(3文字以上)である文字列(前方または後方)を含むことはできません(また、私が知るクリアランスがない他のいくつかの言語)。私が考える最低限の長さは10〜11文字のようなものです。


うん、私はノーリストでそれらのキャラクターを見てきました。
クリス

5
単純な攻撃:誰もパスワードを思い出せないため、キーボードの下に付箋を見つけます。
-JeffO

@ジェフ、それは正しいです。ノートを家に置いておくと、パスワードが複雑すぎて覚えられないため、ログインできません。また、給与計算システムでは、ユーザー名とパスワードをブックマークの一部として配置します。
タングレナ

「英語の単語(3文字以上)である文字列(前方または後方)を含めることはできません」これが私に当てはまりました。パスワード単語全体が含まれている場合、辞書攻撃は効果的ではなく、パスワード全体が完全な単語のみで構成されている場合は効果的です。書き留めずに使用するのに実用的な最も安全なパスワードは、本、詩、歌の歌詞などに由来するパスフレーズです-数文字を数字に変え、スペルを間違え、予測不能に大文字にし、誰もそのパスワードを解読しません。
グレッグジャクソン

1
文字フィルタリングは、バックグラウンドでテストされていないガベージコードの確実な兆候です。開発者は文字列をエスケープすることを学ぶ必要があります。
l0b0

5

文字を制限する理由の1つは、パスワードの入力方法にあります。

たとえば、いくつかの銀行は、インターネットバンキングのWebサイトで、パスワードから特定の文字を要求し、ドロップダウンボックスから適切な文字を選択します。

おそらく、キーロガーがキー押下を検出できず、パスワードを[からの文字]を知ることができないように、これを行います。スクリーンキャプチャなど、このような対策を回避できる方法は他にもたくさんあることは知っていますが、キーロガーに対して依然として有効です。

すべてのキャラクターを許可する必要がある場合、ドロップダウンボックスの長さが面倒になり、同様に見えるキャラクター間の混乱も許容します。


1
とにかく(技術的な)人々は手紙をただ入力するだけでしょうか?
ジェリー

@Gerry-それは絶対的な標準ではなく、ブラウザ固有の動作であり、動作させるためにはユーザーの知識にも依存しています。
ジョンホプキンス

私の銀行は、同様の理由でキーボードのポップアップアプレットを使用しました。しかし、使用するのが難しすぎて、アクセスできないことについて多くの批判を受けました(スクリーンリーダー、代替入力などでは機能しませんでした)
-jqa

1
@ジョン-私は技術的な人を言った、そしてそれは、標準的なWindowsの動作です、私は、少なくとも最初の文字のマッチングで実装していない任意のウィンドウのブラウザを知らない- Macと* nixのために話すことができない
ジェリー

1
@Gerry私のAndroid携帯電話のブラウザはこれを許可していません。多くのモバイル機器でも同じだと思います。
RoundTower

2

タブのような特殊文字を禁止することは有効です。テキストモードではタブ文字を使用してログオンまたはパスワードを変更できますが、GUIまたはWeb環境では使用できません。バックスラッシュ文字は、クロスプラットフォームの問題も示します。

ところで、長いパスワードはパスワードではありません-パスフレーズです。あなたの平均的なユーザーは2Z8d!%g#xを思い出せませんが、「私のペットの名前は犬のfidoです」ということは覚えています。長いテキストは、総当たりでクラックするのが難しく、画面に添付されたメモに書き込まれる可能性ははるかに低くなります。



0

人々がタイプするとき、彼らは「タイプミス」と呼ばれる間違いをする。通常、人々は自分の間違いを見て修正します。パスワードの入力では、通常、入力した内容が表示されないため、入力ミスを修正できません。気付かないうちに間違いを犯し、パスワードを送信すると、「パスワードが無効」として返されます。その後、再試行します。その後、再試行します。

「3つの小さな小さなタイプミスと、ブルートフォース攻撃と見分けがつかない」と考えることができます。システムはブルートフォース攻撃からどのように防御しますか?明示的な「試行回数が多すぎると、表示されなくなります正しく入力してもログインできません」という応答がありますか?パスワード入力の遅延が指数関数的に増加し、遅延が長すぎる場合にブラウザーのタイムアウトが発生し、再度ログインできないようになりますか?アプローチはさまざまですが、適切に設計されたシステムには常に結果があります。

「小さな3つの小さなタイプミスと、ある種のサービス拒否」と考えることができます。

パスワードの長さが長くなると、タイプミスのリスク(したがって、許可された人のアクセスを拒否するリスク)が増加します。約20文字より長いものは頻繁にタイプミスされます(ユーザーがスマート/レイジーで、パスワードをどこかに保存し、タイプミスを心配することなく「コピーアンドペースト」できる場合を除きます。 .txt ")。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.