Most of the wiki articles describe how client browser uses the public key (certificate) encrypt sensitive data (such as username/password) and send this encrypted data to server. Server will use private key to decrypt it. I get this part. But no clear information saying how server encrypt data and send back to browser.
Use my online banking as example:
(0) I already accepted trusted certificate (public key) from my online-banking.
(1) Through SSL URL, My browser visit https://myonlinebanking.com
(2) I typed username/password to login. These data are encrypted, so the man-in-middle can only see meanless data.
(3) Bank web server received my encrypted data, and use its private key to decrypt it and authenticate my account successfully.
Now here are my questions:
How bank sends back my data? Bank encrypt the response data by what key? If bank encrypted with "public key", the man-in-middle can see it just as I can see it. So the man-in-middle doesn't know my username/password, but he can still see my account balance?
Thank you for your help.