February 16, 2005

A Gesture-based Authentication Scheme for Untrusted Public Terminal

Shwetak N. Patel, Jeffrey S. Pierce and Gregory D. Abowd,
"A Gesture-based Authentication Scheme for Untrusted Public Terminal",
Symposium on User Interface Software and Technology (UIST 2004), pp.157--160, 2004.
ACM Digital Library

ジェスチャーにより携帯端末を使って公共端末を使用する際の認証手法を提案した論文.
「これは認証である」と著者は言っているのだが、これは認証ではなく、アクセス制御のような気がしてならない.

■概要
- 加速度センサーを使った携帯端末向けの認証方法の提案
- 信用できない公共端末との接続を目的とする
- 知識のかわりに「所有している」という事実を利用する
- で,どうするかというと、端末を特定のジェスチャーに合わせて「振る」ことで認証する,

ただし
- 周囲のインフラに関していくつかの仮定を想定
- 合理的なセキュリティレベルも維持する

というシステムだそうだ

■ 導入と動機

「もしユーザが日和見的にlocal I/Oを付加することをあてにし始めたら,公共端末との接続のために安全でシームレスな認証が必要なるだろう.」というのが研究の動機(直訳すぎてよくわからない.そうなのか?).推測するに、携帯端末は全ての人が持つようになるが,データ自体はどこかに置いておき、必要に応じて公共にあるnetwork を利用してデータを取得するようになる.その時に携帯端末と公共端末の間で認証する必要がある(と、勝手に理解した).しかしPasswordや従来の認証方法はreplay攻撃の脆弱性がある.そこで携帯端末をユーザのポケットや財布,カバンに入れたままで認証でき、かつreplay攻撃を困難にする、簡単かつ正確に認証できる方法を開発した.その手順は次の通りである.

1. ユーザの携帯端末は公共端末にジェスチャーの手順を表示する
2. ユーザは公共端末に表示されたジェスチャーを行う(携帯端末を振る)
- この手法は2者間で共有する秘密情報はない
- ユーザは携帯端末をポケットやカバンから取り出す必要はない(振動させればいい)
- 必要要件は公共端末に携帯端末と接続するための機能が必要 (近距離無線など?)
3. Challengeとなるジェスチャの生成と、ジェスチャの正当性照合処理は携帯端末側が行う

物理的接触による認証よりも便利であろうと考える.その理由は、物理的接触による認証は全ての公共端末にある種のハードウェア実装を要求するからであり,本手法で必要とする要件よりも実現のハードルは高くなると考えるからである

我々の提案する手法はほかに2つの利点がある.

1. 本手法は知識ベースではなくチャレンジ&レスポンス方式なのでユーザに記憶や想起に関する負担を強いることがない
2. 本手法は近接性を利用するのではなく,所有していることを仮定しているので,機器を取り出したり,直接操作(誤解するな? キー操作という意味だろう...)する必要はない(本当?).

この研究では、Motorola iDEN i95clにハードウェアとソフトウェアの実装を付加してプロトタイプを実現した.

■ 関連研究
PasswordやPINといった知識ベースはreplay攻撃に弱い.それに対抗すべく秘密情報を増加させると逆に人間が扱えなくなる.

画像認証は推測攻撃と確率攻撃に弱い.それに対抗すべく秘密情報(画像)を増加させると,間違い(勘違い)が増加し,人間がうまく扱えなくなる

物理tokenによるChallenge & Responseはというと、時間がかかるし,間違いやすい
(Challengeをtokenに入力し,responseを生成,そのresponseを認証画面に入力するため)

近接性を利用した手法は,以下のような問題がある.

- いくつかのシステムはユニークな識別子を無差別発信(broadcast)している.その方法は、識別子を補足されてreplay攻撃に利用される可能性がある
- 認証可能な端末がそばに多数ある場合,ある特定の端末とだけ認証したいとしてもそれが困難

同期したジェスチャーによる方法
プリンターとPDAをボタンを同時に押すことで,その同期性を利用し,安全な通信路を確立するといった同期したジェスチャーによる方法がいくつか提案されている.が,これらは認証を目的としたものではない

■ 提案方法

- 認証に使用する符号は,一連の"振り"と"停止"によるジェスチャ動作
- ユーザが公共端末を使用する際に,その端末で生成されたジェスチャが公共端末に提示されるので、そのジェスチャーを真似ることで認証を行う.

手順は次の通り
1. ユーザは使用する携帯端末を公共端末のインタフェースを使用して選択(決定)する.
 方法は検知された携帯端末のリストが公共端末に表示されるので,
 そこから選択するか,または自分でなんらかの識別子を公共端末のインタフェースを通じて入力する

2. 携帯端末はChallengeジェスチャを生成し,公共端末に表示する
 公共端末は,端末に表示したジェスチャーをしろと命ずる

3. ユーザは指示されたジェスチャーを行う.
 表示されているジェスチャ指示のうち,正しく認証された部位はグレーに色が変化していく

4. 認証が成功したら,デバイスはユーザアクセスを許可する

提案手法は既存のChallenge & Response手法の一手法といえる.それは指定のデバイスにアクセスできることと,それをコントロールできることである.ユーザの携帯端末が Challengeを生成するので,偽装によるChallenge生成を防ぐことができ,ユーザが携帯端末を直接振ることによって,replay攻撃から保護される.

■ 実装

◎ ハードウェア
携帯電話 Motorola iDEN i95clとMemsic 2125GL thermal 2-axis加速度計を使用した.J2ME VMでは正確な高解像度のTimerを使うことができないので,micro-controllerを信号処理に使用した.このcontrollerは変調された信号を復号し,加速度値をRS-232経由でi95cl(携帯端末)に送った

◎ ソフトウェア
J2MEでジェスチャ認識処理を開発した.ジェスチャーは一連の「振り」と「停止」からなる.値は200msごとにサンプリングしており,それぞれの値は X,Y軸方向ともに20段階の加速度値をもつようになっている.これらを値を使って2次元ベクトルを生成する.これらは方向と強さを表すことになるが,それらを使って携帯端末を振っているか停止しているかを判断する.本システムでは,少なくとも3Hz以上の振動で0.8g以上の力がかかっていたら「振っている」と判断している.

■ エラー修正と限界

False PositiveとFalse Negativeの可能性があり,それらは互いに反比例する.つまりどちらかを軽減しようとすると,一方が増加することとなる.残念ながらこれらはTrade-Offである.

◎ False Positive
本人でないものを本人として認証してしまう場合を指す.可能性としては歩行時やそわそわした時にそれが認証ジェスチャと一致してしまうことである.その可能性検証の実験として,財布やカバンに入れてユーザに行動してもらいその時の動作ログを収集した.その時の結果が
図3であるが,認証時に必要な振動量を日常生活で発生させることはほとんどなかった.もしあったとしても,その周波数はユーザが意図的に生成した振動よりも低いため、誤動作することは少ないだろう.したがって,人間の行動がfalse positiveを引き起こすような振動を発生させる可能性はないと言える.

◎ False Negative
正規ユーザを拒絶することを指す.それ自体はセキュリティやプライバシ上の問題とはならない.なおこれに対する実証結果であるが、我々は実験を通じて4bitのジェスチャーならば,数分間訓練をすればほとんどfalse negativeが発生しないことがわかった.

■結論
- Challege-response型認証
- 処理はすべて携帯端末側で実施
- 公共端末に必要なのはnetwork接続性のみ
- ユーザにとって手順の理解は簡単
- Reasonableなレベルのセキュリティを確保
- 照合しているのは「端末の所有者が,その公共端末にアクセスしようとしている人か?」ということ.したがって盗難に対する脅威については対象外.しかしPasswordと組み合わせればその問題解決は可能

ここからは個人的意見だが、うーん、いまいち目的が理解できない.「なんで信用できない公共端末と認証を行わなければならないのか?」が理解できていない.勉強不足だ.ま、それを奥としても、これは所有者が携帯端末を持っていて、かつそれを「振る」ことができるということだけを認証しているので、これが使われるという認証場面はどんな場面なんだろうという疑問がある.またreasonableなセキュリティレベルを保持と言っているが... replay攻撃が防げるだけでreasonableなのか??? という疑問も.そうですね、これはinterfaceの研究だからsecurity的につっこんではいけないと言われればそうなのですが,これを security的につっこんでも大丈夫なようにrefineすることができれば、それはそれでひとつだよなとも考えてみたい.

ま、そういう大義(?)を抜きにすれば、簡単な認証としては面白いだろうなと思うし、今度発売されるV603SHを使えば、実装もできるかもという意味で面白そうではある.

Posted by z at 03:46 AM