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

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


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2020-07-27T14:56:48+09:00","","")
#author("2020-07-28T16:45:54+09:00","","")
[[・パスワードについて]]
*パスワードの要件と課題 [#gaf01c39]
始めにNIST SP800-63Bからパスワードに対する要求事項(抜粋)をあげ、変更の理由となった研究を後述します。また、IPA セキュリティプロジェクトチームが分析した[[漏洩パスワードの特徴>#m2cdf191]]を解説します。

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

**パスワードの課題 [#f0d32f77]
本項では、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]
複雑さとは、以下の複数の文字種の使用を条件とするもので、通常、3種類か4種類の使用を求めます。
-英大文字
-英小文字
-数字
-記号(特殊文字)
複雑さは攻撃の困難性を高める有効な手段として考えられていましたが、複雑さを求めることで別な弊害が発生することが研究で明らかになっています。ユーザーは複雑さを条件とされると、比較的高い確率で以下のような遷移を遂げました。 
 最初のパスワード password
 大文字、小文字、数字の要求 Password1
 大文字、小文字、数字、記号の要求 Password1!
このように複雑さを強制してもパスワードの推測が可能であり、強度の向上にはつながらないことが判明しています。~
また、別の研究では、長さが8桁で複雑さを条件とした場合、制約から1桁から7けたまでの組み合わせと、大文字・小文字・数字・記号以外の組合せ(約40%)は除外されるため、8桁の制約なしの組み合わせ数は60兆よりも少ない、36兆の組合せだけが有効となり、推測困難性を下げる結果となります。

***複雑さの課題 [#e9e1bd87]
複雑さとは、以下の複数の文字種の使用を条件とするもので、通常、3種類か4種類の使用を求めます。
-英大文字
-英小文字
-数字
-記号(特殊文字)
複雑さは攻撃の困難性を高める有効な手段として考えられていましたが、複雑さを求めることで別な弊害が発生することが研究で明らかになっています。ユーザーは複雑さを条件とされると、比較的高い確率で以下のような遷移を遂げました。~ 
 最初のパスワード password
 大文字、小文字、数字の要求 Password1
 大文字、小文字、数字、記号の要求 Password1!
このように複雑さを強制してもパスワードの推測が可能であり、強度の向上にはつながらないことが判明しています。~
Testing Metrics for Password Creation Policies by Attacking Large Sets of Revealed Passwords : http://www.cs.umd.edu/~jkatz/security/downloads/passwords_revealed-weir.pdf~
また、別の研究では、長さが8桁で複雑さを条件とした場合、制約から1桁から7けたまでの組み合わせと、大文字・小文字・数字・記号以外の組合せ(約40%)は除外されるため、8桁の制約なしの組み合わせ数は60兆よりも少ない、36兆の組合せだけが有効となり、推測困難性を下げる結果となります。

***定期変更の課題 [#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
ここで、b は利用可能な文字種であり、標準的な101キーボードではスペースを含めると95種類が利用可能です。パスワードの桁数が6桁であれば、735,091,890,625の組合せがあり、8桁ならば6,634,204,312,890,620と格段に多い組み合わせが考えられます。べき乗であることから、1桁増えれば95倍組み合わせが増えるため、桁数を長めにすることで総当たり攻撃を困難にすることが可能となります。
&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・・・~
繰り返しや連続した文字列は、機械的に攻撃用の辞書データを作成できることから、好ましくありません。ある程度の長さを要求する場合は、これらの弊害を取り除くロジックの実装が必要になります。これは、長いパスフレーズを利用する上でも、同様です。
*漏洩パスワード TOP100 の特徴 [#m2cdf191]
IPA セキュリティプロジェクトチームが調査した漏洩パスワードTOP100の特徴は以下の通りです。~


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