SSL/TLS Cipher Suites

article/2025/9/30 15:04:36

Cipher Suite

一个加密算法套件(CipherSuite)是一个四件套,由各类基础的加密算法组成,主要包含了四类: 

1)Key Exchange 密钥交换算法;

2)Authentication 身份认证算法;

3)Encryption 对称加密算法;

4)Message Authentication Code 消息认证码算法(信息摘要缩放);

密钥交换算法

顾名思义,该算法用来交换秘钥

SSL 通信过程(握手结束后)中,双方使用的是对称加密的方式 。由于通信双方以前并不知道彼此的存在,它们也不可能预先存储相同的加密秘钥,那么应当怎么做呢?答案是在 SSL 通信的握手阶段,使用秘钥交换算法使双方使用的秘钥保持一致

常用的密钥交换算法有RSA、Diffie-Hellman密钥交换、ECDH(Elliptic Curve Diffie-Hellman)、SRP(安全远程密码)、由TLS 1.2支持密钥交换算法PSK(Pre Shared Key)。

身份验证算法

身份验证又称“验证”、“鉴权”,是指通过一定的手段,完成对用户身份的确认。常用算法有 RSA、ECDSA、DSS

对称加密算法

对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。常用算法有 AES、DES、3DES。

信息摘要算法

根据某种运算规则对信息进行提取某种形式的提取,提取出来的数据就是摘要。主要用于验证信息的完整性。常用算法有 MD5、SHA-1。

举例说明

比如加密套件为:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA1

TLS:通信协议

ECDHE:秘钥交换算法

ECDSA:身份验证算法

AES_128_CBC:通信时使用的对称加密算法

SHA1:信息摘要算法

SSL/TLS Cipher Suites 对照表

openssl ciphers -V | column -t0x00,0x2F  -  AES128-SHA                     SSLv3    Kx=RSA       Au=RSA    Enc=AES(128)                Mac=SHA1
0x00,0x33  -  DHE-RSA-AES128-SHA             SSLv3    Kx=DH        Au=RSA    Enc=AES(128)                Mac=SHA1
0x00,0x35  -  AES256-SHA                     SSLv3    Kx=RSA       Au=RSA    Enc=AES(256)                Mac=SHA1
0x00,0x39  -  DHE-RSA-AES256-SHA             SSLv3    Kx=DH        Au=RSA    Enc=AES(256)                Mac=SHA1
0x00,0x8C  -  PSK-AES128-CBC-SHA             SSLv3    Kx=PSK       Au=PSK    Enc=AES(128)                Mac=SHA1
0x00,0x8D  -  PSK-AES256-CBC-SHA             SSLv3    Kx=PSK       Au=PSK    Enc=AES(256)                Mac=SHA1
0x00,0x90  -  DHE-PSK-AES128-CBC-SHA         SSLv3    Kx=DHEPSK    Au=PSK    Enc=AES(128)                Mac=SHA1
0x00,0x91  -  DHE-PSK-AES256-CBC-SHA         SSLv3    Kx=DHEPSK    Au=PSK    Enc=AES(256)                Mac=SHA1
0x00,0x94  -  RSA-PSK-AES128-CBC-SHA         SSLv3    Kx=RSAPSK    Au=RSA    Enc=AES(128)                Mac=SHA1
0x00,0x95  -  RSA-PSK-AES256-CBC-SHA         SSLv3    Kx=RSAPSK    Au=RSA    Enc=AES(256)                Mac=SHA1
0xC0,0x1D  -  SRP-AES-128-CBC-SHA            SSLv3    Kx=SRP       Au=SRP    Enc=AES(128)                Mac=SHA1
0xC0,0x1E  -  SRP-RSA-AES-128-CBC-SHA        SSLv3    Kx=SRP       Au=RSA    Enc=AES(128)                Mac=SHA1
0xC0,0x20  -  SRP-AES-256-CBC-SHA            SSLv3    Kx=SRP       Au=SRP    Enc=AES(256)                Mac=SHA1
0xC0,0x21  -  SRP-RSA-AES-256-CBC-SHA        SSLv3    Kx=SRP       Au=RSA    Enc=AES(256)                Mac=SHA10x00,0xAE  -  PSK-AES128-CBC-SHA256          TLSv1    Kx=PSK       Au=PSK    Enc=AES(128)                Mac=SHA256
0x00,0xAF  -  PSK-AES256-CBC-SHA384          TLSv1    Kx=PSK       Au=PSK    Enc=AES(256)                Mac=SHA384
0x00,0xB2  -  DHE-PSK-AES128-CBC-SHA256      TLSv1    Kx=DHEPSK    Au=PSK    Enc=AES(128)                Mac=SHA256
0x00,0xB3  -  DHE-PSK-AES256-CBC-SHA384      TLSv1    Kx=DHEPSK    Au=PSK    Enc=AES(256)                Mac=SHA384
0x00,0xB6  -  RSA-PSK-AES128-CBC-SHA256      TLSv1    Kx=RSAPSK    Au=RSA    Enc=AES(128)                Mac=SHA256
0x00,0xB7  -  RSA-PSK-AES256-CBC-SHA384      TLSv1    Kx=RSAPSK    Au=RSA    Enc=AES(256)                Mac=SHA384
0xC0,0x09  -  ECDHE-ECDSA-AES128-SHA         TLSv1    Kx=ECDH      Au=ECDSA  Enc=AES(128)                Mac=SHA1
0xC0,0x0A  -  ECDHE-ECDSA-AES256-SHA         TLSv1    Kx=ECDH      Au=ECDSA  Enc=AES(256)                Mac=SHA1
0xC0,0x13  -  ECDHE-RSA-AES128-SHA           TLSv1    Kx=ECDH      Au=RSA    Enc=AES(128)                Mac=SHA1
0xC0,0x14  -  ECDHE-RSA-AES256-SHA           TLSv1    Kx=ECDH      Au=RSA    Enc=AES(256)                Mac=SHA1
0xC0,0x35  -  ECDHE-PSK-AES128-CBC-SHA       TLSv1    Kx=ECDHEPSK  Au=PSK    Enc=AES(128)                Mac=SHA1
0xC0,0x36  -  ECDHE-PSK-AES256-CBC-SHA       TLSv1    Kx=ECDHEPSK  Au=PSK    Enc=AES(256)                Mac=SHA1
0xC0,0x37  -  ECDHE-PSK-AES128-CBC-SHA256    TLSv1    Kx=ECDHEPSK  Au=PSK    Enc=AES(128)                Mac=SHA256
0xC0,0x38  -  ECDHE-PSK-AES256-CBC-SHA384    TLSv1    Kx=ECDHEPSK  Au=PSK    Enc=AES(256)                Mac=SHA3840x00,0x3C  -  AES128-SHA256                  TLSv1.2  Kx=RSA       Au=RSA    Enc=AES(128)                Mac=SHA256
0x00,0x3D  -  AES256-SHA256                  TLSv1.2  Kx=RSA       Au=RSA    Enc=AES(256)                Mac=SHA256
0x00,0x67  -  DHE-RSA-AES128-SHA256          TLSv1.2  Kx=DH        Au=RSA    Enc=AES(128)                Mac=SHA256
0x00,0x6B  -  DHE-RSA-AES256-SHA256          TLSv1.2  Kx=DH        Au=RSA    Enc=AES(256)                Mac=SHA256
0x00,0x9C  -  AES128-GCM-SHA256              TLSv1.2  Kx=RSA       Au=RSA    Enc=AESGCM(128)             Mac=AEAD
0x00,0x9D  -  AES256-GCM-SHA384              TLSv1.2  Kx=RSA       Au=RSA    Enc=AESGCM(256)             Mac=AEAD
0x00,0x9E  -  DHE-RSA-AES128-GCM-SHA256      TLSv1.2  Kx=DH        Au=RSA    Enc=AESGCM(128)             Mac=AEAD
0x00,0x9F  -  DHE-RSA-AES256-GCM-SHA384      TLSv1.2  Kx=DH        Au=RSA    Enc=AESGCM(256)             Mac=AEAD
0x00,0xA8  -  PSK-AES128-GCM-SHA256          TLSv1.2  Kx=PSK       Au=PSK    Enc=AESGCM(128)             Mac=AEAD
0x00,0xA9  -  PSK-AES256-GCM-SHA384          TLSv1.2  Kx=PSK       Au=PSK    Enc=AESGCM(256)             Mac=AEAD
0x00,0xAA  -  DHE-PSK-AES128-GCM-SHA256      TLSv1.2  Kx=DHEPSK    Au=PSK    Enc=AESGCM(128)             Mac=AEAD
0x00,0xAB  -  DHE-PSK-AES256-GCM-SHA384      TLSv1.2  Kx=DHEPSK    Au=PSK    Enc=AESGCM(256)             Mac=AEAD
0x00,0xAC  -  RSA-PSK-AES128-GCM-SHA256      TLSv1.2  Kx=RSAPSK    Au=RSA    Enc=AESGCM(128)             Mac=AEAD
0x00,0xAD  -  RSA-PSK-AES256-GCM-SHA384      TLSv1.2  Kx=RSAPSK    Au=RSA    Enc=AESGCM(256)             Mac=AEAD
0xC0,0x23  -  ECDHE-ECDSA-AES128-SHA256      TLSv1.2  Kx=ECDH      Au=ECDSA  Enc=AES(128)                Mac=SHA256
0xC0,0x24  -  ECDHE-ECDSA-AES256-SHA384      TLSv1.2  Kx=ECDH      Au=ECDSA  Enc=AES(256)                Mac=SHA384
0xC0,0x27  -  ECDHE-RSA-AES128-SHA256        TLSv1.2  Kx=ECDH      Au=RSA    Enc=AES(128)                Mac=SHA256
0xC0,0x28  -  ECDHE-RSA-AES256-SHA384        TLSv1.2  Kx=ECDH      Au=RSA    Enc=AES(256)                Mac=SHA384
0xC0,0x2B  -  ECDHE-ECDSA-AES128-GCM-SHA256  TLSv1.2  Kx=ECDH      Au=ECDSA  Enc=AESGCM(128)             Mac=AEAD
0xC0,0x2C  -  ECDHE-ECDSA-AES256-GCM-SHA384  TLSv1.2  Kx=ECDH      Au=ECDSA  Enc=AESGCM(256)             Mac=AEAD
0xC0,0x2F  -  ECDHE-RSA-AES128-GCM-SHA256    TLSv1.2  Kx=ECDH      Au=RSA    Enc=AESGCM(128)             Mac=AEAD
0xC0,0x30  -  ECDHE-RSA-AES256-GCM-SHA384    TLSv1.2  Kx=ECDH      Au=RSA    Enc=AESGCM(256)             Mac=AEAD
0xCC,0xA8  -  ECDHE-RSA-CHACHA20-POLY1305    TLSv1.2  Kx=ECDH      Au=RSA    Enc=CHACHA20/POLY1305(256)  Mac=AEAD
0xCC,0xA9  -  ECDHE-ECDSA-CHACHA20-POLY1305  TLSv1.2  Kx=ECDH      Au=ECDSA  Enc=CHACHA20/POLY1305(256)  Mac=AEAD
0xCC,0xAA  -  DHE-RSA-CHACHA20-POLY1305      TLSv1.2  Kx=DH        Au=RSA    Enc=CHACHA20/POLY1305(256)  Mac=AEAD
0xCC,0xAB  -  PSK-CHACHA20-POLY1305          TLSv1.2  Kx=PSK       Au=PSK    Enc=CHACHA20/POLY1305(256)  Mac=AEAD
0xCC,0xAC  -  ECDHE-PSK-CHACHA20-POLY1305    TLSv1.2  Kx=ECDHEPSK  Au=PSK    Enc=CHACHA20/POLY1305(256)  Mac=AEAD
0xCC,0xAD  -  DHE-PSK-CHACHA20-POLY1305      TLSv1.2  Kx=DHEPSK    Au=PSK    Enc=CHACHA20/POLY1305(256)  Mac=AEAD
0xCC,0xAE  -  RSA-PSK-CHACHA20-POLY1305      TLSv1.2  Kx=RSAPSK    Au=RSA    Enc=CHACHA20/POLY1305(256)  Mac=AEAD0x13,0x01  -  TLS_AES_128_GCM_SHA256         TLSv1.3  Kx=any       Au=any    Enc=AESGCM(128)             Mac=AEAD
0x13,0x02  -  TLS_AES_256_GCM_SHA384         TLSv1.3  Kx=any       Au=any    Enc=AESGCM(256)             Mac=AEAD
0x13,0x03  -  TLS_CHACHA20_POLY1305_SHA256   TLSv1.3  Kx=any       Au=any    Enc=CHACHA20/POLY1305(256)  Mac=AEAD

其中:

  • Kx = Key Exchange
  • Au = Authentication
  • Enc = Encrypt
  • Mac = Message Authentication Code

转自:SSL:Cipher Suite - 知乎 


http://chatgpt.dhexx.cn/article/R9eytaeb.shtml

相关文章

The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]

springboot启动时报错 com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client prefer ences [TLS13, TLS12]”。 原因&…

centos7 SSH防暴力破解五种方法

什么是暴力破解,简单来说就是对一个服务器进行无数次尝试登陆,并用不同的密码进行登陆直到可以登陆成功。暴力破解的基本步骤可以分为以下几步: 找到对应的linux服务器 Ip地址扫描端口号:22 nmap扫描端口开始暴力破解 : 一般root…

Linux云服务器防止暴力破解(三道SSH安全策略)

前言 新购入的服务器,往往用户名默认为root,ssh默认开放22端口,且配置SSH服务时往往同时允许密码和公钥二重登录。然而,许多非法服务器运行着暴力破解程序,通过访问用户名root的22默认端口,暴力获取获取您的…

kali Linux 工具 BurpSuite-暴力破解

关于渗透的实验,我们大多数能在kali的工具集找到,其中关于抓包工具BurpSuite的使用,我做一个比较简单的实验————————暴力破解—————————— 暴力破解,顾名思义,就是我们把密码一个个尝试,只…

拒绝ssh远程暴力破解-以centos7及centos8为例

一、centos8 参考: 如何在CentOS 8上安装和配置Fail2ban - A5互联 - 博客园 (cnblogs.com)https://www.cnblogs.com/a5idc/p/13650056.html上面这一个讲的比较详细:要点摘录如下 默认的Fail2ban安装中带有两个配置文件,/etc/fail2ban/jail…

SSHD 服务防止暴力破解

SSHD 服务防止暴力破解 目录 1、 配置安全的 SSHD 服务(方法一) 2、通过开源的防护软件来防护安全(方法二) 1、配置安全的 SSHD 服务 1.1、 服务器安全策略 密码足够复杂: 密码的长度要大于 8 位不大于 20 位。密…

TLS1.0协议漏洞修复

漏洞描述: 远程服务接受使用TLS 1.0加密的连接。TLS 1.0有许多密码设计缺陷。TLS 1.0的现代实现减轻了这些问题,但是像1.2和1.3这样的TLS的新版本是针对这些缺陷而设计的,应该尽可能使用。截至2020年3月31日,为TLS 1.2及更高版本启…

linux red hat 8.0 root密码破解

简介: root用户是linux用户最大权限的用户,如果不慎将其密码忘记是不可直接更改的,只能通过破解的方式来重置root密码。 linux系统的启动过程: 1 开机自检(POST),初始化部分硬件 2 搜素可用…

STL库实践

STL库实践 1 写在最前面的话1.1 容器(container)1.2 算法(algorithm)1.3 迭代器(iterator)1.4 仿函数1.5 适配器1.6 空间配置器1.7 stl初试牛刀 2 容器之 string2.1 string 构造函数2.2 string基本赋值操作2.3 string存取字符操作2.4 string拼接操作2.5 string查找和替换2.6 st…

【C++进阶——STL库】

STL库 介绍 STL是一个具有工业强度的,高效的C程序库,包含了很多计算机科学领域里所常用的基本数据结构和基本算法;六大组件:容器(Container)、迭代器(Iterator)、算法(Algorithm)、仿函数、适配器、分配器; 容器 定…

STL库:map和set

STL库:map和set 文章目录 STL库:map和set1.STL库中set的官方介绍2.set的常用接口3.set的总结4.STL库中multiset的官方介绍5.STL库中map的官方介绍6.map中的键值对pair7.map的常用接口7.1 map的访问操作7.2 map的修改操作7.3 map的查找操作 8.map的总结9.…

STL库(1)

STL库(1) vectorvector介绍vector使用初始化元素访问内存扩容插入删除 listlist介绍初始化,元素访问插入删除元素 vector和list区别 vector vector介绍 vector是可以改变大小的数组的容器。其内存结构和数组一样,使用连续的存储…

【C++学习五】STL库的应用

文章目录 初识C之 STL标准库1. CSTL的三大核心组件2. 自定义函数与算法对容器实现操作3. 基于自定义函数以及操作模板实现简易数字图像处理3.1 图像灰度变换3.2 图像二值化 4. 初识STL容器之:set集合5.初识STL容器之:map(关联容器)结语 初识C之 STL标准库…

STL库:vector

STL库:vector 文章目录 STL库:vector1.STL库对vector的官方介绍2.vecotr的常用接口2.1 vector的构造函数2.2 vector的迭代器与遍历操作2.3 vector的容量操作2.4 vector的访问操作2.5 vector的修改操作 3.vector迭代器失效问题3.1 insert导致的迭代器失效…

深入理解STL库

关注本人公众号,获取更多学习资料! 微信公众号搜索:阿Q正砖 上期说过C这块面试问的东西也蛮多,简历上只要出现C这几个字,那么STL库就是必问。 总不能是面试官问你了解STL库吗?你尴尬的说这块不怎么熟悉。…

C++ STL标准库

STL 组件 STL 是 C 标准程序库的核心。STL 内的所有组件都由模板构成,其元素可以是任意型别。程序员通过选用恰当的群集类别调用其成员函数和算法中的数据即可,但代价是 STL 晦涩难懂。 STL 组件主要包括容器,迭代器、算法和仿函数。 容器…

C++语法篇之STL库

1. STL介绍 STL是Standard Template Library的缩写,即标准模板库。之前在写 Templates 模板的时候,提到过STL对于模板的应用。STL是由多个模板类构成,能够为开发者提供通用的数据结构和算法。 STL主要包含以下内容: 容器 Conta…

【c++ • STL】初步认识什么是 STL 标准库

🚀 个人简介:CSDN「博客新星」TOP 10 , C/C 领域新星创作者💟 作 者:锡兰_CC ❣️📝 专 栏:从零开始的 c 之旅🌈 若有帮助,还请关注➕点赞➕收藏,不行的…

STL库:list

STL库:list 文章目录 STL库:list1.STL库对list的官方介绍2.list的常用接口2.1 list的构造函数2.2 list的迭代器与遍历操作2.3 list的容量操作2.4 list的访问操作2.5 list的修改操作2.6 list的特别容器操作 3.list的底层源码4.list的模拟实现4.1 list的结…

STL库:string

STL库:string 文章目录 STL库:string1.STL库对于string类的介绍2.string常用接口的掌握2.1 string的构造接口2.2 string的容量操作接口2.3 string的访问操作接口2.4 string的迭代器遍历操作接口2.5 string的修改操作接口2.6 string的非成员函数重载接口2…