What is a recommended way of handling CRLs in long-term electronic signatures (specifically the CAdES-A)?
The problem I see is in that CRLs are not protected against modification (they are plain text, not signed) and not even mandatory in CAdES-T or CAdES-A.
As such, they can be forged, and such forgery cannot be easily detected, if the used time-stamping authority (TSA) is no longer active. I cannot figure out a way of handling CRLs in a way that prevents any doubts about long-term validity of a documents time-stamped with CAdES-A.
The same problem I have with verification of trustworthiness of TSAs themselves, if they no longer exist.
A typical scenario that worries me is this:
An attacker may use his own (=untrusted) time-stamping authority to forge a (
CAdES-TorCAdES-A) time-stamp of a document. No one will now able to verify whether this now unreachableTSAwas trusted or not at the time the time-stamp seems to be issued. To create a semblance of credibility, the attacker may update the time-stamp with a valid time-stamp of a trustedTSA, and wait for several years. The time-stamp update is possible due to the fact that time-stamps may be issued automatically without verification of credibility of previous time-stamps.On a similar principle, an attacker can use a revoked certificate of a trusted time-stamp authority. He may also attach a modified
CRLfrom which he deletes the S/N of the used time-stamping certificate (which is possible as theCRLis not signed). This way, the attacker may create a series of time-stamps from differentTSAs. It's possible that after 10 years at least one of theTSAs won't exist, and no one will be able to receive its correct unmodifiedCRLto verify validity of the time-stamp.
Unfortunately, long-term signature specifications do not treat these problems in detail, or rather they don't mention them at all. For instance in rfc5126, especially sections C.4.1.1 and C.4.3.
Edit:
(Another sub-question has been moved here.)
But what about the scenario in point 1.? A substantial requirement for all these long-term signatures to work is in that all used CAs and TSAa were trusted at the time when their certificates were used. If a TSA company bankrupts, how will I be able to prove that it was once trusted? One more question in my original post.
– xarx Apr 03 '14 at 06:34M S T1 T2is a signed message timestamped withTSA1andTSA2respectively. All certificates are valid, the time-stamp chain seems OK. But in fact, the message was modified and re-signed, andT1was forged by me, becauseTSA1belonged to me. Though everything seems OK, the problem is in thatTSA1cannot be trusted. How can one detect this problem in future, whenTSA1won't already exist? Of course, I can use double time-stamps, but how many organizations do that? – xarx Apr 03 '14 at 13:24T1is evil (or compromised) then its certificate will get revoked at some point. It is often expressed as "rogue CA are out of scope of X.509", which is kind of surprising the first time you hear it, but somehow makes sense. – Tom Leek Apr 03 '14 at 15:19TSA1is trusted andT1is compromised. Then I agree thatT1gets sooner or later to the TSA1's CRL. But I meant, what ifTSA1itself is malicious? There are thousands of TSAs for "testing" purposes, anyone can issue any time-stamp he wants, and there's none who can revoke their certificates. If I come uponT1from an unknownTSA1, it seems to me that's there's no recommended mechanism how to prove thatTSA1was trusted. Is that true? Also, do you know an answer to my question above concerning the "opposite of grace period"? – xarx Apr 03 '14 at 18:59