【WEB】网络传输中的信息安全 - 加密、签名、数字证书与HTTPS

文章目录

  • 1. 概述
  • 2. 网络传输安全
    • 2.1.什么是中间人攻击
    • 2.2. 加密和签名
      • 2.2.1.加密算法
      • 2.2.2.摘要
      • 2.2.3.签名
    • 2.3.数字证书
      • 2.3.1.证书的使用
      • 2.3.2.根证书
      • 2.3.3.证书链
    • 2.4.HTTPS

1. 概述

本篇主要是讲解讲一些安全相关的基本知识(如加密、签名、证书等),以及HTTPS如何实现的信息安全传输 不涉及复杂的底层逻辑

在CS架构中,客户端和服务端之间的网络交互一般是使用HTTP协议来完成的,在HTTP协议的请求体和响应体中会包含一次请求的报文(或者说参数),而这些参数往往是明文传输的,有可能会被有心之人拦截,从而获取到参数中的敏感或保密的信息。因此,HTTPS(Hyper Text Transfer Protocol Secure) 应运而生,它在 HTTP(超文本传输协议)的基础上通过传输加密身份认证保证了传输过程的安全性。

2. 网络传输安全

2.1.什么是中间人攻击

在开篇中提到了HTTP协议是不安全的,这种不安全主要体现在两个方面:信息泄露信息伪造,在客户端和服务器中间,有一个中间人可以接收到响应传输的信息。
在这里插入图片描述

  • 信息泄露:中间人可以获取到传输过程中的敏感、保密信息。
  • 信息伪造:中间人可以将自己伪造成客户端或服务器,发送虚假信息。

上述的情况,一般会被称为中间人攻击,在日常使用网络的过程中,如果没有注意网络的安全,例如:使用了未知的公用WiFi、使用了不安全的网络设备、木马感染、DNS劫持等,都容易遭到中间人攻击。


显然,我们不能只通过用户自行注意网络的使用来解决信息传输安全问题,所以我们应该建立安全的传输机制,涉及到两个重要的概念:加密签名

2.2. 加密和签名

2.2.1.加密算法

在这里插入图片描述
所谓加密,就是将原有明文信息通过加密算法转换成为一串没有确认含义,无法识别的字符,也就是密文信息,这样即使信息泄露出去,获取信息的人也无法识别其含义,起到保密的效果。

通过是否能将密文信息重新解密成明文信息的维度,将加密算法区分为:单向加密算法和双向加密算法。

  • 单向加密算法:无法解密,常见的算法是MD5SHA256,一般运用在生成摘要信息保存用户密码等场景。
  • 双向加密算法:可以解密,最常见的算法是AES与RSA,一般运用在信息传输中,保证信息传输的安全性。

在双向加密算法中,要达成解密的效果,会在加密和解密时使用到密钥,通过加解密是否使用同一个密钥,将双向加密算法区分为:对称加密算法和非对称加密算法。

  • 对称加密:通过一把密钥加密和解密,客户端和服务端都持有相同的密钥。
  • 非对称加密:将密钥分为公钥私钥,公钥加密时只能用私钥解密,反之,私钥加密时,只能用公钥解密。两种加密方式使用场景不用,其中公钥加密是将信息转换为密文,防止信息泄露,而私钥加密是用于签名,用于身份认证(即确认是某个人、某个公司机构等发送的信息)。

对比一下对称加密和非对称加密,对称加密速度快,密钥安全性不高。非对称加密速度相对较慢,通过对外只暴露公钥的方式增强了密钥的安全性,同时由于其特性,还可以做身份认证。


说到这里,提一嘴脱敏,加密和脱敏容易混淆。
加密是将明文信息转换为密文信息,密文中无法提炼出有用的信息。
脱敏则是对原有的明文信息做部分修改覆盖,避免敏感信息暴露的同时,还保留了一部分有用的业务信息,常见的就是姓名、身份证、手机号等数据通过 * 替换掉中间一部分数据。

2.2.2.摘要

对传输的信息做加密是为了防止信息泄露,那么摘要和签名就是为了防止信息伪造。

所谓摘要,就是一串和内容相关的哈希值,通过单向加密算法,如SHA256,将原文生成生成一个256位的二进制串。只要原文发生了任何改动,这个摘要信息都将会完全不同。
在这里插入图片描述
通过这样的特性,在不需要对原文进行逐字逐句对比的情况下,快速的验证原文是否被修改了。
在一些开源软件的下载页面,除了源码包之外,还有摘要包下载,用户可以下载之后,用样的算法做摘要,通过比较摘要的值确认源码是否被修改。


当然,除了被有心人篡改了源码内容之外,摘要验证往往还会用于校验文件的完整性。(例如因为网络等原因导致源文件没有下载完整的情况)

2.2.3.签名

签名是一种更高级的安全措施,可以同时验证信息完整性和信息真实性,它是在摘要的基础上,通过非对称加密算法对摘要信息做了一次加密。

所谓信息的真实性,就是指信息来源于官方发布而不是由第三方篡改的。
拿上面的例子来说,由于SHA256是通用算法,第三方拿到源码包并篡改后,重新生成了一个摘要包,将这两个包都放在伪造的网站上,用户下载之后无法验证来源的真实性。在这种场景下,官方可以通过非对称加密算法,使用私钥对摘要做加密,用户下载了签名之后,通过官方发布的公钥进行解密,再将原始摘要与新生成的摘要做对比,以此来确认下载的源码的真实性。

在这里插入图片描述
不同的网站可能会使用不同的加解密算法,细节上有细微的差异,但大体的流程都如上图所示。在Maven的官网中,下载界面就可以下载这三种包:
在这里插入图片描述
通过上面的verify the signature以及KEYS可以获取到校验方法及对应的公钥。
在这里插入图片描述

2.3.数字证书

2.3.1.证书的使用

数字证书是一种包含了公钥、所属组织信息、证书颁发机构、证书签名等信息的数字文件。
如果做过金融支付相关的业务,对接过银行或者三方支付平台的话,或多或少都会接触当数字证书。
这样的证书,多数情况是的就是通过操作系统生成的一个自签名的证书文件。我们在按照接口文档写完代码之后,下一步就是互相交换数字证书,在后续的接口调用过程中,会使用到对方的数字证书做签名验证,防止支付中的关键信息被中间人篡改。

而在CS架构中,客户端想要获取证书,在第一次访问网站时会从服务器中拉取证书,这种情况下,自签名的数字证书无法保证通信的安全性。
在这里插入图片描述
在这种情况下,要保证信息传输的安全,客户端就需要有一种机制可以验证证书的合法性。
这种机制就是在当两方无法确认对方的身份时,引入一个权威的第三方做身份确认,而这里的第三方指的就是根证书

2.3.2.根证书

所谓的根证书,就是各个权威的CA(Certificate Authority)机构的自签名证书,它们会预装在操作系统中的证书,用于浏览器或其他类型的客户端校验服务器提供的证书合法性。国内常见的CA机构有:CFCA、BJCA、SHECA等。

打开谷歌浏览器的证书管理,可以看到这样的内容:
在这里插入图片描述
点进去之后就可以看到预装的根证书了
在这里插入图片描述

企业机构可以通过权威的CA机构申请证书,将证书安装到服务器上,这样客户端就能校验出这个正式是否合法了。
在这里插入图片描述

2.3.3.证书链

处于根证书安全管理的灵活性业务需要等原因,企业申请的证书往往不是由根证书直接签发的,而是由一个层次关系:
在这里插入图片描述
这样的层次关系叫做证书链,在客户端访问服务器的时候,客户端会获取到服务器返回的证书链,再通过递归的方式一层层的向上校验,直到根证书校验通过。

2.4.HTTPS

在使用HTTPS协议时,客户端会通过TLS与服务器握手尝试建立一个安全连接通道,后续的请求都是通过这个通道来执行的。

在这里插入图片描述
这种设计方式既利用了非对称加密的安全性,又利用了对称加密的性能。后续的数据传输都是通过客户端生成的对称密码来进行加密和签名的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/67325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell练习2

需求:判断192.168.1.0/24网络中,当前在线的ip有哪些,并编写脚本打印出来。 #!/bin/bashnmap -sn 192.168.1.0/24 | grep Nmap scan report for | awk {print $5} 注意:当运行 bash ip.sh 时出现 nmap: command not found 的错误…

【运维自动化-作业平台】魔法变量到底如何使用之主机列表类型

蓝鲸作业平台,以下简称作业平台或JOB平台 魔法变量:JOB平台执行引擎提供的特有的变量能力用法 脚本中使用,并且需要事先声明:job_import {{变量名}} 声明后,同样是使用 dollar 符 大括号:${变量名}来取值…

活动预告 | CCF开源发展委员会开源供应链安全技术研讨会(2025第一期)——“大模型时代的开源供应链安全风控技术”...

点击蓝字 关注我们 CCF Opensource Development Committee CCF开源发展委员会开源供应链安全工作组(以下简称CCF-ODC-OSS)将于1月17日下午在北京黄大年茶思屋举行2025年第一期开源供应链安全技术研讨会,此次研讨会主题为“大模型时代的开源供…

XML序列化和反序列化的学习

1、基本介绍 在工作中,经常为了调通上游接口,从而对请求第三方的参数进行XML序列化,这里常使用的方式就是使用JAVA扩展包中的相关注解和类来实现xml的序列化和反序列化。 2、自定义工具类 import javax.xml.bind.JAXBContext; import javax.x…

基于php求职招聘系统设计

基于php求职招聘系统设计 摘要 随着社会信息化时代的到来,如今人们社会的生活节奏普遍加快,人们对于工作效率的要求也越来越高,企业 举办招聘会耗时耗财,个人参加招聘会漫无目的寻找不到“方向”,网络搜索工作量目的…

SDK调用文心一言如何接入,文心一言API接入教程

一、前期准备 注册百度智能云账号: 前往百度智能云官网注册一个账号。这是接入文心一言API的基础。 了解API接口: 在百度智能云开放平台中,找到文心一言API的详情页,了解提供的API接口类型(如云端API、移动端API、离线…

【机器学习】数据拟合-最小二乘法(Least Squares Method)

最小二乘法(Least Squares Method) 最小二乘法是一种广泛使用的数据拟合方法,用于在统计学和数学中找到最佳拟合曲线或模型,使得观测数据点与模型预测值之间的误差平方和最小化。以下是详细介绍: 基本概念 假设有一组…

Flutter 多终端测试 自定义启动画面​​​​​​​ 更换小图标和应用名称

多终端测试 flutter devices flutter run -d emulator-5554 flutter run -d emulator-5556 自定义启动画面 之前: 进入assert 3x 生成 1x 2x dart run flutter_native_splash:create dart run flutter_native_splash:remove 现在(flutter_nativ…

springMVC实现文件上传

目录 一、创建项目 二、引入依赖 三、web.xml 四、编写上传文件的jsp页面 五、spring-mvc.xml 六、controller 七、运行 一、创建项目 二、引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.o…

Java内存与缓存

Java内存管理和缓存机制是构建高性能应用程序的关键要素。它们之间既有联系又有区别&#xff0c;理解这两者对于优化Java应用至关重要。 Java 内存模型 Java内存模型&#xff08;JMM&#xff09;定义了线程如何以及何时可以看到其他线程修改过的共享变量的值&#xff0c;并且规…

图片和短信验证码(头条项目-06)

1 图形验证码接口设计 将后端⽣成的图⽚验证码存储在redis数据库2号库。 结构&#xff1a; {img_uuid:0594} 1.1 创建验证码⼦应⽤ $ cd apps $ python ../../manage.py startapp verifications # 注册新应⽤ INSTALLED_APPS [django.contrib.admin,django.contrib.auth,…

云服务信息安全管理体系认证,守护云端安全

在数据驱动的时代&#xff0c;云计算已成为企业业务的超级引擎&#xff0c;推动着企业飞速发展。然而&#xff0c;随着云计算的广泛应用&#xff0c;信息安全问题也日益凸显&#xff0c;如同暗流涌动下的礁石&#xff0c;时刻威胁着企业的航行安全。这时&#xff0c;云服务信息…

LabVIEW与WPS文件格式的兼容性

LabVIEW 本身并不原生支持将文件直接保存为 WPS 格式&#xff08;如 WPS 文档或表格&#xff09;。然而&#xff0c;可以通过几种间接的方式实现这一目标&#xff0c;确保您能将 LabVIEW 中的数据或报告转换为 WPS 可兼容的格式。以下是几种常见的解决方案&#xff1a; ​ 导出…

创建 WordPress 插件(第一部分):添加管理页面

WordPress 是互联网上最受欢迎的内容管理系统之一。它是用 PHP 创建的&#xff0c;可以处理从博客到商业网站的一切需求。事实上&#xff0c;我们的博客和网站都使用 WordPress。在本文中&#xff0c;我将向你展示如何创建一个 WordPress 插件&#xff0c;该插件会在管理员控制…

解锁企业数据管理统一身份认证难题,EasyMR助力企业敏捷提效

在数字经济迅猛发展的当下&#xff0c;企业数据量正以令人惊叹的速度持续增长。据IDC研究显示&#xff0c;至2025年&#xff0c;全球数据总量预计将超175 ZB。数据的爆发式增长对企业而言&#xff0c;既是机遇&#xff0c;更是巨大挑战。 如今&#xff0c;大数据已然成为企业决…

OPT: Open Pre-trained Transformer语言模型

摘要 大规模语言模型通常需要数十万计算日的训练时间&#xff0c;展现了在零样本和小样本学习中的显著能力。鉴于其计算成本之高&#xff0c;这些模型在没有大量资本投入的情况下难以复现。对于那些通过API提供的少数模型&#xff0c;研究者无法获取完整的模型权重&#xff0c…

Qt应用之MDI(多文档设计)

qt creator 版本6.8.0 MinGW 64bit 由此模块可以扩展成设计一个qt文本编辑器。 界面如下 部分功能展示如下 新建文件 打开文件 mdi模式、级联模式和平铺模式 界面和程序构建过程。 1.如图所需.cpp和.h文件 2.mainwindow.ui和tformdoc.ui界面布局如下 不懂什么是Action如何…

Linux第二课:LinuxC高级 学习记录day04

6、shell中的语句 6.3、结构性语句 6.3.1、if if…then…fi 1、结构 1&#xff09;基本结构 if 表达式 then 命令表 fi if [ 表达式 ] // 【】两侧有空格 then 命令表 fi 2&#xff09;分层结构 if 表达式 then 命令表1 else 命令表2 fi 3&#xff09;嵌套结构 if …

Linux C 使用ZBar库解析二维码和条形码

1. 编译zbar库 下载 zbar 库源码&#xff0c;这里需要注意下&#xff0c;如果识别的二维码中有中文的话&#xff0c;会出现乱码&#xff0c;一般二维码里中文为UTF-8编码&#xff0c;zbar会默认给你把UTF-8转换为ISO8859-1。有两种解决办法&#xff0c;一是自己再转换一下编码…

【北京迅为】iTOP-4412全能版使用手册-第七十九章 Qt网络编程

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…