HTTPS

HTTPS通过加密层提供安全传输,主要依赖对称加密和非对称加密。对称加密速度快但密钥管理困难,非对称加密解决了密钥交换问题但速度慢。在非对称加密中,客户端和服务器通过公钥和私钥协商对称密钥,防止中间人攻击。然而,中间人攻击可能通过伪造公钥进行,解决方案是使用证书,客户端验证证书的合法性以确保公钥来源正确。
摘要由CSDN通过智能技术生成

目录

1.对称加密

2.非对称加密

中间人攻击

解决


        HTTPS 也是一个应用层协议,是在 HTTP 协议的基础上引入了一个加密层。为了实现安全传输,核心就是加密。

1.对称加密

        加密时,明文+key=密文,解密时,密文+key=明文,此处的key(密钥)是相同的,这就是对称加密。此处的key可以认为是一串数字或字符串,通过密钥和明文进行一系列数学运算就是密文。

        但是服务器同一时刻要给很多客户端服务,如果每个客户端的密钥都相同,那就很容易被中间网络设备识别,因此每个客户端都要有不同的密钥,如此一来服务器就要维护每个客户端和密钥的关联关系。

        假设由客户端生成一个密钥,然后把密钥告诉服务器,但这个密钥只能明文传输,就有可能被中间网络设备截获。要上解决安全的把密钥传给服务器就引入了非对称加密。


2.非对称加密

        生成一对密钥,公钥和私钥,使用公钥加密,明文+公钥=密文,使用私钥解密,密文+私钥=明文,反过来也行,这就是非对称加密。

        开始阶段协商密钥时,通过将对称密钥进行非对称加密,服务器生成一对公钥私钥,客户端向客户端请求公钥,服务器持有私钥,中间网络设备可以知道公钥,但私钥是服务器私有的;客户端使用公钥,来对对称密钥加密,传输给服务器,服务器用私钥解密得到对称密钥,一旦对称密钥到达服务器,后续的传输都使用对称密钥加密,在这个过程中由于对称密钥使用公钥加密,所以中间网络设备无法解密出对称密钥,就不会被截获

        此处为什么还要保留对称加密,不全部使用非对称加密?

因为对称加密较非对称加密快,效率高。


中间人攻击

        但是这个过程并不是天衣无缝,还存在中间人攻击。 

        当客户端向服务器请求公钥时,并不能保证公钥不是中间设备伪造的,如果中间设备生成一对非对称密钥,将伪造的公钥发给客户端,此时客户端生成对称密钥key,并使用伪造的公钥对key加密,客户端将加密好的对称密钥发送给中间设备,中间设备再根据自己的私钥解密,这样就得到了对称密钥key,之后中间设备就可以使用服务器的公钥对key加密,并发给服务器,此时服务器就以为这个对称密钥是客户端发来的,后续交互就直接使用对称密钥进行。

解决

        解决中间人攻击的关键,在于客户端能辨别这个公钥是来自与服务器,而不是直接设备的,这里的做法是引入一个“证书”,服务器的公钥包含于这个证书中。

        客户端向服务器请求公钥时,会请求整个“证书”,拿到证书后,会对证书进行校验,如果证书是无效的,会直接弹框警告。

       这个校验过程为客户端使用认证机构提高的公钥来解密证书中的“签名”(被加密的字符串)字段,得到结果1(相当于一个hash值),根据同样的hash算法,对其他字段再算一次hash值,判断两次hash值是否相同。

        黑客无法篡改证书。一旦替换公钥,客户端计算出的两次hash值就对不上,并且,黑客也无法知道认证机构的私钥,即使算好了篡改后的hash值,也无法加密生成签名,因为认证机构有一组公钥私钥,私钥加密hash值得到签名,公钥是客户端解密签名获取hash值的。

以上就是本文的全部内容了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

todd1er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值