パスワードを許可する長さを制限したり、特定の文字を禁止したりするサイトを数多く目にしました。パスワードの検索スペースを広げて長くしたいので、これは私にとって制限です。また、ハッシュ化されていない可能性があるという不快な感覚もあります。
パスワードに上限を設定したり、文字を除外したりする理由はgoodありますか?
goodの理由はありません。
編集:私は否定的なことを証明できないため、正当な理由がないことを証明できません。これには良い理由はないと思います-他の人が指摘したように、ハッシュは入力のサイズに関係なく同じサイズになり、有効な文字を削除すると(質問コンテキストから)状態空間が減ります。答えは一見明白です:良いの理由はありません。良いと思われる、または良いように思われる理由はたくさんありますが、そうではありません。もしそうなら、誰かがすでにここに投稿したか、そうでなければ、確かにsecurity.stackexchange.comに投稿していたでしょう。この回答はそれほど高く評価されていなかったでしょう。
長さを制限することは、ハッシュの実行時間を制限することと同様に帯域幅を制限することの尺度になる可能性があります(そしてどちらもreallyとにかく限界です)。それ以外には、特にセキュリティの観点から、正当な理由はありません。
「人々は長いパスワードをより簡単に忘れるでしょう」と言うこともできます–しかし、それは本当に愚かな発言であり、まったく意味がありません。
文字については、将来のデータ転送や移行に関する潜在的なエンコーディングの問題を認識している限り(たとえば、ASCIIから2年間でUTF-8に切り替える)、さらに多くの文字はパスワードの強みにのみ有効です。
はい、特殊文字には理由があります。
特殊文字を禁止することは、セキュリティに関連するというよりは、使いやすさの問題です。まず最初に、エンコードの問題によってそれらが破損する可能性があります。第2に、常に同じエンコーディングを使用することが保証されている場合でも、入力デバイスの問題があります。同じキーボードレイアウトのフルキーボード(ほとんどのモバイルデバイスを排除)に依存しているでしょう。後で言語間だけでなく、OS間でも異なるため、Windows、Linux、OSXのレイアウトは少し異なる場合があります。だから私は次のようなパスワードを許可しない正当な理由を見ます:√Ω≈ç∫∞§…¬å∑±
。
Chaseの顧客がパスワードの大文字と小文字が区別されないことを発見した数年前、セキュリティの世界で少し論争がありました。彼らのウェブページは、30年前のOS/400バックエンドシステムのフロントエンドにすぎないことが判明しました。これを修正すると、数百万ドルの費用がかかるようです。
重要なのは、一定の長さのパスワードを許可しないことには、高価なレガシーの理由があるかもしれないということです。
(私がこの言い訳を容認していないことに注意してください...)
ほとんどの銀行、IT部門など。最大のパスワード制限を実施する人は、技術的な理由からそうしません。彼らは、パスワードのハッシュがどのように機能するか、そして複雑なパスワードを保存する方法を完全に認識しています。パスワードを忘れた人へのサポートへの問い合わせ数が減るため、これらの制限が課せられます。これは、そのような制限を課す正当な理由ですか?決して。しかし、それにもかかわらず、それが主な理由です。
上限の長さを設定するか、パスワードの文字を除外する理由はありますか?
私は推測して、これらの制限のいくつかは彼らのウェブサイトの文字フィルタリングによるものだと言います(& < > #
)ハッカーを排除します。他のものは先のとがった髪のボスの委員会から出てくる骨のあるアイデアです。
私は(私の意見では)本当に愚かな「セキュリティ」の決定に遭遇しました。例として、ある大手投資会社が私の年金だけでなくIRA口座も扱っています。 anyを行うために、年金に連絡するには、電話でパスワードを入力する必要があります(それ以外の場合は連絡できません)。私の証券/ IRAアカウントでは、文字(大文字と小文字)と句読点を使用しています。これらの文字はいずれも電話番号パッドに表示されません。電話でパスワードでログインできない場合は、証券会社のアカウントのパスワードを電話で入力できるパスワードにリセットできます。
私が働いている給与計算システム(私が働いているコンサルティング会社の場合)には番号が必要で、番号のみが必要です。これにより、ユーザーが電話する(これを行ったことがない)かWebインターフェイスを使用する(これだけを使用する)かに関わらず、同じデータベースを使用できます。
とはいえ、オフィスでパスワードを変更する時が来ました。彼らには、システムに受け入れられるパスワードを見つけるのに約半日かかると思うほどのクレイジーな制限があります:少なくとも2つの大文字、少なくとも2つの小文字、少なくとも2桁(+/- 1にすることはできません)以前のパスワードから)、少なくとも2つの非英字/非数値文字、最後の24個のパスワードのいずれにも一致しない、英語の単語(3文字以上)の文字列(前方または後方)を含むことはできません(また、私が知る必要のある他のいくつかの言語)。 I think最小の長さは10〜11文字です。
すべての入力デバイス(ハードウェアに関して)がフルキーボードのすべての文字を備えているとは限りません。パスワードマネージャーを使用していない場合、そのようなパスワードを入力するときに問題が発生する可能性があります。そして、Unicodeはまだ標準から遠い(遠い)ものです。
文字数を制限する理由の1つは、パスワードの入力方法にあります。
たとえば、インターネットバンキングのWebサイトを備えたいくつかの銀行は、パスワードから特定の文字を要求し、ドロップダウンボックスを使用して適切な文字を選択します。
これはおそらく、キーロガーがキープレスを検出できず、パスワード[からの文字]を認識できないためです。私はそのような手段を回避できる他の多くの方法があることを知っていますが、例えば画面キャプチャ;キーロガーに対しては依然として効果的です。
すべての文字を許可する必要がある場合、ドロップダウンボックスの長さが面倒になり、同様に見える文字間の混乱も可能になります。
タブのような特殊文字を禁止することは有効です。テキストモードでは、タブ文字を使用してログオンしたりパスワードを変更したりできますが、GUIまたはWeb環境では使用できません。バックスラッシュ文字は、いくつかのクロスプラットフォームの問題も示します。
長いパスワードはパスワードではありません-それらはパスフレーズです。平均的なユーザーは2Z8d!%g#xを思い出せませんが、「私のペットの名前は犬のfidoです」を覚えています。テキストが長いと、ブルートフォースでクラックすることが難しくなり、画面に添付されたメモに書かれる可能性がはるかに低くなります。
ユーザーがタイプすると、「タイプミス」と呼ばれる間違いを犯します。通常、人々は自分の間違いを見て修正します。パスワード入力の場合、通常は入力した内容を確認できないため、入力ミスを修正できません。気づかずに間違えてパスワードを送信すると、「パスワードが無効です」として戻ってきます。その後、再試行してください。その後、再試行してください。
「3つの小さなタイプミスがあると、ブルートフォース攻撃と見分けがつかなくなる」と考えることができます。システムはブルートフォース攻撃からどのように防御しますか?明示的な "試行回数が多すぎると、すぐに終了します。正しく設定してもログインできません"応答ですか?パスワード入力の遅延が指数関数的に増加し、遅延が長すぎるとブラウザーのタイムアウトが発生し、再度ログインを試行できなくなりますか?アプローチはさまざまですが、適切に設計されたシステムには常に結果があります。
「3つの小さなタイプミスがあると、何らかのサービス拒否が発生する」と考えることができます。
パスワードの長さが増えると、タイプミスのリスク(したがって、許可された人のアクセスを拒否するリスク)が増加します。約20文字を超えると、頻繁に入力ミスが発生します(ユーザーがスマート/レイジーで、どこかにパスワードを保存して、タイプミスを気にせずに「コピーアンドペースト」できる場合を除きます。 passwords.txt ")。