OAuthについて考えた
tk4168: 見てる:Skipping the PIN based workflow for Desktop clients using OAuth - Twitter Development Talk | Google グループ http://j.mp/6sZfh1 [http://twitter.com/tk4168/status/7807674346]
tk4168: PINはwebベモードのOAuthでは要らないのか。 [http://twitter.com/tk4168/status/7807763666]
tk4168: しかしPIN取得の自動化は無理なのかな [http://twitter.com/tk4168/status/7807779306]
tk4168: シンプルなC#で書かれたクライアント:twarp - Project Hosting on Google Code http://code.google.com/p/twarp/ [http://twitter.com/tk4168/status/7807931309]
tk4168: このソースでもみるか [http://twitter.com/tk4168/status/7807937635]
tk4168: やはりOAuthを使うデスクトップクライアントでは、ユーザによるwebからのOAuth許可とその際に取得できるPINのクライアントへの手動コピーが必須のようだ。このあたり混乱しそうだ。 [http://twitter.com/tk4168/status/7808280104]
tk4168: 確かにクライアントが認証画面出さずに勝手にOAuth許可取ってしまったらそれはそれで問題だしな。しかし「ユーザによる許可」とプログラムによる「機械的な許可」をどうやって区別するんだろう?PerlのWWW::Mechanizeみたいなので「勝手に許可」とれちゃいそうな気がするが。 [http://twitter.com/tk4168/status/7808414884]
tk4168: 多分だけど、技術的にはデスクトップクライアントが(TwitterのIDとパスワードがあれば)勝手にOAuth許可を与えることは可能だと思う。既存の実装では認証ページにリダイレクトしてPINを取得するとなってるけど、それは実装が楽だからであって自動化が不可能という訳ではないのかも。 [http://twitter.com/tk4168/status/7808801228]
shouta65: @tk4168 それは悪用されたらいけないと思うな… やっぱりユーザーがボタンを押した方が安全じゃない? [http://twitter.com/shouta65/status/7808863343]
tk4168: @shouta65 うん。もちろん善良なるクライアントはそうあるべきだとは思う(ユーザに余計な手間を掛けさせるなとは思うがセキュリティ上仕方ない)。問題は「悪意ありまくりなクライアント」がこっそり認証取ってしまうことが出来ると(かもしれない)いう点であり、もしそうなら怖いなと。 [http://twitter.com/tk4168/status/7808987324]
shouta65: @tk4168 そうですね… [http://twitter.com/shouta65/status/7809035150]
tk4168: 他にもこんな問題もあるらしいし:デスクトップTwitterクライアントにおけるOAuth問題 http://blogs.wankuma.com/mutaguchi/archive/2009/12/03/183506.aspx [http://twitter.com/tk4168/status/7809052528]
tk4168: OAuthって手間かかる割にそれほどセキュアじゃないね。webサービスにならいいんだけどデスクトップアプリではとたんに穴がぼろぼろと。主目的がwebサービスだから仕方ないのか? [http://twitter.com/tk4168/status/7809178006]
tk4168: しばらく考えた。そもそも「IDとPWがあれば」という前提が間違ってるな。クライアントにそれを渡すということは全権を委任すると同義。勝手にOAuth許可されても仕方ないね。IDもPWも要らなくなるのがOAuth対応のメリットなんだし。 [http://twitter.com/tk4168/status/7809680427]