twitter OAuth利用時の文言調査+α

twitter周りでひとつネタふられました。
変なテンションなのでこのエントリは長編になります。

Mobster WorldのスパムDMについて - tzmtkのブログ

■ 宿題

「This application plans to use Twitter for logging you in in the future.」だけ異なるのは、
Twitter側からuseridを受け取っているか、いないかだけの違いによってTwitter側で文言をon/offさせているのだと思います。
(おしえてid:ritou

Mobster WorldのスパムDMについて - tzmtkのブログ

■ しくみ

全てはConsumerアプリケーションの登録画面にあります。
とりあえずこんな感じのやつですね。

ポイントは、赤丸ついてるとこのさらに下の部分。

Use Twitter for login: □ Yes, use Twitter for login
Does your application intend to use Twitter for authentication?」

ユーザー認証にtwitterを使いますか?って聞かれてます。

■ 1. チェックボックスをONにしたときの表示


ユーザーが認可画面をおとずれると、こうなります。

「This application plans to use Twitter for logging you in in the future.」って表示されます。

■ 2. チェックボックスをOFFにしたときの表示

ユーザーが認可画面をおとずれると、こうなります。

とりあえず表示の違いはここですねと。

■ わかんなかったこと

文言以外のこのチェックボックスの意味があった気がしたけど。。。わかんなくなりました。
OAuthのRequest Tokenが認可された後、前は認可されたRequest Tokenとともにユーザー識別子も返していたような気がしてたんですが、今確認したら認可済のRequest Tokenだけでした。。。

最近触ってなかったのでよくわかんないですが、Security問題のあたりで何か仕様変わったのかも?知ってる人いたら教えてください。
文言だけ?ってそんなに意味ないのでは、、、

■ 気づいたこと

http://twitter.com/account/connectionsで「許可を取り消す」を押すと。。。

『許可を取り消すことを元にする』に変わりました。
この日本語のクオリティは。。。

■ 元ネタのPOSTに対して

例のDMが届いてた。Twitterの OAuth同意画面の文言はTwitter側が固定の文言を決めてるはずなので、Mobster側がわざと分かりづらい文言を巧妙に入れているわけではないはず。そもそもConsumerが同意画面に表示する文言をカスタマイズできたら、不正やりたい放題だし

Mobster WorldのスパムDMについて - tzmtkのブログ

そのとおり、文言はtwitterの仕様ですね。
Mobster側で変えられることはアプリのタイトルあたりだけど、とくに普通のConsumerと登録と変わらないように見えます。
ユーザーはSP側だけじゃなくConsumer側の説明なりなんなりで使うかどうか判断しないとですね。

Twitter側がAPI単位で Scopeを分けるなりをして、利用同意した場合Twitter上でユーザーのどんな行為をConsumerが代行できてしまうのかをリスクとして同意画面上に明示するべきだとおもう。(そんなのめんどくさいからTwitterはやらなそうだけど)

Mobster WorldのスパムDMについて - tzmtkのブログ

細かいこと気にしないで持ってる機能をほぼすべてAPIで提供してるってのがtwitterのいいところですよね。

そもそもすべてのfollowersに一括でDMを送れてしまうような機能を、一般公開してるAPIでできるようにしちゃってることも問題な気がするので、Twitter側で単にAPIの機能を限定するという対処もありかと。もしくは機能自体でなくそれを使えるConsumerを制限するか。

Mobster WorldのスパムDMについて - tzmtkのブログ

あれ?これって一括で送ってるわけじゃなくて、実際はfollower一人ひとりにこつこつ送ってるんじゃないですか?
機能単体で見て「ふぉろわーにしか送れなくて他の人には見えないリプライ」をどう考えるかですか。

Parameters:
* user: Required. The ID or screen name of the recipient user. In order to support numeric screen names we will accept either of the following two parameters in place of the user parameter:
o screen_name: screen name of the recipient user
o user_id: user id of the recipient user
* text: Required. The text of your direct message. Be sure to URL encode as necessary, and keep it under 140 characters.

http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-direct_messages%C2%A0new

これは以前からBasic認証で提供してたわけなので、twitter側としてはおkという認識なんでしょうね。

■ (おまけ)まちゅさんのエントリに対するはてブコメントを眺めて

いろんなFBがあっていいですね。
自分の意見をかぶせてみます。

OAuth を悪用。http://www.playmobsterworld.com/account/OAuth認証ページ→許可するとDM送信。OAuthでDMを送れるように思えない、意味を理解せずクリックする人が多い、TwitterのOAuthページのUIが悪い。

はてなブックマーク - OAuthを悪用したTwitter DMスパムが登場 - まちゅダイアリー(2009-08-01)

要するになんだりかんだりクリックするなよっていう話

はてなブックマーク - OAuthを悪用したTwitter DMスパムが登場 - まちゅダイアリー(2009-08-01)

良く分からんサービス相手に安易にAllowしちゃダメよ、と。

はてなブックマーク - OAuthを悪用したTwitter DMスパムが登場 - まちゅダイアリー(2009-08-01)

Basic認証とOAuthだと、ID/PWを入力するぶんだけ圧倒的にBasic認証のほうがだめだよねって思っていたんですが、今回の件で少し考えましたね。

  • Basic認証だとID/PW入れた瞬間全て終わりだけど、単純にID/PWいれるのめんどくせーって言ってドロップする人もいるかも
  • OAuthの場合はID/PW入れなくても今回のようなほぼ全ての機能の利用を認可してしまうので、よくわからずにクリックしちゃうかも

でも、やっぱりBasic認証はやっぱりやめたほうがいいですね。
Yahoo! JAPANのログイン履歴みたいなのがないと盗まれたあと何されてるかわかんないです。
今回のDM送信なんて特にそうですね。

OAuth の要求ボタンをゲームプレイボタンに偽装。クリックするとTwitter にリダイレクトされるが、権限付与許可文面が不親切でユーザが許可してしまいDM 送信権限を与えた。OAuth を使う際にはユーザへの説明をきちんとする

はてなブックマーク - OAuthを悪用したTwitter DMスパムが登場 - まちゅダイアリー(2009-08-01)

OAuth利用時の説明はSPはもちろんしっかりすべきですが、限界があります。
繰り返しになるけど、ユーザーはConsumerとSPの両方の状況をみて判断しなければいけませんね。

ついったーのOAuthでDMが送信可能なのは、もうちょっと細分化して許可させてもいいんじゃなかろうか

はてなブックマーク - OAuthを悪用したTwitter DMスパムが登場 - まちゅダイアリー(2009-08-01)

再分化には同意です。
もし今回のDMの件で健全なConsumerまで「DM送信もやろうとおもえばできるんだよね。怖いから使わない」みたいになったらもったいないです。

うちには来てないけど、OAuthだといふことで許容度が上るのか

はてなブックマーク - OAuthを悪用したTwitter DMスパムが登場 - まちゅダイアリー(2009-08-01)

twitterのDMは「ふぉろわーからの個人的なつぶやき」なので、安心感という点では高いですね。
データの内容を見ると、GoogleのContactList APIのほうが、メアドを渡すのでよっぽど怖いんですけどね。

なるほど。これはいくら文言を頑張って書いても一定数は引っかかるね。
認証時にID、passを求めることで減らすことはできるけど。

はてなブックマーク - OAuthを悪用したTwitter DMスパムが登場 - まちゅダイアリー(2009-08-01)

認証時にID/PWを入れさせるのはSP側の本人確認の都合。
Yahoo!のようにセキュリティポリシーのためにPWをよくいれさせるのは、フィッシングのリスクを増やすことにもつながるので慎重に考える必要あり。
あんまりID/PW入れないと忘れますがw
減らすとはID/PW入力のUX低下を使って被害者を減らすという意味なのでしょうか?

"OAuth はまだ認知度が低い"そもそもOAuthという文字列も画面上に無いので知っていてもレベルが高い!
機能のリストと、それのうちどれを許すかを事前に見せるべき。あと、OAuth許可/拒否/取り消しの件数とかも。

はてなブックマーク - OAuthを悪用したTwitter DMスパムが登場 - まちゅダイアリー(2009-08-01)

普通のユーザーにOAuthを教えようとしても無理だと思います。
機能のリストとかがんばって出そうとすると画面からあふれますね・・・

以上になります。