ピクチャ パスワードを使ってサインインする

ピクチャ パスワードは、Windows 8 の新しいサインイン方法で、現在、Developer Preview 版に含まれています。ここでは、舞台裏に回って、この機能がどれほど安全か、またどのように開発されたかを覗いてみましょう。タッチ スクリーンを利用できるメリットの一つは、PC へのサインインの新しい方法を考えられることです。パスワードなしで PC を使用することでサインイン時のわずらわしさをなくしたいと考える方も大勢いるかもしれませんが、ほとんどの状況で大半のユーザーにとって、この考えは該当しないか、少なくとも賢明な方法ではありません。タッチ操作によるすばやく滑らかなサインインのメカニズムを提供することは、非常に重要です。また、皆さんご存知のとおり、タッチ スクリーン搭載の携帯電話で、英数字パスワードを使うのは面倒です。この記事では、You Centered Experience (ユーザー中心エクスペリエンス) チームのプログラム マネージャーである Zach Pace が、Windows 8 のピクチャ パスワードの実装とセキュリティについて説明します。なお、ピクチャ パスワードは、クリックとドラッグのアクションを使って、マウスでも使用できます。
--Steven


タッチ操作で PC にサインインする場合のエクスペリエンスは、これまで、面倒なものでした。パスワード要件がますます厳しくなる中 (数字、記号、大文字の使用を必須とするなど)、長い複雑なパスワードの場合、タッチ キーボードでは入力に 30 秒以上かかることもあります。私たちには、Windows 8 のユーザー エクスペリエンスをすばやく滑らかなものにしたいという強い思いがあり、その特性はサインインの時点から実現されるべきだと考えています。

この問題に対しては、市場に出ている他のタッチ エクスペリエンスでも取り組みが行われてきており、その代表的な例が数字の PIN です。PIN はすばらしいソリューションです。ほとんどだれもが見たことや使ったことがあるという点に加え、テンキーはタッチ操作でも簡単に使用できます。しかし、改善の余地があるのは確かでした。

数字の組み合わせを使う際にしばしば問題になるのは、通常、覚えやすいシーケンスほど安全性も低くなるという点です。1111 や 1234 といった一般的な数字のシーケンスも問題ですが、よく知られている個人的な日付を基にした PIN も、攻撃者がそのユーザーの個人情報を知っている場合 (このような情報の多くは、手に入れるのは難しくありません)、推測される可能性があります。このような場合、その数字がユーザーにとって個人的な意味を持つこと自体が、セキュリティの低下を生みます。そこで、私たちは、パラダイムを変えることにしました。すばやく滑らかで、しかもユーザーにとってパーソナルな、タッチ操作によるサインイン エクスペリエンスを設計したのです。

個人的なサインイン エクスペリエンス

基本的に、ピクチャ パスワードは、相補関係にある 2 つの要素で構成されます。ユーザーの写真コレクションの中の任意の写真と、その写真の上で描く一連のジェスチャです。写真は Microsoft が用意した画像のセットから選ぶのではなく、ユーザーが用意します。パスワードのセキュリティも向上し、覚えやすくもなるためです。写真の内容と、写真のどの部分が重要かは、ユーザーが決めることができます。また、よく携帯電話のロック画面がこのように設定されていますが、自分の好きな写真を目にすることができるというメリットもあります。

4 人が写っている写真 / [Switch to password] (パスワードに切り替え) ボタン

ピクチャ パスワードの基本的なしくみは、画像上でユーザーが重要と考える部分をハイライトしてもらうというもので、これには、すばやく自信を持って操作できるような、ジェスチャのセットを使用します。使用するジェスチャの最適なセットを突き止めるために、私たちは調査の参加者に写真を配り、画像の中で自分にとって重要な部分をハイライトするように依頼しました。指示はこれだけで、それ以上具体的な指定はしません。その結果、3 つの基本の動作が見つかりました。場所を示す、領域を結ぶ (領域間の道筋をハイライトする)、領域を囲むの 3 つです。私たちは、これらの概念をそれぞれ、タップ、線、円に対応付けました。これが、ユーザーにとって最も重要な画像の部分をハイライトするために最小限必要なジェスチャのセットです。

また、円と線のジェスチャには、パーソナル化とセキュリティのレベルをさらに向上させる属性が、もともと備わっています。"方向性" です。選択した写真の上で円または線を描くと、Windows はその図形がどのように描かれたかを記憶します。したがって、他のユーザーがピクチャ パスワードを再現しようとした場合、画像のどの部分をどの順番でハイライトしたかだけでなく、描かれた円と線の方向と始点および終点も知っている必要があります。

[Set up your getures] (ジェスチャの設定) / 男性の顔を囲む円、左端の人物の鼻の上の点、右側の 2 人の人物の鼻を結ぶ線。

また、自由なジェスチャの使用についても調査しました。テストの繰り返しと調査の両面からこの概念について調べた結果、この方式には大きな問題があることがわかりました。サインインにかかる時間です。前述のとおり、私たちはタッチ キーボードよりもすばやく操作できるソリューションを求めていました。この機能の開発中は、タッチ キーボードを使ったサインインにかかる時間をベンチマークとして使用することで、開発した方法の合否を判定していました。自由なジェスチャを使用できるようにすると、常にサインインに時間がかかりました。必要以上に正確でなければならない、また、画像の細かい部分をなぞらなければならないように感じて、操作が遅くなるのです。

限られたジェスチャのセットを使うと、細部ではなく領域をハイライトすることになるため、自由なジェスチャに比べて、平均して 3 倍以上操作が早くなりました。また、自由なジェスチャでは平均して 17 秒かかっていたところ、ジェスチャ セットを使用する場合は、繰り返し使用することで、常に 4 秒未満でサインインできるようになりました。多くの参加者は、自由なジェスチャをしばらく使用すると、単純な線と場所を示すジェスチャへの変更を希望することがわかりました。

ピクチャ パスワードのしくみ

画像を選択すると、画像はグリッドに分割されます。画像の長辺が、100 セグメントに分割されます。次に、そのセグメントを基準に短辺が分割され、グリッドが作成されます。このグリッド上で、ジェスチャを描きます。

次に、ピクチャ パスワードを設定するため、作成されたフィールド上でジェスチャを行います。各ポイントは、グリッド上の座標 (x,y) の位置によって定義されます。線の場合、開始座標と終了座標、およびこの 2 座標が示された順序が記録されます。順序についての情報は、線が描かれた方向の特定に使用されます。円の場合は、中心点の座標、円の半径、描かれた方向が記録されます。タップの場合は、タッチされたポイントの座標が記録されます。

グリッドが重なって表示されている写真の 2 人の人物の鼻を結ぶ線。線のエンドポイントは (X1, Y1) と (X2, Y2) で表される

ピクチャ パスワードを使ってサインインする場合、描かれたジェスチャが評価され、ピクチャ パスワードを設定したときに使用したジェスチャと比較されます。ジェスチャごとに差異が確認されて、ジェスチャ セットの間違いの度合いを基にユーザーを認証するかどうかが決まります。円であるべきところに線が描かれるなど、ジェスチャの種類が違っている場合は、常に認証は失敗します。ジェスチャの種類、順序、方向性がすべて正しい場合は、各ジェスチャの場所が以前の場所からどの程度ずれているかが調べられ、認証しても問題ないほど近いかどうかが判断されます。

例として、タップ ジェスチャについて考えてみましょう。タップは、一意の順列の数という点でも、その後の解析の点から見ても、3 つのジェスチャのうちで最も単純です。タップされた点が基準点と一致するかどうかを検討する際は、スコア判定機能によって、ピクチャ パスワードの要素として記録されたジェスチャと、ユーザーが行ったジェスチャとの距離が比較されます。完全に一致する場合を 100%、完全にずれている場合を 0% として、スコアが出されます。スコアが 90% 以上の場合は、一致と見なされます。次の図は、100% 一致する位置の周辺の点のスコアを視覚的に表したものです。

タップ ジェスチャのスコア判定

一致と判定されるスコアが付いているのは、半径 3 の円内の領域です。タップした場合に一致という結果を返す (X,Y) 座標は、合計で 37 か所あります。線や円に関連付けられている変数についても、同様の計算が実行されます。

セキュリティとジェスチャの数

私たちは、ピクチャ パスワードを使うために必要になるジェスチャの数を調べるに当たり、セキュリティ、覚えやすさ、スピードを考慮しました。十分な安全性を確保しつつ最適なユーザー エクスペリエンスを実現するために、これらの矛盾しがちな属性間のバランスをとることに心を砕きました。セキュリティの目標に適う適切なジェスチャ数を決めるため、別の認証方法、具体的には PIN およびプレーンテキスト パスワードと、ピクチャ パスワードを比較しました。

一意の PIN の数を解析するのは簡単です。4 桁の PIN (10 種類の値があり得る数が 4 つ) の場合、一意の組み合わせは 104 = 10,000 個です。

英数字パスワードを調べる場合は、パスワードを英小文字 (26 個)、英大文字 (26 個)、数字 (10 個)、記号 (10 個) で構成される文字シーケンスと見なして、解析を単純化できます。最も基本的な例では、n 個の英小文字のみで構成されるパスワードの場合、26n 個の順列があります。パスワードの長さを 1 ~ n 文字とすると、次の数式で表される膨大な数の順列があります。

?_(i=1)^n¦?26?^n

たとえば、8 文字のパスワードの場合は、2,080 億とおりの組み合わせがあります。これは、大半の人が非常に安全だと見なす数でしょう。

しかし、残念ながら、ほとんどのユーザーが選ぶパスワードは、ランダムとは言い難いものです。自由にパスワードを設定する場合、ユーザーは一般的な語やフレーズ、家族の名前などを使いがちです。

このシナリオでは、大文字が 1 文字、数字か記号が 1 文字、残りはすべて小文字で構成されるパスワードを作成したとします。ただし、大文字と数字または記号は、パスワード中のどの位置にも使用できるものとします。この場合、一意のパスワード数は次のとおりです。

?26?^(n-1)·20·n!/(n-2)!

次の表は、パスワードの長さと、想定されたさまざまな文字の組み合わせによって、解空間 (考えられるパスワードの数) がどのように変化するかを表しています。

パスワードの長さ

一意のパスワード

1

n/a

2

n/a

3

81,120

4

4,218,240

5

182,790,400

6

7,128,825,600

7

259,489,251,840

8

8,995,627,397,120

ピクチャ パスワードについて考えるときも、ジェスチャの種類ごとに同様の解析を実行できます。下の各表の情報は、一意のジェスチャ位置と、認識アルゴリズムの許容範囲の両方を考慮したものです。

最も単純なジェスチャであるタップの場合、一意のジェスチャの数は、次のようにタップ数の関数で表されます。

タップ数

一意のジェスチャ数

1

270

2

23,535

3

2,743,206

4

178,832,265

5

15,344,276,658

6

1,380,314,975,183

7

130,146,054,200,734

8

13,168,374,201,327,200

円のジェスチャは、タップよりも複雑ですが、線ほどではありません。円の相対的なセキュリティを数値化するに当たり、攻撃者は半径が必ず 6 ~ 25 になることを知っているものとします (円のジェスチャを推測する手間を軽減するため)。さらに、X 座標と Y 座標の範囲はいずれも 5 ~ 95 と判明しているものと仮定します。以上を踏まえると、ハッカーにとって推測対象となる解空間 (考えられるパスワードの数) は、次のようになります。

(95-5+1)^2·(25-6+1)·2=331,240

円の数の関数として、一意のジェスチャの数は、次のように表されます。

円の数

一意のジェスチャ数

1

335

2

34,001

3

4,509,567

4

381,311,037

5

44,084,945,533

6

5,968,261,724,338

7

907,853,751,472,886

3 つのうち、最も複雑なジェスチャは線です。線は、正規化された 100 x 100 のグリッド上の 2 点と、これらの点の順序で構成されます。ここから単純に割り出すと 1 億とおりの線が考えられますが、線は最低 5 単位の長さが必要なため、実際には一意の線の数は 99,336,960 とおりになります。円のジェスチャを推測する場合は、想定を単純にすることで解空間 (考えられるパスワードの数) を大幅に縮小できましたが、線の場合は、同じように顕著に解空間が縮小されることはありません。線は、画面の端から端までの長さになることもあれば、非常に短いセグメントになることもあります。線の場合の一意のジェスチャ数は、次のとおりです。

線の数

一意のジェスチャ数

1

1,949

2

846,183

3

412,096,718

4

156,687,051,477

5

70,441,983,603,740

個々のジェスチャのセキュリティについては把握できたので、求めたデータを組み合わせて、複数のジェスチャを含むセットを評価できます。それには、ジェスチャの長さを n として 3 種類すべてのジェスチャの一意のジェスチャ数を合計し、これを n 乗します。この結果を次の表に示します。この表では、ピクチャ パスワードと PIN および英数字のパスワードとを比較しています。

長さ

10 桁の PIN

単純な a ~ z の文字セットのパスワード

より複雑な文字セットのパスワード

複数のジェスチャから成るピクチャ パスワード

1

10

26

n/a

2,554

2

100

676

n/a

1,581,773

3

1,000

17,576

81,120

1,155,509,083

4

10,000

456,976

4,218,240

612,157,353,732

5

100,000

11,881,376

182,790,400

398,046,621,309,172

6

1,000,000

308,915,776

7,128,825,600

 

7

10,000,000

8,031,810,176

259,489,251,840

 

8

100,000,000

208,827,064,576

8,995,627,397,120

 

ご覧のとおり、3 つのジェスチャを使うと、一意のジェスチャの組み合わせを多数作成でき、ランダムに選んだ 5 または 6 文字のパスワードと同程度のセキュリティを期待できます。また、使うジェスチャが 3 つであれば、覚えやすく、すばやく使えるピクチャ パスワードを作成できます。

一意の組み合わせの数だけでなく、繰り返し試行される攻撃に対して 2 種類のセーフガードを導入し、ピクチャ パスワードのセキュリティを高めています。携帯電話での PIN を使ったロック アウト機能と同様に、5 回ピクチャ パスワードを間違って入力すると、プレーンテキスト パスワードを使ってサインインするまで、ピクチャ パスワードは使用できなくなります。また、ピクチャ パスワードは、ネットワークを介したリモートからの操作では利用できません。これにより、ピクチャ パスワードに対するネットワーク攻撃を防いでいます。

間違いのないようにお話ししておくと、ピクチャ パスワードはテキスト パスワードを置き換えるのではなく、補完するログイン メカニズムです。必ずテキスト パスワード用に適切なヒントを用意し、セーフガード メカニズムを使用してください。テキスト パスワードは、これまでどおり、いつでもサインインに使用できます (サインイン画面に、すべての利用可能なパスワード入力方法間の切り替えができる 1 クリックのメカニズムが表示されます)。

画面に残る操作痕に対するセキュリティ策

ピクチャ パスワードを使用する際のユーザーの保護については、現実的な面からも考慮しています。タッチ スクリーンに指紋によって操作の痕跡が残ることや、それによってパスワードの推測が可能なのではないかという点は、多くのユーザーが心配することです。ジェスチャでは、順序、方向、位置のすべてに意味があるため、スクリーンが完全にきれいな状態で操作痕を残したとしても、推測はきわめて困難です。頻繁にタッチ操作されているスクリーンでは言うまでもありません。

ここで考えられる脅威は、サインイン操作で残された汚れが、認証シーケンスの手掛かりを与える可能性があることです。タッチ キーボード、4 桁の PIN、ピクチャ パスワードの 3 種類のログイン方法を比較して、サインイン シーケンスの推測しやすさを比較できます。最悪のケースを想定してみましょう。

  1. ユーザーが、スクリーンを鏡のようにピカピカに磨き上げます。
  2. 認証に最低限必要な場所のみをタッチします。
  3. その後、それ以上スクリーンに触れずに、マシンから離れます。
  4. 攻撃者がこのタブレットを盗み出し、認証に使われたすべてのジェスチャを 100% 正確に特定します。

明らかにこのようなことが起きる可能性は低いですが、このシナリオを基に 3 種類の認証方法と、このような攻撃に対する各方法の相対的な脆弱性を比較し、違いを確認できます。

PIN の場合は、コードに使われている各桁の数字に対応して、決まった位置に汚れが残ります。PIN が n 桁で構成されていて、すべての桁が一意であった場合 (推測が最も難しいケース)、考えられる PIN の数字の並びは n! とおりあります。一般的な 4 桁の PIN の場合、24 とおりの組み合わせがあります。

スクリーン キーボードの場合、n 文字のパスワードには、n! とおりの順序があります。ポリシー準拠のパスワードの場合、通常は、Shift キー (または別のボタン) を使って別の文字セットを選択します。もちろん、このキーを押したことも、攻撃者にはわかりますが、シーケンス内のどのタイミングで Shift キーが使われたかはわかりません。パスワードで Shift キーが使われるのは 1 回だけという単純化したケースを想定をした場合、考えられるパスワードは nn とおりです。

ジェスチャにも n! とおりの順序があります。ジェスチャ セットで使われる円と線の場合は、例外なく、順列は 2 倍ずつ増加します。すべてのジェスチャが円か線だった場合、考えられる順列の数は、Shift キーを使うパスワードと同じで n!·2^n 個です。

次の表に、異なるシーケンスの長さで、各方法の順列数はいくつになるかをまとめています。

長さ

PIN

パスワード

Shift を使うパスワード

タップのみのジェスチャ

線と円のジェスチャ

1

1

1

1

1

2

2

2

2

4

2

8

3

6

6

18

6

48

4

24

24

96

24

384

この場合も、完全にきれいなスクリーンで、ジェスチャのみを特定できるような操作痕が残っているものとしています。マシンが頻繁に使われている (したがって画面が汚れている) 場合や、マウスとキーボードでしか操作できない場合など、操作痕から有用な情報がまったく得られないシナリオを考えると、正しいシーケンスを推測できる可能性はさらに低くなります。3 種類のジェスチャ、方向性、シーケンスに少なくとも 3 つのジェスチャを使う必要があることを考えると、上記のとおり、考えられるジェスチャの組み合わせは 1,155,509,083 とおりです。

私たちが最後に検討した攻撃は、画像内で興味を引く点、つまり、画像が提示されたときに一般に選ばれる領域に関するものです。私たちが実施した調査では、このような攻撃はきわめて信頼性が低いことが示されていますが (ラボでは、選択された領域と、その領域に対して使われたジェスチャの種類には、相関関係はあまりありませんでした)、解析するとすれば、任意の画像について興味を引く点が clip_image016 か所あるものと想定します。タップ、円、線を好きな組み合わせで使用できる場合、順列の総数は (m·(1+2·5+(m-1)))^n です。n  はピクチャ パスワードの長さを表します。この結果、考えられる組み合わせの数は次のとおりです。

興味を引く点

長さ

5

10

15

20

1

75

200

375

600

2

5,625

40,000

140,625

360,000

3

421,875

8,000,000

52,734,375

216,000,000

4

31,640,625

1,600,000,000

19,775,390,625

129,600,000,000

平均的な画像には興味を引く点が 10 か所あると想定し、シーケンスの長さを 3 とすると、800 万とおりの組み合わせが考えられます。5 回以内に正しいシーケンスを推測できる可能性はかなり低いと言えるでしょう。

ピクチャ パスワードの堅牢性については満足のいくものを実現できたと考えていますが、セキュリティが最優先事項の企業で、完全なパスワード以外は認められないケースも多々あるという点は認識しています。そこで、ドメイン管理者がピクチャ パスワードの使用を許可するかどうかを選択できるグループ ポリシーを実装しています。もちろん、ご自宅の PC でも、ピクチャ パスワードはオプションです。

ピクチャ パスワードの設計を開始するときに、私たちは、すばやく滑らかで、すべての Windows 8 ユーザーにとってパーソナルなものでありながら、セキュリティも申し分ないサインイン方法を開発したいと考えました。調査を実施し、エクスペリエンスと概念に磨きをかける中で、安全でありながら、楽しく使えるサインイン方法に巡り合ったと思います。ピクチャ パスワードと、それが Windows 8 にもたらすパーソナル感は、私たちがとても気に入っている点です。読者の皆さんにも愛用していただければさいわいです。

-- Zach

お使いのブラウザーでは HTML5 ビデオがサポートされていません。

ビデオをダウンロードしてお好みのメディア プレーヤーで再生することができます:
高画質 MP4 | 低画質 MP4