1. 前言

(防止你不了解)SP 800-140x子系列的公开评议期已于2019年12月9日结束。在完成了我们的草案审查后,我们认为应该分享些想法和热点话题。
提醒:这些是重要的文件,因为它们修改了认证机构CMVP允许的ISO/IEC 19790:2012和ISO/IEC 24759:2017的要求。
SP 800-140x文件的最终版本预计将于2020年3月22日发布。是的,各位,这些是针对CMVP下验证模块新的派生测试需求(DTR)。你以为你理解的差异点是全的,对吧?
所以,让我们开始——拿起一杯咖啡——深入研究ISO/IEC 19790:2012/Cor.1:2015(E) (不是2012版的ISO 19790)。

2. SP 800-140(草案):CMVP修改了ISO/IEC 24759

SP 800-140草案在ISO/IEC 24759:2017中修改并增加了厂家证据和测试者证据的要求。在SP 800-140的第6节,当谈到保障测试者证据时,CMVP澄清了他们需要什么,我觉得这很好!

对于文档:

参考/引用适用的厂商文件,并根据测试者证据(TE)总结内容。
运行测试:
描述测试方法与工具,并根据TE总结测试结果。
核实或通过检查核实:
描述用于验证要求的测试或检验方法,并根据TE提供详细的检验结果。

对密码模块规范(6.2)、密码模块接口(6.3)、软件/固件(6.5)、操作环境(6.5)、非侵入性安全(6.8)、自检(6.10)部分无修改或变化。
第一个变化出现在角色、服务和身份验证(6.4)部分。它适用于SL 2级及以上版本,用于隐藏有用的操作员身份验证信息。这里没有太惊天动地-大多数现代的COTS产品都能做到这一点。
接下来是物理安全性(6.7),其中附加要求被添加到AS.07.37(SL 3级和SL 4级的单芯片实施例)。CMVP希望安全策略包含执行硬度测试(hardness testing)时的温度范围。此外,提醒一下,该测试仅在单一温度下执行,不保证任何其他温度下的完全一致性。

在AS.07.77和AS.07.81(SL 3级和SL 4级的环境故障保护特性)中为供应商安全策略(Security Policy)添加了额外的供应商证据要求。安全策略现在必须给出故障、清零和正常运行时的温度范围。
对于敏感安全参数管理(6.9)部分,CMVP已经将AS09.30(适用于SL 2级)的规定文档需求移到了AS09.28(适用于SL 1级)。这意味着ISO 24759:2017中的SL 2级要求对FIPS 140-3中的SL 1级有效。
最后,但同样重要的是,CMVP将下面讨论的SP 800-140A中的CVE要求添加到生命周期保证(6.11)部分。

3. SP 800-140A(草案):都是关于CVE的

SP 800-140A修改了ISO/IEC 19790附录A关于供应商的文档要求,该要求规定了密码模块的文档要求。CMVP可以根据ISO/IEC 19790第5.2段的规定修改、添加或删除供应商证据(VE)和/或测试证据(TE)。SP 800-140A应与ISO/IEC 19790附录A和ISO/IEC 24759第6.13段一起使用,因为它实际上修改和增加了要求。
除此之外,它真正关注的是模块的常见漏洞和暴露(CVE)。供应商现在必须声明与被测模块关联的库或设备不存在已被列入CVE清单中的漏洞。
如果CVE与其中任何一个相关,供应商应给出说明为什么包含该模块的任何设备不会影响模块的安全性/运行。根据我们的经验,这意味着我们需要文档说明消减技术或补偿控制。

4. SP 800-140B(草案):安全策略功能

SP 800-140B与ISO/IEC 19790附件B和ISO/IEC 24759 6.14一起使用。SP 800-140B还规定了CMVP对模块安全策略的图表内容等的要求,这是对ISO/IEC 19790附件B的要求。
在FIPS 140-3中,安全策略的规模和细节将会增加。SP 800-140B只是对此进行了添加,还指定了格式要求。它真正展示了CMVP对FIPS 140-3安全策略文档的期望。我们设想供应商的安全策略模板将需要从SP 800-140B的第6部分派生出来。总的来说,从概念上讲,它非常接近FIPS 140-2。CMVP最终要求加一个逻辑框图(或者描述两者的图)——正如你们部分人所了解,这一直是一个争议的话题。当前在FIPS 140-2中,它并不是100%强制性。

SP 800-140B规定软件模块必须按照表格形式,列出操作系统、硬件平台、处理器以及是否支持PAA/加速。供应商确认的运行环境现在必须遵循相同的需求。
在我们的审查中,我们注意到模块被批准的服务需要更多的特异性。SP 800-140B中的表格现在需要服务、获批准的安全功能,Key/ SSP,与服务相关的角色和访问权限被显式列出。这可能需要一段时间来体会他们要求的详细程度。
现在SSP表还包含了CAVP/ACVP证书号。附带的获批算法表似乎有点多余。

5. SP 800-140C(草案):基本就是FIPS 140-2附录A

SP 800-140C旨在指定FIPS 140-3中应使用的经CMVP批准的安全功能。安全功能包括:

  • 对称密钥加密与解密(AES, TDEA)
  • 数字签名(DSA, RSA和ECDSA)
  • 安全哈希标准 SHA-3标准
  • 消息认证(Triple-DES, AES和HMAC)

这里没有什么意外。每个都映射到NIST特别出版物或FIPS出版物,类似于FIPS 140-2附录A。

6. SP 800-140D(草案):FIPS 140-2附录C

SP 800-140D规定了FIPS 140-3中批准的敏感参数生成和建立方法要求。有趣的是,NIST选择指向NIST SP 800-133,而不包括NIST SP 800-90A。
SP 800-140C还增加了密钥的建立技术。它实际上引用了FIPS 140-2实施指南D.2和D.1rev2(在我们看来,这是一个循环引用)。此外,还包括NIST SP 800-56Ar1、r2和r3。还有NIST SP 800-56B, NIST SP 80-56C, SP 800-38F, SP 800-108, SP 800-132和SP 800-135r1。
注:NIST SP 800-140C和SP 800-140D也是明确承认NIST SP 800-131A(当前版本为r2)作为CMVP下所有算法转换的指导文档。

7. SP 800-140E(草案):身份验证要求(SL 2级及以上)

这里有一些有影响力的东西-有一些解析和消化。SP 800-140E在FIPS 140-3中规定了获批的身份验证机制要求。该文档在原则上与NIST SP 800-63B非常一致,CMVP称其“是管理身份验证的一个很好的信息参考”。从我们的阅读材料来看,使用了许多相同的术语。一个这样的例子是Authenticator:它是用来确认用户、处理器或设备身份的方法(例如,用户口令或token)。

表1 每个FIPS 140-3安全级别所允许的身份验证机制:

级别 要求
L1 无要求,可以是隐式的(implict)。如果启用身份验证,最少要满足L2的要求。
L2 单因子:记住的秘密(译注1),生物特征,密码学软件或设备(译注2)
L3 同L2
L4 双因子:记住的秘密+生物特征或密码学软件或设备,或 生物特征+密码学软件或设备

译注1:原文memorized secret,其实就是口令
译注2:就是软件token或者硬件token。软token往往用手机App来实现,硬件token采用token卡或者U盾的方式来实现。

在SL 1级,对角色没有要求或对角色的身份验证是隐式的。
在第2级和第3级,一个因子是你知道的东西(记住的秘密),你拥有的东西(token或设备)或你是什么(生物特征)。
需要注意的是,该文档包含“SHOULD”和“SHALL”语句(译注3)。“SHALL”是强制性的,而“SHOULD”是推荐但不强制。
译注3:“SHALL”可以理解为“应该”,“SHOULD”可以理解为“应当”。

SP 800-140E明确要求操作员选择的记忆秘密(密码/ PIN码等)长度至少为8个字符。如果由模块随机选择,长度至少为6个字符。该文档指定了格式建议,并明确指出不应执行截断,并且每个unicode码位应被视为单个字符。

模块必须能抵御猜测攻击,在单个帐户上最小失败的连续身份验证尝试不超过100次。(标准)还列出了其他几种可选技术,以降低攻击者锁定合法帐户的可能性。
在生物识别部分,SP 800-140E要求传感器/端点和密码模块之间有一个可信通道。在从身份声明者获取生物特征样本之前,还应对传感器或端点进行身份验证。它还规定生物识别系统的误匹配率/误接受率(FMR/FAR)为1000分之一或更高。FMR/FAR是系统错误地将输入模式匹配到数据库中不匹配模板的概率。它度量了无效输入被错误接受的百分比。

ISO/IEC 30107-1、ISO/IEC 30107-3规定了生物识别设备的一些附加要求。看来这些作为SP 800-140E中应检声明的参考点的ISO文件可能需要购买。目前,我们认为SP 800-140E第6节作为生物识别要求的独立文档做得不够好。像FMR和PAD这样的术语在第4节中没有定义,这有些遗憾。
生物特征表示攻击检测(PAD,Presentation Attack Detection),也称为生物特征防欺骗。SP 800-140E规定模块应该实现PAD,但随后又规定了一些强制性要求,这让我们有点挠头。
第6.4.1节继续介绍了NIST关于生物识别和可用性的出版物中关于生物识别可用性的一些通常考虑。我们不确定这个信息能提供什么价值。这里没有“SHOULD”或“SHALL”的表述——它看起来只是一种信息。

单因子认证要求:
SP 800-140E继续在软件和硬件中定义单因子身份验证器。唯一严格的要求似乎是围绕秘密密钥的机密性和完整性(防止未经授权的披露、修改或导出)。密钥使用的算法必须通过FIPS认证,并满足强度要求。
对于挑战nonce值,由单因素加密设备生成的nonce值必须至少为64位长度,并且在验证者的生命周期内是唯一的,或者由获批的DRBG生成。nonce值的验证操作必须使用已批准的密码学技术。

多因子认证要求:
多因子密码装置是你拥有的东西,它应该被“你知道的什么”或“你是的什么”激活。原则上的大部分要求是相同的(关于密钥的机密性和完整性)。
任何来自样本的生物特征数据必须在认证后立即清零。
总结一下:我们认为SP 800-140E的某些部分与SP 800-140系列文档的其他部分阅读起来不同。生物识别部分给人的感觉(推出得)尤其仓促。当谈到SP 800-140E时,我们关注的是清晰的解释和需求范围的延伸(比如:什么是强制的,什么是非强制的)。

8. SP 800-140F(草案):好吧,2020年9月会发生什么?

SP 800-140F旨在指定FIPS 140-3中已批准的非侵入式(non-invasive)攻击消减测试指标要求。现在,这个文档所做的只是指向另外两个ISO文档,它们可以购买,其中一个目前正在开发中:
ISO/IEC 17825:2016 – Information technology – Security techniques – Testing methods for the mitigation of non-invasive attack classes against cryptographic modules.

摘要如下:
ISO/IEC 17825:2016规定了非侵入式攻击消减测试指标,用于确定是否符合ISO/IEC 19790 SL 3和SL 4级中规定的要求。测试指标与ISO/IEC 19790中规定的安全功能相关联。测试将在密码模块既定边界和在既定边界可用的I/O上开展。
测试实验室用于测试加密模块是否符合ISO/IEC 19790中规定的测试方法,和本标准中规定的针对ISO/IEC 19790中规定的每个相关安全功能的测试指标,在ISO/IEC 24759中规定。本国际标准采用的测试方法是一种有效的“按钮式”(push-button)测试方法:测试在技术上可靠、可重复且成本适中。

ISO草案的引言和范围部分摘录如下:
本文档侧重于测信道信息的测量和分析。侧信息非侵入式测试工具可以自动收集此类泄漏。为了表征测试工具的质量,需要度量,例如信噪比(S/N)(在ISO/IEC 20085-2中描述)。ISO/IEC 20085(all parts)涉及测量和分析技术。这些在测试工具中是自动化的。测试工具的功能和操作在ISO/IEC 20085(all parts)中有描述。

该文件提供了非侵入式攻击测试工具的规范和如何操作此类工具的信息。测试工具的目的是收集信号(即侧信道泄漏),并将其作为对被测密码模块实现(IUT)的非侵入式攻击进行分析。
DRAFT ISO/IEC 20085-2 Information technology – Security techniques – Test tool requirements and test tool calibration methods for use in testing non-invasive attack mitigation techniques in cryptographic modules — Part 2: Test calibration methods and apparatus. 该文件旨在规定测试SL 3/SL 4模块用以消减ISO/IEC 17825:2016中定义的非侵入式攻击类别的实际测试方法和试验台实验室必须使用的测试方法。
在撰写这篇博文时(译注3:2019年年末),这份文件仍未出版。它仍被列在“查询阶段”(enquiry stage)。最终敲定可能需要几个月的时间。

对FIPS 140-3的“差异”和差距分析不会看到全貌,除非它包括SP 800-140系列。这就是为什么我们建议在开发FIPS 140-3产品时采取观望态度。DTR有一些有影响力的补充/修改,以及一些解释仍然有点模糊的地方(主要是在SL3及以上)。除非您的业务需求要求获得FIPS 140-3证书(不应该是现在),否则最好采取观望的方式。

FIPS 140-3与140-2的差异-5相关推荐

  1. 140.210.28.29扬州BGP高防服务器

    江苏扬州市机房,位于运河西路237号数据中心,机柜数量400-500个,位于4楼6楼,每层200多个标准机柜,机柜42U.同机房典型客户有阿里的天猫 淘宝 CDN业务.金山云的华东最大节点,以及小米后 ...

  2. Windows服务器防火墙端口怎么开放?扬州服务器租用140.210.20.X

    什么是端口? 我们平时所说的端口其实不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口.本地操作系统会给那些有需求的进程分配一个端口.当目的主机接收到数据包后,将根据报文首部 ...

  3. C语言:计算全班学生的总成绩、平均成绩和以及 140 分以下的人数。

    以下是使用结构体实现统计全班总成绩,平均分以及140分以下的人数. 进入程序后先进行选择是要继续输入下一个学生成绩或者退出. 当输入学生成绩后,会打印出所有学生的成绩以及全班的总成绩,平均分和少于14 ...

  4. 第二章-数据描述(初级统计)

    一.图表展示定性数据 定性数据包括分类数据和顺序数据(通常用频数分布表和图形描述). 饼图.直方图.环形图来描述的是单变量的数据. (一)频数分布表 频数分布表中落在某一特定类别的数据个数称为次数或频 ...

  5. Scipy_常用统计函数

    Scipy_常用统计函数 Weijia Li 关注公众号,一起学习~ 无聊e编程 from scipy.stats import * import numpy as np import matplot ...

  6. python画一片树叶的故事_《Python数据分析与机器学习实战-唐宇迪》读书笔记第7章--决策树...

    第7章决策树 决策树算法是机器学习中最经典的算法之一.大家可能听过一些高深的算法,例如在竞赛中大杀四方的Xgboost.各种集成策略等,其实它们都是基于树模型来建立的,掌握基本的树模型后,再去理解集成 ...

  7. [统计学笔记] (八)分类数据分析

    (八)分类数据分析 首先思考问题: 1. 为什么要对数据进行分类?如何对数据分类? 2. 数据分类后,如何对分类数据进行分析? 数据分类 分类变量的结果表现为类别,例如:性别 (男, 女) 各类别用符 ...

  8. 毕业设计 - 题目:基于机器视觉的图像矫正 (以车牌识别为例) - 图像畸变校正

    文章目录 0 简介 1 思路简介 1.1 车牌定位 1.2 畸变校正 2 代码实现 2.1 车牌定位 2.1.1 通过颜色特征选定可疑区域 2.1.2 寻找车牌外围轮廓 2.1.3 车牌区域定位 2. ...

  9. 93、R语言教程详解

    加载数据> w<-read.table("test.prn",header = T)> w X.. X...11 A 22 B 33 C 54 D 5> l ...

  10. 科学研究设计四:测量

    说明 这是Bangor University 2007年School of Sport Health & Exercise Sciences的教学讲义,大家可以在这里查看原课程的讲义 课程目录 ...

最新文章

  1. java 内存溢出-与gc
  2. 【转】Apache配置中ProxyPassReverse指令的含义
  3. 第十章 使用机器学习的建议-机器学习老师板书-斯坦福吴恩达教授
  4. Mybatis的update方法
  5. MATLAB函数gensurf,matlab模糊逻辑(二)
  6. python 优雅的解析 jsonp
  7. 拉美光伏新兴市场热潮将至
  8. cf1039D 分块
  9. python-字符串方法
  10. ansible动态inventory里的针对AWS中国的设置
  11. 笔试题Python解决
  12. java file util_Java FileUploadUtil工具类详解
  13. 五金模具设计统赢外挂提升效率技巧、外挂模具设计流程的问题归纳
  14. idea 安装本地插件
  15. 单细胞转录组测序建库方法小结
  16. 计算机文件夹里没有显示桌面,桌面上还有文件夹里,有的图标不显示
  17. Subversion的安装部署与用户验证配置
  18. Varian OBI几个奇葩之处
  19. Pandas 基础(16) - Holidays
  20. 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理

热门文章

  1. JAVA基础金币游戏算总数
  2. 在docker下安装运行vue
  3. Linux 3.10内核锁瓶颈描述以及解决-overlayfs的性能缺陷
  4. 瓦片经纬度及行列号转换_arcgis server瓦片行列号计算
  5. 安徽大学线性代数习题册第四章详细答案
  6. 数据预处理——数据清洗
  7. opencv中几种阈值分割
  8. 关于IOPS指标对性能的影响
  9. 淘宝推广方法大全,教你如何做淘宝(转)
  10. Camtasia2023最好用的电脑屏幕录制软件