<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<meta content="text/html; charset=us-ascii">
</head>
<body style="word-wrap:break-word; color:rgb(0,0,0); font-size:14px; font-family:Calibri,sans-serif">
<div>
<div style="font-family:Calibri,sans-serif; font-size:11pt">The other thing that can't be faked by an attacker is the OP's keys. If the ID token isn't signed by the right keys, then the RP knows that there's a problem.  This points to a possible solution involving
 authenticating the jwks_uri value.<br>
<br>
Remember also that the Implicit flows don't use a token endpoint. So solutions that involve authenticating the token endpoint won't work for deployments using only Implicit flows.<br>
<br>
John, Justin, and Nov, when you send in your IIW session notes, can you also please send them here?<br>
<br>
Thanks,<br>
-- Mike</div>
</div>
<div dir="ltr">
<hr>
<span style="font-family:Calibri,sans-serif; font-size:11pt; font-weight:bold">From:
</span><span style="font-family:Calibri,sans-serif; font-size:11pt"><a href="mailto:Sascha.Preibisch@ca.com">Preibisch, Sascha H</a></span><br>
<span style="font-family:Calibri,sans-serif; font-size:11pt; font-weight:bold">Sent:
</span><span style="font-family:Calibri,sans-serif; font-size:11pt">10/30/2015 1:00 PM</span><br>
<span style="font-family:Calibri,sans-serif; font-size:11pt; font-weight:bold">To:
</span><span style="font-family:Calibri,sans-serif; font-size:11pt"><a href="mailto:openid-specs-ab@lists.openid.net">openid-specs-ab@lists.openid.net</a></span><br>
<span style="font-family:Calibri,sans-serif; font-size:11pt; font-weight:bold">Subject:
</span><span style="font-family:Calibri,sans-serif; font-size:11pt">[Openid-specs-ab] Securing token requests when discovery service is used</span><br>
<br>
</div>
<div>
<div>
<div style="font-family:Consolas,monospace; font-size:12px">Hi!</div>
<div style="font-family:Consolas,monospace; font-size:12px"><br>
</div>
<div style="font-family:Consolas,monospace; font-size:12px">Now that IIW is over I would like to bring up my thoughts regarding the</div>
<div style="font-family:Consolas,monospace; font-size:12px">session we had with John regarding the discovery service issue.</div>
<div style="font-family:Consolas,monospace; font-size:12px"><br>
</div>
<div style="font-family:Consolas,monospace; font-size:12px">If I am the 'bad' discovery service provider I can fake all values within</div>
<div style="font-family:Consolas,monospace; font-size:12px">the discovery response. Except for the /token endpoint. That has to point</div>
<div style="font-family:Consolas,monospace; font-size:12px">to my system in order for me to receive the authorization_code and client</div>
<div style="font-family:Consolas,monospace; font-size:12px">credentials.</div>
<div style="font-family:Consolas,monospace; font-size:12px"><br>
</div>
<div style="font-family:Consolas,monospace; font-size:12px">Therefore I believe there are two solutions:</div>
<div style="font-family:Consolas,monospace; font-size:12px"><br>
</div>
<div style="font-family:Consolas,monospace; font-size:12px">* the discovery response to the client has to include a secret which has to be included</div>
<div style="font-family:Consolas,monospace; font-size:12px">in the initial /authorize request. The authorization server validates the</div>
<div style="font-family:Consolas,monospace; font-size:12px">value and fails the request if it is invalid. This of course has the</div>
<div style="font-family:Consolas,monospace; font-size:12px">drawback that the authorization server has to keep state. As a server guy</div>
<div style="font-family:Consolas,monospace; font-size:12px">I would not like to support this flow</div>
<div style="font-family:Consolas,monospace; font-size:12px"><br>
</div>
<div style="font-family:Consolas,monospace; font-size:12px">* The better solution I see, and as I mentioned during the discussion, is</div>
<div style="font-family:Consolas,monospace; font-size:12px">that the client should include the target /token endpoint as an additional</div>
<div style="font-family:Consolas,monospace; font-size:12px">request parameter for the initial /authorize request. The authorization</div>
<div style="font-family:Consolas,monospace; font-size:12px">server does a simple string comparison and fails if the /token endpoint is</div>
<div style="font-family:Consolas,monospace; font-size:12px">not the one as expected</div>
<div style="font-family:Consolas,monospace; font-size:12px"><br>
</div>
<div style="font-family:Consolas,monospace; font-size:12px">Regards,</div>
<div style="font-family:Consolas,monospace; font-size:12px">Sascha</div>
</div>
</div>
</body>
</html>