当今,网络空间安全的竞争越来越激烈,信息作为战略资源起着举足轻重的作用,密码技术及密码模块正是保护重要信息和数据安全的核心技术。

目前,我国商用密码体系已经初步形成,但在推广应用中仍然存在很多挑战:一些信息系统仍然在使用国外的RSA、AES、SHA-1等密码算法;密码模块和密码产品的安全性不能适应网络安全等级保护、密码应用安全性评估等分级保护的要求,特别是缺少三级以上安全级别的密码模块;国产密码算法的实现性能不能满足云计算、大数据等高吞吐量、高并发等应用场景;密码资源的虚拟化技术不能满足云计算等虚拟化场景的应用需求。

所以,高性能、高安全性的密码产品对我国的重要信息系统和关键信息基础设施的等级保护、密码应用安全性评估等工作至关重要。

密码模块是为信息系统提供密码服务的核心部件,是信息安全的基础支撑。密码模块在为信息系统提供安全服务的同时,其自身的安全首先需要得到保证。

我国的密码模块安全技术标准 GM/T 0028-2014《密码模块安全技术要求》(以下简称 GM/T 0028)和GM/T 0039- 2015《密码模块安全检测要求》(以下简称 GM/ T 0039)分别于2014年和2015年发布,2017 年开始试点,目前已经在密码领域全面实施,并于2018 年颁布了国家标准——GB/ T 37092- 2018《信息安全技术密码模块安全要求》。GM/T 0054-2018《信息系统密码应用基本要求》(以下简称 GM/T 0054)规定了信息系统商用密码应用的基本要求,是信息系统的密码系统规划、系统建设、系统运行、安全性评估等工作的重要依据。

该标准要求,等级保护第三级信息系统宜采用安全等级三级及以上的密码模块或通过国家密码管理部门核准的硬件密码产品实现密码运算和密钥管理。

本文对国内外密码模块的安全性认证标准、流程和难点进行了详细分析,并对 SJK1926 PCI-E 密码卡和 Sansec HSM 的认证实践和经验进行了论述,将为我国商用密码产品的自主可控、安全可靠起到支撑作用。

密码模块安全标准简介

1.1 FIPS 系列标准

国际上把密码产品区分不同等级,最早是在Federal Information Processing Standards(FIPS)即联邦信息处理标准中提出的。

FIPS认证是由美国国家标准和技术研究所(NIST)和加拿大通信安全机构(CSE)联合开展的,被公众接受最为广泛的密码模块验证体系(CMVP)。FIPSPublication140-2是NIST所发布的针对密码模块的安全需求(Security requirements for cryptographic modules)标准。

NIST于1988年10月在联邦标准1027号规定的基础上,加以改进形成了FIPS140号《密码模块的安全性要求》。FIPS140-1于1994年首次发布,1995年首个模块通过认证。FIPS系列标准每五年重新审核一次,以适应技术变化的要求。

NIST于2001年正式发布了FIPS140-2,经过6个月生效期和6个月过渡期,至2002年完全取代了FIPS 140-1。

图1 FIPS 系列标准发布历程

FIPS140-3 从2005年制定工作开始启动,其间NIST向全球科研机构、安全厂商等征集到上千条修改意和建议,在2013年发布草案,最终于2019年3月22日获得批准。

1.2 ISO/IEC 19790 标准

ISO/IEC 19790:2012《密码模块安全要求》规定了在保护计算机和电信系统中的敏感信息时,对安全系统中使用的密码模块的安全要求。它是FIPS140-2 的演进,相当于FIPS140的国际标准版。

国际上如日本、韩国、西班牙、土耳其等,这些国家的密码模块验证程序均以 ISO/IEC 19790 为基础,来制定适用于本国的标准。该标准目前尚无统一的认证机构,因为密码作为国家重要的战略资源,国际的标准被引入后,都会进行适当调整,例如密码算法的替换。

1.3 GM/T 0028-2014《密码模块安全技术要求》

GM/T0028-2014《密码模块安全技术要求》标准使用重新起草法参考ISO19790:2012《密码模块安全要求》编制,与ISO19790:2012的一致性程度为非等效。

该标准是广泛吸收包含ISO19790、FIPS140在内的国内外相关技术和标准的基础上,结合我国在密码安全技术研究和应用实践编制而成的。GM/T0028标准针对国内商用密码体系和相关政策做了调整,如核准的安全功能和密码算法等。

各种密码产品,如密码卡、密码机、U盾等,既要满足原有的产品标准,还要在安全性上满足GM/T0028的要求。

企业可根据自身产品的实现情况选择相应的安全等级,这样的对产品分级的做法可以合理地解决不同等级敏感度和不同应用环境的问题。

密码模块认证情况分析

2.1 FIPS 140-2 认证情况

在国际上,FIPS 做密码模块认证可追溯到20 世纪九十年代。近年来,云计算和大数据的发展现状给企业的网络和数据安全提出了更高的要求;国际上某些公有云在国外已提供符合FIPS 140-2 标准的加密服务,国内企业为逐步开展国际业务,采用具备国内密码标准和 FIPS 标准的产品作为技术和应用支撑。

例如,在涉及数据隐私和数据加密保护方面上,国内云厂商为拓展海内外客户市场,相继提供符合 FIPS 的密码服务;另外,在金融、生产制造、交通运输 / 物流、餐饮住宿、教育和卫生组织等具备跨国业务的行业中,FIPS 这种合规性标准也开始被提上日程。

FIPS证书的有效期为5年,截止到2019年5月2日,从 NIST官方网站可查询到获得 FIPS140-2不同安全级别的认证产品,有效状态的有1266件。

表1 FIPS 140-2 认证情况(Active,截止到2019年5月2日)

注:数据来源 https://csrc.nist.gov/Projects/Cryptographic-Module-Validation-Program/Validated-Modules/Search

从表 1 可以看出,FIPS 140-2 认证产品中:

(1)有效状态的软件模块共有 485 件,其中 Level 1 有 477 件,占软件模块总数的 98.3%;Level 2 有 7 件,占软件模块总数的 1.6%。

(2)有效状态的硬件模块共有 706 件,其中 Level 1 有 140 件,占硬件模块总数的 19.8%;Level 2 有 423 件, 占硬件模块总数的 60%;Level 3 有 139 件,占硬件模块总数的19.6%;目前有效状态的产品达到 Level 4 的有 4件,且全为硬件模块。

从FIPS 140-2 认证产品的历史数据来看(包括已失效的产品),Level 2 产品共 1405 个,其中软件模块 70 个,占比约为 5%。

通过FIPS 140-2 认证的产品中,通过一级、二级认证的产品数量是最多的。除了因为一级、二级的要求相对较低、容易实现以外,还因为国外很多应用场景并非都要求使用三级以上安全产品。

所以,从产品形态来说,尤其在一级认证中,软件形态的产品占据大多数,可以进一步看出,低安全等级主要以软件形态出现, 而高安全等级则主要以硬件形态出现。

2.2 国内密码模块认证情况

我国的密码模块认证从 2017 年开始至今,大约2年的时间,安全一级和安全二级的产品数量分别为70个和69个(数据来源:http://www.sca.gov.cn ,截止时间 2019 年 5 月 6 日)。

图2 密码模块一级认证情况

图3 密码模块二级认证情况

图2和图3为密码模块一级和二级认证的情况。在密码模块一级认证产品中,硬件产品占密码模块一级产品总数的约 32%,高于硬件产品在FIPS 140-2 Level 1占比的19.8%;在密码模块二级认证的产品中,软件产品占密码模块二级产品总数的20%,远高于软件产品在FIPS 140-2 Level 2占比的1.6%。

这是我国密码模块一级和二级认证产品在构成上与FIPS 140-2 Level 1 和 Level 2 的区别。

表 2 2018 年通过 FIPS 等级认证的产品数量与国内密码模块达到安全等级要求数量对比

从表2可看出,2018年国内密码模块达到安全等级要求的共92款产品,其中安全二级产品数量占58.6%;通过 FIPS 等级认证的产品数量共 258 款,其中 Level 2 的产品数量占FIPS认证产品总数的28.2%。

我国在密码模块安全二级的占比率高于FIPS 140-2 Level 2 在整体中的比率,但同时我国在安全三级和安全四级的设计上需要不断推进和完善。

国内目前达到密码模块安全三级要求的仅有北京三未信安科技发展有限公司的SJK1926 PCI-E密码卡这一款产品,还没有达到密码模块安全四级要求的产品。

2.3 GM/T 0054 中对密码模块的安全要求

2.3.1商用密码应用安全性评估

密码应用安全是整体安全,不仅包括密码算法安全、密码协议安全、密码设备安全,还要立足系统安全、体系安全和动态安全。

因此,对网络和信息系统密码应用的合规性、正确性、有效性开展安全评估,就显得十分必要。

商用密码应用安全性评估是对采用商用密码技术、产品和服务集成建设的网络和信息系统密码应用的合规性、正确性、有效性进行评估。对关键信息基础设施开展商用密码应用安全性评估,是国家密码法律法规的明确要求。

开展商用密码应用安全性评估,是维护网络和信息系统密码安全的客观要求,是我国网络安全严峻形势的迫切需要,是网络运营者和主管部门必须履行的责任。

2.3.2评估依据

构建符合自身国情的标准体系是当务之急。我国密码安全体系尚处于起步阶段,正在积极推进商用密码应用安全性评估工作,其重要的参考依据即为GM/T 0054-2018 《信息系统密码应用基本要求》。该标准从物理和环境安全、网络和通信安全、设备和计算安全、应用和数据安全、密钥管理以及安全管理六个方面提出密码应用安全性评估指标。

《信息系统密码应用基本要求》中对等保三级、等保四级信息系统中的硬件密码模块的实现进行了明确的规定:

(1)等级保护第三级信息系统,宜采用符合GM/T 0028 的三级及以上密码模块或通过国家密码管理部门核准的硬件密码产品实现密码运算和密钥管理;

(2)等级保护第四级信息系统,应采用符合GM/T 0028 的三级及以上密码模块或通过国家密码管理部门核准的硬件密码产品实现密码运算和密钥管理。

密码模块认证实践

SJK1926 PCI-E 密码卡于 2019 年 4 月通过了密码模块安全三级检测和专家安全性审查,是国内首款达到安全三级要求的密码产品;2019年初,密码机(Sansec HSM)取得了FIPS 140-2 Level 3 证书(证书编号为 #3350),结束了约一年半的认证过程,为中国产品进入国际市场提供了强有力的支持。

3.1 FIPS 认证

3.1.1 FIPS 认证流程

FIPS认证是一个繁杂的过程,对于国内厂商来说,尤其是第一次准备时,难点在于对标准的理解以及英文文档的准备。FIPS 的认证工作有很多环节是通过实验室来操作的,检测多由实验室提供支撑。厂商首先需要选择实验室, 实验室对厂商提交的密码模块进行评估测试, 出具评估报告交由 NIST 审核,认证通过后,由 NIST 将密码模块添加到认证通过模块列表清单中,在 NIST 网站发布。从厂商提起认证到获得证书,整个过程将需要一年多的时间, 历时较长。

3.1.2 FIPS 140-2 Level 3

FIPS140-2标准为了适应广泛的密码模块应用和环境,定义了四个逐次增加,定性的安全级别:

·Level1:最低的级别,为密码模块指定基本的安全要求,例如加密算法是经过 NIST认可的。

·Level2:增加明显的防串扰外壳、封条或防撬锁等要求来改进密码模块的物理安全。

·Level3:在 Level 2 中所要求的加密模块的物理安全性结构基础上,还要求防止对由加密模块内部所控制的关键安全参数过程的攻击, 即安全性进一步增强。

·Level4:最高级别,物理安全在密码模块周围提供检测察觉从任何方向试图渗透的保护封套,检测到破坏后所有的关键安全参数清零。

服务器密码机可为业务系统提供数据加 / 解密、签名验签、随机数生成和密钥管理服务等功能。

国内符合国密要求的服务器密码机通过了FIPS 140-2 Level 3 认证,在安全性、兼容性和性能等方面具有较高要求,既支持 SM2、SM3、SM4 等国密算法,也支持 NIST 认可的算法,可为用户提供更多业务场景的密码应用支撑。

表 3 Sansec HSM 包含 NIST 认可的算法和证书编号

注:数据来源https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/3350

3.2 国内首款密码模块安全三级产品

3.2.1 安全三级密码卡

图4 安全三级密码卡

安全三级密码卡是重要的硬件密码设备之一,可以独立作为板卡为应用系统提供服务,也是服务器密码机、金融数据密码机、签名验签服务器、VPN 安全网关等产品的核心部件。

它可以提供高速的、多任务并行处理的密码运算, 满足应用系统数据的数字签名,数据加解密的要求,保证传输信息的机密性、完整性和有效性,同时提供安全、完善的密钥管理机制。

密码应用系统通过调用密码卡提供的标准接口函数来使用密码服务,接口函数符合GM/T0018-2012《密码设备应用接口规范》,通用性好,能够平滑接入各种系统平台,满足大多数应用系统的要求,在应用系统安全方面具有广泛的应用前景。

GM/T 0028 和 FIPS 140-2 的安全等级要求虽然都涉及 11 个安全域,但具体内容有些许的差别,GM/T 0028 在某些安全域中的要求,比如可信信道的接口、固件安全、运行环境、物理安全、非入侵式安全等方面,比 FIPS 140-2 的要求还要严格。

表 4 GM/T 0028-2014《密码模块安全技术要求》 安全要求表

注:表格内容来源于 GM/T 0028-2014《密码模块安全技术要求》

相比于同类型的密码模块,安全三级密码卡具有独特的优势,能够全方位的保护用户的敏感数据:

(1)牢固的外壳。

(2)高敏感的拆卸检测及置零响应电路。

(3)高安全的可信信道。

(4)三级密钥安全机制。

(5)角色服务及鉴别机制。

(6)高可靠的固件安全机制、备份恢复机制。

(7)对非入侵式攻击可靠防护等。

安全三级密码卡具有以下特性:

(1)支持 SR-IOV 技术(硬件的虚拟化解决方案):密码卡能够在 KVM、XEN 等虚拟机环境下应用,可以支持 16 个虚机同时访问密码卡。SR-IOV 技术的使用提供了硬件资源在多虚机环境下高效的共享手段,提升密码卡性能的同时并降低了多虚机环境下的密码卡集成成本。

(2)先进的安全隔离技术:各虚机间权限控制、密钥及用户信息等信息均在物理层进行隔离,保证了应用密码卡时各虚机间的独立性与安全性。

(3)支持 Docker 轻量级虚拟化技术:应用系统可以在 Docker 容器中访问密码卡的密码服务且密码卡支持的 Docker 容器没有个数限制。密码卡提供高性能的密码运算服务配合Docker的启动快,资源占用小等特点,把轻量级的虚拟化技术发挥得淋漓尽致。

(4)针对存储加密场合的特点,密码卡支持SM4-XTS 加密模式并对 SM4-XTS 模式进行了优化处理。

3.2.2密码模块安全三级的意义

至 SJK1926 PCI-E 密码卡出现之前,国内一直没有达到安全三级以上的密码模块,因为安全三级的安全要求很高、研制难度很大。GM/T 0028 以及 GM/T 0039 标准分别于 2014 年和 2015 年已经发布,在整个检测过程中,面临的挑战是需要把产品的质量、技术要求、安全要求达到标准要求。

随着2017年《关键信息基础设施安全保护条例(征求意见稿)》的发布、网络安全等级保护2.0时代的到来,密码技术和产品的重要性日益被社会各界所重视。

2018年国家密码行业标准化技术委员会发布 GM/T0054《信息系统密码应用基本要求》,对重要信息系统的密码产品和技术应用提出了明确要求,密码模块安全三级产品对重要信息系统、关键信息基础设施非常重要。

密码卡达到安全三级要求,将为企业实现高安全等级的整机类密码产品奠定基础。只有在高安全性密码模块的基础上,才能研制出更高安全的密码机产品。

服务器密码机、SSL/IPSec VPN 网关等整机类产品如果想通过安全三级检测,可以将安全三级密码卡嵌入到整机产品中,能够显著提升整机产品的安全性。

在角色服务与鉴别、非入侵式安全、敏感安全参数管理、其他攻击的缓解等安全域帮助用户达到标准要求。

结语

高性能、高安全性的密码产品对重要信息系统、关键信息基础设施非常重要。自主创新历来是商用密码事业发展的灵魂,也是商用密码实现持续健康快速发展的动力源泉。

三未信安致力于为客户提供更高性能、更高安全的商用密码产品和服务。三未信安密码机通过了 FIPS 140-2 Level 3 认证。密码卡在国内率先通过了密码模块安全三级检测,拿到了国内首张达到安全三级要求的密码模块型号证书:SJK1926 PCI-E 密码卡。

这结束了我国没有安全三级密码模块的历史,将为合作伙伴实现高安全等级的整机类密码产品奠定基础,将推动我国商用密码产业的发展!

声明:本文来自信息安全与通信保密杂志社,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。