NetScaler的cipher选择机制

简介:
这些天很是研究了一把NetScaler关于cipher选择的机制。通过抓包进行分析得知一个初步结论为NetScaler针对cipher选择的机制可能是匹配client hello包中的第一个cipher,也就是说按照此包中的cipher list进行顺序匹配。这样的机制很被动,因为客户端的cipher list是我们不可控的。原来以为NetScaler会根据client hello的cipher list和NetScaler所支持(相关virtual server配置的ssl cipher)cipher list进行匹配选择安全强度最高的进行加密。有图有真相:
这是client hello包中的cipher list:
image
下面是server hello选择的cipher list:
image
从上面的结论来看,好像是选择的client hello包中的第一个cipher。
为了进一步确认,我想citrix开了一个case。从case中心得出的结论是:NetScaler会根据自身支持的cipher list顺序进行匹配。case中心的答复:
During the handshake, SSL client will announce a list of supported cipher suite. NetScaler will go through the list of ciphers configured on the SSL vserver sequentially, once there is a cipher being matched, that cipher will be used. Let me provide you an example:
sh ssl cipher DEFAULT
1) Cipher Name: SSL3-RC4-MD5
Description: SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5
2) Cipher Name: SSL3-RC4-SHA
Description: SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1
3) Cipher Name: SSL3-DES-CBC3-SHA
Description: SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1
4) Cipher Name: TLS1-AES-256-CBC-SHA
Description: TLSv1 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
If the vserver is using the cipher group DEFAULT, the NetScaler will try match the first cipher, which is SSL3-RC4-MD5. If the client supports it, this one will be used. If not, NetScaler will check the second one which is SSL3-RC4-SHA and this process continue until a cipher is matched with the client’s list. You can use the command “show ssl vserver ***” to check the order of the vserver.
而且我通过进行了测试,确认了case中心的答复无误。而后我查看了上面抓包的vserver的ssl cipher order,如下:
image
进一步确认了case中心的答复。只是有一点疑问,client使用的是TSL1,而server端使用的是SSL3,据case中心说TSL1和SSL3是可以兼容匹配的。
所以,有了这样的理论和实践测试证明。我们可以通过修改vserver的cipher order来解决SSL数据使用弱cipher的问题。那么cipher list的顺序是怎么确定的呢?通过反复测试得知:在建立cipher list的时候按照选择添加的顺序进行排序。这样我们就可以将高强度的cipher先添加进去,确保cipher的顺序符合我们的要求。
但是有一点需要注意:使用高强度的cipher比低强度的算法要更耗NetScaler的performance一些。









本文转自 chris_lee 51CTO博客,原文链接:http://blog.51cto.com/ipneter/204734,如需转载请自行联系原作者

目录
相关文章
|
应用服务中间件 Linux 网络安全
Linux 安装 Nginx 并配置为系统服务(超详细)
Linux 安装 Nginx 并配置为系统服务(超详细)
|
SQL 存储 关系型数据库
解析MySQL Binlog:从零开始的入门指南【binlog入门指南】
解析MySQL Binlog:从零开始的入门指南【binlog入门指南】
13886 0
|
网络协议 安全 Linux
Tool之wget:wget的简介、安装、入门、使用方法之详细攻略(一)
Tool之wget:wget的简介、安装、入门、使用方法之详细攻略
Tool之wget:wget的简介、安装、入门、使用方法之详细攻略(一)
|
10月前
|
人工智能 自然语言处理 数据挖掘
轻松上手,性能爆表:零门槛体验DeepSeek-R1满血版评测
DeepSeek-R1满血版是一款真正实现“零门槛”的高性能AI设备,以其卓越的性能和易用性打破了技术壁垒。用户可通过阿里云百炼模型服务轻松配置部署,支持文本生成、代码编写、数据分析等多任务,响应迅速,硬件要求低,适合非技术背景用户提升效率。测评显示其在数学、代码和推理任务上表现出色,成本优势明显,性价比极高。推荐指数:★★★★★。 核心亮点包括零学习成本、一键部署、中文交互友好、预训练模型优化及私有化部署保障数据隐私。总体而言,DeepSeek-R1满血版实现了开箱即用的AI体验,尤其适合新手或追求高性价比的用户。
1121 5
|
人工智能 C++ iOS开发
ollama + qwen2.5-coder + VS Code + Continue 实现本地AI 辅助写代码
本文介绍在Apple M4 MacOS环境下搭建Ollama和qwen2.5-coder模型的过程。首先通过官网或Brew安装Ollama,然后下载qwen2.5-coder模型,可通过终端命令`ollama run qwen2.5-coder`启动模型进行测试。最后,在VS Code中安装Continue插件,并配置qwen2.5-coder模型用于代码开发辅助。
20957 71
|
9月前
|
人工智能 资源调度 调度
DeepSeek一体机!飞天企业版上新“AI Stack”,支持DeepSeek满血版和Qwen单机部署!
飞天企业版上新“AI Stack”,支持DeepSeek满血版和Qwen单机部署!
4877 0
|
机器学习/深度学习 人工智能 自然语言处理
AI编程发展历史回顾:从孕育到普及的演进轨迹
AI编程发展历史回顾:从孕育到普及的演进轨迹
1147 4
|
人工智能 并行计算 监控
深入剖析 Qwen2.5 - 32B 模型在 VLLM 上的单机三卡部署与运行
本文深入探讨了Qwen2.5 - 32B模型在VLLM框架上的部署过程,从模型下载、启动命令、资源占用分析到GPU资源分配及CUDA图应用,详述了大模型运行的挑战与优化策略,强调了硬件资源规划与技术调优的重要性。
7581 2
|
弹性计算 网络安全
快速部署 RAGFlow 社区版
RAGFlow是一个基于深度文档理解的开源RAG(检索增强生成)引擎。当与LLM集成时,它能够提供真实的问答功能,并得到各种复杂格式数据的充分引用的支持。本文介绍如何通过计算巢快速部署 RAGFlow社区版。
快速部署 RAGFlow 社区版