网站前台如何刷新,做物流哪个网站推广好,wordpress 游客不可见,花钱做网站目录
一. https协议概述
二. 中间人截获
三. 常见的加密方法
3.1 对称加密
3.2 非对称加密
四. 数据摘要和数据签名的概念
五. https不同加密方式的安全性的探究
5.1 使用对称加密
5.2 使用非对称加密
5.3 非对称加密和对称加密配合使用
六. CA认证
七. 总结 一.…目录
一. https协议概述
二. 中间人截获
三. 常见的加密方法
3.1 对称加密
3.2 非对称加密
四. 数据摘要和数据签名的概念
五. https不同加密方式的安全性的探究
5.1 使用对称加密
5.2 使用非对称加密
5.3 非对称加密和对称加密配合使用
六. CA认证
七. 总结 一. https协议概述
在早期的网络中传输数据一般采用http协议。但是无论是用GET方法通过url传递数据还是使用POST方法通过报文正文传递数据都是明文传送数据只要是明文传送数据那就是不安全的在传输过程中就很容易被中间人截获造成信息泄露或者信息被篡改。
结论http采用明文传递数据不具有安全性。
为了解决http协议明文传输数据的安全性问题就需要对数据进行加密处理加密是在应用层实现的将加密数据在网络中传输的协议即为https协议。相较于http协议https协议更具有安全性图1.1为https协议工作方式的图解。
结论https协议传输加密数据安全性更有保证。 图1.1 https协议工作原理 二. 中间人截获
在早期采用http协议传输数据时有时候会存在运营商截获现象一个最典型的场景是我们希望下载软件A但是使用软件A的下载链接下载后发现实际上下载的是软件B。造成这种现象可能得原因之一就是运营商在网络中截获的数据信息发现了软件A的下载链接将软件A得下载链接替换为软件B的下载链接就造成了希望下载的软件与实际下载的软件不同的现象。
在这种场景下运营商充当的就是中间人在网络中截获并篡改数据。
在公共场所中我们常会用到免费WIFI这其实就是安全隐患提供免费WIFI的路由器等设备都有可能截取到用户发送的数据造成信息泄露。 图1.2 中间人截获并篡改数据的原理 三. 常见的加密方法
3.1 对称加密
对称加密仅使用一个秘钥key加密和解密都使用这一把秘钥这种加密解密的方法称为对称加密也称为单秘钥加密。常见的对称加密算法DES3DESBlowfish。对称加密的特征算法简单加密解密速度快、效率高。
通过按位异或的方式加密解密就是最简单的一种对称加密方式。如原文数据a2023秘钥key8888那么a加密后的数据c就变为了ca^key9567使用同一把秘钥key对密文数据进行解密获取原文数据ac^key2023。
3.2 非对称加密
对称加密使用两把秘钥配对使用一把公钥一把私钥公钥向全网公开私钥则是私密的。当客户端拿到公钥时可以使用公钥进行加密服务端在获取到加密后的信息后通过秘钥进行解密从而获取原始的明文数据。公钥和私钥一把用于加密一把用于解密可以用公钥加密私钥解密反过来使用私钥加密公钥解密亦可。常见的非对称加密算法RSA、DSA、ECDSA。非对称加密的特点加密的可靠性依赖于秘钥、公钥以及算法的可靠性和复杂度由于其算法复杂因此加密和解密效率较低。
四. 数据摘要和数据签名的概念
数据摘要
数据摘要就是通过哈希算法将原文转换为一定长度的密文即使非常小幅度的改变原文通过哈希算法生成的密文差别也会非常大。通过哈希算法生成的数据摘要严格来说不能算是一种加密方法因为没有对应的解密手段即原文生成密文很容易但是如果要通过密文破解原文难度则非常之大。常见生成数据摘要的哈希算法MD5、SHA256、SHA512。数据摘要也被称为数据指纹。
数据签名
通过特点的秘钥对数据摘要加密生成的密文被称为数据签名。数据签名主要用于认证数据的合法性保证客户端接收到的数据不会被中间人篡改见第六章。
五. https不同加密方式的安全性的探究
5.1 使用对称加密
使用对称加密时客户端和服务器要事先协商秘钥客户端和服务器在向网络中发送数据时都要实现通过秘钥加密这样中间人在网络中截获到的数据就是被加密后的数据中间人拿不到秘钥也就无法破解密文获取原文数据。
对称加密要保证安全性就必须为每个客户端都单独维护一个秘钥因为如果使用相同的秘钥那么秘钥就会广泛分布在网络设备中黑客就可以很容易的获取到秘钥也就无法保证安全性而为每个客户端都维护独立的秘钥成本很高。
那么如果客户端和服务端在进行通信之前事先协商秘钥呢这样也是不可行的。因为双方协商的秘钥需要通过网络进行传输而秘钥传输要通过明文进行如果黑客截获了秘钥那么后续传输的数据就很容易被黑客截获并破译。
那么如果将双方协商的秘钥再用另一把秘钥加密呢对秘钥进行加密的秘钥要需要事先通过明文传送让通信双方获取这样本质上与上段所提到的不安全场景没有区别只不过是多了一层而已。 图5.1 对称加密实现协商秘钥不安全的原因 5.2 使用非对称加密
非对称加密要用到一把公钥C和一把私钥S将公钥C公布于网络中假设客户端使用公钥C加密那么如果黑客在网络中截获了客户端加密后的信息由于没有私钥就无法破译原文这样就可以基本保证客户端发送给服务端数据和安全性。但是服务器向客户端发送数据时通过私钥加密客户端就需要公钥来解密由于公钥是在网络中公开的黑客自然也就可以获取公钥这样单向的非对称加密就无法保证数据的安全性。
那么如果通信双方均使用非对称加密呢这样虽然可以极大地提高安全性但也无法保证绝对安全且由于非对称加密算法的复杂度大这样加密和解密的效率就会很低。 图5.2 使用非对称加密不安全的原因 5.3 非对称加密和对称加密配合使用
非对称加密和对称加密配合使用的通信操作流程为
存在用于非对称加密的公钥M和私钥M。在正式通信之前客户端先向服务器发送请求获取其公钥M。客户端生成对称加密的秘钥C通过公钥M加密服务器接收到了客户端加密传输的秘钥C通过私钥M解密这条通信双方就都拿到了对称加密秘钥C。在之后的通信中通信双方使用对称加密即可秘钥双方已经通过非对称加密传输协商完成。这种场景下如果黑客只截取了加密后的内容由于拿不到秘钥依旧无法破译获取原文。但是黑客依旧有手段窃取和篡改数据。 图5.4 非对称加密与对称加密配合使用的原理 在这种场景下虽然中间人黑客不能通过获取秘钥来破译信息但依旧可以通过截取并篡改公钥的手段获取信息原理如下
服务器有公钥S和配对秘钥S中间人有一组公钥M和秘钥M。当客户端向服务器发送请求获取公钥S时服务器明文传回公钥S。此时中间人如果截获了服务器明文传回的公钥就可以将公钥S保存下来然后替换为自己的公钥M发回给客户端而客户端不知道公钥S已经被篡改为了M。之后客户端再向服务器发送协商好的对称加密秘钥C时会使用中间人的公钥M加密而中间人如果截获了客户端向服务器发送的数据就可以使用自己的私钥M破译出原文。中间人此时再通过先前保存的公钥S对破译获得的对称加密秘钥C加密发给服务器服务器就无法得知C已经泄露依旧使用秘钥S解密获取C。之后客户端和服务器的正式通信都使用对称加密秘钥为C已经被黑客窃取此时如果信息被黑客截取黑客就能够通过C解密获取原文。 六. CA认证
首先分析对称加密和非对称加密配合使用场景下不安全的原因这是由于黑客在对称加密秘钥协商完成之前就入侵了网络并将数据进行了篡改。
那么如果客户端能够识别出其收到的数据是被篡改过的数据进而终止向服务器发送数据就可以避免信息的泄露。而客户端识别数据是否被篡改的依据就是权威的CA机构颁发的CA证书在https协议中服务器向客户端发送的就是其CA证书CA证书上会携带服务器的公钥以及其他的服务器相关信息。
CA证书就类似于我们生活中的身份证身份证由权威机构政府颁发是可以被信任的如果身份证冒用或者造假很容易就会被识别出来。
如果某服务端希望实现https协议通信那就要向权威的CA机构申请CA证书CA机构会对服务端进行审核审核通过为该网站生成专门的数据签名流程如下
CA机构尤其公钥A和私钥A。通过Hash算法获取服务端申请下来的认证证书对应的数据摘要。CA机构通过其私钥A对数据摘要进行加密获取对应的数据签名。
我们可以认为服务端获取的CA证书的内容为证书的明文信息 对应数据签名服务器就是将证书明文 对应数据签名发回给客户端的。 图6.1 通过CA认证获取数据签名的流程 客户端通过CA证书判别服务端发送的数据是否在网络中被黑客篡改的流程为
将服务器发回来的证书的明文信息和数据签名做分离。将分解出来的明文信息通过Hash算法生成对应的数据摘要在通过CA机构的公钥A解密数据签名得到解密后的数据摘掉。对比通过对明文Hash和解密数签名要后获取的摘要如果不相同则表示数据被替换过了客户端会终止向服务器发送数据。如果相同通过明文数据检查目标服务器是否正确以防止黑客替换整张CA证书。 图6.2 客户端通过CA证书判断数据是否被篡改的流程 七. 总结
http协议采用明文传输数据https协议采用密文传输数据相对于http协议https协议更加安全。早期采用http协议通信时数据容易被中间人截获并篡改。对称加密和非对称加密是两种常用的加密方式对称加密中加密和解密使用同一把秘钥进行而非对称加密有一把公钥一把私钥一把负责加密另一把负责解密公钥在全网公开私钥私有不公开。数据摘要是将正文内容通过Hash算法生成的内容而数据签名则是对数据摘要使用秘钥加密后生成的内容。在https协议通信中采用对称加密、非对称加密、对称加密与非对称加密配合的方法都存在安全隐患不能保证数据不被黑客截获。通过 CA认证 对称加密 非对称加密 的方式可以保证数据传输的安全性。客户端通过检查服务端发回的CA证书的合法性就能判断数据是否在网络中被第三方修改如果数据被修改了客户端就会终止向服务器发送数据。