微信网站这么做,拿网站的文章做外链,网站添加地图导航,个人淘宝开店流程步骤目录
加密方式
对称加密
非对称加密
非对称加密 非对称加密
非对称加密 对称加密
AC证书
AC证书内容
数据摘要
数据签名 在我们前面学习的http协议里面#xff0c;我们发送的内容都是明文传输的#xff0c;所以在安全上并不安全#xff0c;但是在现在信息发达的时…目录
加密方式
对称加密
非对称加密
非对称加密 非对称加密
非对称加密 对称加密
AC证书
AC证书内容
数据摘要
数据签名 在我们前面学习的http协议里面我们发送的内容都是明文传输的所以在安全上并不安全但是在现在信息发达的时代里如果还是使用 http 协议那么就是很危险的所以目前我们接触到的基本上都是 https 协议。
而https协议上也就是在 http 协议里面加了 TLS/SSL 协议而这两个协议就是用来加密的。
http协议是明文传输的所以当有中间人修改数据后我们也是不能被发现的或者是明文传输的话被黑客看到我们的信息那么也是很不隐私的。
那么解决方案是什么呢加密
加密方式
但是我们下面并不是要谈加密而是谈如何加密
那么加密有哪些方式呢 对称加密 非对称加密 非对称 对称加密
加密的方式就是这三种那么这些加密有什么特点呢
对称加密
对称加密对称加密相对于非对称加密比较简单举一个简单的例子对称加密有假设现在发送的是数据 那么对这个数据异或另一个数字然后得到带了一个数据那么这个数据就是经过加密的数据当这个数据到达对端主机后那么将这个数据在异或这个密钥那么就可以得到原始的数据。 这就是使用对称加密但是对称加密是有问题的。
如果使用对称加密那么第一次的密钥怎么让对方主机知道呢
如果服务器将通信使用的密钥明文发送的话那么就会被黑客看到那么第一次的密钥协商就是有问题的那么此就需要一个密钥的密钥来解决问题这就是鸡生蛋蛋生鸡的问题了。
非对称加密
非对称加密就是首先服务器有公钥和私钥当客户端第一次给服务器发送的时候服务器就会将自己的公钥交给客户端那么客户端就可以拿公钥加密然后发送给服务器此时就只有拿私钥的服务器能解密的后面服务器也就可以拿私钥加密然后客户端手里有公钥那么客户端也就可以看到服务器发送的数据了。 非对称加密就是这样但是非对称加密也是有问题的因为不仅仅是客户端给服务发送数据服务器也需要给客户端响应那么当服务器给客户端响应的时候黑客也是可以看到服务器的公钥的那么此时黑客就可以看到服务器到客户端的数据此时也是不安全的。
那么需要怎么办呢
非对称加密 非对称加密
由于只有一个非对称加密是不够的那么就需要采用双放都是非对称加密。
第一次客户端访问服务器然后服务器给客户端返回自己的公钥此时公钥是可以被其他人拿到的然后客户端拿到服务器公钥后拿服务器公钥对自己的公钥加密然后发送给服务器此时黑客是不能拿到的因为此时被服务器公钥加密的数据只能由服务器的私钥解密然后服务器拿到了客户端的数据后使用自己的私钥解密然后拿到客户端的公钥此时服务器就可以给客户端发送数据的时候就可以拿客户端发送的公钥加密了此时发送到网络中的数据只有客户端可以解密。 但是非对称加密是比较复杂的而且在解密的时候也是比较浪费世间的所以非对称加密非对称加密是不好的其实不光是这样而且其实也是可以被中间人拿到数据的
那么中间人要怎么拿到数据呢我们下面先看一下如何解决非对称加密的速度慢的问题。
非对称加密 对称加密
上面由于双方都是非对称所以比较慢下面使用非对称和对称一起用前面使用非对称密钥协商对称密钥后面就使用对称密钥来通信。
首先客户端访问服务器服务器将公钥发送给客户端客户端使用服务器公钥对一格对称密钥加密然后对称密钥此时是不能被黑客看到的所以此时数据是安全的当服务器拿到数据后解密拿到对称密钥然后后面就是使用对称密钥加密解密。 这里我们就来说一下前面说的中间人问题那么中间人怎么攻击呢
假设现在有一个中间人mid。
当客户端服务器第一次通信的时候也就是当服务器给客户端返回公钥M的时候此时中间人将M替换成自己的公钥H但是把M保存起来此时在将数据发送给客户端此时客户端拿到的公钥就是H然后客户端会使用H来加密一个对称密钥S然后发送给服务器此时中间人拿到该数据然后使用中间人的私钥H‘来解密拿到对称的密钥然后中间人对对称密钥S使用M加密然后发送给服务器此时服务器也就拿到了对称密钥S在此过程中客户端和服务器都不知道中间人的存在也并不知道中间人修改过数据在客户端和服务器协商好密钥S后就使用密钥S通信但是中间人也是知道S密钥的所以此时中间人是可以知道客户端和服务器的数据的。
AC证书
我们发现上面的加密都是有问题的那么我们需要怎么做呢
AC证书AC证书是什么呢AC证书就是一个可以信任的机构该机构为特定的网站颁发证书然后每一次通信的时候网站就将该证书进行hash映射形成摘要然后通过加密后形成签名然后就将该证书与签名一起发送过去如果中间被修改那么对签名进行解密后然后再对证书进行相同的hash映射后如果形成的摘要和签名解密后的摘要不同那么说明数据被中间人修改过所以就是不可以的。
上面就是如何通过AC证书来检测数据是否被修改过如果修改过那么该数据就是不可信任的。
下面我们介绍一下什么是AC证书
AC证书内容
AC证书里面包含了一些内容其中该内容就包含了对应网站的信息例如网站的网址、以及该网站的公钥等...
重要的就是该网站的公钥主要是为了让客户端看到该公钥。
数据摘要
数据摘要就是对AC证书进行hash有映射对证书进行hash隐私后就形成了摘要然后对摘要再进行AC机构的私钥加密后然后形成数据签名。 数据签名
数据签名就是再通过数据摘要然后使用AC机构的私钥加密只能由AC机构的公钥解密但是私钥只有AC机构拥有所以想要形成签名只能由AC机构来形成。
所以对数据摘要进行加密后就形成了签名。 有了数据签名后此时网站和客户端通信的时候就可以将网站的信息和数据签名放在一起了然后发送给客户端。
那么有了数据签名和证书后看一下如何加密。 此时当客户端第一次给服务器发送数据的时候服务器给客户端返回了自己的证书和数据签名放到一起。
如果此时中间人想攻击的时候那么中间人将AC证书里面的公钥切换为自己的公钥。
那么当该数据到达客户端的时候客户端就会验证AC证书的真假客户端就会对AC证书进行相同的hash映射然后形成数据摘要然后在对数据签名进行解密也形成一个数据摘要如果AC证书美哟被修改那么这两个摘要就是相同的如果被修改了那么形成的数据摘要就会差别很大此时客户端就会意识到数据被修改。