https超文本传输协议,它是明文传输的,传输账号,密码等隐私信息是非常不安全的。
https 超文本传输安全协议,它对数据传输进行了加密封装,通过对称加密、非对称加密原理加密数据包传输以及数字证书验证服务器响应真实性。这种方式也称SSL/TLS。
对称加密
同一个密钥可以同时作用于信息的加密和解密。
举例:1.加密时,数据同时减去一个固定的偏移量 ,解密时,数据同时加回这个固定的偏移量
2.关锁和开锁都需要同钥匙
非对称加密:
有两把对应密钥,公钥和私钥。
用公钥加密只能用私钥解开,用私钥加密只能用公钥解密。
数字证书:
证书授权机构——CA颁布的,相当于一个公开的身份证明,包含证书持有者的信息和公钥信息。
小明去CA机构申请证书,将小明的个人信息、公钥生成一个证书,然后把这个证书发送给jack,jack拿这个证书去证书授权机构查询,如果能匹配上小明的信息,就说明这个证书是小明的,就可以使用证书中的公钥来解密小明的消息。
以上加密实际运用
https传输过程:
客户端持有对称密钥A,服务端持有非对称公钥B、私钥C;
客户端先做请求,服务端把公钥B返回,
客户端拿到公钥B(数字证书验证身份可靠),加密公钥A,传给服务器。
服务器用私钥C解出私钥A;
最后客户端通过私钥A加密数据包,服务端通过密钥A解出数据,正常通信。
(这个过程中,客户主要想拿到对称密钥A)
期间,黑客可以获取到公钥B,但是却做不了什么;用公钥B加密的数据没有私钥C是解析不出来的对称密钥A的。
黑客破局
可是,黑客可以拦截公钥B发送,然后自己生成一对公钥私钥,把自己的公钥发给客户端,然后在拦截客户端要自己公钥加密的密钥A, 这样就获取到了密钥A. 然后用公钥B加密密钥A,传给服务器就完美了。
数字证书作用
其中黑客自己生成的公钥,但是如果有数字证书,它就是不合格的。
数字证书是第三方正式机构颁布的,相当于一个服务器的身份证,数字证书里包含证书持有者的信息和公钥信息。
如果客户端验证服务器的数字证书,就不存在冒用服务公钥问题了。