読者です 読者をやめる 読者になる 読者になる

Twitter公式クライアントのコンシューマキーが流出したようです (追記あり) (2013/02/28追記あり)

2013/02/28追記

現在このエントリで取り消し線が引いてある部分が、公式クライアントではないクライアントのコンシューマーキーが流出したことで現実のものとなっています。( http://uinyan.com/twitter_oauth_vulnerability/ 等参照)
以下のクライアントは連携アプリを取り消し、別のアプリもしくは公式web(ブラウザ)を使いましょう

  • TweetDeck
  • Tweetbot for iOS
  • HootSuite
  • iOSのデフォルトアプリ
  • ShootingStar
  • ShootingStar Pro

以下はオリジナルの記事です

Twitter公式クライアントのコンシューマキーが流出したと話題になっています。


2012-10-22 追記: 実験の結果oob(暗証番号入力)しか許可されていないことが分かったため、以下の内容は心配しなくてもよさそうです。お騒がせしました


「それがどうしたの?」と。以下のような問題があります。

公式クライアントにアクセス権を与えている場合(「設定」の「連携アプリ」に公式クライアントが載っている場合)、Twitterにログインした状態で悪意のあるサイトを訪れると、そのサイトが公式クライアントと同じアクセス権を手に入れることができてしまいます。


(以下、OAuthはTwitter以外でも使われていますが、話を簡単にするためにTwitterでの話として進めます)

復習:OAuthとは(Twitterの場合)

OAuthとは、連携アプリ(クライアントやウェブサービス)がTwitterへアクセス(ツイートやDMなど)するための合鍵を発行する仕組みです。
Twitterのサイト上でパスワード認証(ログイン)を行い、「許可する」ボタンを押すと、そのアプリとアカウントの組み合わせだけで使える合鍵が発行されます。
発行された合鍵は、「設定」の「連携アプリ」で「許可の取り消し」を行うまで有効となります。



ただし、この合鍵は、アプリの作者だけが知っている合言葉(コンシューマーキー)がなければ機能しません。

何が問題?

Twitterでは、合鍵が有効になっている場合、同じアプリからの「合鍵を再発行してよ」というリクエストに、確認画面なしで合鍵を再発行するモードが存在します。
そして、今回、アプリの作者だけが知っている合言葉(コンシューマーキー)が流出してしまったので、
悪意のある第三者が、アプリの作者になりすまして合鍵の再発行を依頼し、合鍵を手に入れてしまえる可能性があります。


という心配がありましたが、実験の結果oob(暗証番号入力)しか許可されていないことが分かったため、悪意のあるサイトのページ自動転送で合鍵が渡る可能性はないです。(自分で悪意のあるサイトに暗証番号を入力した場合は別で、乗っ取りされてしまいます)


悪意のある第三者が合鍵を手に入れてしまうと、あなたの知らないうちにツイートされたり、DMを読まれたりします。

合言葉(コンシューマーキー)は変更可能だが……

こういう合言葉が流出してしまったときのために、合言葉は変更できるようになっています。
しかし、今回はスマートフォンアプリですので、スマートフォンアプリの中に埋め込んでいる合言葉を変更する必要があり、アプリマーケットの再審査が必要となります。
また、旧バージョンが使用できなくなるので、混乱も起きるでしょう……

変更されるまでの対策

  1. 「設定」の「連携アプリ」に公式クライアントがある場合は「許可の取り消し」を行う
  2. ブラウザ経由でのアクセス、もしくは合言葉(コンシューマーキー)が流出していない、悪意のない作者が作った別のクライアントを使う


以上、明日以降だれかが分かりやすい解説を書いてくださることでしょう?

詳しい解説がありました → 特定のクライアントを許可している Twitter ユーザーの Token Credentials を入手する攻撃 - ひだまりソケットは壊れない