cipher加密套件(openssl)_ssl_ctx_set_cipher_list-程序员宅基地

一个加密套件指明了SSL握手阶段和通信阶段所应该采用的各种算法。这些算法包括:认证算法、密钥交换算法、对称算法和摘要算法等。
在握手初始化的时候,双方都会导入各自所认可的多种加密套件。在握手阶段,由服务端选择其中的一种加密套件。
OpenSSL的ciphers命令可以列出所有的加密套件。openssl的加密套件在s3_lib.c 的
ssl3_ciphers数组中定义。比如有:

  1. /* Cipher 05 */
  2. {
  3. 1,
  4. SSL3_TXT_RSA_RC4_128_SHA,
  5. SSL3_CK_RSA_RC4_128_SHA,
  6. SSL_kRSA|SSL_aRSA|SSL_RC4 |SSL_SHA1|SSL_SSLV3,
  7. SSL_NOT_EXP|SSL_MEDIUM,
  8. 0,
  9. 128,
  10. 128,
  11. SSL_ALL_CIPHERS,
  12. SSL_ALL_STRENGTHS,
  13. }


其中1表示是合法的加密套件;
SSL3_TXT_RSA_RC4_128_SHA为加密套件的名字,
SSL3_CK_RSA_RC4_128_SHA 为 加密套件 ID ,
SSL_kRSA|SSL_aRSA|SSL_RC4 |SSL_SHA1|SSL_SSLV3 表明了各种算法,
其中密钥交换采用RSA算法(SSL_kRSA),认证采用RSA算法(SSL_aRSA),对称加密算法采用RC4算法(SSL_RC4),摘要采用SHA1,采用SSL协议第三版本,
SSL_NOT_EXP|SSL_MEDIUM表明算法的强度。

在客户端和服务器端建立安全连接之前,双方都必须指定适合自己的加密套件。加密套件的选择可以通过组合的字符串来控制。
字符串的形式举例:ALL:!ADH:RC4+RSA:+SSLv2:@STRENGTH。
Openssl定义了4中选择符号:“+”,“-”,“!”,“@”。其中,“+”表示取交集;“-”表示临时删除一个算法;“!”表示永久删除一个算法;“@“表示了排序方法。
多个描述之间可以用“:”、“,”、“ ”、“;”来分开。选择加密套件的时候按照从左到的
顺序构成双向链表,存放与内存中。

ALL:!ADH:RC4+RSA:+SSLv2:@STRENGTH表示的意义是:首先选择所有的加密套件
(不包含eNULL,即空对称加密算法),然后在得到的双向链表之中去掉身份验证采用DH
的加密套件;加入包含RC4算法并将包含RSA的加密套件放在双向链表的尾部;再将支持
SSLV2的加密套件放在尾部;最后得到的结果按照安全强度进行排序。
SSL建立链接之前,客户端和服务器端用openssl函数来设置自己支持的加密套件。主要
的函数有: 

  1. int SSL_set_cipher_list(SSL *s,const char *str)
  2. int SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str)

比如只设置一种加密套件:
int ret=SSL_set_cipher_list(ssl,"RC4-MD5"); 
如果服务端只设置了一种加密套件,那么客户端要么接受要么返回错误。加密套件的选
择是由服务端做出的。

http://blog.chinaunix.net/uid-24709751-id-4050413.html


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bytxl/article/details/48263841

智能推荐

How to Disable System Integrity Protection (rootless) in OS X El Capitan-程序员宅基地

文章浏览阅读94次。mac在10.11之后增加了一个功能,号称“System Integrity Protection, often called rootless”,有了这个功能,以下目录的东西都不能动。/System/sbin/usr (with the exception of /usr/local subdirectory)但也带来了一些问题,比如升级openssl的时候就一直失败。有一个..._disable system integrity

Python安装教程(pytorch环境配置)_pytorch.ory-程序员宅基地

文章浏览阅读8.5k次,点赞10次,收藏36次。Python安装教程(pytorch环境配置)敬告:想要使用python,无论是做项目,还是搞科研,安装python前,最好先装anaconda,然后配置一个或多个项目的环境,并在环境中安装所需版本的python。内容大部分是自己编辑整合,有部分内容来源于网络,这个文档本来是给自己和学弟学妹们用的,就也没有注明部分内容来源。近期有同学问,就顺便把这篇发出来,如侵删。一、安装anaconda31、下载安装包推荐使用清华镜像下载,速度块。下载地址:https://mirrors.tuna.tsing_pytorch.ory

meter进度条 不同颜色_meter进度条改颜色-程序员宅基地

文章浏览阅读1.1k次。<meter max="100" min="0" high="66" low="33" optimum="80" value="67"></meter><br>其中optimum是重要的一点 定义了什么样的度量值是最佳的值 一般应设置optimum大于high,这样可以起到一个效果 高于 high 的 value 值会显示绿色 低于high的值会显示红色 注意:即使value的值此时没有大..._meter进度条改颜色

Linux shell运行代码&Hello world的编写_no string under cursor-程序员宅基地

文章浏览阅读3k次,点赞6次,收藏21次。“E348: No string under cursor”提示是没有按“i”进入插入模式,Linux shell运行代码的方式&基础linux指令&简单的shell语法和脚本编写Linux shell运行代码&Hello world的编写_no string under cursor

bin文件转dat文件_bin转dat-程序员宅基地

文章浏览阅读4.5k次,点赞3次,收藏4次。方法1:xxd转换的格式有限方法2:hexdump -v -e '"%08x\n"' xxx.bin > xxx.dat转换格式灵活,命令简单。方法3:Python# 打开文件print(SrcFile)SrcFileID = open(SrcFile, 'rb')# 获取字符串列表lines = SrcFileID.read()# data = struc..._bin转dat

windows远程桌面连接TX2(Ubuntu)_vnc连接tx2-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏23次。本文实现在·TX2上自启动服务,实现在windows通过自带远程桌面连接TX2图形化界面。下面推荐几种在windows远程连接tx2的方式:一、SSH远程连接:SSH连接无图形化界面,推荐几个app1、putty.exe(用于ssh连接,也可以用于串口调试)2、Finalshell——优点:ssh连接后可以看到Ubuntu系统下的文件目录,其他ssh连接只能看到命令行。3、xshell二、xfce显示目前桌面远程连接出来结果,网上所有教程分为两种,第一种,出来Xfce的界面也就是说不是原始的U_vnc连接tx2

随便推点

Bioconda的使用_bioconda的源-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏11次。若要使用bioconda,首先应下载miniconda或Anaconda,Anaconda的安装需要root权限,我下载的是miniconda,只在该用户下安装下载 minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh安装minicondabash,sh命令..._bioconda的源

tar 命令详解_tar -c-程序员宅基地

文章浏览阅读3.7k次,点赞9次,收藏81次。tar命令[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:[plain] view plain copy-c:建立一个压缩文件的参数指令(create 的意思); -x:解开一个压缩文件的参数指令! -t:查看 tarfile 里面的文件! -r:向压缩归档文件末尾追加文件 _tar -c

12c rman备份归档日志及注意事项_archivelog all not backed up 2 times;-程序员宅基地

文章浏览阅读929次。Oracle 12c中,可以从CDB$ROOT中备份归档日志:RMAN> backup archivelog all;RMAN> backup archivelog all delete input;如下命令显示了如何备份那些没有备份两次的归档日志:RMAN> backup archivelog all not backed up 2 times;当连接到PDB时,..._archivelog all not backed up 2 times;

原来博客的用处真的很大耶~~_博课的使用好处-程序员宅基地

文章浏览阅读393次。 注册CSDN都好久了,可是一直都没怎么有时间光顾,可能是因为学习太忙,也可能因为自己懒惰,不愿写博客,后来才发现博客的用处真的蛮大耶~~O(∩_∩)O 以前在学习上遇到问题时,总喜欢Google一下,去寻找答案,发现很多人把解决问题的答案写在博客上,日积月累,越来越多.才发现这是一种非常不错的学习方法,既可以复习以前学习的东西,加强理解和记忆,又可以帮助那些需要帮助的人,也许你的经验分享能给其他人莫大的帮助. ^_^以后会尽量多的写些博客,把自己的经验和体验分享在博客上,希望能帮助那些需要帮助的_博课的使用好处

jmeter 报错:HTTP Status 415 – Unsupported Media Type_jmeter上post接口报错415-程序员宅基地

文章浏览阅读623次。jmeter 报错:HTTP Status 415 – Unsupported Media Type_jmeter上post接口报错415

PHP分页查询练习-程序员宅基地

文章浏览阅读41次。1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head&..._php分页答题

推荐文章

热门文章

相关标签