Skip to content

Latest commit

 

History

History
26 lines (26 loc) · 2.13 KB

3.14_HTTPS.md

File metadata and controls

26 lines (26 loc) · 2.13 KB

HTTPS

  • HTTP是使用明文传输的,不安全,所以使用到了HTTPS加密传输
  • 四层数据模型:应用层、运输层、网络层、数据链路层;HTTPS就是在应用层和运输层之间增加了安全层SSL/TLS
  • 对称加密就是加密解密都是用的一个密钥
  • 非对称加密就是A和B都有自己的公钥和私钥,公钥可以告诉任何人,私钥自己保管
  • A用B的公钥给B发消息,B用自己的密钥解密,相反同理,很安全但是很慢
  • https就是通过非对称加密传输对称加密的密钥,双方大数据量的通信均通过对称加密进行

非对称加密

  • 非对称加密的存在伪造公钥的问题,假设Hack C伪造自己是银行和B发消息,B就被骗了,所以需要机构来证明身份
  • CA机构就是用来防止公钥伪造的,他给银行颁发一个证书来证明他的身份,那怎么证明这个证书是真的呢?

CA如何担保

  • CA的作用就是保证公钥不被伪造
  • CA给每一个需要的人颁发证书,让他在数据传输是时候自证省份
  • 怎么证明这个证书是真的呢?这就是所谓的签名算法了,比如说银行,怎么给银行颁发证书,然后再自证身份呢?
  1. CA机构把银行的信息,最重要的就是公钥给他hash一下,然后再用自己的私钥加密一下发给银行
  2. 银行就拿着这个证书,发给客户,让客户来校验我的身份,客户怎么校验呢?
  3. 因为CA的公钥在每一台手机、电脑里都有,客户接受到证书后,先用公钥解开得到hash过后的公钥,然后把银行发过来的公钥hash一下然后对比,就知道公钥是不是伪造的了

HTTPS的工作模式

  1. 客户给银行发一个随机数,client-hello
  2. 银行回复一个随机数,server-hello
  3. 银行给用户发证书
  4. 客户也可能会发一个证书给银行
  5. 客户和银行互相查看校验对方身份
  6. 相互校验没问题,就可以放心的交流了,客户给银行再发一个随机数pre-master
  7. 这时候双方都有三个随机数,根据他们生成对称算法的密钥
  8. 就通过这个密钥以对称加密的传输信息了