TLS、对称/非对称加密、CA认证

1. SSL与TLS

SSL/TLS是一种密码通信框架,他是世界上使用最广泛的密码通信方法。SSL/TLS综合运用了密码学中的对称密码,消息认证码,公钥密码,数字签名,伪随机数生成器等,可以说是密码学中的集大成者。

TLS协议和SSL协议是一脉继承的,TLS是从SSL3.0的基础上发展而来,两者的关系如下:
请添加图片描述
TLS/SSL位于OSI七层模型中的会话层或表示层,是介于传输层与应用层之间的一种协议。
当前最常用的Https协议就是由 Http + TLS 加密结合的协议。

2. 密码学相关理论

加密:

数据每时每刻都在互联网中传输,从而实现各个终端对数据的获取需求。刚开始的时候数据都是明文传输的,每个TCP包中包裹着终端每次请求的数据。这种包被传输链路中某个节点监听后就会造成数据泄露,因此网景公司提出了SSL协议于Web的安全传输。

可以看到加密后传输协议隐藏为TLS,传输的内容变成了乱码。
服务器发送该加密报文,客户端解密后就可以得到原来的内容。

密钥:

数据的加密是通过密钥进行的,通过密钥,明文被加密成密文。密钥非为对称加密密钥和非对称加密密钥,这个在之后详细介绍。密钥为一段随机生成的数,通常以 .pem或者 .key文件保存,可以使用Openssl生成。
请添加图片描述

OpenSSL

openssl是一个开源密码学工具,可以生成密码、创建CA证书、加解密等,我们系统的加解密也是基于这个开源软件尽心开发的,openssl的基本指令如下:

//生成一个2048位的密钥
$ openssl genrsa -out server.key 2048 //根据私钥生成公钥
$ openssl req -new -key server.key -out server.csr -config csr.conf//使用CA证书对公钥进行认证
$ openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 -extensions v3_ext -extfile csr.conf//使用pkcs12将公钥与私钥加密打包
$ openssl pkcs12 -export -out server.pfx -in server.crt -inkey server.key 

openssl的使用可以参考网上的文章:

OpenSSL的基本使用教程(一)_openssl lite使用教程-CSDN博客

3. 对称加密

对称加密是指加密解密都是使用同一个密钥。服务器使用该密钥进行加密,经过传输后客户端使用该密钥解密。该方式效率高,但存在安全隐患。
请添加图片描述

服务器在传输报文之前,首先需要将密钥以明文的方式传输给客户端,如果此时密钥被黑客得到,那么之后的所有密文都不具有加密效果。
请添加图片描述

为了解决这个问题,研究人员进一步提出了非对称加密。

4. 非对称加密

非对称加密具有一个密钥对,公钥和私钥,理论上来说公钥和私钥并不区分,便于区分将保存在本地的那个叫做私钥,将需要传输给对方的那个叫做公钥。

数据经过私钥加密后,只能由对应的公钥解密,同样数据经过公钥加密后,只能由对应的私钥解密。

那么只要客户端拥有服务器的公钥,通过公钥加密报文,服务器用自己的私钥解密就可以实现对传输过程的加密。

非对称加密的效率比较低,因此实际使用的场景并不多。

以Https为例,其传输的过程为:

1.服务器拥有公钥 cer1,私钥key1,客户端拥有对称加密钥匙 key2

2.服务器将 cer1 明文发送给客户端

3.客户端使用 cer1 对自己的 key2 进行加密,同时传输给服务器 key2+cer1

4.服务器使用key1对收到的 key2+cer1 进行解密,得到key2

5.之后服务器与客户端使用 key2 进行对称加密
请添加图片描述

该过程仍然存在风险,黑客可以通过中间人假冒向客户端发送自己的公钥,从而得到最后的对称密钥。
请添加图片描述

通过保证公钥的正确性即可检验出黑客假的公钥 cer2 ,因此提出了CA认证,只有经过CA认证的公钥才是安全的公钥。

5. CA证书与电子签名验证

请添加图片描述

为了保证公钥的正确性,防止黑客使用自己的公钥冒充服务器公钥截取客户端生成的对称密钥,使用CA机构对公钥进行签名,可通过CA证书验证来证明公钥的正确性。

CA机构是权威的第三方,机构本身具有自己的CA公钥与CA私钥,CA公钥是发给全体互联网成员的,可以将其称为CA证书。

服务器需要将自己的 公钥以及认证信息经过HASH加密后发改CA机构,CA机构使用CA私钥对提交的信息进行加密,这就得到了带有数字签名的数据。

在使用时使用CA公钥对带有数字签名的数据解密,得到经HASH后的数据,同时将公钥以及认证信息 经过HASH加密后与CA解密后的数据比对,验证电子签名的安全性。

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

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

相关文章

甘草书店记: 2023年10月11日 星期三 晴 「做有光的人,照亮他人,也引人同行」

发了两篇《甘草书店记》,书店计划公之于众,收获了不少人的赞扬和鼓励,来自生活中的友人,来自麦田的客户和朋友,来自图书界的同行前辈,也来自商界的同仁。其中,最特别留言来自甘草书店投资方的张…

temu反洗钱协议在哪里签署

反洗钱是国际社会关注的重要议题之一。为了加强国际合作,各国政府积极参与签署反洗钱协议。TEMU反洗钱协议作为国际间的重要合作框架,其签署地点及其意义备受关注。本文将深入探讨TEMU反洗钱协议的签署地点及其背后的意义。 先给大家推荐一款拼多多/temu…

PostgreSQL 元组统计与 pgstattuple 优化

第1章 简介 1.1 参考文档 https://www.percona.com/blog/postgresql-tuple-level-statistics-with-pgstattuple/ 1.2 关于pgstattuble 由于Postgres表膨胀会降低数据库性能,因此我们可以通过消除表膨胀来提高其性能。我们可以使用pgstattuple扩展来识别膨胀的表。 这…

网络和信息系统指令 ( NIS2 ) 及其全球影响

网络和信息系统指令 ( NIS2 ) 将于 2024 年 10 月生效,旨在提高欧盟 (EU) 的网络弹性。 不过,其影响可能会更广泛,带来更严格的流程和控制,并重新定义我们向被视为国家关键的组织提供服务的方式。 该强制性指令将具有效力&#x…

锂电涂布机设备健康管理:降低运维成本的关键

随着锂电池行业的快速发展,锂电涂布机设备作为关键生产工艺装备,扮演着至关重要的角色。然而,涂布机设备的故障和维护成本对于企业来说是一个不可忽视的挑战。本文将介绍做好锂电涂布机设备的健康管理,降低运维成本的关键措施。 锂…

初刷leetcode题目(11)——数据结构与算法

😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️…

Elasticsearch初识--CentOS7安装ES及Kibana

文章目录 一.前言二.介绍1.Elasticsearch2.Kibana 三.ES安装1.下载安装包2.解压、配置2.1 解压2.2 配置 3.启动3.1增加用户3.2启动 4.解决资源分配太少问题5.启动成功 四.Kibana安装1.下载安装包2.解压、配置2.1 解压2.2 配置2.2 …

太快了!文生图片只需1秒,开源SDXL Turbo来啦!

11月29日,著名开源生成式AI平台Stability.ai在官网发布了,开源文生图模型SDXL Turbo。 根据使用体验,SDXL Turbo的生成图像效率非常快,可以做到实时响应(可能小于1秒)。 在你输入完最后一个文本后&#x…

【优选算法系列】【专题十四优先级队列】第一节.(1046. 最后一块石头的重量和703. 数据流中的第 K 大元素)

文章目录 前言一、最后一块石头的重量 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写 1.2.3 题目总结二、数据流中的第 K 大元素 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2…

java第20章节

一.线程简介 二.创建线程 1.继承Thread类 Thread类中常用的两个构造方法如下: public Thread():创建一个新的线程对象。 public Thread(String threadName):创建一个名称为threadName的线程对象。 继承Thread类创建一个新的线程的语法如下: public c…

AI视频智能分析识别技术的发展与EasyCVR智慧安防视频监控方案

随着科技的不断进步,基于AI神经网络的视频智能分析技术已经成为了当今社会的一个重要组成部分。这项技术通过利用计算机视觉和深度学习等技术,实现对视频数据的智能分析和处理,从而为各个领域提供了广泛的应用。今天我们就来介绍下视频智能分…

建立健全涉密测绘外业安全保密管理制度,落实监管人员和保密责任,外业所用涉密计算机纳入涉密单机进行管理

建立健全涉密测绘外业安全保密管理制度,落实监管人员和保密责任,外业所用涉密计算机纳入涉密单机进行管理 1.涉密测绘外业安全保密管理制度 2.外业人员及设备清单(包括:外业从业人员名单、工作岗位,外业设备名称、密…

Opencv | 直方图均衡化

import cv2 #opencv 读取的格式是BGR import numpy as np import matplotlib.pyplot as plt #Matplotlib是RGB %matplotlib inline def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows() cv2.calcHist(images,channels,mask,histSize,ranges) - …

Gitee-PicGo-Typora

Gitee-PicGo-Typora 问题引出 问题1:根据相关法律法规和政策,您的部分文件因存在敏感信息而无法显示 就在昨晚, 我在记笔记的时候,发现之前配置的七牛云图床出了问题: 1、根据相关法律法规和政策,您的部…

JAVA进阶之路JVM-3:JVM内存模型,运行时数据区域划分,程序计数器,虚拟机栈,本地方法栈,堆,元空间,字符串常量池

JVM内存模型 对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C 程序开发程序员这样为每一个操作去写对应的 delete / free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序把内new存控制权利交给JVM虚拟机。一旦…

JS动态转盘可自由设置个数与概率

让我为大家介绍一下转盘的实现过程与原理&#xff0c;介绍都放在下面代码块中&#xff0c;一步一步的教会你。 我们转盘使用线段来实现 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title></title><style type&quo…

【理解ARM架构】异常处理

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《理解ARM架构》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 ⚡ARM系统中异常与中断处理流程&#x1f362;向量表&#x1f362;保存现场&#x1f362;恢…

对一个预算有限的创业者来说,应该选择哪些形式的办公场地

对于一个预算有限的创业者来说&#xff0c;选择合适的办公场地是一个重要的决策。不同的办公场地形式有各自的优缺点&#xff0c;需要根据创业者的具体情况和需求来权衡。 一般来说&#xff0c;有以下几种常见的办公场地形式&#xff1a; - 家庭办公&#xff1a;这是最节省成本…

觉得可视化地图太难做?那你是没用过它!

后台一直有粉丝私信老李&#xff0c;问到现在各大企业对数据可视化越来越看重&#xff0c;但是感觉那些高大上的图表做起来一定很复杂甚至可能还需要一些编程基础&#xff0c;希望老李可以推荐一些简单好上手的数据可视化工具。   作为一名数据分析爱好者&#xff0c;我也尝试…

STM32之定时器--超声波测距

1、模块介绍 型号&#xff1a;HC-SR04 超声波测距模块是用来测量距离的一种产品&#xff0c;通过发送和收超声波&#xff0c;利用时间差和声音传播速度&#xff0c; 计算出模块到前方障碍物的距离。 2、超声波模块的使用方法 怎么让它发送波 Trig &#xff0c;给Trig端口至…