0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HTTPS如何保证数据安全?

kae1_cdebyte 来源:亿佰特物联网应用专家 作者:亿佰特物联网应用 2022-10-28 09:47 次阅读

虽然现在许多网站都会用到HTTP和HTTPS,但是大家极力倡导使用的却是更为安全的HTTPS,今天我们就来了解一下HTTPS是如何保证数据传输的安全性的。

本篇概要:1.HTTP的缺点2.HTTPS如何保证数据安全性3.对称加密和非对称加密4.HTTPS的请求过程5.如何防止数字证书被篡改6.单双向认证

1为什么说HTTP不安全?

HTTP本质上就是一个TCP连接,只不过协议规定了使用80端口,以及发送命令或数据的格式,而TCP本身是没有加密的功能。致命的是,HTTP在数据传输过程中,数据就是以明文的方式传输的,由于数据没有被加密,所以很容易出现数据窃听、篡改或者是身份伪造的不安全的行为。

有什么优化的方法?

既然使用明文进行数据传输不安全,那我们可以尝试一下对数据进行加密处理。比如,通信双方可以约定一种算法,首先将需要发送的数据按照一定的规则进行加密,然后对方接收到消息后按照相同的规则进行解密。这个就是对称加密的体现形式了。

所谓对称加密,即原文和密文可使用一个相同的密钥进行加密和解密,即使用同一把密匙对原文加密得到密文或者是对密文解密获取到原文。其优点是加密解密效率较高。

833acf48-5608-11ed-a3b6-dac502259ad0.png

但是使用对称加密有一个关键点,那就是这个对称密钥,应该如何来确定呢?在HTTP请求中,加密密钥协商,还是个难题。

2HTTPS如何保证数据安全的呢?

在HTTPS数据传输过程中对数据进行加密处理,HTTPS是使用对称加密和非对称加密、签名算法(签名算法不是用来做加密的)以及证书机制来对消息进行处理,以此达到一个安全的有效传输。

HTTPS是基于HTTP的上层添加了一个叫做TLS的安全层,对数据的加密等操作都是在这个安全层中进行处理的,其底层还是应用的HTTP。HTTPS通信先是使用非对称加密进行密钥的协商,协商出一个对称加密的密钥,之后的通信则采用这个对称密钥进行对称加密密文传输。因为非对称加密其算法极其复杂,导致解密效率低下,而对称加密效率则明显高出百倍。

在上面我们提到过,对明文使用同一把密钥进行加密和解密是属于对称加密。那么非对称加密又是怎样的呢?

非对称加密

非对称加密,即原文加密和密文加密使用的是两个不同的密钥,一把称之为公钥,一把称之为私钥,使用公钥加密的内容可以通过私钥进行解密,同样,使用私钥加密的内容使用公钥可以进行解密。公钥和私钥是相对而言的,通常而言,保留在己方不对外泄露称之为私钥,可公布公开的称之为公钥。

836c97c6-5608-11ed-a3b6-dac502259ad0.png

非对称加密对明文进行加密和解密是使用的不同的密钥。但是,我们在上面提过,在使用加密时,其难点就在于密钥协商过程,那么,HTTPS是如何处理这个密钥协商过程呢。

在这里,我们需要引入一个新的名词:数字证书。

数字证书

所谓数字证书,就是一份类似于身份证一样的网络通信凭证,以证明所请求对象的身份信息不被篡改并且是真实有效的,当我们请求某个网站时,先去请求网站的数字证书,然后检查证书的真实性和有效性,从而一步步进行身份验证,具体过程会在后面进行图解。

所谓证书,就是服务端从网站公证处备案申请的一个身份证这样的一个东西,里面包含有有效期开始时间、结束时间、证书持有人、签名以及最关键的持有人的公钥信息等。通常情况下,我们会为服务端配置SSL证书,SSL证书是数字证书的一种,由受信任的数字证书颁发机构(简称CA)颁发,具有服务器身份验证和数据传输加密的功能。

就好比我们访问亿佰特网站,我们怎么知道我们访问的亿佰特网站是否是一个假的呢,所以我们通常在访问时,先去获取对方网站的证书信息,然后和本地浏览器载入的证书进行比较看是否是安全的。

HTTPS通信在客户端请求服务端时,先去获取服务端的证书,然后将证书在本地进行对比校验(通常浏览器中会内置很多证书,如上图);当验证通过时,则表示是一个安全的证书,否则浏览器状态栏会提示“不安全”。

3HTTPS的请求过程

在上面我们简单介绍了一下HTTPS和数字证书,但是它们是如何来解决HTTP中存在的数据窃听、数据篡改、身份伪造问题的呢?

83a95544-5608-11ed-a3b6-dac502259ad0.png

上图是HTTPS简单的请求模型,使用这个模型可以完美的解决上面提到的三个问题点。

在第一次请求时,客户端先去请求服务端的数字证书,并且生成一个随机数R1,将随机数和自己支持的加密算法告诉服务端。

服务端收到客户端的请求后,选择双方共同支持的加密算法,并且生成新的随机数R2,将服务器的数字证书及加密算法、随机数一并返回给客户端。

客户端收到服务端的数字证书,然后使用浏览器内置的CA证书进行解密获取到证书中的服务端的公钥及服务端的认证信息,从而确保证书没有被人篡改过。然后生成新的随机数R3,使用服务端的公钥对随机数R3进行加密后返回给服务端并将随机数R1、R2、R3组合成一串密钥用作对称加密用。

服务端收到客户端加密后的随机数R3,使用自己的私钥对密文进行解密获取到随机数R3,组合R1、R2、R3获取到一串密钥(和客户端一致);然后开始使用对称加密进行通信。

上述就是HTTPS对密钥协商的过程,由于非对称加密一方密匙加密后只能使用另一方密匙解密,所以在前两次数据传输中即使被窃听也不怕,因为在第三次传递随机数R3时是使用公钥加密的,只有服务端的私钥才能解密,从而确保密钥的安全性。

4如何防止数字证书被篡改

在上面的请求模型中,如何防止客户端返回的数字证书被篡改呢?

我们在申请数字证书时,会提供我们的基本信息以及企业域名信息等,证书颁发机构CA会根据证书中的这些信息以及所提供的签名算法对内容进行摘要,得到一个消息摘要(散列hash串),即使用Hash算法获取到的一个唯一标识,然后CA机构会使用自己的私钥对摘要进行加密,获取到一个密文,即数字签名,也叫做指纹;表示其唯一性。然后证书颁发机构对整个明文数字证书使用证书颁发机构CA自己的私钥进行加密,得到数字证书。

851dc02c-5608-11ed-a3b6-dac502259ad0.png

当数字证书中的内容被篡改时,使用Hash算法对内容进行计算获取到新的摘要,只需要对比一下两个摘要是否相同即可知道证书中的数据知否有被篡改。

85901f5a-5608-11ed-a3b6-dac502259ad0.png

当客户端请求数据从浏览器端获取到数字证书后,通过浏览器内置的CA证书中的公钥对数字证书进行解密,获取到明文数字证书(包含企业基本信息及服务端公钥以及数字签名),通过如上图所示方式来判断证书是否有被篡改。

85a8d37e-5608-11ed-a3b6-dac502259ad0.png

单双向认证

在上面的例子中,客户端请求服务端获取证书信息进行认证,这个就是单向认证,只是客户端认证服务端,但是服务端并没有认证客户端的请求。HTTPS支持单向认证,也支持双向认证。

双向认证的情况通常比较少见,常见于银行等领域,就像我们以前使用银行的U盾,这就是一种双向认证案例,还有就是在电脑上安装支付宝的证书等;双向认证比单向认证更加安全,但是需要对每一个客户端都进行分配证书。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTTP
    +关注

    关注

    0

    文章

    467

    浏览量

    30316
  • 数据安全
    +关注

    关注

    2

    文章

    607

    浏览量

    29800

原文标题:HTTPS如何保证数据安全?讲得很细!

文章出处:【微信号:cdebyte,微信公众号:亿佰特物联网应用专家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问NFC数据传输如何保证数据安全

    NFC数据传输如何保证数据安全
    发表于 04-07 06:18

    雅特力AT32 MCU基于mbed TLS的HTTPS服务器

    HTTPS概述HTTPS安全性是基于TransportLayerSecurity(TLS),TLS是一种网络加密通信的方式,作为SecureSocketsLayer(SSL)的接续协议,TLS允许
    的头像 发表于 01-06 08:14 168次阅读
    雅特力AT32 MCU基于mbed TLS的<b class='flag-5'>HTTPS</b>服务器

    如何保证数据中台产品的安全性?#数据中台 #光点科技

    数据
    光点科技
    发布于 :2023年11月01日 09:22:37

    如何保证数据填报采集的安全性?#数据填报系统 #光点科技

    数据
    光点科技
    发布于 :2023年10月25日 10:11:03

    如何保证表单数据安全性?#数据填报 #光点科技

    数据
    光点科技
    发布于 :2023年10月20日 09:28:31

    Tbox如何做防护来保证数据安全

    Tbox如何做防护来保证数据安全呢?
    发表于 10-16 06:48

    HTTPS是如何做安全认证的

    想必大家对 HTTPS 都有一定的了解吧。今天将给大家聊聊 HTTPS 是如何做安全认证的。HTTPS 是 HTTP 的一个扩展,允许计算机网络中的两个实体之间进行
    的头像 发表于 10-09 15:54 637次阅读

    什么是HTTP?什么是HTTPS?HTTP与HTTPS的区别在哪?

    每天都在上网,在搜索东西的时候,你有发现网址有什么不同吗?本文就来谈谈HTTP与HTTPS有什么不同。
    的头像 发表于 08-27 09:15 1520次阅读
    什么是HTTP?什么是<b class='flag-5'>HTTPS</b>?HTTP与<b class='flag-5'>HTTPS</b>的区别在哪?

    基于分级安全的OpenHarmony架构设计

    自己的TCB,并且基于分级安全架构,来限制特权应用程序的规模。在现代操作系统鼻祖MULTICS在1965年设计的时候,安全架构的设计初衷是“即使它被间谍渗透控制了,仍然能够保证操作系统的数据
    发表于 08-04 10:39

    如何保证我们的数据安全

    的解决方案。但事实上,数据加密对于向你的领导团队、你的客户、你的投资者和其他有价值的利益相关者保证你将安全放在首位,以及你的组织已经采取了符合行业最佳实践的措施来防止数据泄露、泄漏或错
    的头像 发表于 07-31 17:41 795次阅读
    如何<b class='flag-5'>保证</b>我们的<b class='flag-5'>数据</b><b class='flag-5'>安全</b>

    数据中台如何保证数据质量和数据安全?#数据中台 #光点科技

    数据
    光点科技
    发布于 :2023年07月18日 10:12:10

    如何保证数据中台的安全性?#数据中台 #光点科技

    数据
    光点科技
    发布于 :2023年07月03日 17:44:12

    HTTP和HTTPS的区别 HTTP协议请求类型

    HTTP协议在传输过程中数据都是明文状态,安全性较差。HTTPS协议使用SSL/TLS协议进行数据传输,保证
    的头像 发表于 06-26 17:44 741次阅读

    数据中台如何保证数据安全性?#数据中台 #光点科技

    数据
    光点科技
    发布于 :2023年06月25日 15:07:59

    RISC-V如何保证高权限模式程序及外设的安全性?

    RISC-V有机器模式、监管模式和用户模块,但无论在哪个模式下当TRAP发生时都会转到机器模式,是不是也就意味着在用户模式下进入中断服务程序也会拥有机器模式的权限,那我们如何保证高权限模式程序及外设的安全性?
    发表于 05-26 08:11