【Web】HTTPS 之我见

印象里,HTTPS比HTTP更为安全,使用端口号443,其它的没有了...面试在即,上面很难应付,故重新认识了下HTTPS

简单说,HTTPS是通过非对称加密来传输对称密钥,使用对称加密来传输信息

怎么说?

1. HTTPS是通过非对称加密来传输对称密钥

客户端请求服务器,服务器使用自己的私钥加密配对的公钥及其它信息后,传送给客户端,客户端接收到加密报文,使用服务器的公钥来解密,从而获得服务器的公钥

2. 使用对称加密来传输信息

客户端随机的生成一个对称密钥(用于对称加密),使用服务器端的公钥对对称密钥加密后,传送给服务器,服务器使用自身私钥解密,从而获得对称密钥(用于对称加密),这样,客户端和服务器均有了密钥,从而可以使用对称加密进行数据传输

一、HTTPS流程

风险:网络传输中,存在“中间人劫持”的可能,故需要进行CA认证

二、中间人劫持

三、何谓CA认证?

服务器若自己不开发相关认证时,可向CA机构申请证书。即服务器把自己的公钥信息以及其它信息,发送给CA机构,CA机构使用相关Hash算法对上述信息生成“信息摘要”,并用自己的密钥对“信息摘要”进行“数字签名”,从而得到CA“数字证书”:

CA“数字证书”=服务器公钥及其它信息+数字签名

服务器申请到CA证书后,若客户端打算建立连接,则服务器将CA证书返回给客户端,客户端获取该证书后,通过CA机构认证该证书的有效性(因为CA机构是通用的公证处,客户端只要相信即可,不用再去管自身与公证处之间是否有中间人劫持等问题),本地CA公钥对“数字签名”进行“消息认证”,二者是一个逆操作

消息认证:数字签名>>公钥解密>>解密后摘要

因客户端获取的CA证书中,其实包含有相应的Hash算法说明,故可对“服务器公钥及其它信息”进行Hash计算,获得“信息摘要”,对比该“信息摘要”与“解密后摘要”是否一致,一致则说明服务器端发送的CA证书确实是其本身的,里面的公钥非“中间人劫持”,可放心使用。若不一致,则说明存在“中间人劫持”(中间人是可以获取服务器发送的CA证书,也能对服务器公钥及其它信息进行修改,但是其无法获取到CA机构的密钥,因此只要其稍作改动,则消息认证必定不一致)

四、总结

  1. HTTPS可以认为就是通过非对称加密来传递“对称密钥”,最终使用对称密钥进行数据传输
  2. 只不过传递服务器公钥的过程中使用了CA机构第三方认证,确保传送至客户端的公钥确实是服务器的
  3. 服务器发送自己的公钥(及其它信息)至CA机构,通过CA机构密钥进行相应加密,并传送给客户端;客户端接收到CA证书后,去CA机构进行验证,验证无误则可以放心使用服务器公钥

参考文献:

HTTP和HTTPS协议,看一篇就够了

HTTPS原理和CA证书申请(满满的干货)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值