HTTPS在会话层加了一层TLS/SSL协议,保证了传输数据的时候的机密性(混合加密算法,先用非对称加密保证对称密钥的传递,然后使用对称加密进行通信),完整性(摘要算法SHA-2,还可以用来生成伪随机数)以及身份认证(签名解决)CA数字证书和保证公钥的可靠性
SSL指安全套接层,TLS是他的改名传输层安全
浏览器和服务器通信时使用TLS建立连接时先要确定密码套件,包括密钥交换算法,摘要算法,签名算法,对称加密算法
摘要算法就是一种特殊的压缩算法,能把数据压缩成固定长度的字符串,这样我们每次传输数据的时候附带一个摘要,如果重新给这个数据生成摘要还是一样的话那就说明数据没有改变过。明文和摘要都要加密成密文防止被篡改
数字签名和我们现实生活的盖章差不多,是用私钥签名然后公钥验签,因为非对称加密效率比较低,所以是针对摘要来做一个签名
还有一个问题是服务器发来公钥是可以伪造的,所以服务器就需要去CA申请一个证书。当服务器把证书(包括公钥,签发者,到期时间等等)发过来的时候,假如是个二级证书,他就会去查这个证书是否在(浏览器和操作系统)RootCA里面,如果找不到就会去查他的颁发者也就是一级证书直到找到最高层证书,如果在RootCA就说明是可以信任的,否则不可信任就会警告用户,这样就可以保证证书的可靠性(小的CA签名由大的CA的公钥解密,直到RootCA)
危险:CA被攻击(修改操作系统内部移除这个CA) || CA给乱七八糟的网站签名证书