对称加密与非对称加密、证书、SSL/TLS握手过程

news/2025/3/31 23:24:04/

文章目录

  • 对称加密(Symmetrical Encryption):
  • 非对称加密(Asymmetric Encryption):
  • 区别:
  • SSL证书
  • TLS1.2握手过程

对称加密(Symmetrical Encryption):

对称加密,是一种既简单速度又快的加密方式,加密与解密使用的都是同一个密钥,别名又叫做:单密钥加密;对称加密有很多公开算法,并且因为它效率很高,所以适用于加密大量数据的场合;但其密钥的传输过程是不安全的,并且容易被破解,密钥管理起来也相对麻烦。

优点:

  • (1)对称加密算法的优点是算法公开。
  • (2)计算量小。
  • (3)加密速度快。
  • (4)加密效率高。

缺点:

  • 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。
  • 其次如果一方的秘钥被泄露,那么加密信息也就不安全了。
  • 另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

算法:

  • 在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

非对称加密(Asymmetric Encryption):

非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private
key,简称私钥),如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。加密密钥是公开的,密钥的分配和管理就很简单,而且能够很容易地实现数字签名,因此最适合于电子商务应用的需要;但是如果对大数量进行操作,计算量特别大,速度远远比不上对称加密。

一图简单了解非对称加密:最后利用会话秘钥(棕色)给数据进行加密
在这里插入图片描述

优点:

  • (1)密钥分配简单。
  • (2)密钥的保存量少。
  • (3)可以满足互不相识的人之间进行私人谈话时的保密性要求。
  • (4)可以完成数字签名和数字鉴别。

缺点:

  • (1)公钥密码是对大数进行操作,计算量特别浩大,速度远比不上私钥密码体制。
  • (2)公钥密码中要将相当一部分密码信息予以公布,势必对系统产生影响。
  • (3)在公钥密码中,若公钥文件被更改,则公钥被攻破。

算法:

  • 在非对称加密算法中常用的算法又:RSA、DSA、ECDSA等。

区别:

  • (1)对称加密中加密和解密使用的秘钥是同一个;非对称加密中采用两个密钥,一般使用公钥进行加密,私钥进行解密。
  • (2)对称加密解密的速度比较快,非对称加密和解密花费的时间长、速度相对较慢。
  • (3)对称加密的安全性相对较低,非对称加密的安全性较高。

SSL证书

  • 保存在源服务器的数据文件,包含公钥和私钥
  • SSL证书是数字证书的一种,因为配置在服务器上,也称为SSL服务器证书。
  • SSL 证书 就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。

TLS1.2握手过程

  • SSL由从前的网景公司开发,有1,2,3三个版本,但现在只使用版本3
  • SSL是TLS的前身,TLS是SSL的标准化后的产物,有1.0 1.1 1.2三个版本,默认使用1.0

三次握手成功后进行SSL握手
在这里插入图片描述

  • Client Hello(TLS版本,加密套件,Client随机数):Client首先发送Hello,告诉Server支持的TLS版本以及支持的加密套件,再把Client随机数发给Server。

  • Server Hello:Server收到Client Hello也给Client发送Hello,并告知Server确认支持的TLS版本以及选择的加密算法。同样,也会把Server随机数发给Client。

  • Certificate:Server接着再发送自己的证书给Client,这样Client浏览器就可以对照自己的证书信任列表来确认这个服务器是否可信。

  • Server Key Exchange:发送完证书,Server就把公钥发送给Client。

  • Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message:Client用刚刚收到的公钥加密pre-master预主密钥,并把这个加密后的随机数发送给Server。Server收到加密后的预主密钥,会用自己的私钥进行解密从而得到预主密钥。

  • Change Cipher Spec: 这一步就是告诉服务器往后的数据就用商议好的算法和密钥来加密。

  • Encrypted Handshake Message: 表示Client这边的TLS协商已经OK了。同时服务器也会发送这个,表示也TLS准备完成【此时完成的握手,可以进行数据加密交换】

Client会用Client随机数、Server随机数和预主密钥(也就是三个随机数)计算出会话密钥。Server也同样计算出和Client一样的会话密钥。之后,Client和Server就都只使用这个会话密钥对数据进行加密。

  • 服务器和客户端采用非对称加解密方式交换对称加密的密钥(随机数3),保证这个对称密钥不泄露,交换成功后就采用对称加密方式。

http://www.ppmy.cn/news/63477.html

相关文章

【MySQL】(5)聚合函数

文章目录 聚合函数COUNT 函数SUM 函数AVG 函数MAX 函数 MIN 函数 group by 子句简介示例:scott 数据库单列分组多列分组 having 子句总结 聚合函数 在 MySQL 中,聚合函数是用于计算多行数据的统计信息的函数,例如总和、平均值、最大值、最小…

C++之虚函数原理

对象数据和函数的存储方式 注意说的是对象。 C中的对象存储方式是 每个对象占用的存储空间只是该对象的数据部分(虚函数指针和虚基类指针也属于数据部分),函数属于公共部分。 虚函数表 虚函数是通过虚函数表实现的。 C实现虚函数的方法是…

Android 原生播放音频有哪些方式

文章目录 使用 MediaPlayerMediaPlayer特点 关于 SoundPool关于 AudioTrack关于 AudioRecordAudioRecord 降噪 总结 之前一片文章简单讲述了通过TTS和Audio相关API控制文本输出语音的方法,接下来学习一下其他原生方式的语音播放功能。 使用 MediaPlayer 项目中除了…

轻量级的安卓百分比屏幕适配方案SimpleAutoSize

AutoSize是基于今日头条的适配方案,但它有一些缺点,比如代码侵入性较强,在使用第三方的View框架时,可能会出现不兼容的情况。 我目前的sdk项目不能使用这样的框架,于是自己做了一个简单的工具类,也能够满足…

操作系统考试复习——第四章 对换 分页存储管理方式

对换技术也成为交换技术,由于当时计算机的内存都非常小,为了使该系统能分时运行多个用户程序而引入了对换技术。 1.对换的引入: 所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,…

MATLAB 点云非均匀体素下采样 (8)

MATLAB 点云非均匀体素下采样的不同参数效果测试 (8) 一、实现效果二、算法介绍三、函数说明3.1 函数3.2 参数四、实现代码(详细注释!)五、与固定步长采样法比较5.1 代码5.2 效果一、实现效果 不同参数调整下的非均匀体素下采样结果如下图所示,后续代码复制黏贴即可: 可…

Android 自定义View 之 简易输入框

简易输入框 前言正文① 构造方法② XML样式③ 测量④ 绘制1. 绘制方框2. 绘制文字 ⑤ 输入1. 键盘布局2. 键盘接口3. 键盘弹窗4. 显示键盘5. 相关API 四、使用自定义View五、源码 前言 在日常工作开发中,我们时长会遇到各种各样的需求,不部分需求是可以通…

weblogic ssrf 漏洞复现

一.前言 Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。 二.环境搭建 在docker中开启环境 sudo docker-compose up -d sudo docker-compose ps #查看状态访问http://your-ip:7001/uddiexpl…