密码套件:密码,算法和协商安全设置

本文深入地研究TLS 1.2密码套件的四个不同组件。首先看看我们在SSL / TLS中看到的两种不同类型的加密。

两种加密

SSL/TLS的最大困惑之一就是所使用的加密类型,与SSL证书关联的2048位密钥用于帮助协商HTTPS连接,但是它的作用实际上比大多数人认为的要小得多。

我们似乎只专注于私钥的位数,如2048位的私钥,因为它听起来似乎很安全。我们甚至会大胆地认为,“现代计算机要花上四千万万年才能破解此密钥,到那时我们都已经死了!”

但是,可以说,你在连接期间使用的批量加密和对称密钥同等重要,甚至比公/私密钥对还重要。

对称加密涉及两个相同的密钥,顾名思义,它们是对称的。两个密钥都可以执行以下两个功能:加密和解密。这是你实际上与访问的网站进行通信所使用的加密类型。

相反,如果我们使用非对称加密,加解密使用的密钥并不对称,一个密钥用来加密,另一个密钥用来解密。非对称加密通常采用带TLS1.2的RSA形式,它负责验证数字签名,并且在使用RSA密钥交换时,它从加密计算出对称会话密钥的主密码,但是RSA并不是唯一的密钥交换机制。

对称加密密钥(通常为AES或高级加密标准)的密钥大小范围为128位到256位。对于对称加密,这是完全有效和安全的,在对称加密中,计算难度必须与可用性或者说与其加密性能保持一致。

那些2048位非对称RSA密钥的计算成本很高,并且增加了握手延迟。在某些实际应用中,它们还容易遭受填充攻击。

长话短说,这里既讲了非对称加密也讲了对称加密,但是对称加密在密码套件的上下文中关联性更强。

现在,让我们看一下密码套件的四个不同组件。

密钥交换

TLS 1.2密码套件中的第一个位置指定用于将要使用的密钥交换机制。

密钥交换是指用于传输对称会话密钥的实际过程,但这并不是密钥生成过程中使用的唯一算法。握手的密钥交换部分确定用于密钥生成的参数,但是散列算法在通过提供伪随机函数(PRF)(通常作为加密安全的伪随机数生成器“CSPRNG”)提供密钥的过程中也发挥着作用。

我们要明白的重要一点是,所选的密钥交换机制并不完全负责生成实际密钥。

RSA

RSA以创建它的绅士的名字命名:Rivest,Shamir和Adleman。这是最常见的非对称密码算法。它使用质数的幂运算,具有广泛的应用范围。使用SSL/TLS,通常会在密钥交换的上下文中看到使用RSA。同样,这是所有这些2048位(以及3072和4096位)密钥的来源。

每次握手,无论是否选择RSA密钥协商机制都会从ClientHello和ServerHello交换随机数。

一旦客户端和服务端决定使用包含RSA密钥交换的密码套件,并且在客户端对服务端进行身份验证之后,RSA的运行方式就非常简单。

1.客户端使用服务端发送的公钥来加密预主密钥并进行传输。

2.服务端使用其私钥解密预主密钥。

3.双方都使用PRF,客户端随机数,服务端随机和主机密码来导出主密钥。

4.双方都使用主密钥和更多伪随机函数来计算会话密钥。

在最后两个步骤3和4中,混合主密钥并派生会话密钥,在此利用散列算法的伪随机函数。

RSA密钥交换已经使用了很长时间,但是它已经寿终正寝了。由于已知漏洞,TLS 1.3除了所有其他静态密钥交换机制之外,还取消了RSA密钥交换。

Diffie-Hellman和椭圆曲线Diffie-Hellman

它们以惠特菲尔德·迪菲(Whitfield Diffie)和马丁·海尔曼(Martin Hellman)的名字命名,这是一个密钥交换协议,但它与RSA非对称加密协议并不相同。Diffie和Hellman在这里着手解决的问题是如何在不安全的网络上交换安全密钥,并由攻击者监视。

Diffie-Hellman密钥交换的工作方式如下:

1.在交换了随机数(g&p)之后,客户端和服务端都选择了自己的主控机密(分别为a&b),并计算出一个类似的方程式–gamodp = A,&gbmodp =B。

2.每个到达的值(A&B)被发送给对方,并且双方重复相同的操作-Bamodp和Abmodp。

各方提供所谓的“密钥共享”,并且他们各自独立地到达共享会话密钥。有一个模幂的规则规定了这一点。

如果这是很多数学运算,那么关键在于:使用Diffie-Hellman进行密钥交换时,实际上没有进行非对称加密,而是两方相互得出了可用于导出会话密钥的值。

现在让我们来谈谈椭圆曲线Diffie-Hellman,它基本上只是Diffie-Hellman的现代迭代,它受椭圆曲线密码学的支配,而不是其他一些密码系统。基本上,它使用绘制在椭圆曲线上的点作为其计算的基础。

首先,Diffie-Hellman需要牢记两点–在短暂使用时,它缺乏真正的身份验证机制。临时密钥是临时的,所以通常不进行身份验证。

其次,正如我们刚刚提到的,在TLS 1.3中,所有静态密钥生成/交换机制都已弃用。这基本上是废弃RSA的原因,它也消除了非短暂的DH方案。现在ECDHE或“椭圆曲线Diffie-Hellman临时”是密钥交换的标准。

因为在TLS 1.3中,Perfect Forward Secrecy是必须的。完美转发保密功能可保护各个会话免遭解密,即使证书的私钥被泄露也是如此。静态密钥交换方案不支持这一点。

PSK(共享密钥)

通常是写为TLS-PSK的密码,它是根据预先在各方之间交换的预共享对称密钥提供安全通信的。在这里我们就不讲PSK了,因为在高度管制的网络环境之外它还是很少见的,并且我们绝对不建议其作为商业用途。它也未包含在TLS 1.3中。

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

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

相关文章

达梦8docker安装

达梦数据库安装 Docker安装 安装前准备 软硬件版本终端X86-64 架构Docker2023 年 6 月版 下载 Docker 安装包 请在达梦数据库官网下载 Docker 安装包。 导入安装包 拷贝安装包到 /opt 目录下,执行以下命令导入安装包: docker load -i dm8_202308…

错误:ERROR Cannot read properties of null (reading ‘type‘)

ERROR Cannot read properties of null (reading ‘type’) TypeError: Cannot read properties of null (reading ‘type’) <template><el-card><el-row :gutter"20" class"header"><el-col :span"7"><el-input pl…

不同VLAN间的通信原理

不同VLAN间的通信原理 VLANaccess口trunk口 不同VLAN间通信原理 首先我们来看看什么是VLAN VLAN VLAN&#xff08;Virtual Local Area Network&#xff09;虚拟局域网&#xff0c;是将一个物理的局域网在逻辑上划分成多个广播域的技术。VLAN技术部署在数据链路层。 VLAN能够隔…

PS Raw中文增效工具Camera Raw 16

Camera Raw 16 for mac&#xff08;PS Raw增效工具&#xff09;的功能特色包括强大的图像调整工具。例如&#xff0c;它提供白平衡、曝光、对比度、饱和度等调整选项&#xff0c;帮助用户优化图像的色彩和细节。此外&#xff0c;Camera Raw 16的界面简洁易用&#xff0c;用户可…

技术分享 | web自动化测试-文件上传与弹框处理

实战演示 文件上传 input 标签使用自动化上传&#xff0c;先定位到上传按钮&#xff0c;然后 send_keys 把路径作为值给传进去. 如图所示&#xff0c;是企业微信文件上传的页面 定位到标签为 input&#xff0c;type 为 file 的元素信息&#xff0c;然后使用 send_keys 把文件…

Cubase 13 官宣升级,用户界面重新设计,音乐创作“更自然、更直观、更方便”,全面支持 MIDI 2.0

Cubase 13简介 Steinberg发布Cubase 13升级&#xff0c;带有显著的重新设计了用户界面&#xff0c;还有众多新功能和提升作曲、制作、混音和给你创意的工作流。 获取地址 Steinberg Cubase Pro 13 功能新特性 随时随地的混音&#xff1a; MixConsole重新设计了更简洁的界面…

IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】

Docker官网 Docker官网&#xff1a;https://www.docker.com/ Docker Hub官网&#xff1a;http://hub.docker.com/ 什么是Docker Docker 是一个开源的容器引擎&#xff0c;可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编…

前端 | (十四)canvas基本用法 | 尚硅谷前端HTML5教程(html5入门经典)

文章目录 &#x1f4da;canvas基本用法&#x1f407;什么是canvas(画布)&#x1f407;替换内容&#x1f407;canvas标签的两个属性&#x1f407;渲染上下文 &#x1f4da;绘制矩形&#x1f407;绘制矩形&#x1f407;strokeRect时&#xff0c;边框像素渲染问题&#x1f407;添加…

【原创】java+swing+mysql宠物领养管理系统设计与实现

摘要&#xff1a; 生活中&#xff0c;有很多被人遗弃的宠物&#xff0c;这些宠物的处理成为了一个新的难题。生活中也有许多人喜欢养宠物&#xff0c;为了方便大家进行宠物领养&#xff0c;提高宠物领养管理的效率和便利性。本文针对这一问题&#xff0c;提出设计和实现一个基…

什么是NPM(Node Package Manager)?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

随笔--解决ubuntu虚拟环境的依赖问题

文章目录 问题一&#xff1a;在conda虚拟环境中报错ImportError: libcupti.so.11.7:cannot open shared object file: No such file or directory解决步骤问题二&#xff1a; RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling cublasSgemmStridedBatched( …

分布式系统之BASE理论

BASE理论是对分布式系统设计和处理的一种理论指导&#xff0c;相对于ACID&#xff08;原子性、一致性、隔离性和持久性&#xff09;这一强一致性模型&#xff0c;BASE更强调在分布式系统中牺牲强一致性以获得可用性和性能的平衡。 BASE理论的核心概念包括&#xff1a; Basica…

设计模式之迭代器模式

什么是迭代器模式 迭代器模式&#xff08;Iterator pattern&#xff09;是一种对象行为型设计模式&#xff0c;它提供了一种方法来顺序访问聚合对象中的元素&#xff0c;而又不暴露该对象的内部表示&#xff0c;同时也可以将迭代逻辑与聚合对象的实现分离&#xff0c;增强了代码…

「掌握创意,释放想象」——Photoshop 2023,你的无限可能!

Adobe Photoshop 2023(PS2023) 来了,全世界数以百万计的设计师、摄影师和艺术家使用 Photoshop 将不可能变为可能。从海报到包装&#xff0c;从基本的横幅到漂亮的网站&#xff0c;从令人难忘的徽标到引人注目的图标&#xff0c;Photoshop 2023让创意世界不断前进。借助直观的工…

docker安装(超详细)

一.引言 本安装教程参考Docker官方文档&#xff0c;地址如下&#xff1a;https://docs.docker.com/engine/install/centos/ 二.卸载旧版docker(第一次安装可忽略) 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove docker \docker-client \docker…

【Go 编程实践】从零到一:创建、测试并发布自己的 Go 库

为什么需要开发自己的 Go 库 在编程语言中&#xff0c;包&#xff08;Package&#xff09;和库&#xff08;Library&#xff09;是代码组织和复用的重要工具。在 Go 中&#xff0c;包是代码的基本组织单位&#xff0c;每个 Go 程序都由包构成。包的作用是帮助组织代码&#xf…

Android---App 的安装过程

Android 系统中两个比较重要的服务 ActivityManagerService(AMS) 和 WindowManagerService(WMS)&#xff0c;这篇文章中通过分析 apk 的安装过程&#xff0c;来了解 Android 中另一个比较重要的系统服务 -- PackageManagerService(PMS)。 编译阶段 在分析安装过程之前&#x…

ubuntu无网络连接,没有网络标识,快速解决方法

在这里插入代码片当我们装虚拟机的时候&#xff0c;需要用到网络时发现没有网络连接&#xff0c;且右上角没有网络标识符&#xff0c;这时只需要简单的输入一下三个命令即可 sudo nmcli networking offsudo nmcli networking onsudo service network-manager restart然后重启客…

windows环境下安装Java过程(免登录Oracle官网下载java)

下载路径 oracle官网&#xff1a; java下载路径 Oracle共享账号可下载JDK&#xff1a; 指路 安装流程 执行下载后的jdk的可执行文件一路next下去&#xff0c; 可以自定义安装路径添加环境变量&#xff0c; 两个地方需要添加 在cmd中输入java -version 进行验证&#xff0c;…

在线实用计算工具大全

在线实用计算工具大全 在线计算工具的实用&#xff0c;可以有效提高学习或工作效率&#xff0c;本博文介绍一个在线的实用计算工具大全&#xff08;https://tool.520101.com&#xff09;&#xff0c;作为一种辅助学习工具。 1. 在线排列组合计算 https://tool.520101.com/cal…