Re: Time in CMC requests
Anders Rundgren <[email protected]> Wed, 27 Oct 2021 03:34:14 +0200
| Newsgroups | gmane.ietf.x509 |
|---|---|
| Message-ID | <[email protected]> |
On 2021-10-26 21:36, Stefan Santesson wrote: > Thanks Anders, > > I think that max age (and max future) is redundant as it can simply be a > local policy for the CA who decides for itself how long it will store > nonces for old requests. hi Stefan, totally agree; this is exactly what the sample code does as well. Anders > > I would certainly not allow the requester to set this policy in the > request as they could suggest infinite time. > > I want to stay away from structure in data where none was intended as it > makes it hard to distinguish support or non support in a clean way. > > I'm leaning towards a custom control attribute for request time and an > open interface for replay protection that may use this information if > its available. > > /Stefan > > > On 2021-10-26 19:15, Anders Rundgren wrote: >> Hi Stefan, >> >> Yes, time-stamped nonces is the way to go. >> >> The only addition needed is a MAX_AGE (and MAX_FUTURE) check to keep >> the bag in shape. >> I recently did this for a similar use case: >> https://github.com/fido-web-pay/specification/blob/gh-pages/replay-cache-java.md >> >> >> Anders >> >> On 2021-10-26 18:29, Stefan Santesson wrote: >>> We have an implementation of CMC (RFC 5272) that I need to use, but I >>> got stuck on replay protection. >>> >>> CMC says that replay protection is handled by the use of nonce values. >>> >>> However, without any time information when the request was created, I >>> would have to validate against an infinitely large bag of previous >>> nonces. >>> >>> Was this an oversight in the design, or am I missing something? >>> >>> Is there any control message defined elsewhere that holds a time when >>> the CMC request was created? >>> >>> >>> My current options (as I need replay protection in this particular case) >>> is either to abuse the nonce data and use a byte encoded timestamp as >>> nonce, or to create a new control attribute with time information. >>> >>> Any suggestions? >>> >>> >>> >>