July 21, 2006

暗証番号認証における覗き見対策の提案

暗証番号による認証における,覗き見攻撃(shoulder surfing)に対する対策を提案した論文

Volker Roth, Kai Richter and Rene Freidinger
A PIN-Entry Method Resilient Against Shoulder Surfing
In Proc. of 11th ACM Conference on Computer and Communication Security(CSS'04)
Oct, (2004)

ACM Digital Library:
http://portal.acm.org/citation.cfm?id=1030116
論文は,こちら(http://www.volkerroth.com/bib-by-type.html)から取得可能.

覗き見攻撃に対する対抗策として,cognitive trapdoor gameという手法を用いたPIN入力手法を提案している.この手法では,攻撃者がPINの入力手続きを完全に見ていたとしても,攻撃者がPINを得ることを困難にする.また,probabilistic cognitive trapdoor gameというアイデアを用いると,ビデオカメラ等でPIN入力行為をすべて記録(録画)していたとしても,PINの取得を困難にすることが可能になる.とも述べている.

■ 論文からの"かいつまみ"メモ

* 長い(桁数の多い),または複数のPINをユーザに記憶させるのは困難である.また,それ以上に,常に同じ情報を秘密として入力するというのが問題であろう.一方,PIN入力時に,ユーザになんらかの計算をさせ,その結果を入力させるという手法も存在するが,ユーザになんらかの負担をさせるという意味で妥当な対策とは思えない.これらの手法は,PIN入力時のエラーを増加させる恐れがあるとともに,ユーザを困惑させ,結果としてその技術に対する受容性を低下させることになる.また,さらに起こりうる結末としては,多くのユーザが自分のPINを忘れてしまい,アカウント管理機関に「PINをresetして下さい」という要求を増やすだけの結果になるであろう.

Interactive cognitive trapdoor gameとは,PINを知っていればゲームに容易に勝利できるが,知らなければ勝利するのは困難なゲームであり,PINに関する知識がtrapdoorとなっている.さらに,PINを知らない人が,そのゲームの操作を覗き見ていたとしても,その後,その人がゲームに勝利するのに必要な情報を得られないようになっている.この特性は,攻撃者の能力が,人間の認識能力と短期記憶能力により制限されることを想定したものであり,それゆえ"cognitive trapdoor game"と呼ばれる.

この論文では,Cognitive Trapdoor gameによる覗き見攻撃への対策手法として2つの手法が提案されている.

* Immediate Oracle Choices (IOC)
PIN入力用のテンキーの背景色が,黒と白の二色に配色され,それは毎回回答のたびにランダムに変更される.黒と白のキーの数はほぼ同数になるようになっている.
ユーザは,自身のPIN番号の背景色がどちらの色になっているかを回答する.
図1の例では,1桁の数字"3"を入力するのに4回の回答(白,黒,白,黒)が必要なことを示している.
apinentry.png

* Delayed Oracle Choices (DOC)
1桁のPINを入力するのに4回の背景色をその出現順に回答する.これ自身はIOCと同様である.ただしDelayed Oracle Choicesの場合は,ランダムに背景色が割り当てられた
テンキーが0.5秒づつ,4回分連続して画面に表示される.その4つの表示を見た後,テンキーの表示は消え,かわりに回答用のインタフェースが出現する.ユーザは,そのインタフェースを通じて,自身のPIN番号の背景色を4回分,回答する.
つまり,ユーザが回答する際には,回答からPINを推測するための表示がなくなっており,覗き見している攻撃者による正解の推測をより困難にしている.また,その都度,回答するのではなく,一度に回答を入力できるため利便性の向上も望める.

覗き見攻撃に対する対策は,理想的には,ゼロ知識証明を使えばいいはず.だが...
覗き見対策における必要要件は,正規ユーザの入力からPIN番号が特定できないこと.
しかし,IOC,DOCの双方ともに,ビデオカメラでPIN入力行為を撮影されていると,PIN番号は特定されてしまう.それを困難にする方法として確率的にPINを言い当てられる可能性を低くする手法として,"Probabilistic cognitive trapdoor game"を提案している

* Probabilistic cognitive trapdoor game
二者択一(白/黒)の回答を繰り返すことによって,ユーザは自身のPIN番号を入力していたが,その回答で該当する数値を1つだけではなく,複数になるようにする.すると,攻撃者は,ビデオでPIN入力を撮影していたとしても,複数個のPIN候補を得ることになる.よって,即座に該当ユーザのPIN情報が,第三者に漏洩することはなくなる.つまり攻撃者は,その複数個のPIN候補の中から,ランダムにPIN候補を入力して"なりすまし"を試みるので,確率的になりすましに失敗することになる.今回の例では,1桁の入力に対し,4回の入力があり,その度に2つの値が特定されるので,16個のPIN候補が攻撃者に渡ることになる.

Security評価の結果は良好.IOC, DOCともに,PINを正確に推測できた人はいなかった.しかし,1桁の入力対して4回の回答が必要となるため,認証時間は長くなる(通常のPIN入力の10倍),また認証時に必要となるユーザの負担も大きくなる.しかし,「安全面での改善が実現されるならば,多少のコストはかかってもよい」という意識がユーザにはあることが明確になったそうだ.

■ コメント
* 手数が増えることが問題だが,結論としては,ユーザに安全性を確信させることができれば,多少の手間やコストは問題としなくなる.と締めくくっている.これが現実世界で受け入れられるかは注目に値する点であると思う.記憶負担は増えないが,手数が4倍に増えるのは許容されるだろうか? それが許容されるならば,それなりに"ありかも"と思えなくもない.
しかし,現実の脅威がすでに「ビデオでPIN入力を撮影」というレベルになっていることを考えると,もう少し安全性も向上させたいところだ.なにかよい方法はないものだろうか?

Posted by z at July 21, 2006 03:06 AM