Login With Amazonを使うと、あなたのサイトのユーザーがアカウントハイジャックされる。

Amazon が、Login with Amazon というAPIおよびそれに付随する JS / iOS / Android SDKs を出してきました。

以下の記事にあるように、OAuth 2.0 ベースで認証連携を行う仕組みです。

Amazonアカウントでアプリやサイトにログイン、「Login with Amazon」を提供開始:ITpro

しかし、この Login with Amazon、まさに僕が以前以下の記事で紹介した「Facebook ID でログイン」の間違った実装方法を、公式ドキュメントで推奨してしまっています。

デジタル・アイデンティティ技術最新動向(2):RFCとなった「OAuth 2.0」――その要点は? (2/2) - @IT

この Amazon のドキュメントを読んで (or 「Facebook ID でログイン」を実装した経験を元に) Login with Amazon を自身の Web Site や iOS / Android アプリに導入すると、まず確実にあなたのサイト / アプリのアカウントがハイジャックされるような脆弱性を生むことになります。

@IT の記事からのリンクは OAuth.jp の Posterous -> Tumblr 移行に伴いリンク切れになってしまっているので、ここにも OAuth 2.0 Implicit Flow を認証連携に使うことの危険性を説明するエントリーをリンクしておきます。

“なんちゃら iOS SDK” でありそうな被害例

Facebook の場合は、上の記事にあるような response_type=code+token を iOS / Android アプリでは使えないので、以下の記事末尾にあるような対処法も用意されています。

「OAuth 2.0 (Implicit Flow) でログイン」の被害例

が、ざっと Login with Amazon のドキュメントを読んだ限り、そのような対処法が一切用意されていない。

これはもう、Login with Amazon を導入した時点で、Amazon 側の対応無しではあなたのサイト / サービスの脆弱性を止めることができないということです。

既に一部有識者より Amazon 側に連絡が行っているようなので、さすがにこのまま Amazon が何の対応も取らないということは考えにくいですが、Amazon が何らかのアップデートを出してくるまで、Login with Amazon を使ってはいけません。

ご注意を。

[追記 2013.06.04]

Login with Amazon の問題点、解決されました。詳しくは以下の記事を。

Login with Amazon、もう使っても大丈夫!