openssl cms verification date
Hubert Kario
hkario at redhat.com
Thu Feb 8 15:57:07 UTC 2024
On Thursday, 8 February 2024 14:13:35 CET, François Legal wrote:
> Le Jeudi, Février 08, 2024 11:46 CET, Tomas Mraz
> <tomas at openssl.org> a écrit:
>
>> On Thu, 2024-02-08 at 11:37 +0100, François Legal wrote:
>>> Hello,
>>>
>>> I'm new to this list.
>>>
>>> I'm using pkcs7 packages to embbed firmware, to procide authenticity
>>> verification before doing firmware upgrades.
>>>
>>> I use the openssl cms command for verification purpose, but face the
>>> following problem :
>>> when doing verify, openssl cms -verify does check whether the signing
>>> certificate is valid today, not whether or not it was still valid
>>> when the package got signed.
>>>
>>> I saw the -attime option to specify the verification date, but found
>>> no easy way to fetch the signature date from the package for each
>>> signature.
>>>
>>> So I was wondering if it was the intended function that the
>>> certificate validity verification was made at the verification date
>>> and not the signature date.
>>
>> Yes, this was certainly intentional. I could envision that a new option
>> could be added to the cms command that would verify the signature at
>> the date when the signature was made. However please note that without
>> some kind of assurance that the signature was really made at the time
>> that is recorded in the message, the signature could have been done
>> with a key that was already expired anyway. This assurance is done
>> usually by timestamping via a trusted timestamping authority but there
>> might be other means.
>>
>
> Sure I get the point. You can't really be sure that the
> signature was made at the clained time as the signerInfo
> structure is not signed itself. Could you please comment however
> on why verifying the validity of the certificate at the
> verification date is better in that matter.
> I already have a patch to provide for verifying the signature
> at signature time. Shall I send a pull request ?
I'd suggest reading the CAdES[1] standards for electronic signatures that
are
supposed to be verified years after the signature were made. It goes
into detail what you need to do.
In practice it means:
* you need trusted timestamps from a time stamping
authority in the CAdES format (that will allow for automated
verification).
* Or a notary document stating that given signature was made before given
date (that will require manual verification).
1 - https://en.wikipedia.org/wiki/CAdES_(computing)
--
Regards,
Hubert Kario
Principal Quality Engineer, RHEL Crypto team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 115, 612 00, Brno, Czech Republic
More information about the openssl-users
mailing list