HTTP无法保证通信数据的完整性,黑客可能会算改通信数据。目前很多黑客工具都提供了中间人攻击功能,在拦截了客户端与Web服务器之间通信的流量之后,黑客就可以偷偷换掉客户端本来请求的文件。为了防止这种情况的发生,很多专门提供下载的网站都会在提供文件下载的同时,还会显示这个软件的MD5码。MD5码是每个文件的唯一校验码,此特性常被用于文件完整性验证。通过MD5验证即可检查文件的正确性,例如可以校验出下载文件中是否被捆绑有其他第三方软件、木马或后门,如果校验结果不正确,就说明文件已被人擅自篡改。
一、http协议。
Http协议是一络传输协议,规定了浏览器和服务器之间的通信方式。网络模型中的应用层。
但其信息传输均为明文,不够安全,易于截取和篡改。
篡改后:
二是对称加密。
为了确保通信的安全性,浏览器和服务同意使用对称的加密方法进行通信。在发送信息之前,用相同的密钥加密和解密数据。
这种方式的数据以密文的形式出现在网络上,但是第一次发送密钥时,由于是明确的形式发送的,所以容易截取和解密通信数据。因为还有很大的安全风险,所以一般采用非对称密码发送对称密码。
三是采用非对称加密。
非对称加密包括一组密钥、公钥和私钥。公钥可以明确加密,私钥可以解密,私钥可以解密,公钥不能解密。也可以用私钥加密,公钥解密,公钥只能解密。
下列过程实现了发送对称密钥:
1.浏览器生成随机密钥。
2.浏览器向服务器请求公钥。
三、服务器向浏览器发送公钥。
4.浏览器接收服务器发送的公钥,用公钥加密随机生成的对称密钥,并发送给服务器。
5.服务器接收浏览器发送的数据,用自己的密钥解密,得到对称的密钥。
6.此时,浏览器和服务器可以使用对称加密密钥进行通信。
然而,这种方法仍然存在安全隐患:在第三步和第四步之间,当服务器向浏览器发送公钥时,中间人切断数据并修改后发送给浏览器。此时,浏览器无法验证公钥的准确性。只有收到的公钥才会被用来加密对称密钥并发送出去。这时,中间人切断数据,用自己的私钥解密,用服务器的公钥重新加密对称密钥并发送给服务器。然后,在不知情的情况下,浏览器和服务器使用对称密钥进行通信。然而,中间人很容易解密通信数据,因为他已经掌握了对称密钥。
认证问题在这里很明显。如果浏览器能验证所获公钥的来源,则可以安全地发送对称密钥。它需要数字证书。
四是使用https数字证书确保数据安全。
众所周知,非对称加密需要认证,那么如何验证数字证书的身份呢?
第一,数字证书是第三方机构(CA),它为网站提供了唯一的身份证明,就像身份证一样。该证书包括两个主要部分,一个是明文信息(包括服务器公钥、服务器本身信息、第三方机构信息)。用来传送服务器公钥,生成信息摘要,验证信息是否被篡改)和数字签名。
如何生成数字签名,首先用哈希算法生成信息摘要,然后用CA的私钥加密信息摘要。(注意服务器不知道ca的私钥,只有数字签名)
如何在收到证书后验证浏览器,首先用ca公钥解密数字签名,生成相应的信息摘要;同时,使用相同的哈希算法处理服务器地址,生成信息摘要。通过比较两个信息摘要,可以验证服务器的公钥没有被篡改。
Ca认证流程图:
下图显示证书:
指纹即时数字签名如下。
当浏览器要求公钥时,服务器不仅发送公钥,还发送包含公钥的数字证书。
如何解密浏览器:浏览器维护了所有著名的第三方机构。收到证书时,
1.首先检查是否在有效期内。如果失败,将不再发送随机对称密钥;
2.找到第三方组织的名称,比较第三方组织的公钥解密数字签名,得到hash1值。
3.同样,根据服务器地址等信息,使用签名算法生成hash2。
4.比较hash1和hash2。如果是一样的,验证就成功了。
5.认证成功后,使用相同组织的公钥解密网站的公钥。
6.浏览器使用解密公钥向服务器发送对称密钥。
补充:1。数字签名和网站公钥由组织密钥加密,如果数字签名验证成功,网站公钥的准确性可以得到保证。
2.如果中介用自己的数字证书代替数字证书,由于网站不同,数字签名验证将失败。
动词(verb缩写)SSL安全层。
https的主要思想是在tcp/ip模型中添加ssl层,上述安全验证通过携带ssl层来完成。
还没有评论,来说两句吧...