<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Understanding the OAuth vulnerability</title>
	<atom:link href="http://ianloic.com/2009/04/23/understanding-the-oauth-vulnerability/feed/" rel="self" type="application/rss+xml" />
	<link>http://ianloic.com/2009/04/23/understanding-the-oauth-vulnerability/</link>
	<description>from Ian McKellar</description>
	<lastBuildDate>Fri, 11 Nov 2011 12:15:31 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Ian McKellar</title>
		<link>http://ianloic.com/2009/04/23/understanding-the-oauth-vulnerability/comment-page-1/#comment-1472</link>
		<dc:creator>Ian McKellar</dc:creator>
		<pubDate>Thu, 23 Apr 2009 19:23:30 +0000</pubDate>
		<guid isPermaLink="false">http://ianloic.com/?p=115#comment-1472</guid>
		<description>@Rahim, thanks for your comments.

You can&#039;t rely on IP addresses to ensure identity. I&#039;m actually mostly likely to want to carry out this kind of attack against my coworkers who&#039;re sitting behind the same IP as me in my office right now :) You can&#039;t rely on sessions on the Consumer (ie: Twitten) side of things because Bob may never reach that page. As Eran said you can manipulate the callback URL as part of the attack to prevent Bob from ever seeing a genuine twitten.com page.

Until we come up with approaches to prevent this it&#039;s not about knowing which applications are safe because none of them really are.</description>
		<content:encoded><![CDATA[<p>@Rahim, thanks for your comments.</p>
<p>You can&#8217;t rely on IP addresses to ensure identity. I&#8217;m actually mostly likely to want to carry out this kind of attack against my coworkers who&#8217;re sitting behind the same IP as me in my office right now <img src='http://ianloic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  You can&#8217;t rely on sessions on the Consumer (ie: Twitten) side of things because Bob may never reach that page. As Eran said you can manipulate the callback URL as part of the attack to prevent Bob from ever seeing a genuine twitten.com page.</p>
<p>Until we come up with approaches to prevent this it&#8217;s not about knowing which applications are safe because none of them really are.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian McKellar</title>
		<link>http://ianloic.com/2009/04/23/understanding-the-oauth-vulnerability/comment-page-1/#comment-1471</link>
		<dc:creator>Ian McKellar</dc:creator>
		<pubDate>Thu, 23 Apr 2009 19:05:57 +0000</pubDate>
		<guid isPermaLink="false">http://ianloic.com/?p=115#comment-1471</guid>
		<description>@Eran, thanks for your feedback and thanks for your excellent article!</description>
		<content:encoded><![CDATA[<p>@Eran, thanks for your feedback and thanks for your excellent article!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rahim Snow</title>
		<link>http://ianloic.com/2009/04/23/understanding-the-oauth-vulnerability/comment-page-1/#comment-1470</link>
		<dc:creator>Rahim Snow</dc:creator>
		<pubDate>Thu, 23 Apr 2009 19:05:53 +0000</pubDate>
		<guid isPermaLink="false">http://ianloic.com/?p=115#comment-1470</guid>
		<description>Thank you for this real-world explanation.  The other explanations written up around this issue tend to try men&#039;s souls.

You guys have thought longer about this than I have but...

Alice&#039;s session and Bob&#039;s session should have some unique characteristics to them, would they not?  Couldn&#039;t some hashed value and an IP address be used to validate that the authorization URL to validate Alice is really for Alice?  Bob can&#039;t use it because we&#039;ve locked the authorization URL just for Alice.  Alice&#039;s session has unique values in there that we are going to check for.

As I&#039;m thinking about it, it seems you have to trust that Twitten is going to take these kinds of measures.  What about other parties that don&#039;t?  Could there be a list of approved parties that do?  Ultimately, you are right, it is all about trust.

I would use Twitten based on the fact that other people are using Twitten and have not reported problems.  I would not be using Twitten just because it uses OAuth or some we-won&#039;t-do-anything-shady-with-the-authorization-you-give-us certification.  It&#039;s their reputation.  I don&#039;t have the tools to peek under the hood to tell what they&#039;re doing and how they&#039;re doing it.

So we fall back to what are the social mechanisms that we have in place that render an aura of trust around a particular company or service? What are the protocols of accountability? What are the consequences should they breach that trust?

Hmm... it&#039;s just as much about social practice as it is about the technology.

Rahim</description>
		<content:encoded><![CDATA[<p>Thank you for this real-world explanation.  The other explanations written up around this issue tend to try men&#8217;s souls.</p>
<p>You guys have thought longer about this than I have but&#8230;</p>
<p>Alice&#8217;s session and Bob&#8217;s session should have some unique characteristics to them, would they not?  Couldn&#8217;t some hashed value and an IP address be used to validate that the authorization URL to validate Alice is really for Alice?  Bob can&#8217;t use it because we&#8217;ve locked the authorization URL just for Alice.  Alice&#8217;s session has unique values in there that we are going to check for.</p>
<p>As I&#8217;m thinking about it, it seems you have to trust that Twitten is going to take these kinds of measures.  What about other parties that don&#8217;t?  Could there be a list of approved parties that do?  Ultimately, you are right, it is all about trust.</p>
<p>I would use Twitten based on the fact that other people are using Twitten and have not reported problems.  I would not be using Twitten just because it uses OAuth or some we-won&#8217;t-do-anything-shady-with-the-authorization-you-give-us certification.  It&#8217;s their reputation.  I don&#8217;t have the tools to peek under the hood to tell what they&#8217;re doing and how they&#8217;re doing it.</p>
<p>So we fall back to what are the social mechanisms that we have in place that render an aura of trust around a particular company or service? What are the protocols of accountability? What are the consequences should they breach that trust?</p>
<p>Hmm&#8230; it&#8217;s just as much about social practice as it is about the technology.</p>
<p>Rahim</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian McKellar</title>
		<link>http://ianloic.com/2009/04/23/understanding-the-oauth-vulnerability/comment-page-1/#comment-1469</link>
		<dc:creator>Ian McKellar</dc:creator>
		<pubDate>Thu, 23 Apr 2009 19:04:56 +0000</pubDate>
		<guid isPermaLink="false">http://ianloic.com/?p=115#comment-1469</guid>
		<description>@Greg, One of the key features of OAuth is that it doesn&#039;t know about the accounts on the Consumer side - and that&#039;s very useful because often the Consumer won&#039;t have an account system of its own. In my example it doesn&#039;t make sense for a site that just allows you to post to Twitter to have its own accounts.

One defense is for the Consumer to make sure that the session in the callback is the same as the session when the token was requested, but I think there may be some ways around that. Ultimately OAuth is better than what came before, but in itself not the solution to all of our phishing problems.</description>
		<content:encoded><![CDATA[<p>@Greg, One of the key features of OAuth is that it doesn&#8217;t know about the accounts on the Consumer side &#8211; and that&#8217;s very useful because often the Consumer won&#8217;t have an account system of its own. In my example it doesn&#8217;t make sense for a site that just allows you to post to Twitter to have its own accounts.</p>
<p>One defense is for the Consumer to make sure that the session in the callback is the same as the session when the token was requested, but I think there may be some ways around that. Ultimately OAuth is better than what came before, but in itself not the solution to all of our phishing problems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Lavallee</title>
		<link>http://ianloic.com/2009/04/23/understanding-the-oauth-vulnerability/comment-page-1/#comment-1468</link>
		<dc:creator>Greg Lavallee</dc:creator>
		<pubDate>Thu, 23 Apr 2009 18:55:10 +0000</pubDate>
		<guid isPermaLink="false">http://ianloic.com/?p=115#comment-1468</guid>
		<description>Ideally, the authorization page would be able to show exactly who is being authorized on the account (e.g &quot;Twitten would like to authorize the username Alice to the Twitter account Bob), but, of course, I can&#039;t think of a way to protect that from spoofing.... maybe a hash that&#039;s decoded on the other end to show the username?

I suppose this too could be spoofed with an iframe of the just the Oauth button sized to hide the text, though then the URL wouldn&#039;t be twitten and could be another signal.

There&#039;s also the operation from the other side of the Oauth. After being fooled by Alic, I should be able to go to my account in Twitter and Remove the Twitten application that Alice has authorized as soon as I see that something up. Granted, she may have already done the damage.

At the end of the day, I think it boils down to just not trusting any link to an OAuth page that isn&#039;t coming off of the site that one wants to authorize.  I would hope that everyone learned the &quot;don&#039;t click OK on everything&quot; lesson by now, but I know it isn&#039;t so.</description>
		<content:encoded><![CDATA[<p>Ideally, the authorization page would be able to show exactly who is being authorized on the account (e.g &#8220;Twitten would like to authorize the username Alice to the Twitter account Bob), but, of course, I can&#8217;t think of a way to protect that from spoofing&#8230;. maybe a hash that&#8217;s decoded on the other end to show the username?</p>
<p>I suppose this too could be spoofed with an iframe of the just the Oauth button sized to hide the text, though then the URL wouldn&#8217;t be twitten and could be another signal.</p>
<p>There&#8217;s also the operation from the other side of the Oauth. After being fooled by Alic, I should be able to go to my account in Twitter and Remove the Twitten application that Alice has authorized as soon as I see that something up. Granted, she may have already done the damage.</p>
<p>At the end of the day, I think it boils down to just not trusting any link to an OAuth page that isn&#8217;t coming off of the site that one wants to authorize.  I would hope that everyone learned the &#8220;don&#8217;t click OK on everything&#8221; lesson by now, but I know it isn&#8217;t so.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eran Hammer-Lahav</title>
		<link>http://ianloic.com/2009/04/23/understanding-the-oauth-vulnerability/comment-page-1/#comment-1467</link>
		<dc:creator>Eran Hammer-Lahav</dc:creator>
		<pubDate>Thu, 23 Apr 2009 18:42:31 +0000</pubDate>
		<guid isPermaLink="false">http://ianloic.com/?p=115#comment-1467</guid>
		<description>In step 7, it is better to say:

7. Twitten requests Twitter to exchange the unauthorized token for an access token (associated with Bob’s Twitter account) and stores it in Alice’s session

Also, note that the attacker needs to play with callback in most cases to make it work.</description>
		<content:encoded><![CDATA[<p>In step 7, it is better to say:</p>
<p>7. Twitten requests Twitter to exchange the unauthorized token for an access token (associated with Bob’s Twitter account) and stores it in Alice’s session</p>
<p>Also, note that the attacker needs to play with callback in most cases to make it work.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

