July 02, 2006

In Search of Usable Security: Five Lessons from the Field

In Search of Usable Security: Five Lessons from the Field
IEEE Security & Privacy, September/October 2004,
pp.19--24,
IEEE CS Digital Library

最近は、無線LANに安全に接続するためにかかる時間が短くなってきており、なおかつ、その利便性やユーザの満足度も高くなりつつある. こういった実世界の例から、安全で使いやすいシステム設計について、5つの一般的な教訓を明らかにしてみよう.

◆ Usable PKI: Making the impossible easy

無線LANの安全性を高めるためにPKIを導入しようとした.PKIは,その仕組みの複雑さゆえに,期待される程普及していない.しかし,ここは研究所であるし,その理解や導入を支援するスタッフも確保して導入に望めば,問題なく導入できるものと思っていた.が,その予測は間違っていた.

万全の体制だと思っていたのに,実際にPh.Dや情報系の研究者に作業を依頼したら,作業完了までに140分もかかった.またWebやGUIによるインタフェースが用意されているにもかかわらず,そこには38段階の作業が必要になっており,そのそれぞれの作業においてユーザは,なんらかの決定や作業が必要であった.また,被験者のコメントから,このPKIの導入はWireless networkの安全性を高めるかもしれないが,それと同時に,ユーザが自身の計算機を維持管理し,設定する自由を減らすことにもなることが明らかになった.驚くべき結果である

1. PKIの導入は簡単そうに見えるが,実際には難しいということ
2. 文書と教育により,その導入を支援しようとしたが,それは苦労ばかりであるとともに,現実的な方法ではないということ.


◆ User friendly PKI deployment

簡単,単純そして直感的にPKIを使ったwireless networkへの接続方法はないものだろうか? まずsetup方法の大部分を自動化した.赤外線通信が可能なenrollment stationを用意し,laptopとaccess pointが接続するのに必要な情報を,そのenrollment stationからlaptopに配布するようにした.

つまり
1. 接続に必要な鍵情報を,赤外線通信でユーザのlaptopに配布するようにした.
2. 直感的な信用モデルを作った.enrollment stationは鍵のついた部屋の中にあり,その部屋に入れる人だけが,そのnetworkを使用できる.というモデルである.言わばデジタルセキュリティと物理セキュリティの連携である.

これにより,4段階の作業となり,その設定作業に必要な時間も99秒になった.


◆ Five lessons

この実験経験から得た経験を示す
(余談: が,「利便性を第一とした...」というフレーズが気になる,利便性を優先するという方針が明確なら,それはそれ.だと思うのだが..)


1. 利便性をSecurityシステムに後付けすることはできない

安全性は後付けすることが出来ない.ということをSecurity関係者は言い続けているが,利便性に関してもそれは言える事であり,特にSecurity システムにおける利便性はそうである.開発者は,security,usability,そしてそれらの相互作用について,システム設計の初期の段階で配慮しなければならない.例えば,ユーザをパスワードで困らせないシステムとする.という決定は,アプリケーションのプロトコルやデータの保護方法に影響するからである.
直感的な操作方法は,使い勝手だけでなく,強固なセキュリティも実現可能にする.GUIを作り,ユーザに必要な操作が出来るよう導けばよい.という手法はまったく役に立たなかった.使い勝手の良いセキュリティシステムを構築するためには,今までとは全く異なる対話手法が必要になるであろう.


2. ツールは解決手段ではない.

SSLやIPSecといった技術は,ある特定の領域の問題に対して,安全性を提供するだろう.
しかし,それらはユーザが抱える問題を解決することはない.これらはあくまでLEGOブロックのブロックであり,問題はそれらのブロックを使って,どうやって現状の問題を改善するかなのである.
それらのブロックを使ったとしても,それによってできたものが,頑丈な家だとは限らない.それらを使って,不安定な(もろい)小屋を作ることもできるのだ.

例からもわかる通り,現在,利用可能な技術はあくまで「部品」でしかない.現状では,アプリケーションレベルで必要となる部品(Building Block)が不十分なのである.
なのでアプリケーション開発者が,ユーザの抱えている問題を解決するのに使用できるような高レベルでのbuilding blockを模索していく必要がある.


3. 上位(アプリケーション)レイヤーに気を配れ

セキュリティはNetwork stackやOSの低レベルの機構のみを扱うものではない.上位レベルでセキュリティ機構を作りこめば,それは暗黙的,すなわち直感的になり,ユーザにとっても馴染やすいものになる.

一般に,セキュリティの仕組みはユーザがしたいことを妨げるような仕組みになっていてはいけない.そうなっていると,ユーザはセキュリティ機能をOffにしてしまうからである.

アプリケーション開発者は,可能ならば,セキュリティ処理を暗黙のうちに処理できるよう設計すべきであろう.ユーザはしたいことだけに注力し,システムが,その利用方法の中に暗示的にキュリティ処理を組み込んでおけば,ユーザがセキュリティ機能自体を意識しなくても,セキュリティ機能を使用できるようになる.
これからわかることは,今やセキュリティは,アプリケーション開発者の責任になりつつあるということである.もちろん,アプリケーション開発者に新しい暗号アルゴリズムを考えろといっているわけではない.たくさんある部品を使用し,ユーザが抱えている問題を解決せよということである.


4. お客を満足させ続けろ

ユーザの要求を理解しろ,ユーザの要求より,セキュリティの方が大事ということはありえない.
評価をし続け,そしてシステムをrefineし続けることが大切である.End userとは,あなたが知っているようなユーザばかりではない.常にユーザの声を聞くような仕組みを用意し,再設計,実装,評価実験を続けることが,新たなシステムや仕組みを生むことになる.


5. 部分的に考え,部分的に行え (Think locally, act locally)

アプリケーションセキュリティには一般普遍的な解決法があるように見えるが,そんなものは現実にはない.大抵のセキュリティシステムは,実現が困難な,また一般ユーザには理解が難しい「前提条件」が存在するのである.
そういった前提条件を満たすのは難しいことが多い,なので,大局的に考えず,局所的にそういう技術の適用を考えるべきではないだろうか?
局所的に考えられたシステムであれば,配置も簡単になる.システム管理者が大がかりな枠組を整え,管理する必要もなくなる.またそれにより,システムの自動設定も可能になるであろう.

情報セキュリティにおける利便性の問題は,ようやく取り上げられるようになった.情報セキュリティは,しばしば利便性の欠如が理由により,失敗に終わっている.それは,その行為によって得られるセキュリティ機能に対する誤解であったり,利便性の問題を解決するために,ユーザが意図的にセキュリティ機能を無効にしてしまうためである.
この状況を改善するためには,システムを安全かつ便利なシステムとして設計する必要がある.

Posted by z at July 2, 2006 09:34 AM