トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

パスワードの要件と課題 のバックアップの現在との差分(No.6)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2020-07-29T11:30:08+09:00","","")
[[・パスワードについて]]
*パスワードの要件と課題 [#gaf01c39]
パスワードに関する現在の要件と課題を理解するために、「NIST SP800-63B」からパスワードに対する要求事項(抜粋)をあげ、変更の理由となった研究を紹介します。また、参考として、IPA セキュリティプロジェクトチームが分析した[[漏洩パスワードの特徴>#m2cdf191]]を解説します。
#freeze
#author("2021-01-02T10:25:25+09:00","","")
[[・電子認証について]]

**NIST SP800-63-3の記憶シークレット(パスワード)の要求事項 [#zed3bab3]
(SP800-63BではパスワードやPINを「記憶シークレット」と呼んでいますが、ここでは、パスワードに置き換えています。)
一般的にはパスワードや、数字ならばPINとして表されているものは、ユーザーによって決められ、記憶されるシークレットである。パスワードは攻撃者が正しい値を推測したり特定できないように、十分な複雑かつ秘密の状態にしておく必要がある。
-ユーザーが指定する場合、最低8文字以上を要求する (SHALL)
ーパスワードの設定、変更を処理する際、一般的に利用されているパスワード、予想できるパスワード、セキュリティ侵害を受けたパスワードと比較する (SHALL)
--過去にセキュリティ侵害にあったパスワードリスト
--辞書に含まれる言葉
--サービス名や、ユーザー名、そこから派生するようなものなど、文脈によって特定可能な単語
パスワードに関する現在の要件と課題を理解するために、「NIST SP800-63B」からパスワードに対する要求事項(抜粋)をあげ、変更の理由となった研究を紹介します。
*NIST SP800-63-3の記憶シークレット(パスワード)の要求事項 [#n646833e]
注:SP800-63BではパスワードやPINを「記憶シークレット」と呼んでいますが、ここでは、パスワードに置き換えています。&br;
一般的にはパスワードや、数字ならばPINとして表されているものは、ユーザーによって決められ、記憶されるシークレットである。パスワードは攻撃者が正しい値を推測したり特定できないように、十分に複雑かつ秘密の状態にしておく必要がある。
-ユーザーが指定する場合、最低8文字以上を要求する (SHALL) 
-パスワードの設定、変更を処理する際、一般的に利用されているパスワード、予想できるパスワード、セキュリティ侵害を受けたパスワードと比較する (SHALL)
-過去にセキュリティ侵害にあったパスワードリスト
-辞書に含まれる言葉
-サービス名や、ユーザー名、そこから派生するようなものなど、文脈によって特定可能な単語
-パスワードがこれらに該当したらユーザーは異なるパスワードを選びなおす必要があることを通知され、異なる値の選択を求められる (SHALL)
-アカウント乗っ取りのために試みた認証失敗の回数を制限する仕組みを実装する (SHALL)
-例えば異なる文字種の組合せをパスワードに課すべきではない (SHOULD NOT)
-パスワードが侵害されている、ユーザーの変更要求がない限り、パスワードを例えば定期的に変更するよう要求するべきではない (SHOULD NOT)
-パスワード入力時にペースト機能を利用できることを許可すべき (SHOULD)
&br;
-パスワードが侵害されている、もしくはユーザーの変更要求がない限り、パスワードを例えば定期的に変更するよう要求するべきではない (SHOULD NOT)
-パスワード入力時にペースト機能を利用できることを許可すべきである (SHOULD)
>「SHALL(するものとする)」及び「SHALL NOT(しないものとする)」というキーワードは、刊行物に厳密に従うことを要求しており、内容と異なってはならない。
>「SHOULD(すべきである」」及び「SHOULD NOT(すべきではない)」は、いくつかある選択肢の中で特定の推奨があることを示しており、他の選択肢については選択も除外もしない。ある行動指針を推奨するが、必須であることまでは要求しない。(否定の意味では)ある選択肢または行動指針を非推奨するが、禁止はしない。 
>「MAY(してもよい)」及び「NEED NOT(しなくてよい)」は、刊行物の範囲において、行動指針が許容できることを示す。 
>「SHOULD(すべきである」」及び「SHOULD NOT(すべきではない)」は、いくつかある選択肢の中で特定の推奨があることを示しており、他の選択肢については選択も除外もしない。ある行動指針を推奨するが、必須であることまでは要求しない。(否定の意味では)ある選択肢または行動指針を非推奨するが、禁止はしない。
>「MAY(してもよい)」及び「NEED NOT(しなくてよい)」は、刊行物の範囲において、行動指針が許容できることを示す。
>「CAN(できる)」及び「CANNOT(できない)」は、可能性や、能力があることを示す。その対象が物理的か一時的かにはかかわらない。

**パスワードの課題 [#f0d32f77]
*パスワードの課題 [#edd8c0b1]
本項では、NIST SP800-63Bが要求事項改訂に至ったとする課題について解説します。
***長さについて [#wcf79e92]
NISTとカーネギーメロン大学の研究で、5,000人の参加者に、様々なパスワードを生成させ、その強度を比較したところ、「8文字」・「複雑さ」・「辞書に含まれていない」パスワードよりも、何ら制約を課していない16桁のパスワードが優れていたことが判明しました。パスワードの適切な長さについては、システムの特性によるとしていますが、短すぎるパスワードは辞書攻撃や総当たり攻撃に弱いため、最低8文字とされています。また、長いパスワードが使えるように促進されるべきとしています。~
Of Passwords and People:Measuring the Effect of Password-Composition Policies : https://users.ece.cmu.edu/~lbauer/papers/2011/chi2011-passwords.pdf
***複雑さの課題 [#z6e272b3]
**長さについて [#i63591c2]
NISTとカーネギーメロン大学の研究 で、5,000人の参加者に、様々なパスワードを生成させ、その強度を比較したところ、「8文字」・「複雑さ」・「辞書に含まれていない」パスワードよりも、何ら制約を課していない16桁のパスワードが優れていたことが判明しました。パスワードの適切な長さについては、システムの特性によるとしていますが、短すぎるパスワードは辞書攻撃や総当たり攻撃に弱いため、最低8文字とされています。また、長いパスワードが使えるように促進されるべきとしています。
**複雑さの課題 [#q4b97d88]
複雑さとは、以下の複数の文字種の使用を条件とするもので、通常、3種類か4種類の使用を求めます。
-英大文字
-英小文字
-数字
-記号(特殊文字)
複雑さは攻撃の困難性を高める有効な手段として考えられていましたが、複雑さを求めることで別な弊害が発生することが研究で明らかになっています。ユーザーは複雑さを条件とされると、比較的高い確率で以下のような遷移が確認されました。 
 最初のパスワード password
 大文字、小文字、数字の要求 Password1
 大文字、小文字、数字、記号の要求 Password1!
このように複雑さを強制してもパスワードの推測が可能であり、強度の向上にはつながらないことが判明しています。~
また、別の研究では、長さが8桁で複雑さを条件とした場合、制約から1桁から7けたまでの組み合わせと、大文字・小文字・数字・記号以外の組合せ(約40%)は除外されるため、8桁の制約なしの組み合わせ数は60兆よりも少ない、36兆の組合せだけが有効となり、推測困難性を下げる結果となります。
-記号(特殊文字) 
複雑さは攻撃の困難性を高める有効な手段として考えられていましたが、複雑さを求めることで別な弊害が発生することがフロリダ州立大学 らの研究で明らかになっています。ユーザーは複雑さを条件とされると、比較的高い確率で以下のような変更をすることが確認されました。そのため、複雑さを強制してもパスワードの推測が可能であり、強度の向上にはつながらないことが判明しています。&br;
>最初のパスワード         password
>大文字、小文字、数字の要求    Password1
>大文字、小文字、数字、記号の要求 Password1!

***定期変更の課題 [#y80f591e]
パスワードの定期変更を求めると、多くのユーザーにおいてパスワードの末尾の記号を増やす・減らす、などの推測しやすいパスワードを設定する傾向があることが分かっています。米国での大規模な研究 では、調査したアカウントの11%は、過去に設定されたパスワードが分かれば、5回未満で現在のパスワードを入手できることが確認されました。これは、5回でロックアウトするシステムの場合、11%のユーザーはオンラインでクラックされてしまう、という事を意味します。また、オフラインの場合は、数秒で40%を超えるユーザーの現在のパスワードを割り出に成功しています。~
安易な類推可能なパスワードを増やすだけであれば、定期変更を求めず、パスワードが危殆化した時だけ、変更するのは合理的といえます。~
なお、パスワードに有効期限を設けて定期的に変更を強制する理由として、「パスワードが侵害された場合に備える」があります。しかし、パスワードが侵害されたならば即座に変更をするべきであり、次の定期変更日まで待つことはリスクを高めます。~
The Security of Modern Password Expiration:An Algorithmic Framework and Empirical Analysis : https://www.cs.unc.edu/~reiter/papers/2010/CCS.pdf
***パスワードの使い回しの課題 [#bd1a7ac6]
パスワードの使い回しは危険だという指摘は多数ありますが、さまざまなWebサイトごとにパスワードを変えて、それを覚えるのは大変ですし、いざ必要な時に素早くアクセスできないのはさらに苦痛です。こうしたことから、多くのユーザーはパスワードを使い回します。~
それを防止させるため、SP800-63B ではパスワード入力の際のペースト行為を許可しています。これは、パスワードマネージャーの利用を促し、強力なパスワードを手軽に利用するため、としています。

***長いパスワードを実装する場合 [#jd09f426]
パスワードの組み合わせは、以下の式で得られます。 ~
 組み合わせ数=bn
また、長さが8桁で大文字、小文字、数字、記号のすべての使用を条件とした場合、制約から1桁から7けたまでの組み合わせと、大文字・小文字・数字・記号以外の組合せは除外されるため、組み合わせ数を大幅に下げることになるため効果的ではありません。
**定期変更の課題 [#oeab1a87]
パスワードの定期変更を求めると、多くのユーザーにおいてパスワードの末尾の記号を増やす・減らす、などの推測しやすいパスワードを設定する傾向があることが分かっています。米国での大規模な研究  では、調査したアカウントの11%は、過去に設定されたパスワードが分かれば、5回未満で現在のパスワードを入手できることが確認されました。これは、5回でロックアウトするシステムの場合、11%のユーザーはオンラインでクラックされてしまう、という事を意味します。また、オフラインの場合は数秒で40%を超えるユーザーの、現在のパスワードの割り出しに成功しています。&br;
安易な、つまり攻撃者にとって類推可能なパスワードを増やすだけであれば、定期変更を求めず、パスワードが危殆化した時だけ、変更するのは合理的といえます。&br;
なお、パスワードに有効期限を設けて定期的に変更を強制する理由として、「パスワードが侵害された場合に備える」があります。しかし、パスワードが侵害されたならば即座に変更をするべきであり、次の定期変更日まで待つことはリスクを高めます。
**パスワードの使い回しの課題 [#x4562e07]
パスワードの使い回しは危険だという指摘は多数ありますが、さまざまなWebサイトごとにパスワードを変えて、それを覚えるのは大変ですし、いざ必要な時に素早くアクセスできないのはさらに苦痛です。こうしたことから、多くのユーザーはパスワードを使い回します。&br;
SP800-63Bではそれを防止させるため、SP800-63B ではパスワード入力の際のペースト行為を許可しています。これは、パスワード管理ツールの利用を促し、強力なパスワードを手軽に利用するため、としています。
**長いパスワードを実装する場合 [#b495c08e]
パスワードの組み合わせは、以下の式で得られます。&br;
組み合わせ数=bSUP{SIZE(8){2}};n&br;
ここで、b は利用可能な文字種であり、標準的な101キーボードではスペースを含めると95種類が利用可能です。パスワードの桁数が6桁であれば、735,091,890,625の組合せがあり、8桁ならば6,634,204,312,890,620と格段に多い組み合わせが考えられます。べき乗であることから、1桁増えれば95倍組み合わせが増えるため、桁数を長めにすることで総当たり攻撃を困難にすることが可能となります。
***桁数組み合わせ数 [#v48e4248]
|RIGHT:|RIGHT:|c
|COLOR(WHITE):BGCOLOR(#44546A):CENTER:桁数|COLOR(WHITE):BGCOLOR(#44546A):CENTER:組み合わせ数|h
|1|95|
|2|9,025|
|3|857,375|
|4|81,450,625|
|5|7,737,809,375|
|6|735,091,890,625|
|7|69,833,729,609,375|
|8|6,634,204,312,890,620|
|9|630,249,409,724,609,000|
|10|59,873,693,923,837,900,000|
|12|540,360,087,662,637,000,000,000|
|14|4,876,749,791,155,300,000,000,000,000|
|16|44,012,666,865,176,600,000,000,000,000,000|
|18|397,214,318,458,219,000,000,000,000,000,000,000|
|20|3,584,859,224,085,420,000,000,000,000,000,000,000,000|
&br;

|BGCOLOR(NAVY):COLOR(WHITE):CENTER:桁数|BGCOLOR(NAVY):COLOR(WHITE):CENTER:組み合わせ数|h
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:1|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:95|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:2|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:9,025|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:3|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:857,375|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:4|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:81,450,625|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:5|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:7,737,809,375|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:6|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:735,091,890,625|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:7|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:69,833,729,609,375|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:8|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:6,634,204,312,890,620|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:9|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:630,249,409,724,609,000|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:10|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:59,873,693,923,837,900,000|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:12|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:540,360,087,662,637,000,000,000|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:14|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:4,876,749,791,155,300,000,000,000,000|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:16|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:44,012,666,865,176,600,000,000,000,000,000|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:18|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:397,214,318,458,219,000,000,000,000,000,000,000|
|BGCOLOR(WHITE):COLOR(BLACK):CENTOR:20|BGCOLOR(WHITE):COLOR(BLACK):RIGHT:3,584,859,224,085,420,000,000,000,000,000,000,000,000|
&br;
但し、ユーザーに長いパスワードを求めると次のような弊害が発生します。~
-文字列の繰り返し	12341234、monkeymonkey、monkeyeknom
-連続した文字列          111111111・・・	  qwerty・・・~
但し、ユーザーに長いパスワードを求めると次のような弊害が発生します。
-文字列の繰り返し           12341234、monkeymonkey、monkeyeknom
-連続した文字列やキーボード配列の利用 111111111、qwerty、1q2w3e
繰り返しや連続した文字列は、機械的に攻撃用の辞書データを作成できることから、好ましくありません。ある程度の長さを要求する場合は、これらの弊害を取り除くロジックの実装が必要になります。これは、パスフレーズを利用する上でも、同様です。
*漏洩パスワード TOP100 の特徴 [#m2cdf191]
IPA セキュリティプロジェクトチームが調査した漏洩パスワードTOP100の特徴は以下の通りです。~


#ref(https://www.softwareisac.jp/ipa/image/data/password1.jpg)~
#ref(https://www.softwareisac.jp/ipa/image/data/password2.jpg)