この記事は、「OAuth の危険性」
http://asano-nagi.sblo.jp/article/39973329.htmlの続編である。
そこで、OAuth の危険性にどう対応するかということでまとめようと思うが、最終的に、当たり前の結果しか出てこないであろう事は、いたしかたない。
【(もしかしたら)Twitter サイドの問題】
さて、OAuth の危険性という側面で、Twitter サイドの設定に触れておこう。
実は、OAuth という仕組み全体の中では、OAuth の認証をする際に、「どの程度操作を許可するか」という設定や、「いつまで操作を許可するか」といった設定ができることになっている。
しかしながら、Twitter の設定では、有効期限は「無期限(ただし、ユーザーが「拒否」に設定するまで」。操作権限は、「読み込みのみ or 読み書き」という設定しかできない。
言い換えると、「ポストが可能なサービスなら、あらゆる操作が可能」ということである。
Twitter というサービスの持つ性格、「かなりお気楽にポスト」という事から考えると、せめて「ポストのみ」というレベルの制限はあった方が良いのではないか? というのが、よく言われることである。
(実際にはそうなってない)
【われわれは、かつてどうしてきただろうか?】
この問題を考える際、「ユニクロ行列キャンペーン」(たとえば、
http://mainichi.jp/select/biz/it/japan_internet_com/archive/2010/05/31/wmnews_20100531_8.html ) がひとつの参考となる。
ユニクロの仮想店舗にこれまた、仮装行列を作るというもので、行列をするために、Twitter の ID と パスワードが要求されたというものである。
この場合、いくつかの対応が可能だっただろう。
1)なんかおもしろそうだから、何も気にせず、ID と パスワードを入力する
2)ID と パスワードを入力するのは一般的には危険だけど、ユニクロだから信用して入力する
3)おもしろそうだけど、ID とパスワードの入力は断固拒否する(で、参加しない)
このうち、1)の対応はまずいと思う。しかし、2)は、「自己責任」として、ありだと思う。
他にも、「危険性」の記事で取り上げた、「メールソフトの作者は、(技術的には)すべてのメールにアクセスできる」という話にしても、一般的な危険性を知った上で、それでも、信用できるという判断で、サービスを使用してきたわけである。
なお、「自己責任」というが、たとえば、「煙草には肺がんリスクがある」と明示された上で、「それでも吸う」のは「自己責任」である。肺がんリスクそのものが伏せられていた場合、それで吸うのは自己責任とはいわない。
だから、たとえば、「タイムラインごちゃ混ぜポストBot」が、「あなたにOAuthの許可を求めています」というのが、実は、「タイムラインをごちゃ混ぜにした内容をポストする」ということの許可を求めているのではなく、「そのBotが、目的以外のことはしないだろうと信用して、あなたのアカウント操作を認めるか」ということであるというのを、まず、知って、その上で、あるサービスが有用だったり、おもしろそうだったりで、「承認する」という、自己責任のための情報は提供しなければならないと思う。
【では、どう対応するのか?】
まず、OAuht を承認したアプリケーションに対して、「拒否をする」方法を理解すべきである。
Web 上でログインし、設定 → 連携アプリ で該当するアプリケーションの「許可を取り消す」ことでこれは可能である。
問題が発生した場合、まずは、許可の取り消しが可能であるという状態にしておく必要はある。
※ちなみに、パスワードを変更しても、効果がないので注意。
その上で、そのサービスが信用できるか判断する、判断できなければ使わないと、そういう当たり前の対応しかないのだと思う。
ただ、考えてみれば、Twitterに限らず、各種存在しているサービスを、個人情報を入力した上で利用しているとすれば、それは、「信用できる」という判断があったのだと思う。
Twitter で、OAuth に対して承認を行う場合も、考え方は同じである。
ただ、「単に、(たとえば)タイムラインが読まれてポストされるだけ」ではないよと、そういう意識を持つことは必要なのである。
【本当の脅威は静かにやってくる】
以上述べたとおり、OAuth に対して、何も考えずに承認を与えるというのは危険である。
ただ、今回、通称、「なる四」など、OAuth 周辺の騒動から、OAuth はもしかしたら危険なのかもしれないという話がすこしばかり、一般的になったわけである。
しかし、これは、「なる四」だけが危ないわけでも、OAuth だけが危ないわけでもない。
むしろ、本当に悪意を持ったなら、こんなに大騒ぎをして、「悪巧み」をぶちこわすはずはないと、そういう点は意識すべきである。
そして、数ある(Twitter ではない)Web サービスも、「技術的には」やはり危ないのである。
それを含めて、「どう対応するか」というのを、一度考えるべき時ではあると思う。
【おまけ・ソーシャルクラッキングを考える】
この記事を書いているうちに、
「なるほど4時じゃねーの解除ツール」 ← 嘘です
http://spreadsheets.google.com/viewform?formkey=dDJQbVZlZVE0T3BXelh1S004ZWZqZkE6MQなるものを見つけることができた。
(この記事を書いている 2010年8月5日の段階では、表示させるだけなら実害はない)
これを見ると、「なるほど4時じゃねーの解除ツール」で、解除をするために、Twitter の ID とパスワードを入力せよというフォームになっている。
この作者は、少なくとも、「凶悪」な方ではなく、「それやっちゃいかんだろう」と、ご自身で指摘してくれる構造になっているわけだが(あ、それでも、最後まで突っ走ると、入力された ID と パスワードを、保存してしまうらしい・作者談)いきなり、このようなフォームを見つけて、「まずい」と、そもそも入力せずに無視することができるだろうか?
また、ここに書いたこと(作者が、「凶悪」ではないとか)も、実際に試してみて(オイ)そこに書かれた文字を信用して書いているだけで、作者が凶悪でないふりをして、実際には、入力された情報をいきなり保存している可能性もある。
また、フォームの作者らしい方のIDも書かれているが、本当に、その方が作者だという保証もない。
と、ようするに、非常に危険(かもしれない)なサイトなのであるが、これは、一瞬で「危険」だと見破らなければならないと、そういうわけである。
こういう、人間の特性を悪用したクラッキングは、「ソーシャルクラッキング」と呼ばれている。
たとえば、「システム管理課の××です。アカウント管理サーバーがクラッシュしたので、確認のため、パスワードを教えてください」とか、「××銀行の○○です。あなたの口座に入金があったのですが、機械のトラブルで入金ができていません。確認のために暗証番号を教えてください」とか。
冒頭の例に似たものには、「パスワード評価サイト」を見かけたことがある。
「パスワードの安全性を判定します。パスワードを入力してください」
その結果は……こんな得体の知れないサイトでパスワードを入力すると悪用されますよ。
いずれにしても、情報の入力には気をつけましょう……と、そういうことである。