Skip to content

Instantly share code, notes, and snippets.

@orxvan
Created November 23, 2015 06:29
Show Gist options
  • Save orxvan/87dc055c35f2a292497d to your computer and use it in GitHub Desktop.
Save orxvan/87dc055c35f2a292497d to your computer and use it in GitHub Desktop.

from http://www.sanlen.com/news/e7/2014-02-24/sl_news_41566.htm 1 范围

本标准定义了服务器密码机的相关术语,规定了服务器密码机功能要求、硬件要求、软件要求、安全性要求和检测要求等有关内容。 
本标准适用于服务器密码机的研制、使用,也可用于指导服务器密码机的检测。 

2 规范性引用文件 

下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。 
GB/T 17964-2008 信息技术 安全技术 分组密码算法的工作模式 
GB/T 9813-2000 微型计算机通用规范 
GM/T 0005 随机性检测规范 
GM/T 0018 密码设备应用接口规范 
GM/T AAAAA 密码设备管理规范 

3 术语和定义 

下列术语和定义适用于本规范。 

3.1 

服务器密码机 host cryptographic server 
用于服务端的适用于公钥密码体制的密码设备,其主要功能是提供加解密、数字签名/验证签名以及密钥管理等高性能的基本安全服务。 

3.2 

对称密码算法 symmetric cryptographic algorithm 
又称秘密密钥算法或单密钥算法,是加密和解密均采用同一秘密密钥进行变换的密码算法。 

3.3 

公钥密码算法 puclic-key cryptographic algorithm 
又称非对称密码算法或双钥密码算法,是指加密密钥和解密密钥为两个不同密钥的密码算法。 

3.4 

杂凑算法 hash algorithm 
杂凑算法是一种将任意长度的消息压缩到某一固定长度的消息摘要的算法。 

3.5 

公开密钥/私有密钥public key /private key 
在公钥密码算法的加解密变换中所使用的可以公开的密钥称为公开密钥。在公钥密码算法的加解密变换中所使用的不能公开的密钥称为私有密钥。 

3.6 

加密/解密 encrypt/ encryption /decrypt /decryption 
加密是通过加密算法对明文进行变换产生密文的过程。 
解密是与加密过程相逆的过程,通过解密算法将密文转换成明文。 

3.7 

数字签名/验证digital signature/verification 
附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。 
验证是验证者使用签名者的公开密钥对数字签名进行验证的过程。 

3.8 

用户密钥对 user key pair 
存储在设备内部的用于应用密码运算的非对称密钥对,包含签名密钥对和加密密钥对。 

3.9 

密钥加密密钥key-encrypting key 
又称二级密钥或密钥传送密钥,用于对密钥进行加解密。 

3.10 

会话密钥 session key 
仅在一次会话中使用的密钥。 

3.11 

私钥访问控制码 private key access password 
用于验证私钥使用权限的口令字。 

4 缩略语 

下列符号和缩略语适用于本规范: 
ECB (分组密码的)电子密本(工作方式) (Electronic Codebook) 
CBC (分组密码的)密码分组链接(工作方式) (Cipher Block Chaining) 
CFB (分组密码的)密码反馈(工作方式) (Cipher Feedback) 
OFB (分组密码的)输出反馈(工作方式) (Output Feedback) 
Hash 散列函数运算,又称杂凑运算 (Hash Algorithm) 
API 应用程序接口简称应用接口 (Application Program Interface) 

5 服务器密码机的功能要求 

5.1 初始化 

服务器密码机的初始化主要包括密钥的生成(恢复)与安装、生成管理员或操作员,按照安全机制对密钥进行安全存储和备份,使设备处于正常工作状态。 

5.2 密码运算 

5.2.1 对称密码算法 

服务器密码机配置的对称密码算法中至少应包括一种分组密码算法。 
分组密码算法的工作模式至少应包括电子密本(ECB)和密码分组链接(CBC)两种模式,应符合GB/T 17964-2008 《信息技术 安全技术 分组密码算法的工作模式》的要求。 
对称密码算法主要用于数据加解密和密钥保护。 

5.2.2 公钥密码算法 

服务器密码机必须配置至少一种公钥密码算法。 
公钥密码算法主要用于数字签名、验证和密钥协商。 

5.2.3 密码杂凑算法 

服务器密码机必须配置至少一种密码杂凑算法。 
密码杂凑算法主要用于数据的完整性保护、配合公钥密码算法实现签名功能。 

5.3 密钥管理 

5.3.1 密钥管理功能 

服务器密码机应具有对所有密钥的产生、安装、存储、同步、使用以及备份和恢复等功能。 

5.3.2 密钥结构 

服务器密码机必须至少支持三层密钥结构:管理密钥、用户密钥/设备密钥/密钥加密密钥、会话密钥。如图1所示:

图1 密钥结构 管理密钥:用于保护服务器密码机中其它密钥和敏感信息的安全,包括对其它密钥的管理、备份、恢复以及服务器密码机的管理员身份验证等。不同服务器密码机的管理密钥互不相同。管理密钥必须安全存储。 用户密钥:包括签名密钥对和加密密钥对,用于实现用户签名、验证、身份认证以及会话密钥的保护和协商等,代表用户或应用者的身份。 设备密钥:是服务器密码机的身份密钥,包括签名密钥对和加密密钥对,用于设备管理,代表服务器密码机的身份。 密钥加密密钥:是定期更换的对称密钥,用于在预分配密钥情况下,对会话密钥的保护。服务器密码机可选择支持密钥加密密钥。 会话密钥:用于数据加解密。

5.3.3 密钥安全存储 

服务器密码机必须能够至少保存32对非对称密钥和100个对称密钥。 
服务器密码机中长期保存的密钥必须安全存储,可采用两种方式:一为采用加密存储,用于加密存储的密钥应由安全机制保证其安全;二可采用微电保护存储,应设计销毁密钥的触发装置。当触发装置被触发时,销毁微电保护所存储的所有密钥。采用微电保护的密钥可以不加密。 

5.3.4 备份/恢复 

对长期保存的密钥,服务器密码机应具备备份/恢复功能。备份操作产生的备份文件必须以密文形式存储到服务器密码机外的存储介质中,加密备份文件的密钥应有安全机制保证其安全。备份出的密钥可以恢复到服务器密码机中,同厂家的不同型号的服务器密码机之间应能够互相备份恢复。密钥恢复操作只能在服务器密码机中进行。 

5.4 随机数生成和检验 

服务器密码机应具备随机数生成功能。服务器密码机应能对生成的随机数进行随机性检验。随机数检验应符合GM/T 0005 《随机性检测规范》的要求。 

5.5 访问控制 

服务器密码机应具备管理界面,设置管理人员并赋予操作权限,通过管理界面进行密钥产生、安装、备份和恢复以及日志查询等管理操作。进入管理界面应进行身份认证。不同的管理操作应有不同的操作权限。 

5.6 设备管理 

服务器密码机可具有接受管理中心的管理功能,设备管理功能的实现应符合GM/T AAAAA 《密码设备管理规范》的要求。 

5.7 日志审计 

服务器密码机应提供日志记录、查看和导出功能。 
日志内容包括: 
1. 管理员操作行为,包括登录认证、系统配置、密钥管理等操作。 
2. 异常事件,包括认证失败、非法访问等异常事件的记录。 
3. 如与设备管理中心连接,则对相应操作进行记录。 

5.8 设备自检 

服务器密码机应具有上电时自检和接收自检指令时自检的功能。 
设备自检功能主要包括密码算法正确性检查、随机数发生器检查、存储密钥和数据的完整性检查等。 

6 服务器密码机的硬件要求 

6.1 对外接口 

服务器密码机应分别提供服务接口和管理接口,可以通过TCP/IP网络、USB、PCI或者其他接口形式与服务器和管理设备连接。 

6.2 随机数发生器 

服务器密码机的随机数发生器采用国家密码管理部门批准的物理噪声源,随机数发生器应由多个物理噪声源组成。 

6.3 环境适应性 

服务器密码机的工作环境必须符合GB/T 9813-2000 《微型计算机通用规范》中关于“气候环境适应性”的规定要求。 

6.4 可靠性 

服务器密码机的平均无故障工作时间应不低于10,000小时。 

7 服务器密码机的软件要求 

7.1 基本要求 

服务器密码机底层软件应采用模块化设计,应通过技术措施防止用户的非法调用。 

7.2 应用编程接口(API) 

服务器密码机的应用编程接口必须遵循GM/T 0018 《密码设备应用接口规范》。 

7.3 管理工具 

服务器密码机应通过管理界面实现对该服务器密码机的管理功能。 
管理工具可以安装服务器密码机上,也可以安装在服务器密码机之外的管理终端上。除管理工具对密码机进行管理,还可通过外部管理中心管理。 
服务器密码机也可以接受其它管理系统的管理,应符合GM/T AAAAA 《密码设备管理规范》中“5.5.1对被管对象基本要求”和“7.3被管对象定义”的要求。 

8 服务器密码机的安全要求 

8.1 密码算法 

服务器密码机应至少具备公钥密码算法、分组密码算法和密码杂凑算法。各类密码算法的配置和使用应按照国家密码管理部门的相关规定实施。 

8.2 密钥管理 

服务器密码机在密钥管理方面,应满足以下要求: 
1) 管理密钥的使用不对应用系统开放; 
2) 除公钥外,所有密钥均不能以明文形式出现在服务器密码机外; 
3) 服务器密码机内部存储的密钥应具备防止解剖、探测和非法读取有效的密钥保护机制; 
4) 服务器密码机内部存储的密钥应具备防止非法使用和导出的权限控制机制。 

8.3 系统要求 

服务器密码机所使用的操作系统,除满足密码机服务管理之外,其余功能应全部关闭或裁减。 

8.4 使用要求 

服务器密码机只接受合法的操作指令。 

8.5 管理要求 

8.5.1 管理员管理 

服务器密码机应设置管理员,进行系统配置、密钥生成、导入、备份和恢复等操作。管理员应持有身份信息的硬件装置,与登录口令相结合登录系统,进行管理操作前应通过身份鉴别。 

8.5.2 设备管理 

8.5.2.1 设备初始化 

服务器密码机的初始化,除必须由厂商进行的操作外,系统配置、密钥的生成和管理、管理员的产生等均应由用户方设备管理人员完成。 

8.5.2.2 设备自检 

应对密码运算部件等关键部件进行正确性检查。 
应对存储的密钥等敏感信息进行完整性检查。 
在检查不通过时应报警并停止工作。 

8.6 设备物理安全防护 

服务器密码机在工艺设计、密码设备设计、硬件配置等方面要采取相应的保护措施,保证设备基本的物理安全防护功能。 

8.7 设备状态 

服务器密码机在设备状态方面,应满足以下要求: 
1) 服务器密码机应具有初始和就绪两个状态; 
2) 未安装设备密钥的服务器密码机应处于初始状态,已安装设备密钥的服务器密码机应处于就绪状态; 
3) 在初始状态下,除可读取设备信息、设备密钥的生成或恢复操作外,不能执行任何操作,生成或恢复设备密钥后,服务器密码机处于就绪状态; 
4) 在就绪状态下,除设备密钥的生成或恢复操作外,应能执行任何操作; 
5) 在就绪状态下进行的密钥管理操作,管理员应经过服务器密码机的认证。 

9 服务器密码机的检测要求 

检测要求规定了服务器密码机的通用检测内容和方法。检测应包括外观和结构检查、提交文档的检查、功能检测、性能检验、敏感数据的保护与使用检测和物理检测等。 

9.1 外观和结构的检查 

根据产品的物理参数,对服务器密码机的外观、尺寸、内部部件及附件进行检查。 

9.2 提交文档的检查 

服务器密码机研制单位按照国家密码管理部门检测要求提交相关文档资料,作为服务器密码机的检测依据。文档资料应包含但不限于以下内容: 
1) 后台服务程序、应用编程接口和客户端管理软件的结构框图、流程图和基本功能的源代码; 
2) 开机自检的工作原理说明; 
3) 自测程序的工作原理说明; 
4) 敏感数据信息的存储和使用说明; 
5) 物理防护措施说明; 
6) 技术工作总结报告; 
7) 安全性设计报告; 
8) 安装使用说明。 

9.3 功能检测 

服务器密码机的功能检测目的是测试服务器密码机各项功能的运行情况,并检验功能实现的正确性。 

9.3.1 初始化检测 

服务器密码机能正常启动,对服务器密码机进行初始化功能检测。服务器密码机需要进行初始化检测,初始化主要包括系统配置、生成管理员或操作员、密钥的生成(恢复)与安装,使设备处于正常工作状态。服务器密码机应能够正常初始化,检测结果符合本规范5.1和8.5.2.1要求。 

9.3.2 密码运算检测 

服务器密码机的密码运算测试程序由国家密码管理部门认可的检测机构设计提供。检测方法是将服务器密码机的密码运算结果与已知得正确结果进行比较,如果计算结果和正确结果相同,则测试通过;否则,测试失败。 
密码运算检测的范围必须包括服务器密码机提供的每个对称密码算法、非对称密码算法和杂凑算法的每个功能函数,如:加密、解密、杂凑、数字签名、验证签名等,其中对称密码算法的检测必须测试服务器密码机支持的各种工作模式,如:ECB、CBC、CFB、OFB等。对服务器密码机进行密码运算检测的检测结果应符合5.2和8.1要求。 

9.3.3 密钥管理检测 

服务器密码机的密钥管理检测范围包括密钥的产生、安装、存储、同步、使用以及备份和恢复等操作,通过使用服务器密码机的管理工具进行测试。对服务器密码机进行密钥管理检测的检测结果应符合本规范5.3和8.2要求。 

9.3.4 随机数检测 

随机数检测程序由国家密码管理部门认可的检测机构设计提供。服务器密码机应具备随机数生成功能。服务器密码机生成随机数比特流作为测试样本,输入到随机数检测程序中检测随机数的质量。对服务器密码机进行随机数检测的检测结果应符合本规范5.4和6.2要求。 

9.3.5 访问控制检测 

通过使用服务器密码机的管理工具或管理界面进行服务器密码机的访问控制检测。对服务器密码机的不同管理操作设置不同的操作权限,登录服务器密码机应具备完善的身份认证机制;服务器密码机应拒绝任何不具备相应权限的访问或操作。对服务器密码机进行访问控制检测,检测结果应符合本规范5.5要求。 

9.3.6 设备管理检测 

通过使用服务器密码机的管理界面进行服务器密码机的设备管理测试,包括服务器密码机的系统配置、管理员或操作员的产生、密钥的生成和管理等等。服务器密码机的设备管理功能的实现应符合GM/T AAAAA 《密码设备管理规范》的要求。对服务器密码机进行设备管理检测的检测结果应符合本规范5.6和8.5.2要求。 

9.3.7 日志审计检测 

通过使用服务器密码机的日志管理工具或界面进行服务器密码机的日志审计检测。服务器密码机应提供日志记录、查看和导出功能;服务器密码机的日志内容包括:管理员操作行为,包括登录认证、系统配置、密钥管理等操作。异常事件,包括认证失败、非法访问等异常事件的记录。对服务器密码机进行日志审计检测的检测结果应符合本规范5.7要求。 

9.3.8 设备自检检测 

服务器密码机的设备自检功能主要包括密码算法正确性检查、随机数发生器检查、存储密钥和数据的完整性检查,以及关键部件的正确性检测等。对服务器密码机进行设备自检检测的检测结果应符合本规范5.8和8.5.2.2要求。 

9.3.9 应用编程接口(API)检测 

服务器密码机的应用编程接口必须遵循GM/T 0018 《密码设备应用接口规范》。对服务器密码机进行应用编程接口检测:对于正确的调用环境和调用过程,API函数应该返回正确的结果,并完成相应功能;对于设定的不正确的调用环境和调用过程,API函数应返回相应的错误代码。 

9.3.10 管理工具检测 

通过使用服务器密码机的管理工具或管理界面进行服务器密码机的管理工具检测。对服务器密码机进行管理工具检测,检测结果应符合本规范7.3要求。 

9.4 性能检测 

目的是测试服务器密码机进行各项密码运算的速度指标。 
下列各项速度性能测试中的测试量由数据报文长度和测试次数决定。可以根据各个测试项的具体耗时情况,依照等比序列来选取测试次数,例如:测试次数N可以选择1次、10次、100次、1000次…等,分别测试后得到不同测试次数时的性能序列。数据报文长度的选择在各个速度性能测试项中分别定义。 
在9.4.1、9.4.3和9.4.4中包含的各个测试项的速度性能的计算如下式所示: 

其中,S为速度,单位为Mbps(兆比特/秒);L为数据报文的长度,单位为字节;N为测试次数;T为测量所耗费的时间,单位为秒。 
在9.4.2中包含的各个测试项的速度性能的计算如下式所示: 
    S = N/T 
其中,S为速度,单位为tps(次/秒);N为测试次数;T为测量所耗费的时间,单位为秒。 

9.4.1 对称密码算法的加解密性能测试 

将一个定长数据报文,发送给服务器密码机进行加/解密操作,重复操作N次,测量其完成时间T。用于测试的数据由检测机构选取,测试应进行多次,结果取平均值。 
如服务器密码机支持对称算法的多种工作模式,只需测试所支持的各种工作模式性能最高的模式进行测试。应对所支持的所有使用方式(如加密、解密、数据摘要等)进行逐一测试。 
对称密码算法的加解密性能单位统一为Mbps(兆比特/秒)。 

9.4.2 非对称密码算法的加解密性能测试 

将一个定长数据报文,发送给服务器密码机进行加/解密操作,重复操作N次,测量其完成时间T。用于测试的数据由检测机构选取。测试应进行多次,结果取平均值。 
如服务器密码机支持多种非对称算法,必须测试所支持的所有非对称密码算法及其各种应用模式。 
非对称密码算法的加解密性能单位统一为tps(次/秒)。 

9.4.3 数据杂凑算法性能测试 

将一个定长数据报文,发送给服务器密码机进行摘要运算,重复操作N次,测量其完成时间T。用于测试的数据由检测机构选取。测试应进行多次,结果取平均值。 
数据杂凑算法性能单位统一为Mbps(兆比特/秒)。 

9.4.4 随机数发生器性能测试 

让服务器密码机生成并输出长度为L的符合随机特性的随机序列N组,测量其完成时间T。测试应进行多次,结果取平均值。 
随机数发生器性能单位统一为Mbps(兆比特/秒)。 

9.4.5 非对称密钥生成性能测试 

让服务器密码机生成并输出指定数量的密钥对,测量其完成时间T。测试应进行多次,结果取平均值。 
非对称密钥生成性能单位统一为tps(对/秒)。 

9.5 环境适应性检测 

环境适应性检测应按照GB/T 9813-2000 《微型计算机通用规范》中“5.8环境试验”的要求进行,其结果应符合该规范中“4.8环境要求”的要求。 

9.6 其他检测 

外观和结构检查、提交文档的检查按照相关标准进行。 

10 合格判定 

本规范中,除9.3.6、9.3.7、9.3.10、9.4以及9.5以外的各项检测中,其任意一项检测结果不合格,判定为产品不合格。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment