twitter APIを使用している間、私はoauth_signature
を基本的には(リクエストボディ+要求パラメータ+ nonces/timestamps + a consumer_secret
)のハッシュです。 consumer_secret
は、要求を送信しているアプリケーションにのみ知られています。oauth_signatureがSSLホイールを改革していませんか?
Twitterの場合:
- すべての通信はSSLを介して行われる必要があります。
- twitterが承認済みの各アプリケーションに
consumer_secret
を送信します。
oauth_signature
の主な用途はMITMs(すなわち無おっぱい(輸送中の改ざんを):)防ぐためですので、この特定のユースケースは、相互SSL経由
- を解決できるように私には思えますTwitterは、
consumer_secret
を発行する代わりに、各アプリケーションにSSL証明書を発行することができます。
クライアントssl証明書のこのアイデアは、1990年代インターネットアーケーナのように見えるかもしれませんが、主にクライアント証明書の信頼チェーンを検証することに問題があったために成功しませんでした。この問題は、twitterが証明書の唯一の発行者と検証者になるため、ここでは発生しません。欠点は、最初のアプリケーション/クライアントSSL証明書を生成するためにTwitterに代わってはるかに複雑な作業になりますが、REST APIの単純さにあります。これは、クライアントが誰であるかを保証することができます。
この場合、twitterは単なる例であることに注意してください。 AFAIKでは、他のほとんどのoauth実装者も同様の戦略を使用しています。ここでのポイントは、すでにSSLを要求している大規模OAuth実装者に適用されます。
私はここで何が欠けていますか?インターネットの慣性?
質問がありません。私は相互SSL証明書がOAuthが解決する問題を解決すると言っているわけではありません。 'oauth_signature'メカニズムは、相互SSL証明書がすでに提供している双方向認証を基本的に改革しているということです。 – Manav
しかし、相互SSL証明書は問題の半分(アプリケーショントークン側)のみを解決し、消費者トークン側は何もしません。 OAuth 2.0を見ると、その方向に動いています。 –