0

As I understand it, an SSL certificate is supposed to authenticate a host as it's signed by a third-party organisation.

If a MitM were to intercept this showing of this public certificate to the client, couldn't they just make a copy of that signed certificate, and then claim to be the host? I understand that the MitM wouldn't have the private key, but it seems as though they can still pretend to be the authenticated host and just not be able to decrypt data that has been encrypted by the public key.

  • *"they can still pretend to be the authenticated host"* - No, because the private key is needed for this. *"just not be able to decrypt data that has been encrypted by the public key."* - application data are not encrypted by the public key. – Steffen Ullrich Nov 23 '21 at 18:12
  • Thanks for your comment, from every source I can look online though application data is encrypt with the public key, and decrypted with the associated private key. https://www.cloudflare.com/learning/ssl/how-does-public-key-encryption-work/ – beginner_dev Nov 25 '21 at 15:09
  • *"every source I can look online though application data is encrypt with the public key, and decrypted with the associated private key"* - To cite from the very page you reference *"A key exchange algorithm, such as RSA or Diffie-Hellman, uses the public-private key pair to agree upon session keys, __which are used for symmetric encryption once the handshake is complete__."*. Thus, the public/private key are not involved __in TLS__ in application data encryption/decryption, but in the key exchange only. – Steffen Ullrich Nov 25 '21 at 16:38
  • Right but that's TLS, not SSL – beginner_dev Nov 25 '21 at 17:28
  • TLS is basically an evolved SSL, i.e. TLS 1.0 is essentially SSL 3.1. The protocol basics are the same and what I said about application data encryption in TLS is true for SSL too. – Steffen Ullrich Nov 25 '21 at 17:34
  • Ok thanks for informing me – beginner_dev Nov 25 '21 at 17:38
  • Yep I just double checked this and you are indeed correct, my mistake – beginner_dev Nov 25 '21 at 17:39
  • I just looked up the DH exchange that's often used to create the symmetric keys and it's pretty ingenious! – beginner_dev Nov 25 '21 at 17:55

1 Answers1

0

No, I don't think it's possible. Only the public certificate is shared through the request to verify authenticity, then the private certificate remains in the server thus the name "private". You can check http://www.steves-internet-guide.com/ssl-certificates-explained/ for more information on this.

Libby Lebyane
  • 167
  • 2
  • 14
  • But you said it yourself that the public certificate is used to verify authenticity. So if a hacker copies that signed certificate then they'd be able to pretend that they're the host. – beginner_dev Nov 23 '21 at 16:48
  • Not really an expert in security, but you can checkout https://security.stackexchange.com/questions/105485/using-a-stolen-certificate-on-a-server seems to be similar to your question. – Libby Lebyane Nov 23 '21 at 17:03
  • 1
    Just an update, I think I understand now. Whoever copied a public certificate wouldn't be able to verify that they are the true owner of the certificate because they don't have the private key: so the ssl/tls handshake would fail. Thanks for the link it helped a lot! – beginner_dev Nov 23 '21 at 17:36