[security] Phishing issues with return_to url and realm

Dick Hardt dick at sxip.com
Fri Feb 9 00:37:28 UTC 2007


Hi Allen

I just realized that although you can use either a POST or a GET with  
OpenID 2.0, our libraries use a POST. Would I be correct that the  
redirect services would NOT redirect a POST? If so, then an OP can  
protect against the attack by using POST instead of GET.

-- Dick

On 7-Feb-07, at 10:20 PM, Allen Tom wrote:

> Hi Johnny,
>
> Having the OP follow all the redirects returned by the return_to  
> all the way to the end, and presenting the final url to the user  
> might seem to be an improvement, however, the evil RP could just be  
> one of many intermediate servers, which would enable all sorts of  
> interesting man in the middle type attacks.
>
> so for instance:
>
> return_to=go.com/redirect?1,2,http://evilsite.com/ 
> redirect?....good.isp.com
>
> If the OP just followed redirects to the end of return_to url, and  
> then matched it up with the realm, the evil RP could claim to be  
> absolutely anything that it wants to be, since the evil RP could  
> just be the redirect server, and the claimed site would just be at  
> the end.
>
> evilsite.com would be able grab a positive Auth Response and play  
> it to good.isp.com in a Stateless type request. EvilSite.com could  
> even behave nicely when the OP is probing it (perhaps by  
> recognizing the OP's IP address or User Agent).
>
> At any rate, when serving an Auth Request, the OP only knows the  
> return_to url,  so there should be a way in the protocol for the OP  
> to somehow verify the return_to url. Instead of performing the  
> verification on every request, the OP and the RP could register  
> themselves and do whatever verification is required during the  
> association process.
>
> One possibility would be for the RP to pass its return_to url when  
> making the Association Request, and the OP can probe it before  
> returning the assoc_handle and secret. It might be sufficient for  
> the OP to just bind that assoc_handle to the return_to url, so one  
> possible implementation would be for the OP to encrypt details  
> about the association into the assoc_handle, so that the given  
> assoc_handle can only be used for that return_to. However, it might  
> be necessary for the OP to verify that the RP owning the return_to  
> URL actually initiated the Association  request, so perhaps an  
> additional round trip would be needed after the association is  
> initiated.
>
> Allen
>
>
>
> Johnny Bufu wrote:
>>
>> Another simpler (though maybe not as solid) solution would be for  
>> the OP to perform a fetch on the return_to URL and present the  
>> final URL - after following the redirects - in the message to the  
>> user. So the user will actually see that he's about to go to  
>> http://www.jyte.com, for:
>>
>>     return_to=http://www.aol.com/ams/clickThruRedirect.adp? 
>> 1,2,http://www.jyte.com
>>
>> If the rogue RP further tries to hide itself by setting  
>> realm=*.aol.com, the realm verification performed by the OP will  
>> fail (again, using the return_to URL after following redirects).
>>
>>
>> Johnny
>>
>>
>>
>
>




More information about the security mailing list