There's a problem with digitally signed documents - in particular that any print-out of them will be only a copy, not an original (by print-out I mean the print-out of the human readable form of the document, not the sequence of bits that makes up that document).
That makes it difficult for digital signatures on official documents finding adoption, since any agency who will offer to accept digitally signed documents will have to maintain two archives - a physical one for the physically signed originals and a digital one for the digitally signed ones.
It would be great if digitally signed documents could be printed out and stored in a physical archive the same way as physically signed documents are stored, without sacrificing their authenticity - and it seems like it wouldn't be technically too difficult to achieve this.
What you would need would be a trusted hosting service.
When a signee then would sign a digital document, the protocol could go something like this:
1. Signee requests a new storage url from the trusted hosting service (maybe with certain validity, like 10 years)
2. The trusted hosting service answers with a signed "hosting-token" containing:
- Timestamp
- The generated download link
- The guaranteed hosting duration
3. This hosting token is digitally attached to the document
4. Signee generates a new, symmetric encryption key
5. Signee includes a visual QR code in the document containing (either on an extra page or somewhere on the document):
- the download link that was pre-generated by the trusted hosting service
- the generated encryption key
- (probably the date and guaranteed hosting duration would be added visually too)
6. Now the document is signed using the signee's certificate (optionally timestamped using RFC 3161)
7. The signed document is encrypted using the generated symmetric encryption key
8. The encrypted data is sent to the trusted hosting service and from then on will be available under the preallocated download url for download
Verification of digital document would now consist of:
- download the data from the link in the QR code and decrypt with the key in the QR code
- confirm that the hash of downloaded and current document are identical (i.e. that indeed the correct document was uploaded to this hosting address)
- confirm the signature of the hosting-token
- confirm the document signature
The download step during verification could be skipped by encrypting the current document with the key inside the QR code, taking the hash of the encrypted file and then asking the trusted hosting service whether the hash fits the hash of the file under the speicific download link.
So long as the hosting service is trusted (and during the guaranteed hosting duration), this document could now be printed out and the printed copy could be physically archived and treated like any other physically signed original, since the digital original could be produced at any moment. And because the document is hosted in encrypted form, only those who already have access to a copy of the document can decrypt the hosted copy.
Government servers implementing such a protocol could make it very easy for all agencies and companies of a country to start accepting digitally signed documents as originals, while still using their physical processing and archiving workflows.
Now, since I'm certainly not the first one facing this problem, I'm pretty sure that there are already proposals or solutions to it and my question therefore is whether there is a proposed internet standard for such a signature scheme?