FIPS 140-3发布对数字电影系统规范(DCSS)影响的研究与分析
2021-12-30刘知一
解 沛 刘知一
(中国电影科学技术研究所,北京 100086)
1 引言
美国国家标准技术研究所 (National Institute of Standards and Technology,NIST)是负责FIPS 140系列安全标准的机构。FIPS 140标准的提出旨在规范密码模块的设计、开发、测试、配置、交付以及安装过程中所涉及到的技术与流程。
由美国数字电影倡导组织 (Digital Cinema Initiatives,DCI)起草制定的 《数字电影系统规范》(Digital Cinema System Specification,DCSS)从数字电影出现之初,就已成为全球数字电影行业发展的奠基石。其规定使用通用的技术来发行数字影片内容和保护内容的安全性。FIPS 140标准作为DCSS中安全部分的核心内容,其新的进展变化对DCI的影响举足轻重。DCI在其2019年12月19日发布的 《DCI关于FIPS 140-3的备忘录》中指出,一旦FIPS 140-2 在2021 年9 月失效,DCI将要求新设备符合FIPS 140-3标准,同时指出密码模块验证体系(Cryptographic Module Validation Program,CMVP)FIPS 140-2 测试实验室将于2021年9月22日起禁止新设备提交。此后,DCI在DCSS V1.4.1中,要求在非特别说明时,FIPS 140认证的 “I类”安全处理模块 (Secure Processing Blocks,SPB)需达到安全级别3,并且SPB-1认证时应由FIPS 认可的实验室根据当时有效的FIPS 140版本进行评估。
为了方便电影科研工作者能够快速、准确地掌握新标准,本文将针对FIPS 140-3 相较于FIPS 140-2的变化,特别是安全级别3的部分进行对比与分析,以供相关人员参考。
2 相关背景介绍
2.1 FIPS 140发展状况
自1994年正式发布FIPS 140-1 起,为适应技术变化,NIST 规定该系列标准每五年审议一次。2001年正式发布FIPS 140-2 (以下简称 “旧标准”)。FIPS 140-3 (以下简称 “新标准”)的制定工作于2005年启动,于2019年3月正式发布。新标准是基于ISO/IEC 19790:2012《Security requirements for cryptographic modules》与ISO/IEC 24759:2017《Test requirements for cryptographic modules》两项国际标准制定的,这两项国际标准组成了新标准的技术要求与测试方法的基础。
新标准同旧标准一样,为密码模块定义了安全性逐次提高的四个安全级别 (Security Levels):安全级别1-4 (Level 1、Level 2、Level 3 和Level 4)。此外,新标准与旧标准都分别从11个安全领域提出了具体要求,但其中有5个方面 (标红)的表述有所不同,具体领域如表1所示。
表1 新旧标准规定的11个领域比较
2.2 安全处理模块(SPB)系统
安全处理模块被定义为具有特定物理边界的容器,在其中放置一个或多个安全实体 (Security Entity,SE)和(或)其他明文处理功能 (例如,解密器、解码器、取证标记器)。安全处理模块在内容经过的路径上,将安全实体以及其他设备封装起来,以防止对安全实体的攻击,同时保护安全实体之间信号路径的安全。
DCSS中定义了两种规范性的安全处理模块类型。
(1)安全处理模块类型1 (SPB-1)。SPB-1 (如图1所示的灰底矩形)提供了最高级别的物理和逻辑保护。图像媒体块 (Image Media Blocks,IMB)和链路解密器块 (Link Decryptor Blocks,LDB)应包含在SPB-1 内。此外外置媒体块 (Outboard Media Block,OMB)和链路加解密 (Link Encryptor/Link Decryptor,LE/LD)SPB 器件应包含在SPB-1内(图1中未示出)。
图1 数字影院放映厅安全实现
(2)安全处理模块类型2 (SPB-2)。SPB-2 (如图1所示围绕着SPB-1 的虚线框)对无需完整的SPB-1保护的内容或者安全信息提供了较小的保护边界。SPB-2的保护应当由放映机提供。
3 FIPS140 标准变化对DCSS的影响
FIPS 140标准作为DCSS中安全部分的核心内容,DCSS中明确表明SPB-1根据FIPS 140建立物理和逻辑保护标准。DCI在DCSS V1.4.1中要求,在非特别说明时,FIPS 140认证的SPB-1需达到安全级别3,并且SPB-1认证时应由FIPS认可的实验室根据当时有效的FIPS 140版本进行评估。此外,SPB-1还应为其安全参数与功能提供7×24小时的物理和逻辑保护,能在供电以及断电的情况下抵御攻击。
本节将按照11个不同安全领域下新标准中安全级别3的安全要求,以及DCSS的特殊说明进行介绍与分析。
3.1 密码模块规范
密码模块应是一组包含在定义的密码边界内的硬件、软件、固件或前述组合所构成,应使用批准的密码算法、安全功能或过程来实现定义的密码服务。
新标准中,密码模块规范在安全级别1-4下的要求保持一致,包括了密码模块定义、密码边界(Cryptographic Boundary)、批准的安全功能以及正常和降级操作模式的规范。密码模块中所有服务都提供状态信息,便于指示服务何时以批准的方式利用批准的密码算法、安全功能或过程。
DCSS在此安全领域中针对密码边界与降级操作模式进行了特殊说明:DCSS 要求密码边界应为SPB-1物理边界,同时不允许使用降级的操作模式。
3.2 密码模块接口
密码模块应将所有逻辑信息流仅限制在物理访问点和逻辑接口,这些物理访问点和逻辑接口被标识为模块密码边界的入口和出口点。
新标准中,密码模块接口在安全级别3下规定密码模块应当实现可信信道这一部分在新、旧标准中的差异如表2所示。
表2 新旧标准关于可信信道安全需求在安全级别3下的差异
DCSS在此安全领域中针对控制输出接口与可信信道进行了特殊说明。DCSS 要求当密码模块处于错误状态时,SPB-1应禁止通过控制输出接口进行的所有控制输出;同时SPB-1 应通过1173 端口上使用传输层安全协议(Transport Layer Security,TLS)保护来支持逻辑接口的隔离要求。
3.3 角色、服务和身份验证
密码模块应支持操作者的授权角色以及每个角色中的相应服务。一个操作者亦可以担任多个角色。密码模块通过认证机制对访问该模块的操作者进行身份验证,并验证操作者是否有权承担请求的角色并在该角色内执行服务。
新标准中,角色、服务和认证机制在安全级别3下的要求与旧标准保持一致,即应当采用基于身份的认证机制来控制对模块的访问,如果密码模块支持基于身份的认证机制,则应要求操作者被单独唯一地标识,要求操作者隐式或显式选择一个或多个角色,并且验证操作者的身份以及操作者的授权以承担所选角色或一组角色。
DCSS在此安全领域中针对角色与自启动密码输出功能进行了特殊说明:DCSS 中不要求支持“维护角色”,即在物理和 (或)逻辑维护服务期间的角色;如需SPB-1支持 “自启动密码输出功能”,前提是银幕管理系统能够支持 “密码主管角色”和(或)“用户角色”。
3.4 软件/固件安全
新标准中,软件/固件安全在安全级别3下的要求:密码边界内的所有软件和固件组件应使用批准的数字签名加密机制;如果计算结果不等于先前生成的结果,模块应进入错误状态;数字签名技术中任何不连续的签名的失败都将导致模块进入错误状态;专用签名密钥应位于模块外部。此外,还应满足安全级别1、2的要求。
DCI在DCSS V1.4.1中,特别说明软件/固件应指在SPB中的所有操作系统和 (或)嵌入的可执行代码,并且此定义不可用于基于软件、固件或ROM 的代码。
3.5 操作环境
密码模块的操作环境是指管理模块操作所需的软件、固件和(或)硬件的实体。新旧标准在操作环境的分类标准是一样的,均分为不可修改的、有限制的和可修改的操作环境三种类型。新旧标准对三种类型的定义如表3所示。
表3 新旧标准针对不同操作类型的定义
新标准中,操作环境在安全级别3 下无要求。DCSS在此安全领域中要求操作环境应限于有限制的或不可修改的操作环境。
3.6 物理安全
密码模块应采用物理安全机制,以限制对模块内容未经授权的物理访问,以及安装时阻止对模块的未经授权的使用或修改(包括替换整个模块)。
新标准中,物理安全在安全级别3下要求包括了:外壳和门的篡改检测与响应;坚固的外壳或涂层;防止直接探测;环境失效保护 (Environmental Failure Protection,EFP)或环境故障测试 (Environmental Failure Testing,EFT)。
DCSS在此安全领域中针对物理安全实施案例以及一般性需求进行了如下特殊说明:
DCSS建议(非必需)采用EFP和EFT;SPB-1物理安全外壳材料在SPB-1的操作、存储和分配范围内的强度和硬度应通过审查设计文档来验证;应在标称温度下对SPB-1进行破坏性物理攻击,以验证SPB-1物理安全外壳材料的强度和硬度;建议(非必需)对SPB-1 进行破坏性物理攻击测试;如果使用防篡改印章,建议 (非必需)其应具有唯一编号或独立标识。
3.7 非侵入式安全
非侵入式攻击试图通过获取模块关键安全参数(Critical Security Parameter,CSP)的信息来破坏密码模块,而无需实际修改或侵入模块。在旧标准中,非侵入式安全的范围单纯指电磁干扰/电磁兼容。
新标准中,非侵入式安全在安全级别3下要求对密码模块进行攻击缓解测试,但并未对测试指标进行具体说明。
DCSS在此安全领域中无特殊说明。
3.8 敏感安全参数管理
敏感安全参数 (Sensitive Security Parameter,SSP)由关键安全参数CSP和公共安全参数 (Public Security Parameter,PSP)组成。敏感安全参数管理的安全要求涵盖了模块所采用的SSP的整个生命周期。 敏感安全参数管理包括随机位生成器(Random Bit Generators,RBGs)、SSP生成、SSP建立、SSP输入/输出、SSP存储和未受保护的SSP归零。
新标准中,物理安全在安全级别3下要求主要为可以通过可信信道或分割知识 (Split Knowledge)的方式以加密形式输入或输出手动建立的SSP。
DCSS在此安全领域中无特殊说明。
3.9 自检
密码模块的运行前和条件自检均为操作者提供了保障,确保不会引入会阻止模块正确运行的故障。在模块通过数据输出接口提供任何数据输出之前,必须进行并成功通过运行前的自检。
新标准中,自检在安全级别3下要求运行前自测软件/固件完整性、旁路和关键功能测试;条件自检应当包括,加密算法、成对一致性、软件/固件加载、手动输入、有条件旁路和关键功能测试。
DCSS在此安全领域中针对定期自检进行了特殊说明:特定安全策略定期自检之间的最长间隔时间不得超过一周;SPB-1设计应确保在DCP回放期间不会发生自动定期自检。
3.10 生命周期保障
生命周期保障是指在密码模块的设计、开发、操作和终止期间,密码模块供应商使用的最优操作,以便确保模块经过适当设计、开发、测试、配置、交付、安装和处置,并且提供正确的操作者指导文档。
新标准中,生命周期保障在安全级别3下的要求包括:自动化配置管理系统、有限状态模型 (Finite State Model,FSM)、指定安全销毁模块所需的程序、管理员和非管理员指南等。
DCSS在此安全领域中针对生命周期终止了特殊说明。安全销毁SPB-1的生命周期结束程序由设备所有者和(或)设备制造商决定。
3.11 其他攻击缓解
密码模块对本国际标准其他地方未定义的攻击的敏感性取决于模块的类型、实现和实现环境。
在新标准中,其他攻击缓解在安全级别3下暂无可测试的缓解攻击规范。
DCSS在此安全领域中无特殊说明。
4 结语
本文首先介绍了DCI与NIST 两个机构及其各自推出的标准或者规范;之后简单介绍了FIPS 140的发展、SPB 的相关定义以及FIPS 140-3 认证下SPB-1的相关要求;最后通过11个不同安全领域,对新旧标准中安全级别3的安全要求进行了对比与分析,同时针对DCSS的特殊说明进行了介绍,为电影科研工作者以及电影设备制造商提供了更加详细的参考。
通过对比分析新旧标准,新标准内容更加全面、严谨、细致,对密码模块安全需求具有更高规格的要求。同时DCSS对新标准的更新,也做出了及时的勘误与修改,并且在一些安全领域中进行了更为严格的要求,可以看出DCSS对SPB-1等模块要求逐步规范,也对电影设备制造商提出了更高的要求。❖