Re: Time in CMC requests

Stefan Santesson <[email protected]> Tue, 26 Oct 2021 21:36:38 +0200
Newsgroups gmane.ietf.x509
Organization 3xA Security AB
Message-ID <[email protected]>
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.

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?
>>
>>
>>
>