Let's say that Malory owns an official website that now says that her birthday is on 25th of July. I can connect to that website by https, and SSL sertificate of the connection says "issued to Malory". Now I want to download that page as an evidence, that Malory published it. I know that she will later remove or change the information on the website, and I want to catch her on doing this. Can I extract some sort of certificate from the HTTPS connection to say: "Dear court, Malory said that her birthday is on 25th of July, and I can prove it by presenting this HTML file with this HTTPS signature (or something like this)"?

Is there a convenient way to do it? I tried button "download complete page" in chromium, but it seems that it doesn't save any sort of signatures.


1 Answer 1


No. TLS - the protocol that secures HTTPS - does not provide non-repudiation. Both parties in a TLS connection know the symmetric key(s) used for bulk data encryption and integrity verification. Either party can record the key(s) and then, after the fact, alter or fabricate a recording of all traffic that passed through the connection using the key(s) to update the encryption and authentication tags / MACs.

The symmetric key(s) are derived through a process that does involve a key known only to one side - the server's private key corresponding to the public key in their certificate - but that private key is only used to prove the server's identity and secure the exchange of the symmetric key. All further communication - the actual traffic you'd want to sign in an unspoofable way - is secured using that symmetric key, which both parties know and can use.

The server's private key is not used to secure the actual message traffic, nor is there any standard way to request that the server do so (even though, in theory, it could be used for that).

Not the answer you're looking for? Browse other questions tagged .