title: How does SSL encrypt data from server to client?
body: <p>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.</p>
  
  <p>Use my online banking as example:</p>
  
  <p>(0) I already accepted trusted certificate (public key) from my online-banking.</p>
  
  <p>(1) Through SSL URL, My browser visit <a href="https://myonlinebanking.com">https://myonlinebanking.com</a> </p>
  
  <p>(2) I typed username/password to login. These data are encrypted, so the man-in-middle can only see meanless data.</p>
  
  <p>(3) Bank web server received my encrypted data, and use its private key to decrypt it and authenticate my account successfully.</p>
  
  <p>Now here are my questions:</p>
  
  <p>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?</p>
  
  <p>Thank you for your help.</p>