If I download https://example.com/foo.txt, how can I prove to a third party that I got it from https://example.com.

I understand that their private key is used to secure the channel, rather than to sign the content of URLs.

Is there a way of downloading https://example.com/foo.txt and providing a chain of proof that my foo.txt was obtained from https://example.com?


1 Answer 1


Well, the simple truth is: you can't use encryption to do non-repudiation.

At best, encryption techniques proves the authenticity:

  • For AEAD and stand-alone message authentication codes, this is achieved through a MAC Tag.

  • For public-key encryption and key exchanges, this is done through padding and key confirmation.

Even if you get the full transcript of the transfer from the server, the disproving party can still substitute the content of the transfer with their own using the symmetric key associated with the transfer transcript, so there's no way to do non-repudiation.

More importantly, non-repudiation is a transferable proof of authenticity and integrity originated from the owner of the public key. This transferability is not something that can be achieved with just encryption - you need digital signature for this.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.