Hi all,
After a conversation with rgdd, I was trying to understand what kind of temporal guarantees a Sigsum entry can provide. For instance, I need something akin (but slightly less strict) to a timestamping authority: something that can attest that a certain signature was included on a specific date, or at least definitely not afterwards.
This would allow me to enforce expirations over signed artifacts: if an artifact was included after a certain threshold (e.g., 30 days after signing), I could consider it expired, knowing that the corresponding signature couldn’t have been forward-dated.
A naive way to achieve this without Sigsum would be to submit the content to a timestamping authority (TSA), then include the TSA’s signed timestamp within the content to be signed. However, this approach introduces a single point of failure (a trusted third party) and adds unnecessary format complexity.
Since inclusion proofs from a Sigsum server already include a cosigned checkpoint with a timestamp, I was wondering whether similar guarantees could be derived from these components. My concern is that if I simply trusted the timestamp in the checkpoint, the logic wouldn’t hold: anyone could request a new inclusion proof at a later time, which would include a newer checkpoint timestamp and an updated tree head.
One immutable element between proofs is the leaf index, which correlates monotonically with inclusion order, though not directly with wall-clock time.
A possible workaround would be to require proofs where the tree size in the checkpoint is at most N leaves ahead of the included leaf (say < 10), ensuring some temporal proximity between signing and inclusion. However, this approach would prevent me from obtaining new proofs for old signatures, for instance, after witness rotation, unless there was an archive of checkpoints (and the same for witnesses)?
Summarizing: is there a way to use the Sigsum log server and the witnesses to attest that an inclusion happened at a specific timestamp?
Thank you, Cheers, Giulio
Giulio via Sigsum-general sigsum-general@lists.sigsum.org writes:
Summarizing: is there a way to use the Sigsum log server and the witnesses to attest that an inclusion happened at a specific timestamp?
The witness timestamps say that everything up to the witnessed tree size was included at that time. One could alwaye get fresh timestamps on a newer treehead. As you say, if one is willing to make assumptions on how tree size grows with time, you could turn the (tree size - leaf index) difference into an estimated submission time, but that does sound a bit brittle.
What you can do is to also get a cosigned treehead *prior* to submit, then you know that any items with higher leaf index was *not* included at that time. Should give you sufficient granularity to prove, e.g., that an item was submitted during office hours.
If that is useful for your case, I don't know. You only get a bound for the submission time for this log; the data could have existed, and maybe logged elsewhere, much earlier. And we also make rather weak promises regarding duplicate log entries.
Regards, /Niels
sigsum-general@lists.sigsum.org