web-dev-qa-db-ja.com

NHSはパスワードについて間違っていますか?

私が最近知っているNHS医師は、オンラインでの必須トレーニングアンケートを行わなければなりませんでした。このアンケートは、臨床実習、安全性、およびセキュリティについてたくさんの質問をします。この同じアンケートは、このNHSトラストのすべての医師に送信されます。

アンケートには次の質問が含まれていました。

次のうちどれが最も安全なパスワードになりますか?一つ選択してください:

a。小文字と大文字を含む6文字。
b。大文字と小文字を組み合わせた10文字。
c。数字、文字、特殊文字を組み合わせた7文字。
d。 10文字すべて大文字。
e。すべて小文字の5文字。

彼らは「b」と答え、「正しい答え」は明らかに「c」だったので、彼らは点数を失った。

原則として、パスワードの長さを拡張すると、アルファベットを拡張するよりもエントロピーが追加されると私は理解しています。 NHSは、人々は通常、非常に予測可能な単語から長いパスワードを作成し、簡単に推測できると主張するかもしれません。しかし、「特殊文字」を導入するように人々に強いると、彼らはまた、パスワード推測アルゴリズムが問題とならない非常に予測可能な方法でそれらを使用する傾向があります。

完全な開示はありますが、私はパスワードの専門家ではありません。RandallMunroeからこのような印象を受けました(クリックして議論):

password strength

私が間違っている?

184
Robin Winslow

何らかの手段で、それらは間違っています:

7つのランダムに印刷可能なASCII:957 = 69 833 729 609 375可能なパスワード。

10個のランダムなアルファベット:5210 = 144 555 105 949 057 024可能なパスワード、または2000倍以上。

長さのカウント。パスワードをランダムに生成している場合は、他の方法でパスワードを推測しにくくするよりもはるかに重要です。

224
Mark

理論的展望

ここで計算してみましょう。 26文字、10桁で、10種類の特殊文字について考えてみましょう。まず、パスワードは完全にランダムであると想定します(あるグループの文字が別のグループの文字よりも使用される可能性は低いと想定しています)。

可能なパスワードの数はC = s^nとして記述できます。ここで、sはアルファベットのサイズ、nは文字数です。パスワードのエントロピーは次のように定義されます。

log2(C) = log2(s^n) = log2(s)*n

質問からの数字をこれにプラグインしましょう:

     s    n   Entropy (bits)
A   52    6   34.2
B   52   10   57.0
C   72    7   43.2
D   26   10   47.0
E   26    5   23.5

したがって、このシナリオでは、CはBおよびDに次ぐ3番目に最適なオプションです。

実用的な視点

しかし、これはすべてランダム性を前提としています。これは、人々がパスワードを生成する方法についての合理的な仮定ではありません。人間はそのようにしないのです。したがって、パスワードを生成する方法、および攻撃者が辞書でパスワードを試行する順序について、他のいくつかの仮定を選択する必要があります。

多くの辞書は単語で始まり、後になって置換を行ったり特殊文字を追加したりすることになります。その場合、短いパスワードに含まれる単一の特殊文字は、本当に長い一般的な単語よりも優れています。しかし一方で、攻撃者が特殊文字が常に使用されることを知っている場合、攻撃者はそれらのパスワードを最初に試します。そしてもう1つは、辞書が完全に異なる原則(リークされたデータベースでの発生など)に集中していることです。

私は永遠に推測を続けることができました。

なぜ答えではなく質問なのか

問題は、選択するパスワードの生成方法には多くの原則があり、任意の1つを選択して、ほぼすべての答えを正しいものにできることです。したがって、質問全体は無意味であり、世界中のどのパスワードポリシーでも適用できないという重要なポイントを曖昧にするのに役立ちます:パスワードをどのような文字で構成するかではなく、強力になります-方法生成されます。

たとえば、Password1!には、大文字、小文字、数字、特殊文字が含まれています。しかし、それは非常にランダムではありません。一方、ewdvjjbokは小文字のみを含みますが、 ランダムに生成される であるため、はるかに優れています。

彼らがすべきこと

非常に誤りが多く、限られた人間のメモリに依存するのをやめると、文字セットと長さが、お互いに重み付けしなければならない制限要因でなくなります。両方を豊富に用意できます。

これを行う1つの方法は、パスワードマネージャーを使用することです。 Dan Lowe がコメントで指摘したように、それは病院で実行可能なオプションではないかもしれません。 2つ目の方法は、ある種の2要素認証(ハードウェアトークンやキーカードなど)を使用することです。これにより、最初の要素(パスワード)のセキュリティの重要性が低くなります。

これは、実装するエンドユーザーではなく、システム管理者の責任です。彼らは、エンドユーザーが実用的かつ安全な方法で作業を実行できるようにするツールを提供する必要があります。ユーザー教育の量はそれを変えることができません。

89
Anders

良い答えはすでにたくさんあると思いますが、一つはっきりさせておきたい。

文字セットもパスワードの選択方法も指定されていないため、質問には回答できません。

まず、2番目のポイントに対処するために、許可されたドメイン内でパスワードが真にランダムに生成されたと仮定します。そうしないと、問題について推論を開始することさえできません。

他の点として、極端な例を示すために、bは英語のアルファベットのみの文字を意味するので、52の可能な記号を考えてみましょう。これにより、1文字あたり約5.7ビットのエントロピー、つまり全体で約57ビットのエントロピーが得られます。

一方、(おそらく不合理に)答えcは、(BOMなどではなく)文字と見なされる完全にランダムなUnicodeコードポイントを意味するとします。 Unicode 6の時点でこれらの数は現在およそ109,000です。これは、1文字あたり約16.7ビットのエントロピーと合計117ビットのエントロピーを意味します。

一方、答えcがASCIIまたはISO 8859-15またはこれらのサブセットに限定されている場合、反対の結論が簡単に導き出される可能性があります。

もちろん、これは完全に不合理ですが、問題の破綻と、どちらの答えを合理的に正当化できるかを強調しています。賢明なテスト問題になるためには、もっと厳密に言い表す必要があり、技術的または数学的な知識が限られているユーザーがうまく理解するのが非常に難しくなります。

結局、組織はユーザーがパスワード要件を記憶することを理想的に要求せず、代わりに技術的にそれらを実施するので、このテストはおそらくかなり無意味であることを示唆します複数の場所で)。

20
Vality

理想的な場合にどのパスワードが最も安全かについて、NHSは間違っていますか?はい、絶対に-そして、他の回答はその根拠をかなり完全にカバーしています。

NHS環境で最も安全なパスワードについて、NHSは間違っていますか?そうでないかもしれない。

長いパスワードはどうしてもっと悪くなるのでしょうか?

パスワードの長さを人為的に制限するレガシーシステムがあります。たとえば、古いWindows LANMAN/NTLMv1パスワードハッシュは長さを14シンボルに制限し、古いDESベースのUNIXパスワードハッシュはそれを8に制限します。このようなシステムでのエントリでは、多くの場合、好きなだけパスワードを入力でき、最初のn記号以降はすべて無視されます。

実際、NTLMv1は、彼らが実行している特定のレガシースキームであると思われます。 @MarchHoが指摘するように、NTLMv1はパスワードをそれぞれ最大7文字の2つの半分に分割し、各半分は個別にクラックされる可能性があります。したがって、10文字の英数字パスワードでNTLMを使用している場合、実際に持っているのは7文字の英数字パスワードと3文字の英数字パスワードです。前者は完全なシンボルセットの7文字よりも明らかに劣っており、後者は10年前のPCではミリ秒単位で壊れる可能性があります。

なぜそんなに古いものがまだ一般的に使用されているのでしょうか?

基本的に、それは機能し、アップグレードにはコストがかかるためです。

さて、これは私が推測していることですが、ヘルスケアのデリケートな性質のため、特にヘルスケア環境ではレガシーシステムが実行されている可能性が高いと考えています。新しいシステムは、ソリューションとして承認される前に非常に綿密な調査を必要とする可能性があります。つまり、ヘルスケアシステムのアップグレードは、ゆっくりと多額の費用で行われる傾向があります。

したがって、このように動作する一般的なシステムがあり、それらを修正できないことがわかっている場合、最善の方法は、ユーザーに長さを選択するように指示することです-n可能な最大のシンボルプールを使用したパスワード。

一般的に、パスワードは切り捨てられていませんか?

残念ながら、これは一般的なケースにも影響を与えます。特に、長い間パスワードを好む私たちにとってはそうです。 https://example.com で、最初の1つまたは2つのパスフレーズだけでアカウントにログインできないことをどのように確認しますか?よく知られている "correcthorsebatterystaple"を使用するのと同じくらい悪いのは、誤って "correct"を使用するとさらに悪いことです。パスワードで安全であるためには、十分なエントロピーを生成することを確認するだけでは不十分です。また、相手側のシステムがそのほとんどを破棄していないことを確認する必要があります。

13
Jander

その質問にはいくつかの問題があります。それらの1つは、パスワードの選択方法が記載されていないことですが、最も論理的なアプローチは、パスワードがランダムに選択されると想定することですが、それぞれの条件を満たすため、その規則を私の回答に使用します。ランドールのコミックは明らかにこの仮定を共有していないことに注意してください。ただし、質問ではパスワードの選択方法が指定されていなかったため、可能な限り最善の方法でパスワードをランダムに選択できると考えています。さらに、テストはおそらくRandallのコミックに基づいていません。

オプションbのキーペースは、英語のアルファベットが使用されていると想定すると、非常に簡単に計算できます。ええ、より多くの仮定、私は知っています。しかし、テストは英語で行われ、それほど難しくないように思われるので、私たちはその仮定を立てることができると思います。

英語のアルファベットには26の小文字があり、大文字も同様に合計52になります。したがって、オプションbのキースペースには52 ^ 10≈1.45 * 10 ^ 17の要素があります。

オプションcは、オプションbよりもそれほど限定的ではありません。ただし、オプションcに有利な英語のアルファベットが使用されていると想定しているため、特殊文字にasciiのみが使用されていると想定することもできます(オプションbに有利です)。実際、アスキーよりも多くの特殊文字を想定した場合、äはおそらくドイツ語の文字であるため、アスキーよりも多くの文字を想定する必要があります。これにより、オプションbのキースペースは、オプションc。*のキースペースと比較してさらに大きくなります。

ASCIIアルファベットに限定する場合、オプションcにできる最善の方法は、アルファベットにすべての印刷可能な文字(空白を除く)を使用することです(注:単語「アルファベット」の異なる、より一般的な使用)。これは94文字で、オプションcに94 ^ 7≈6.48 * 10 ^ 13要素のキースペースを与えます。

質問に取り組むための前提の1つは、パスワードはそれぞれの制限をランダムに選択することであり、そのルールはそれぞれのキースペースからランダムにパスワードを選択することと同じであるため、オプションbを使用して選択したパスワードは、間違いなく推測が困難です。パスワードを解読するときに試すオプションが数桁増えます。

実際、ブルートフォースによるパスワードのクラックのコストがキースペースのサイズにほぼ比例すると仮定すると、オプションbで選択されたパスワードのクラックは52 ^ 10 /(94 ^ 7)≈2です。オプションcで選択したものを解読するよりも229倍困難であり、この質問に対する正しいとされている答えが間違っていることを明確に示しています。


*これは数学的に証明するのは非常に簡単ですが、このStackExchangeにはLaTeXのサポートがないため、とにかくテキストによる説明で理解しやすくなるでしょう。

オプションcよりも有利な唯一のオプションbは、その大きなアルファベットです(ここでも、Wordの「アルファベット」のより一般的な使用法)。ただし、オプションbは、より長いパスワードを選択することで、これを補います。さらに多くの文字(üàØÆなど)を追加すると、アルファベットのサイズが等しくなります。 cに対するbの利点は減少しますが、bに対するcの利点は影響を受けません。

8
UTF-8

私はエントロピーの質問が大好きです:

短い答え:

はい、あなたはよりエントロピーを持っていることについて「技術的に」正しいです(最高の種類の正しい)。

長い答え

エントロピーは、主に2つの要因によって影響を受けます。パスワードが使用できる記号の数と長さ。 NHSのシナリオでは、「特殊文字」が10文字の回答で使用できる記号であることは論理的であるため、パスワードが長いほど、エントロピーが高くなり、理論的には安全になります。

しかし、私たちは人と付き合わなければならず、私たちは怠惰です。問題は、エントロピーを発生させるため、人々にパスワードに特殊文字を含めさせることです。

それがなければ、Randallのコミックは数学的には正しいですが、生意気ですが、正しいhorsebatterystaplerを考えているSysAdminは、長い間顔を叩かれる必要があるため、適切なパスワードです。

公平に言えば、4つの辞書単語をつなぎ合わせることは良い概念だと思います(これをパスフレーズと呼びます)。

7
Shane Andrie

エントロピーはパスワードのrandomnessの尺度であり、長さではなくアルファベットのサイズではないため、引用されたテストと反対の引数の両方が間違っています。引用したXCKDコミックスキームは、「正しい馬のバッテリーの定番」の下にある44個の小さな灰色のボックスがコイン投げの結果(または同様の制服、パスワードの選択に使用された独立したランダムイベント)。人間が単語を選んだ場合、すべての賭けはオフになります。

NHSもあなたもこの重要な要素について話していないため、パスワードのセキュリティについて具体的に何も言うことは不可能です。ただし、ランダムに一様に選択されない場合は、脆弱になる可能性があります。

原則として、パスワードの長さを拡張すると、アルファベットを拡張するよりもエントロピーが追加されると私は理解しています。

dがアルファベットサイズで、nがパスワードの長さである場合、パスワードランダムに一律に選択にはlog2(d) * nビットのエントロピーがあります。したがって、アルファベットのサイズを2倍にすると、nビットのエントロピーが追加されます。パスワードに記号を追加すると、log2(d)ビットが追加されます。したがって、すべてはdnの具体的な値になります。単純に増加を計算することができるので、提案しているような経験則を持つことは非常に重要ではありません。

6
Luis Casillas

これが好きかどうかという問題は、実験室や数学的に安全なパスワードではありません。それは人々がそれらを選択するときに自分のパスワードについて「考える」ようにすることです。

a。文字しかないので間違いです。
b。文字しかないので間違っている
c。十分に長く、「特殊文字」が含まれているため、正解です
d。文字しかないので間違っています。

つまり、文字だけを使用したパスワードは不適切です。

さて、それが十分な長さであるか、または十分にランダムであれば、文字のみを使用してより安全なパスワードを作成できることは事実です。不思議な「asefhesesnh」は「p4ssw0rd!」よりも優れていますが、正直に言うと、このテストの対象読者のほとんどの人を超えて理解しています。

代わりに、文字、数字、特殊文字を含む「より長い」パスワードを選択することをユーザーに理解させるのが「良い」です。

言い換えれば、技術レベルの異なるさまざまなユーザーについて話し、独自のパスワードを作成する場合、Cは正しいです。数学は間違いかもしれませんが、それは問題ではありません。プロバイダーはいません。そこに座ってパスワードエントロピーを計算しますが、パスワード内の$の数を数えることができます。

2
coteyr

オプションbでは、キャラクターごとに52の可能性があります。

Cをより良くするには、7文字のそれぞれに52を超える文字が必要です10/7 =少なくとも283の可能性。

つまり、ASCIIまたは西部のANSI文字セットでは不十分です。オプションcを改善するには、Unicode文字セット(または非常に難解なアジアのANSIコードページ)を許可する必要があります。

それは明らかに不自然な質問です。 62の数字と文字(大文字+小文字)があるので、正解は次のようになります。

「特殊文字」の場合、少なくとも221の非英数字(つまり「特殊」)文字を含むUnicode文字またはその他の文字セットを使用できることを意味します。それ以外の場合はb。

0
RocketNuts