I'd like to explain my understanding first then ask a question.
This question is meant as a simpler overview of other question..and talks about implication and not process as much.
My understanding is this:
- client connects to server
- server sends its public key
- client checks with third party to see if it indeed belongs to server
- if it checks out client sends its public key encrypted to server
- server decrypts clients public key and then encrypt using it to respond back
My Question is how does server knows that there isn't a spy who is sending a fake encrypted public key. We were able to verify public of server but how does server verifies that key belongs to client.
I'm pretty sure I'm missing some steps in my understanding of SSL..
This is a scenario that fails my understanding:
- my browser makes a request to server
- server sends its public key
- browser verifies it
- send its own key encrypted using server's public key
- hacker intercepts the request
- use server's public key to encrypt his own key and send it instead
- server uses that key to respond back
- hacker gets the message, and then reencrypt it and pass it onto me