肉烂在锅里

个人站

我是软件研发中心培训主管,我喜欢看动漫,学习web前端开发。


HTTPS小结

因为HTTP是明文传输,是可以被别人恶意劫持http请求包,并篡改其中的数据的,相当于裸奔,危险性不言而喻。HTTPS为了解决这个问题,在HTTP协议基础上加上了SSL/TLS层。它能够防止我们的信息被窃取,同时及时的判断出不良网站。

SSL层的目的

  1. 保证你是在跟真正的服务器通信,而不是伪装的服务器.

  2. 保证只有真正的服务器才能解密你发送的信息.同时,也只有你才能解密服务器跟你发送消息.就是保证是你跟真正的服务器在通信,这过程中没有第三者.

在这过程中,其他人还是可以中途截取到你发送的信息,但是是加密的,它们拿到也无法解密.

加密方式

加密方式有两种:对称加密、非对称加密。

  1. 对称加密

对称加密的原理:加密算法是公开的,但是加密算法所需要借助的密钥不是公开的。使用密钥加密,那就得用相同的密钥解密。

常用的对称加密算法:DES、3DES、AES

对称加密优点:计算量小,加密解密速度快,适合加密比较大的数据

对称加密的缺点:密钥容易泄漏,每个用户都要有不同的密钥,服务端管理必要每个人的秘钥也比较麻烦。

TIP:

对称算法,因为解密和加密都需要相同的密钥,所以为了让服务端知道密钥是什么,客户端就必须在发送加密数据之前向服务端传递密钥。此时密钥还是经历了网络传输,如果黑客劫持了密钥,黑客也可以将数据解密,因此对称加密算法并不可靠。

另外,每个人的密钥都不能相同,如果相同,那么密钥就同样会被发现,不同的用户只需要发送任意请求就可以获取这个‘公用的’密钥,密钥也就不再秘密了。

  1. 非对称加密

非对称加密原理:算法公开,有一个公钥(public key)和一个私钥(private key)

公钥加密只能私钥解密

私钥加密只能公钥解密

加密和解密使用不同的钥匙,所以称之为非对称加密。

非对称加密算法:RSA

非对称加密优点:加密和解密都是用不同的钥匙,可以传输公钥,数据传输是安全的。

非对称加密的缺点:计算量大,加密和解密的速度比较慢。

TIP:

公钥和私钥都不是随机生成的,而是经过算法计算而来的超长字符串,之所以安全是因为只有拿到公钥和私钥才能机密所有数据,但是私钥是存在服务器端,永远都不会经历网络传输的过程。别人即使通过劫持拿到了公钥也无法解密由公钥加密的数据。

HTTPS的实现原理

  1. 思维导向

之所以谈对称加密和非对称加密这两种加密方式,是因为我们需要认识到两种加密方式的优点和缺点。对称加密由于算法简单,而且会在传输的时候暴露公钥,所以速度更快,但是更危险。非对称加密由于算法复杂,传输时只暴露了无法解密客户端数据的公钥,所以速度更慢,但更安全。https为了实现安全、快速的传输,他设计了一套十分可靠的传输方案,

也就是融合了非对称加密和对称加密两种方式,让他们优势互补,从而实现安全可靠。

对称加密的特点是快速,用同样的密匙去解密和加密,危险在密匙要通过网络传输容易被截取。非对称加密的特点是安全,只暴露无危害的公钥,但慢在算法的计算。因为性能消耗的产生主要还是在加密每一次所要传输的数据的时候,因此为了提高性能,加密传输数据的主要方式应该使用性能较高的对称加密算法,现在我们只需要想出一个办法,让密钥也具备保密性即可,这也就需要非对称算法去加密密钥。

  1. 过程分析

  2. 首先客户端发送http请求,这也就是‘三次握手’的开始,服务器在接受到请求的时候把服务器自身的SSL数字证书发送到客户端进行验证,证书中包含着这个网站的信息以及服务器的公钥,同时服务器还保存着自己的私钥。

TIP:

SSL证书和我们生活中的驾驶证,营业许可证类似,我们是需要购买SSL证书的。

  1. 客户端在接受到服务端的证书后,进行证书的验证,如果浏览器验证证书时发现这个服务器不是一个‘好家伙’就会报出https警告(也就是提示你该网站的证书存在问题,是否继续跳转,还是退回上一个安全页面),如果验证通过,就会保存证书中的公钥,然后随机生成一个随机码,这个随机码正是之后进行真正请求数据传输时的密钥,然后用公钥对密钥进行加密然后把加密后的密钥传输给服务器。期间如果黑客劫持了密钥,可密钥是经过非对称算法中的公钥加密的,他没有私钥也就无法识破密钥的‘真身’。

  2. 服务器接收到由公钥加密的密钥,就用私钥进行解密,得到了密钥的‘真身’。至此,客户端和服务端都有了密钥,而外面的黑客却只有被公钥加密了的密钥。

  3. ‘三次握手’结束,开始请求数据,请求内容用密钥加密。

  4. 服务端接收到由密钥加密的数据,在用密钥进行解密即可获取传输的内容。

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦