FIPS 140-3与140-2的差异-5

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证书(不应该是现在),否则最好采取观望的方式。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Many U.S. Government Information Technology (IT) systems need to employ well-established cryptographic schemes to protect the integrity and confidentiality of the data that they process. Algorithms such as the Advanced Encryption Standard (AES) as defined in Federal Information Processing Standard (FIPS) 197,1 and the Keyed-Hash Message Authentication Code (HMAC) as defined in FIPS 1982 make attractive choices for the provision of these services. These algorithms have been standardized to facilitate interoperability between systems. However, the use of these algorithms requires the establishment of keying material between the participating entities in advance. Trusted couriers may manually distribute this secret keying material. However, as the number of entities using a system grows, the work involved in the distribution of the secret keying material could grow rapidly. Therefore, it is essential to support the cryptographic algorithms used in modern U.S. Government applications with automated key-establishment schemes. A key-establishment scheme can be characterized as either a key-agreement scheme or a key-transport scheme. The asymmetric-key-based key-agreement schemes in this Recommendation are based on the Diffie-Hellman (DH) and Menezes-Qu-Vanstone (MQV) algorithms. Asymmetric-key-based key-establishment schemes using Integer Factorization Cryptography are specified in SP 800-56B.3 The selection of schemes specified in this Recommendation is based on standards for key-establishment schemes developed by the Accredited Standards Committee (ASC) X9, Inc.: ANS X9.42, Agreement of Symmetric Keys using Discrete Logarithm Cryptography, and ANS X9.63, Key Agreement and Key Transport using Elliptic Curve Cryptography.
FIPS 140-2标准是由美国国家标准与技术研究院(NIST)为加密模块和密码模块进行评估和认证的标准。这个标准是为了保护敏感信息的机密性、完整性和可用性而设计的。FIPS 140-2标准适用于各种类型的硬件和软件模块,包括密码模块、加密算法模块、随机数生成器等。 该标准将加密模块分为四个安全级别(1级到4级),级别越高,要求越严格。这些级别是根据以下四个方面的安全性标准确定的:安全功能的规范、使用的密钥的管理、物理安全和操作员身份验证。根据这些标准,FIPS 140-2标准对加密模块进行评估、测试和认证,以确保其安全性和可靠性。 当一个加密模块通过FIPS 140-2认证后,意味着它已经通过了一系列的安全测试和评估,并满足了NIST规定的相关安全性要求。这样的认证证明了该加密模块采用的加密算法、密钥管理和物理安全设施是有效的,并且可以被广泛信任和接受。对于涉及敏感信息的组织和行业,FIPS 140-2认证的加密模块是一种保证其数据安全的方式。 FIPS 140-2标准的使用有助于保护敏感信息免受潜在的安全威胁和攻击,同时也促进了加密技术的发展。由于FIPS 140-2标准的全球影响力,越来越多的国家和组织都将其视为评估和选择加密模块的标准。通过遵守FIPS 140-2标准,可以提升组织的安全能力,增加数据的安全性,以及满足监管机构的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值