【计算机网络】之 HTTPS 保证数据安全防止被篡改

目录


一、HTTPHTTPS


1、HTTP 简介

HTTP(Hyper Text Transfer Protocol,超文本传输协议),是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

但 HTTP 协议以明文方式传输数据,不提供任何方式的数据加密,如果攻击者截取了 Web 浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP 协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

2、HTTPS 简介

HTTPS(Hypertext Transfer Protocol Secure,安全套接字层超文本传输协议),是 HTTP 协议的安全版本。

由于 HTTP 协议传输的数据都是明文,未加密的,因此使用 HTTP 协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了 SSL(Secure Socket Layer,安全套接层)协议用于对 HTTP 协议传输的数据进行加密,从而就诞生了 HTTPS。

简单来说,HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。而 SSL 依靠证书来验证服务器的身份,从而为浏览器和服务器之间的通信加密。

HTTPS 的主要作用有两点:

  • 1、建立一个信息安全通道,来保证数据传输的安全;
  • 2、确认网站的真实性。

二、HTTPS 是如何保证数据安全的


1、对称加密

服务端与客户端使用明文传输数据的过程可能会被黑客截取数据,这时我们可以通过对数据进行加密的方式来保证数据安全,具体操作流程为:

  • 1、每次数据传输之前,服务端会先传一把密钥给客户端;
  • 2、接着,服务端发送数据前会用这把密钥对数据进行加密,客户端收到消息后使用之前服务端给的密钥进行解密,这样就得到真正的数据了;
  • 3、同样,客户端给服务端发送数据前也使用这把密钥进行加密,服务端收到消息后也用这把密钥进行解密得到数据。

这样,就保证了数据传输的安全性,这种加密和解密都用同一把密钥的方法称之为对称加密。

但这个策略存在的问题是,服务端是以明文的方式把这把密钥传输给客户端的,如果黑客截取了这把密钥,服务端与客户端就算是加密了内容,在截取了密钥的黑客眼里,这和明文没啥区别。

2、非对称加密

对称加密存在密钥会被截取的问题,那么,我们可以使用另一种加密方式:非对称加密,具体操作流程为:

  • 1、客户端和服务端各自生成一对公钥和私钥,公钥是可以公开的,密钥只要自己才知道的;并且,用公钥加密的数据,只有对应的私钥才能解密;用私钥加密的数据,只有对应的公钥才能解密。
  • 2、客户端把自己生成的公钥发送给服务端用于解密,同样服务端也把自己生成的公钥发给客户端用于解密。
  • 3、服务端在给客户端传输数据的过程中,会用客户端给他的公钥进行加密,然后客户端收到后,再用自己的私钥进行解密。同样,客户端给服务端发送消息的时候,也会用服务端给他的公钥进行加密,然后服务端再用自己的私钥进行解密。

这种加密和解密使用不用密钥的方法就是非对称加密。虽然,非对称加密解决了对称加密中密钥被截取的问题,但还是存在一个问题:

假如服务端在给客户端发送公钥过程中,被黑客截取了,并用自己的公钥冒充服务端的公钥发给客户端;这时,客户端收到公钥后,用公钥进行数据加密传输(此时用的公钥实际是黑客的公钥),黑客截取加密消息之后,就可以用他的私钥进行解密获取真实数据。在篡改了数据之后再用截取到服务端的公钥进行加密,之后再发给服务端。这样,数据就存在被篡改暴露的问题了。

也就是说,非对称加密之所以不安全,是因为收到了公钥之后,无法确定这把公钥的真实来源。

3、数字证书

为了解决非对称加密的公钥来源问题,我们需要一种策略来证明公钥的来源不是被别人冒充的,而这种策略就是:数字证书。我们需要一个拥有公信力、大家都认可的认证中心(CA, Certificate Authority)。

1)生成数字证书

服务端在给客户端发送公钥过程中,会把公钥以及服务端自己的个人信息通过 Hash 算法生成消息摘要

为了防止摘要被人拦截调换,服务端还会用 CA 提供的私钥(需要付费购买)对消息摘要进行加密形成数字签名

最后再把原先未经过 Hash 算法的信息服务端的公钥和个人信息)和数字签名合并在一起形成数字证书。整个流程如下图:

2)解析数字证书

客户端拿到这份数字证书之后,就会使用 CA 提供的公钥来对数字证书里面的数字签名进行解密得到消息摘要。然后对数字证书里面服务端的公钥和个人信息进行同样的 Hash 算法得到另一份消息摘要。最后把两份消息摘要进行对比,如果一样,则证明这些信息数据确实是来源服务端的,否则就不是。如图:

这时有人就会有疑问了,客户端是怎么拿到 CA 的公钥的?其实,原因很简单,常用的客户端,比如浏览器,一般都会内置一些常用的认证中心的公钥,但服务端的 CA 私钥是要申请购买的。


实际应用

在传输数据的过程中,由于在速度上用对称加密的方法会比非对称加密的方法快很多,所以在传输数据的时候,一般不会只用非对称加密这种方法,而是会采用非对称加密 + 对称加密这两种结合的方法。实际的操作为:用非对称加密方法来安全传输密钥,之后再用对称加密的方法来传输消息内容

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值