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

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

3天内不再提示

HTTPS如何保证数据安全?讲得很细!

亿佰特物联网应用专家 2022-11-01 16:34 次阅读

虽然现在许多网站都会用到HTTP和HTTPS,但是大家极力倡导使用的却是更为安全的HTTPS,今天我们就来了解一下HTTPS是如何保证数据传输的安全性的。本篇概要:1.HTTP的缺点2.HTTPS如何保证数据安全性3.对称加密和非对称加密4.HTTPS的请求过程5.如何防止数字证书被篡改6.单双向认证

1

为什么说HTTP不安全?

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

有什么优化的方法?

既然使用明文进行数据传输不安全,那我们可以尝试一下对数据进行加密处理。比如,通信双方可以约定一种算法,首先将需要发送的数据按照一定的规则进行加密,然后对方接收到消息后按照相同的规则进行解密。这个就是对称加密的体现形式了。
所谓对称加密,即原文和密文可使用一个相同的密钥进行加密和解密,即使用同一把密匙对原文加密得到密文或者是对密文解密获取到原文。其优点是加密解密效率较高。59f21574-5775-11ed-b116-dac502259ad0.png但是使用对称加密有一个关键点,那就是这个对称密钥,应该如何来确定呢?在HTTP请求中,加密密钥协商,还是个难题。

2

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

在HTTPS数据传输过程中对数据进行加密处理,HTTPS是使用对称加密和非对称加密、签名算法(签名算法不是用来做加密的)以及证书机制来对消息进行处理,以此达到一个安全的有效传输。HTTPS是基于HTTP的上层添加了一个叫做TLS的安全层,对数据的加密等操作都是在这个安全层中进行处理的,其底层还是应用的HTTP。HTTPS通信先是使用非对称加密进行密钥的协商,协商出一个对称加密的密钥,之后的通信则采用这个对称密钥进行对称加密密文传输。因为非对称加密其算法极其复杂,导致解密效率低下,而对称加密效率则明显高出百倍。在上面我们提到过,对明文使用同一把密钥进行加密和解密是属于对称加密。那么非对称加密又是怎样的呢?

非对称加密

非对称加密,即原文加密和密文加密使用的是两个不同的密钥,一把称之为公钥,一把称之为私钥,使用公钥加密的内容可以通过私钥进行解密,同样,使用私钥加密的内容使用公钥可以进行解密。公钥和私钥是相对而言的,通常而言,保留在己方不对外泄露称之为私钥,可公布公开的称之为公钥。
59fea91a-5775-11ed-b116-dac502259ad0.png非对称加密对明文进行加密和解密是使用的不同的密钥。但是,我们在上面提过,在使用加密时,其难点就在于密钥协商过程,那么,HTTPS是如何处理这个密钥协商过程呢。

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

数字证书

所谓数字证书,就是一份类似于身份证一样的网络通信凭证,以证明所请求对象的身份信息不被篡改并且是真实有效的,当我们请求某个网站时,先去请求网站的数字证书,然后检查证书的真实性和有效性,从而一步步进行身份验证,具体过程会在后面进行图解。
所谓证书,就是服务端从网站公证处备案申请的一个身份证这样的一个东西,里面包含有有效期开始时间、结束时间、证书持有人、签名以及最关键的持有人的公钥信息等。通常情况下,我们会为服务端配置SSL证书,SSL证书是数字证书的一种,由受信任的数字证书颁发机构(简称CA)颁发,具有服务器身份验证和数据传输加密的功能。就好比我们访问亿佰特网站,我们怎么知道我们访问的亿佰特网站是否是一个假的呢,所以我们通常在访问时,先去获取对方网站的证书信息,然后和本地浏览器载入的证书进行比较看是否是安全的。HTTPS通信在客户端请求服务端时,先去获取服务端的证书,然后将证书在本地进行对比校验(通常浏览器中会内置很多证书,如上图);当验证通过时,则表示是一个安全的证书,否则浏览器状态栏会提示“不安全”。

3

HTTPS的请求过程

在上面我们简单介绍了一下HTTPS和数字证书,但是它们是如何来解决HTTP中存在的数据窃听、数据篡改、身份伪造问题的呢?5a1942e8-5775-11ed-b116-dac502259ad0.png上图是HTTPS简单的请求模型,使用这个模型可以完美的解决上面提到的三个问题点。
在第一次请求时,客户端先去请求服务端的数字证书,并且生成一个随机数R1,将随机数和自己支持的加密算法告诉服务端。服务端收到客户端的请求后,选择双方共同支持的加密算法,并且生成新的随机数R2,将服务器的数字证书及加密算法、随机数一并返回给客户端。

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

服务端收到客户端加密后的随机数R3,使用自己的私钥对密文进行解密获取到随机数R3,组合R1、R2、R3获取到一串密钥(和客户端一致);然后开始使用对称加密进行通信。上述就是HTTPS对密钥协商的过程,由于非对称加密一方密匙加密后只能使用另一方密匙解密,所以在前两次数据传输中即使被窃听也不怕,因为在第三次传递随机数R3时是使用公钥加密的,只有服务端的私钥才能解密,从而确保密钥的安全性。

4

如何防止数字证书被篡改

在上面的请求模型中,如何防止客户端返回的数字证书被篡改呢?我们在申请数字证书时,会提供我们的基本信息以及企业域名信息等,证书颁发机构CA会根据证书中的这些信息以及所提供的签名算法对内容进行摘要,得到一个消息摘要(散列hash串),即使用Hash算法获取到的一个唯一标识,然后CA机构会使用自己的私钥对摘要进行加密,获取到一个密文,即数字签名,也叫做指纹;表示其唯一性。然后证书颁发机构对整个明文数字证书使用证书颁发机构CA自己的私钥进行加密,得到数字证书。5a695bac-5775-11ed-b116-dac502259ad0.png当数字证书中的内容被篡改时,使用Hash算法对内容进行计算获取到新的摘要,只需要对比一下两个摘要是否相同即可知道证书中的数据知否有被篡改。
5b08816e-5775-11ed-b116-dac502259ad0.png当客户端请求数据从浏览器端获取到数字证书后,通过浏览器内置的CA证书中的公钥对数字证书进行解密,获取到明文数字证书(包含企业基本信息及服务端公钥以及数字签名),通过如上图所示方式来判断证书是否有被篡改。
5b9b256e-5775-11ed-b116-dac502259ad0.png

单双向认证

在上面的例子中,客户端请求服务端获取证书信息进行认证,这个就是单向认证,只是客户端认证服务端,但是服务端并没有认证客户端的请求。HTTPS支持单向认证,也支持双向认证。
双向认证的情况通常比较少见,常见于银行等领域,就像我们以前使用银行的U盾,这就是一种双向认证案例,还有就是在电脑上安装支付宝的证书等;双向认证比单向认证更加安全,但是需要对每一个客户端都进行分配证书。

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

    关注

    2

    文章

    676

    浏览量

    29923
收藏 人收藏

    评论

    相关推荐

    https 的本质、证书验证过程以及数据加密

    1. 什么是 HTTPS HTTP 加上加密处理和认证以及完整性保护后即是 HTTPS。 它是为了解决 HTTP 存在的安全性问题,而衍生的协议,那使用 HTTP 的缺点有: 1.通信使用明文可能会
    的头像 发表于 10-30 10:53 93次阅读
    <b class='flag-5'>https</b> 的本质、证书验证过程以及<b class='flag-5'>数据</b>加密

    工业交换机如何保证数据的访问安全

    在现代工业自动化环境中,工业交换机作为关键的网络设备,扮演着数据传输和信息交互的重要角色。为了确保数据的访问安全,工业交换机不仅具备高效的转发性能,还集成了多层次的安全防护机制,以抵御
    的头像 发表于 09-19 16:18 176次阅读
    工业交换机如何<b class='flag-5'>保证</b><b class='flag-5'>数据</b>的访问<b class='flag-5'>安全</b>

    这是几种HTTPS代理保障用户数据安全的方式#HTTPS代理

    HTTP
    jf_62215197
    发布于 :2024年08月23日 08:14:11

    数据安全审计系统:筑牢数据安全防线 提高数据资产安全

    随着万物互联的技术演进,以及数字化转型的快速发展,数据库成为最具有战略性的数字资产载体,保障数据安全也就保障了存储其中的数据安全
    的头像 发表于 07-17 13:38 695次阅读

    有没有办法使用AT命令连接到安全服务器(https)?

    有没有办法使用 AT 命令连接到安全服务器 (https)?如果是这样,将如何做到?
    发表于 07-17 08:16

    吉利:没有任何一家汽车制造商能够保证电池系统的100%安全

    近日,吉利控股集团的高层管理者沈源先生,在其公开言论中深刻指出了电动汽车电池安全性的复杂性与挑战性。他直言不讳地表示,基于物理学的客观规律,没有任何一家汽车制造商能够绝对保证电池系统的100%安全,这一坦诚态度彰显了行业对
    的头像 发表于 07-13 15:49 2032次阅读

    读写分离怎么保证数据同步

    的问题。如果数据同步不能得到有效保证,可能会导致数据不一致,影响业务的正常运行。 一、读写分离中的数据同步问题 写操作的延迟同步 在读写分离架构中,写操作通常由主服务器(Master)
    的头像 发表于 07-12 09:49 971次阅读

    光纤布线如何保证数据可靠传输

    在当今的数字环境中,数据传输是技术进步的命脉,通信网络的稳定性和可靠性至关重要。随着对更快、更高效的数据传输的需求不断增长,创新者不断寻求解决方案来保证无缝连接;在这些解决方案中,光纤布线代表了
    的头像 发表于 04-07 10:34 318次阅读

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

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

    回流Id比较大,当与模拟部分的地连接时使输出电流Io变得很大,如何保证晶振部分的接地而又能限制电流Id呢?

    如图;回流Id比较大,当与模拟部分的地连接时使输出电流Io变得很大,如何保证晶振部分的接地而又能限制电流Id呢? 另问,0欧姆电阻的限流能力有多大,是如何确定的?
    发表于 02-22 07:04

    Cache中的data在不同核间获取数据的时候如何保证拿到的数据是最新的?

    1. Cache 中的data在不同核间获取数据的时候如何保证拿到的数据是最新的? 2.如果关闭了Cache ,运行速度就变好慢,但是core0取core1的数据又想要保持是最新的
    发表于 01-31 06:49

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

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

    LabVIEW开发地铁运行安全监控系统

    基于LabVIEW的地铁运行安全监控系统,旨在保证地铁在极端天气条件下的安全运行。系统集成了多种传感器和监控设备,实时收集和分析数据,以预防和应对潜在风险。 ​ 系统组件 传感器与监测
    发表于 12-16 21:06

    redis多线程还能保证线程安全

    是单线程的,多个客户端请求会按序执行,每个请求使用一个线程完成,这样可以避免多线程之间的竞争条件和锁等带来的开销。但是,由于Redis是存储内存中的数据的,当多个客户端同时对同一个数据进行读写操作时,就会存在线程安全的问题。 首
    的头像 发表于 12-05 10:28 1690次阅读