Yeah, I'm still lurking here.

First, let me state the obvious: a signature enables you to verify that the data you received hasn't been changed since it was signed by a particular entity. It seems to me that there are a few things we might want to do with that ability:


1) Verify the integrity of data on a "single hop" (no need to preserve the signature).


2) Verify that the data is as it was when produced by the original creator (would require preservation of the signature).


3) #1 PLUS allow whoever signed the data to claim that what it received was signed and that it validated the signature.


From what others have said, #2 doesn't sound possible. #1 clearly is possible. So what about #3? Might something like this be done?

A) The client signs the data and sends it to the server.

B) The server validates and discards the signature, and adds an element like this:

<ext:i-got-this-signed-from who="some sort of identifier" who-am-i="some sort of identifier" seq="1" />

I don't know enough about digital signatures to know what an appropriate identifier might be -- perhaps a URL from which their public key could be retrieved or something? @seq is there to identify who got the data from whom in what order.

C) The server signs the whole package including the added element and sends it on to whoever's next.

D) Whoever gets the data next repeats B & C, and so on, so that at any point, whoever receives the data can verify that the entire package came from some specific entity, and also trace the data's route backwards to its source.

The obvious weakness of this approach is that the "i-got-this-signed-from" elements could be forged. But if you trust that the entity that signed the data that you received wouldn't forge them, and if you happen to know and trust all the other entities who's @who-am-i's are in there, then you should be able to establish SOME level of trust in the data.

Additionally, whoever inserts an "i-got-this-signed-from" COULD sign it and that signature could be carried forward. But that might be better not done than done since it may give a false sense of security, since all that it would really verify is that whoever inserted that "i-got-this-signed-from" and its signature has at some point seen an "i-got-this-signed-from" created by @who-am-i for @who with that particular @seq value.


Antone

Reply via email to