<div dir="ltr">Guaranteeing one time use on an unreliable network (with retries built in) is a thankless task. What exactly is the threat that needs to be mitigated?   ..tom</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 3, 2017 at 10:47 PM, Nat Sakimura via Openid-specs-fapi <span dir="ltr"><<a href="mailto:openid-specs-fapi@lists.openid.net" target="_blank">openid-specs-fapi@lists.openid.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Good points.<br>
<br>
1. One-time use of `request_uri`<br>
<br>
By this, I meant that `request_uri` could be used only once against the authorization endpoint. I did not mean that the GET to `request_uri` value should fail for the second access. I understand that the text is ambiguous and needs to be clarified.<br>
<br>
2. Attacker re-registering the request object<br>
<br>
Now, as to the problem of the replay against the request object endpoint, the client needs to include a nonce.<br>
I thought that `nonce` was required in Hybrid Flow, but is apparently not.<br>
So, it needs to be stated.<br>
Once `nonce` is there, iss (client_id) + redirect_uri + nonce become globally unique.<br>
It will act as the unique identifier for the request object.<br>
The AS needs to check it to find if it has been used before.<br>
<br>
Unless the request object has `exp`, the AS has to maintain the state indefinitely, which is not practical.<br>
So, we also need to state that `exp` needs to be included and it should expire in a short period of time.<br>
<br>
With it, the request object endpoint can reasonably reject the replay.<br>
<br>
What do you think?<br>
<br>
Nat<br>
--<br>
PLEASE READ :This e-mail is confidential and intended for the<br>
named recipient only. If you are not an intended recipient,<br>
please notify the sender  and delete this e-mail.<br>
<div><div class="h5"><br>
<br>
> -----Original Message-----<br>
> From: Openid-specs-fapi<br>
> [mailto:<a href="mailto:openid-specs-fapi-bounces@lists.openid.net">openid-specs-fapi-<wbr>bounces@lists.openid.net</a>] On Behalf Of Vladimir<br>
> Dzhuvinov via Openid-specs-fapi<br>
> Sent: Wednesday, August 2, 2017 4:22 PM<br>
> To: <a href="mailto:openid-specs-fapi@lists.openid.net">openid-specs-fapi@lists.<wbr>openid.net</a><br>
> Subject: [Openid-specs-fapi] Ensuring one-time use of request JWTs registered<br>
> at the request JWT endpoint<br>
><br>
> It appears to me that one-time use of request objects registered by URI cannot<br>
> be guaranteed, unless read access to the request_uri is strictly limited to<br>
> the AS only.<br>
><br>
> Consider the following scenario:<br>
><br>
> 1. Client registers request object at request_uri, one-time GET policy is<br>
> enforced, but the URL is world readable.<br>
> 2. Malicious JS code in the browser GETs the request_uri 3. The authorization<br>
> request will fail due to invalid request_uri 4. The malicious JS code can still<br>
> re-register the request object as many times as it wants<br>
><br>
><br>
> The statement in 7.2 may also need to be revised then:<br>
><br>
> <a href="http://openid.net/specs/openid-financial-api-part-2.html#request" target="_blank" rel="noreferrer">http://openid.net/specs/<wbr>openid-financial-api-part-2.<wbr>html#request</a><br>
><br>
> > The request object needs to be signed for the client authentication<br>
> > and as the evidence of the client submitting the request object, which<br>
> > sometimes is called 'non-repudiation'.<br>
><br>
> If the request_uri is world readable, even if the AS takes measure to make<br>
> it hard to guess, the end-user / user agent will always be able to get it and<br>
> re-register it, which means the signature doesn't really hold as evidence of<br>
> the client submitting the request JWT.<br>
><br>
><br>
> Vladimir<br>
<br>
<br>
</div></div>______________________________<wbr>_________________<br>
Openid-specs-fapi mailing list<br>
<a href="mailto:Openid-specs-fapi@lists.openid.net">Openid-specs-fapi@lists.<wbr>openid.net</a><br>
<a href="http://lists.openid.net/mailman/listinfo/openid-specs-fapi" target="_blank" rel="noreferrer">http://lists.openid.net/<wbr>mailman/listinfo/openid-specs-<wbr>fapi</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">..tom</div>
</div>