关于密码模块若干问题的说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于密码模块若干问题的说明
国家密码管理局
2017年12月
1.概述
当今,国与国之间、地区与地区之间,竞争性越来越强,信息在竞争中起着举足轻重的作用。很多重要的信息直接关系到从大到国家、组织、商业和工业,小到一个家庭的命运,这些重要信息需要得到保护,密码技术及密码模块在保护这些信息中起着非常关键的作用。
密码模块是向信息系统提供密码服务(例如加密、解密、数字签名、签名验证和密钥管理等)的核心部件,是信息安全的保证基础。密码模块在向信息系统提供服务的同时,其自身的安全也需要得到保证。要维护由密码模块保护的信息的机密性和完整性,对密码模块本身的保护是必要的。作为度量计算机和信息系统中密码产品的安全性保证的方法,密码模块安全要求标准在政治、军事、商业等领域中是绝对必要的,并且可以规范涉密产品的安全需求,直接推动密码产品的开发水平、测评水平和应用水平的提高。
在广泛消化吸收国内外相关标准和实际检测经验的基础上,并结合国内在密码安全技术上的研究积累、技术创新和应用实践,中国密码行业标准化技术委员会制定了符合中国国情的行业标准GM/T 0028-2014《密码模块安全技术要求》和GM/T 0039-2015《密码模块安全检测要求》,并分别于2014年和2015年发布实施。
以上两项标准适用于除密码芯片和系统软件外的各种密码产品类型,如智能IC 卡、智能密码钥匙、密码机、密码卡、VPN网关、支付终端等,并且涵盖密码产品设计、实现、测评和维护的各个领域,对密码行业相关产品的开发、测试和应用提供了指导,是今后密码行业产品安全性要求、测评和应用的指导性文件。
标准发布施行后,中国密码学会及相关行业协会邀请了撰写以上标准的主要技术专家在不同场合进行了标准宣贯和培训工作,起到了不错的效果。从2017年开始,国家密码管理局商用密码检测中心根据以上两项标准对新送检的产品进行检测和认证工作,积累了不少经验,但也发现了一些问题。主要表现在产品研制单位和用户机构对密码模块相关概念、分级标准、现行密码产品与今后施行密码模块管理之间的关系,以及如何选用密码模块等方面理解不透彻、不到位。
本说明的主要目的是为用户机构在应用环境中选用合适形态与安全等级的密码模块提供指导和建议,分别从密码模块的概念、密码产品与密码模块的关系、密码模块安全等级的含义和说明、现行密码产品与施行密码模块管理的关系、密码模块选用
建议等几个方面进行阐述,亦可作为产品研制单位进行产品设计、开发、检测的参考。
需要说明的是,在实际应用中,选用何种形态和安全等级的密码模块,必须与密码模块所保护的资产价值及其应用环境的安全状况相适应,也必须与密码模块将要提供的安全服务相适应。各用户机构的责任部门应确保其使用密码模块的计算机和信息系统能为其特定的应用和环境提供合适的安全等级。
信息安全需求随应用的变化而变化,各用户机构应确定其应用系统的信息资源,并明确在适当管控措施下该信息资源的敏感性,及其丢失损坏将会带来的潜在影响。管控措施包括但不限于:
●物理及环境控制;
●软件开发过程管理;
●备份和意外事故应急计划;
●信息和数据控制等。
这些管控措施与运行环境下的适当安全策略管理和流程管理同样有效。
2.密码模块的概念
根据GM/T 0028-2014《密码模块安全技术要求》(简称《安全技术要求》)的定义,密码模块是指一系列包含于密码边界之中的硬件、软件、固件或它们之间的组合的集合,该集合至少使用一个核准的密码算法、安全功能或进程,实现一项或多项已定义的密码服务。
密码模块分为以下几种类型:
1)硬件模块
密码边界规定为硬件边线。在硬件边界内可以包含固件和/或软件,其中还可以包括操作系统。
2)软件模块
密码边界为执行在可修改的运行环境中的纯软件部件(可以是一个或多个软件部件)和数据组件。软件密码模块的运行环境所包含的计算平台和操作系统,在定义的密码边界之外。可修改运行环境指能够对系统功能进行增加、删除和修改等操作的可配置运行环境,如Windows/Linux/MAC/ Android/iOS等通用操作系统。
3)固件模块
密码边界为执行在受限的或不可修改的运行环境中的纯固件部件划定界线。固件密码模块的运行环境所包含的计算平台和操作系统,在定义的密码边界之外,但是与固件模块明确绑定。受限运行环境指允许受控更改的软件或者固件模块,如 Java 卡中的Java 虚拟机、基于可信执行环境技术的TEE操作系统等。
4)混合软件模块
密码边界为软件部件和不相交的硬件部件(即软件部件不在硬件模块边界中)的集合划定界线。软件运行的环境所包含的计算平台和操作系统,在定义的混合软件模块边界之外。
5)混合固件模块
密码边界为固件部件和不相交的硬件部件(即固件部件不在硬件模块边界中)的合成划定界线。固件运行的环境所包含的计算平台和操作系统,在定义的混合固件模块边界之外,但是与混合固件模块明确绑定。
密码模块是一个嵌套的概念,即一个密码模块产品有可能包含另一个规模更小的密码模块。如一块实现复杂密码服务功能的加密机,其本身可定义为一个密码模块,而该密码机内部可能包含了一个或多个密码卡,而密码卡本身也可以作为另一个独立的密码模块来定义。
密码边界是与密码模块相关的重要概念,由定义明确的边线(例如,硬件、软件或固件部件的集合)组成,该边线建立了密码模块所有部件的边界。《安全技术要求》适用于模块密码边界内的所有算法、安全功能、进程和部件。密码边界应当至少包含密码模块内所有安全相关的算法、安全功能、进程和部件。非安全相关的算法、安全功能、进程和部件也可以包含在密码边界内。密码边界内的某些硬件、软件和/或固件部件可以从《安全技术要求》标准的要求中排除,但被排除的硬件、软件或固件部件的实现应当不干扰或破坏密码模块核准的安全操作。
依据《安全技术要求》,各类密码模块的边界确定原则如下
1)硬件密码模块的边界为硬件部件的集合,可包括:
●在部件之间提供互联的物理配线的物理结构,包括电路板、基板或其它
表面贴装;
●有效电器元件,如半集成、定制集成或通用集成的电路、处理器、内存、