通用准则评估:如何运行FCS_TLSS测试及解决FCS_TLSS_EXT.1.1测试5执行难题?
通用准则合规:FCS_TLSS测试执行与FCS_TLSS_EXT.1.1测试5问题解决
我之前帮客户处理过类似的通用准则(Common Criteria)TLS合规测试问题,针对你的两个疑问,整理了具体的解决步骤:
一、如何运行通用准则评估的FCS_TLSS测试
要通过tls-cc-tools执行FCS_TLSS测试,核心是做好环境准备、配置适配和命令执行这几个环节:
- 环境校验
先确认tls-cc-tools的依赖(比如Python 3.x、OpenSSL 1.1.1+等)都已安装,被测TLS服务(客户端/服务器)处于可访问状态,且网络环境允许工具与被测实体建立TLS连接。 - 测试配置调整
找到工具自带的FCS_TLSS测试配置模板(通常在configs/目录下),根据你的评估需求修改:- 指定被测实体的IP、端口;
- 勾选要覆盖的FCS_TLSS子测试项;
- 设置TLS版本、 cipher suite等基础参数,匹配通用准则的评估要求。
- 执行测试命令
运行工具的测试启动命令,示例如下(具体参数以你的工具版本为准):
执行后工具会自动遍历子测试项,生成实时日志和最终测试报告。python3 tls-cc-runner.py --suite FCS_TLSS --target 192.168.1.100:443 --config ./configs/fcs_tlss_config.yaml - 结果验证
测试完成后重点检查报告中每个子项的状态,失败项可以通过工具生成的抓包日志定位问题,比如是否是被测实体不支持某个TLS特性,或者工具配置有误。
二、FCS_TLSS_EXT.1.1测试5的数据包修改位置
FCS_TLSS_EXT.1.1测试5的核心是验证被测TLS实体对异常扩展字段的合规处理(比如拒绝非法扩展、保持握手稳定性),需要在TLS握手的ClientHello数据包中修改扩展区域的特定字段:
- 具体修改位置
在ClientHello消息的扩展列表段(位于Session ID、Cipher Suites、Compression Methods之后),针对目标扩展做以下任意一种异常修改:- 扩展类型字段:将标准扩展类型(比如0x0000表示SNI、0x000B表示ALPN)改为IANA未分配的无效值(比如0xFFFF);
- 扩展长度字段:设置与实际扩展内容不匹配的长度值(比如扩展内容仅3字节,但长度字段设为10);
- 扩展内容字段:在合法扩展类型下填入不符合规范的内容(比如SNI扩展中包含非ASCII字符且未做Punycode编码)。
- 通过tls-cc-tools修改的方式
大多数版本的tls-cc-tools支持在配置文件中定义自定义ClientHello模板,你可以在对应测试项的配置块中添加extension_modifications参数,指定要修改的扩展字段和值;如果工具没有内置该功能,也可以用工具的数据包编辑模块手动构造异常ClientHello后重放。 - 关键注意点
修改时要保证ClientHello的整体结构符合TLS协议的基本格式(除了目标扩展的异常点),否则被测实体可能直接丢弃数据包,无法触发测试场景。
内容的提问来源于stack exchange,提问作者Shahbaz Shueb
相关产品推荐
相关产品推荐

