- HTTP是使用明文传输的,不安全,所以使用到了HTTPS加密传输
- 四层数据模型:应用层、运输层、网络层、数据链路层;HTTPS就是在应用层和运输层之间增加了安全层SSL/TLS
- 对称加密就是加密解密都是用的一个密钥
- 非对称加密就是A和B都有自己的公钥和私钥,公钥可以告诉任何人,私钥自己保管
- A用B的公钥给B发消息,B用自己的密钥解密,相反同理,很安全但是很慢
- https就是通过非对称加密传输对称加密的密钥,双方大数据量的通信均通过对称加密进行
- 非对称加密的存在伪造公钥的问题,假设Hack C伪造自己是银行和B发消息,B就被骗了,所以需要机构来证明身份
- CA机构就是用来防止公钥伪造的,他给银行颁发一个证书来证明他的身份,那怎么证明这个证书是真的呢?
- CA的作用就是保证公钥不被伪造
- CA给每一个需要的人颁发证书,让他在数据传输是时候自证省份
- 怎么证明这个证书是真的呢?这就是所谓的签名算法了,比如说银行,怎么给银行颁发证书,然后再自证身份呢?
- CA机构把银行的信息,最重要的就是公钥给他hash一下,然后再用自己的私钥加密一下发给银行
- 银行就拿着这个证书,发给客户,让客户来校验我的身份,客户怎么校验呢?
- 因为CA的公钥在每一台手机、电脑里都有,客户接受到证书后,先用公钥解开得到hash过后的公钥,然后把银行发过来的公钥hash一下然后对比,就知道公钥是不是伪造的了
- 客户给银行发一个随机数,client-hello
- 银行回复一个随机数,server-hello
- 银行给用户发证书
- 客户也可能会发一个证书给银行
- 客户和银行互相查看校验对方身份
- 相互校验没问题,就可以放心的交流了,客户给银行再发一个随机数pre-master
- 这时候双方都有三个随机数,根据他们生成对称算法的密钥
- 就通过这个密钥以对称加密的传输信息了