1前言
在重要领域、重点人群乃至全社会普及密码知识和政策,在金融和重要领域推进密码应用,是落实习总书记网络强国战略思想、构建安全可控信息技术体系的一项重要举措。没有网络安全就没有国家安全,密码作为网络安全的核心技术,是保护国家安全和根本利益的战略性资源。了解密码知识、熟悉密码政策、推进密码应用,是新时期对党政干部的一项新要求。要树立以总体国家安全观为统领、以密码为基础支撑的网络安全观,
在相关工作中全面推进密码应用,切实维护国家安全、促进经济发展、保护人民群众利益。
—— 栗战书同志2017年3月在密码应用工作会议上的讲话
目前安全行业正是去ioe化和国密改造即将星火燎原之际,笔者结合云平台等保测评评估和金融行业改造实施实例,写下本文以作参考,希望为准备和正在做国密改造的同行一点帮助。
2 安全性评估记录
2.1 安全机制评估
序号 | 评估内容 | 评估目标 | 实现机制 |
1 | 文档 | 是否具备软件密码模块边界内的所有可执行文件或文件集,以及软件文件清单;软件部件如何交互的内部软件架构文档(应包括产品的运行环境如操作系统,运行时库);软件产品功能说明文档。 | 送检产品具备完善的各类文档,包括《技术工作总结报告》、《安全性设计报告》、《用户手册》等。 |
2 | 密码边界 | 送检单位提供的软件产品密码边界内的部件构成、版本信息。 | 送检产品采用xx有限公司的SJK1446智能密码钥匙,用于存储管理员或用户证书; 采用xx有限公司的SJJ1012-A服务器密码机,用于密钥管理; 采用MySQL 5.7数据库存储重要数据; 采用JDK 1.6和Tomcat6中间件,支撑系统运行。 系统的管理终端支持在Windows7操作系统上运行。 |
3 | 算法实现 | 算法实现采用的硬件设备是否经过国密局批准。 | 采用xx公司的SJJ1012-A服务器密码机,硬件实现SM1,SM2,SM3密码算法。 |
软实现的算法如何调用、存储、使用,是否具备保护机制。 | 系统软实现了SM2验签和SM3算法。软实现的算法仅用于登录时身份验证的验签环节。 软算法计算模块是系统的关键模块,在系统启动时会进行完整性校验。详见系统对关键模块的保护机制。 | ||
4 | 随机数生成机制安全性审查 | 产品的随机数由何种部件生成(包括客户端和服务端) | 系统的随机数通过调用SJJ1012-A服务器密码机生成。 |
5 | 攻击削弱与防护 | 是否具有有效的防攻击的措施,如重放攻击、中间人攻击等多种攻击手段。 | 系统对注册系统(RA)和签发系统(CA)、签发系统(CA)与密钥管理系统(KMC)间的通信过程有防攻击措施。 防重放攻击措施:在发送数据之前,发送端会在数据中加入时间戳信息,接收端通过对时间信息的判断,可判别是否已经发生了重放攻击,若已发生攻击,接收端会拒绝提供服务。 防中间人攻击措施:发送端会使用接收端的通信数字证书对数据进行加密,并使用自己的SM2密钥对数据进行签名。接收端通过验证数字签名,判断数据是否已遭中间人篡改,是否已经发生中间人攻击。若已发生攻击,接收端将拒绝提供服务。通过加密通信数据,亦可防止中间人截获信息,防止数据泄露。 通信过程中的通信证书是在系统初始化配置时生成,并配置在需进行网络通信的两端中。通信证书为SM2算法的数字证书,私钥存储于服务器密码机中。 |
6 | 角色与认证 | 客户端与服务端相互身份认证机制是否安全有效。 客户端和服务端支持的角色及其认证机制。 | 注册系统(RA)和签发系统(CA)中的超级管理员、业务管理员、业务操作员、审计管理员和审计员均在系统初始化配置阶段创建,创建时将为每个管理员注册一张数字证书作为管理员证书。管理员证书为SM2算法的数字证书,证书和其私钥存储于智能密码钥匙中。 各角色权限说明如下: a) CA超级管理员:添加、删除、修改CA业务管理员账号 b)CA业务管理员:添加、删除、修改CA业务操作员账号 c) CA业务操作员:管理证书模板、配置证书管理策略。添加、删除、修改RA业务管理员、RA审计员。 d) CA 审计管理员:添加、删除、修改CA审计员账号 e) CA审计员:负责查询CA系统日志、查询审计CA操作记录 f) RA业务管理员:添加、删除、修改RA业务操作员账号 g) RA业务操作员:对证书申请的录入;对证书更新申请、密钥恢复申请的录入。审核证书申请、撤销审核;证书的下载、制作;证书查询;审核证书更新请求和密钥恢复请求; h) RA审计员:负责查询RA系统日志、查询审计RA操作记录。 当管理员从管理终端登录系统时,需插入存有管理员证书和私钥的智能密码钥匙。系统将使用私钥进行一次SM2签名,并将签名和管理员证书提交至服务端。服务端通过验签的方式确定登录者是否为持有标识管理员身份的数字证书。判定未持有时,则登录失败,系统不会赋予访问权限。当确认持有时,服务端检查数字证书有效性,若证书有效,则登录成功,服务端将赋予相应权限。反之登录失败。 管理员证书被吊销、挂起或过期后管理员将不能进行登录 |
7 | 自检 | 算法自检 | 签发系统(CA)和注册系统(RA)使用的密钥存储于加密机中,通过调用加密机使用密钥。 系统启动时会对密码设备(即服务器密码机)进行检测。检测方式详见附录。 |
随机数自检 | 签发系统(CA)和注册系统(RA)使用服务器密码机生成随机数。系统启动时会对密码设备(即服务器密码机)进行检测。具体实现详见附录。 | ||
8 | 硬件安全 | 送检产品服务端和客户端使用了何种密码设备,如服务器密码机、智能密码钥匙等,是否经过了国密局批准,以及设备接口遵循的标准。 | 送检产品使用的SJK1446智能密码钥匙、SJJ1012-A服务器密码机,均已经过国密局批准。 服务器密码机遵循GM/T 0018-2012《密码设备应用接口规范》标准接口规范。 智能密码钥匙满足GM/T 0016-2012《智能密码钥匙密码应用接口规范》的要求。 |
9 | 软件安全 | 产品是否具备软件的相关保护机制 | 系统的关键模块包括:证书签发模块、密码设备连接模块、数据存储模块、软算法实现模块。 系统启动时,检测模块通过检查各关键模块校验值的方式,检测各模块是否完整或被伪造篡改。校验码为使用SM3算法对关键模块计算的Hash值。在系统研发完成后,写入检测模块中。 |
10 | 接口安全 | 软件功能实现相关的接口遵循的标准、规范是否真实有效。 | 系统遵循GM/T 0014-2012《数字证书认证系统密码协议规范》的要求实现CA与KM、CA与RA的对接。 |
11 | 通信协议 | 评估CA系统各子系统之间、CA与KMC之间、CA与RA之间的安全通信,应采取通信加密、安全通信协议等安全措施。 | 签发系统(CA)与注册系统(RA)之间、签发系统(CA)与密钥管理系统(KMC)之间使用Http协议进行通信,通信数据具备保护措施。 在发送数据之前,发送端会在数据中加入时间戳信息,用于检测和防止可能发生的重放攻击。 通信过程中,发送端使用SM2/SM3算法对通信内容进行数字签名签名,用于检测和防止信息被篡改。并使用接收端通信证书对通信能容进行加密,防止数据泄露。 通信过程中的通信证书是在系统初始化配置时生成,并配置在需进行网络通信的两端中。通信证书为SM2算法的数字证书,私钥存储于服务器密码机中。 |
12 | 证书管理安全 | 证书的管理安全应满足下列要求:验证证书申请者的身份; 防止非法签发和越权签发证书,通过审批的证书申请必须提交给CA,由CA签发与申请者身份相符的证书; 保证证书管理的可审计性,对于证书的任何处理都应作日志记录。通过对日志文件的分析,可以对证书事件进行审计和跟踪。 | 由注册系统完成验证证书申请者身份的过程。验证时,由业务操作员对证书申请者身份进行验证。在系统中表现为业务管理员对证书申请请求进行审批,审批通过即认为完成身份验证并验证通过。随后注册系统会自动向签发系统发出证书签发请求,完成后续证书签发操作。 在系统中,对证书请求审批的操作不可被绕过,且必须由业务操作员进行。 在系统的技术实现中,注册系统(RA)不具备签发数字证书的能力。 在系统的设计中,签发系统(CA)的签发证书动作仅能由注册系统发送证书签发请求触发。不存在自主签发终端用户证书的功能。 系统使用如上设计和技术实现,防止非法签发和越权签发证书。并保证由CA(签发系统)签发的证书符合申请者的身份。 CA(签发系统)和RA(注册系统)均包含审计功能,并设计有单独的审计员进行审计工作。 系统在执行签发证书、审批证书请求、管理员登录、证书吊销、证书挂起解挂等功能和操作时,会记录操作信息。记录的信息包括进行操作的管理员、操作时间、操作的功能和操作的结果。 审计员可登录系统中的审计管理界面,进行审计工作。 |
2.2 密钥管理评估
签发系统签名密钥
评估内容 | 评估目标 | 实现机制 | |
签发系统签名密钥 | 密钥生成/导入 | 在使用密码算法的场合下,考查送检产品 1) 能否正确、有效、安全的生成密钥; 2) 能否提供相应的(安全)机制正确的导入密钥。 | 密钥在系统进行初始化配置或密钥更新时,由管理员在获取权限后使用SJJ1012-A服务器密码机生成,用于签发数字证书。 |
密钥导出 | 在需要密钥导出的场合下,送检产品是否能够正确、有效、安全的将所需密钥导出。 | 非对称密钥的公钥可明文导出,私钥不可导出。 | |
密钥存储 | 在使用密码算法的场合下,考查送检产品能否正确、有效、安全的存储密钥。(如密钥的存储方式、存储区域等等) | 系统使用服务器密码机进行密钥存储,由加密机提供安全存储,保证密钥存储安全。 | |
密钥使用 | 在使用密码算法的场合下,送检产品能否根据密钥的类型和使用场合等情况正确、有效地使用密钥。 | 密钥用于签发系统签发证书。签发系统使用的密钥可根据用途独立配置,保证密钥专职专用,保证此密钥仅用于签发系统签发证书使用。 | |
密钥更新 | 在使用密码算法的场合下,送检产品是否能够可控、安全的进行更新。 | 一般不更新密钥。当出现密钥被泄露的风险时,系统通过重新生成密钥的方式更新密钥。 | |
密钥销毁 | 在相关密钥使用完成之后,送检产品能否提供有效的机制将密钥安全清除。 | 一般不销毁密钥。当出现密钥被泄露的风险时,系统通需通过密钥的索引,采用数据清零方式,完成销毁密钥的操作。 | |
密钥备份 | 在需要密钥备份的场合下,送检产品是否能够正确、有效、安全的备份密钥。 | 密钥备份功能由服务器密码机提供。备份后,密钥分量被分别保存于3张服务器密码机的管理员IC卡中。 备份时,需先在加密机管理界面中登录半数以上的管理员,并准备好用于存储密钥分量的管理员卡。备份后,密钥分量被分别保存于3张管理员卡中。密钥分量使用备份密钥加密,密文存储于IC卡中,备份密钥在备份时由加密机临时生成,并使用门限算法分割,分别存储于3张管理员IC卡中。 恢复时,通过管理端的恢复向导,依次插入储存密钥分量的管理员卡,完成恢复操作。 |
签发系统通信密钥
签发系统通信密钥 | 密钥生成/导入 | 在使用密码算法的场合下,考查送检产品 1) 能否正确、有效、安全的生成密钥; 2) 能否提供相应的(安全)机制正确的导入密钥。 | 密钥在系统进行初始化配置或更新密钥时,由管理员在获取权限后使用SJJ1012-A服务器密码机生成,用于保护签发系统与注册系统和密钥管理系统之间的通信。 |
密钥导出 | 在需要密钥导出的场合下,送检产品是否能够正确、有效、安全的将所需密钥导出。 | 非对称密钥的公钥可明文导出,私钥不可导出。 | |
密钥存储 | 在使用密码算法的场合下,考查送检产品能否正确、有效、安全的存储密钥。(如密钥的存储方式、存储区域等等) | 系统使用服务器密码机进行密钥存储。由加密机安全存储,保证密钥存储安全。 | |
密钥使用 | 在使用密码算法的场合下,送检产品能否根据密钥的类型和使用场合等情况正确、有效地使用密钥。 | 密钥用于保护签发系统与注册系统和密钥管理系统之间的通信。 签发系统使用的密钥可根据用途独立配置,保证密钥专职专用,保证此密钥仅用于用于保护签发系统与注册系统和密钥管理系统之间的通信。 | |
密钥更新 | 在使用密码算法的场合下,送检产品是否能够可控、安全的进行更新。 | 一般不更新密钥。当出现密钥被泄露的风险时,系统通过重新生成密钥的方式更新密钥。 | |
密钥销毁 | 在相关密钥使用完成之后,送检产品能否提供有效的机制将密钥安全清除。 | 一般不销毁密钥。当出现密钥被泄露的风险时,系统通需通过密钥的索引,采用数据清零方式,完成销毁密钥的操作。 | |
密钥备份 | 在需要密钥备份的场合下,送检产品是否能够正确、有效、安全的备份密钥。 | 密钥备份功能由服务器密码机提供。备份后,密钥分量被分别保存于3张服务器密码机的管理员IC卡中。 备份时,需先在加密机管理界面中登录半数以上的管理员,并准备好用于存储密钥分量的管理员卡。备份后,密钥分量被分别保存于3张管理员卡中。密钥分量使用备份密钥加密,密文存储于IC卡中,备份密钥在备份时由加密机临时生成,并使用门限算法分割,分别存储于3张管理员IC卡中。 恢复时,通过管理端的恢复向导,依次插入储存密钥分量的管理员卡,完成恢复操作。 |
注册系统通信密钥
评估内容 | 评估目标 | 实现机制 | |
注册系统通信密钥 | 密钥生成/导入 | 在使用密码算法的场合下,考查送检产品 1) 能否正确、有效、安全的生成密钥; 2) 能否提供相应的(安全)机制正确的导入密钥。 | 密钥在系统进行初始化配置或更新密钥时,由管理员在获取权限后使用SJJ1012-A服务器密码机生成,用于保护注册系统与签发系统之间的通信。 |
密钥导出 | 在需要密钥导出的场合下,送检产品是否能够正确、有效、安全的将所需密钥导出。 | 非对称密钥的公钥可明文导出,私钥不可导出。 | |
密钥存储 | 在使用密码算法的场合下,考查送检产品能否正确、有效、安全的存储密钥。(如密钥的存储方式、存储区域等等) | 系统使用服务器密码机进行密钥存储。由加密机安全存储,保证密钥存储安全。 | |
密钥使用 | 在使用密码算法的场合下,送检产品能否根据密钥的类型和使用场合等情况正确、有效地使用密钥。 | 密钥用于保护注册系统与签发系统之间的通信。 签发系统使用的密钥可根据用途独立配置,保证密钥专职专用,保证此密钥仅用于保护注册系统与签发系统之间的通信。 | |
密钥更新 | 在使用密码算法的场合下,送检产品是否能够可控、安全的进行更新。 | 一般不更新密钥。当出现密钥被泄露的风险时,系统通过重新生成密钥的方式更新密钥。 | |
密钥销毁 | 在相关密钥使用完成之后,送检产品能否提供有效的机制将密钥安全清除。 | 一般不销毁密钥。当出现密钥被泄露的风险时,系统通需通过密钥的索引,采用数据清零方式,完成销毁密钥的操作。 | |
密钥备份 | 在需要密钥备份的场合下,送检产品是否能够正确、有效、安全的备份密钥。 | 密钥备份功能由服务器密码机提供。备份后,密钥分量被分别保存于3张服务器密码机的管理员IC卡中。 备份时,需先在加密机管理界面中登录半数以上的管理员,并准备好用于存储密钥分量的管理员卡。备份后,密钥分量被分别保存于3张管理员卡中。密钥分量使用备份密钥加密,密文存储于IC卡中,备份密钥在备份时由加密机临时生成,并使用门限算法分割,分别存储于3张管理员IC卡中。 恢复时,通过管理端的恢复向导,依次插入储存密钥分量的管理员卡,完成恢复操作。 |
用户签名密钥对
评估内容 | 评估目标 | 实现机制 | |
用户签名密钥对 | 密钥生成/导入 | 在使用密码算法的场合下,考查送检产品 1) 能否正确、有效、安全的生成密钥; 2) 能否提供相应的(安全)机制正确的导入密钥。 | 在用户申请签名证书时,系统调用智能密码钥匙密钥生成接口产生。 |
密钥导出 | 在需要密钥导出的场合下,送检产品是否能够正确、有效、安全的将所需密钥导出。 | 非对称密钥的公钥可通过数字证书形式导出,私钥不可导出。 | |
密钥存储 | 在使用密码算法的场合下,考查送检产品能否正确、有效、安全的存储密钥。(如密钥的存储方式、存储区域等等) | 该密钥私钥由智能密码钥匙加密存储,公钥以数字证书形式存储在证书认证系统的数据库中。 | |
密钥使用 | 在使用密码算法的场合下,送检产品能否根据密钥的类型和使用场合等情况正确、有效地使用密钥。 | 该密钥为证书认证系统下发给用户的签名密钥,可用于对数据签名(私钥签名,公钥验签),同时也用于封装成数字信封,保护用户加密密钥对。 | |
密钥更新 | 在使用密码算法的场合下,送检产品是否能够可控、安全的进行更新。 | 当签名证书到期或用户请求时,可通过向证书认证系统提出申请后,从智能密钥钥匙中重新生成密钥对实现。 | |
密钥销毁 | 在相关密钥使用完成之后,送检产品能否提供有效的机制将密钥安全清除。 | 当签名证书到期或用户请求时,可通过向证书认证系统提出申请对用户签名证书进行注销,用户通过智能密码钥匙的管理工具进行销毁。 | |
密钥备份 | 在需要密钥备份的场合下,送检产品是否能够正确、有效、安全的备份密钥。 | 私钥不支持备份,公钥可通过证书形式进行备份。 |
用户签名密钥对
评估内容 | 评估目标 | 实现机制 | |
密钥管理 | 密钥生成/导入 | 在使用密码算法的场合下,考查送检产品 3) 能否正确、有效、安全的生成密钥; 4) 能否提供相应的(安全)机制正确的导入密钥。 | 用户申请加密证书时,由密钥管理系统生成用户加密密钥对,通过用户签名密钥进行加密保护,导入时以密文状态传入智能密码钥匙中,在智能密码钥匙内完成解密操作,并进行存储。 |
密钥导出 | 在需要密钥导出的场合下,送检产品是否能够正确、有效、安全的将所需密钥导出。 | 公钥可明文导出,私钥不可导出。 | |
密钥存储 | 在使用密码算法的场合下,考查送检产品能否正确、有效、安全的存储密钥。(如密钥的存储方式、存储区域等等) | 该密钥存储于智能密码钥匙中,由智能密码钥匙提供安全存储。公钥以证书形式明文存储在证书认证系统的数据库中。 | |
密钥使用 | 在使用密码算法的场合下,送检产品能否根据密钥的类型和使用场合等情况正确、有效地使用密钥。 | 该密钥为证书认证系统下发给用户的加密密钥,可用于对数据加解密(公钥加密,私钥解密)。 | |
密钥更新 | 在使用密码算法的场合下,送检产品是否能够可控、安全的进行更新。 | 当加密证书到期或用户请求时,可通过向证书认证系统提出申请后,从密钥管理系统中重新生成密钥对实现。 | |
密钥销毁 | 在相关密钥使用完成之后,送检产品能否提供有效的机制将密钥安全清除。 | 当签名证书到期或用户请求时,可通过向证书认证系统提出申请对用户加密证书进行注销,用户通过智能密码钥匙的管理工具进行销毁。 | |
密钥备份 | 在需要密钥备份的场合下,送检产品是否能够正确、有效、安全的备份密钥。 | 证书认证系统不支持备份用户加密密钥。 |
会话密钥
评估内容 | 评估目标 | 实现机制 | |
会话密钥 | 密钥生成/导入 | 在使用密码算法的场合下,考查送检产品 5) 能否正确、有效、安全的生成密钥; 6) 能否提供相应的(安全)机制正确的导入密钥。 | 通过调用服务器密码机的生成随机数接口获得。 |
密钥导出 | 在需要密钥导出的场合下,送检产品是否能够正确、有效、安全的将所需密钥导出。 | 不支持导出,一次一密。 | |
密钥存储 | 在使用密码算法的场合下,考查送检产品能否正确、有效、安全的存储密钥。(如密钥的存储方式、存储区域等等) | 不支持存储,一次一密。 | |
密钥使用 | 在使用密码算法的场合下,送检产品能否根据密钥的类型和使用场合等情况正确、有效地使用密钥。 | 系统通过调用服务器密码机的对称算法计算接口生成该密钥,用于生成时,保护加密证书私钥,封装成数字信封下发至智能密码钥匙中。 | |
密钥更新 | 在使用密码算法的场合下,送检产品是否能够可控、安全的进行更新。 | 该密钥为保护加密证书私钥使用的会话密钥,一次一密。 | |
密钥销毁 | 在相关密钥使用完成之后,送检产品能否提供有效的机制将密钥安全清除。 | 用完即毁,通过对内存中相关区域覆写垃圾数据的方式,完成密钥销毁。 | |
密钥备份 | 在需要密钥备份的场合下,送检产品是否能够正确、有效、安全的备份密钥。 | 不支持备份,一次一密。 |
备份密钥管理,备份密钥用于加密服务器密码机备份的非对称密钥
评估内容 | 评估目标 | 实现机制 | |
密钥管理 | 密钥生成/导入 | 在使用密码算法的场合下,考查送检产品 7) 能否正确、有效、安全的生成密钥; 8) 能否提供相应的(安全)机制正确的导入密钥。 | 只在备份时生成备份密钥,备份密钥由服务器密码机临时产生。 |
密钥导出 | 在需要密钥导出的场合下,送检产品是否能够正确、有效、安全的将所需密钥导出。 | 备份密钥导出时,通过门限算法切分为3份密钥分量,分别存储于服务器密码机的3张管理员IC卡中。 | |
密钥存储 | 在使用密码算法的场合下,考查送检产品能否正确、有效、安全的存储密钥。(如密钥的存储方式、存储区域等等) | 通过门限算法切分为3份密钥分量,分别存储于服务器密码机的3张管理员IC卡中。 | |
密钥使用 | 在使用密码算法的场合下,送检产品能否根据密钥的类型和使用场合等情况正确、有效地使用密钥。 | 同时插入2张以上管理员IC卡,使用门限算法恢复备份密钥后进行使用,用于备份数据的加解密。 | |
密钥更新 | 在使用密码算法的场合下,送检产品是否能够可控、安全的进行更新。 | 用完即毁,每次使用重新生成。 | |
密钥销毁 | 在相关密钥使用完成之后,送检产品能否提供有效的机制将密钥安全清除。 | IC卡存储的备份密钥在完成恢复操作后,随即销毁。 | |
密钥备份 | 在需要密钥备份的场合下,送检产品是否能够正确、有效、安全的备份密钥。 | 以密钥分量形式存储在服务器密码机的3张管理员IC卡中;恢复被备份数据时,通过门限算法恢复此密钥。 |
2.3 敏感信息安全评估
评估内容 | 评估目标 | 实现机制 | |
敏感信息 | 信息传输 | 各类密钥和敏感数据的传输、存储、修改、备份及恢复机制是否安全有效。 | 注册系统(RA)与签发系统(CA)之间、签发系统(CA)与密钥管理系统(KMC)之间的通信过程使用SM2算法的数字证书进行签名与加密,防止信息泄露,并提供防中间人攻击和防重放攻击功能。 |
信息存储 | 系统的配置信息和业务信息密文存储于数据库软件中。密钥基于数据库口令派生,在系统初始化阶段生成。 | ||
信息修改 | 已存储在数据库中的证书申请信息,无法进行修改。已存储在数据库中的配置信息,由具备相应权限角色的管理员,通过相关系统配置界面进行修改。 | ||
信息备份及恢复 | 数据库提供自动和人工备份功能,并提供恢复功能。 |
2.4 系统功能实现安全评估
评估内容 | 评估目标 | 实现机制 | |
用户注册管理系统 | 证书申请 | 证书申请信息的录入方法是否符合相关规范 | 证书申请信息由注册系统(RA)的业务操作员进行录入。 |
身份审核 | 如何进行申请信息的审核 | 由注册系统(RA)的业务操作员完成审核操作。已录入的信息将展示在审核界面。审核通过后业务操作员进行后续操作。若审核失败将返回录入阶段。 | |
证书下载 | 核查证书下载方法是否符合相关规范 | 签发系统(CA)生成证书后,系统自动将证书传递给注册系统(RA),注册系统(RA)的业务操作员将证书下载至智能密码钥匙中。 | |
权限管理 | 核查相关权限管理机制 | 系统具备权限管理机制,根据职责设计了不同管理员角色,并对各角色可使用的功能加以限制。 系统内置超级管理员、业务管理员、业务操作员、审计管理员和审计员角色,并遵循《GM/T 0037-2014 证书认证系统检测规范》中8.3的定义,限制每个角色可使用的功能。 | |
证书模板更新 | 核查证书模板更新流程 | 证书模板更新由超级管理员角色,在系统的系统配置界面(Console总控台)中通过证书模板配置功能完成。 | |
证书签发系统 | 多层结构支持 | 核查系统是否支持多层结构 | 通过配置证书链,系统支持签发多层结构的数字证书。 |
证书类型 | 核查证书类型是否符合相关规范 | 系统签发的各类证书,符合GM/T 0015-2012《基于SM2密码算法的数字证书格式规范》附录C 证书内容表中对证书内容的定义。 | |
证书生成与签发 | 能够使用指定的密码算法签发数字证书,并且能够提供证书查询和下载服务。 | 注册系统(RA)的业务操作员角色可以签发SM2算法的数字证书。注册系统(RA)提供证书查询和证书下载服务,业务操作员可在完成证书申请信息审核后,进行这些操作。 | |
CRL签发 | 应能根据CRL签发策略正确签发CRL文件,并且能够提供CRL查询和下载服务。 | 系统具备定时任务执行功能,可根据配置的时间周期或自动判断CRL更新周期签发CRL。系统同时提供了CRL下载功能。 系统的CRL更新周期可根据实际使用情况进行配置。若未配置,系统默认采用24小时作为默认周期。 | |
证书更新 | 应能正确完成CA证书的更新,通过新CA证书与旧CA证书的证书链,实现新旧证书更替,提供证书更新流程。 | 通过系统配置,可将更新后的CA证书链配置于系统中,替换原有的旧证书链。 | |
证书撤销 | 应能提供证书撤销服务,说明证书撤销流程。 | 由证书持有者向注册系统(RA)提出证书吊销请求,业务操作员对请求进行审核,若审核未通过,业务操作员将告知失败原因。若社和通过,证书和吊销请求将发送至签发系统(CA)。签发系统将相关证书标记为“已吊销”。 | |
证书状态查询 | 应能通过OCSP或SOCSP服务器提供实时证书状态查询服务。 | 系统提供OCSP服务,可提供实施证书状态查询服务。 |
2.5 日志管理评估
评估内容 | 评估目标 | 实现机制 | |
日志管理 | 日志生成 | 是否具备操作记录及操作人员的信息记录机制。 | 系统包含审计功能,并有审计管理界面。系统在执行签发证书、审批证书请求、管理员登录、证书吊销、证书挂起解挂等功能时,会自动记录操作信息。记录的信息包括进行操作的管理员、操作时间、操作的功能和操作的结果。审计员可登陆审计管理界面,进行审计工作。 |
日志查看 | 审计日志仅能由审计员查看。 | ||
日志导出 | 审计日志需要由审计员进行导出。 | ||
日志修改 | 审计日志不可修改。 |
附录1:随机数自测试说明
系统通过调用服务器密码机产生随机数。随机数自检流程如下:
上电检测
原理说明:按照《GM/T 0062-2018 密码产品随机数检测要求》,上电/复位时密码部件采集20*106比特随机数,分成20组,每组106比特,依据《GM/T 0005-2012 随机性检测规范》进行随机数质量检测。检测中如果有一项不通过检测标准,则告警检测不合格。允许重复1次随机数采集与检测,如果重复检测仍不合格,则判定为产品的随机数发生器失效。
若判定随机数发生器失效,系统使用随机数的相关功能会进行报错,阻止相关功能继续运行。并在报错信息中指明随机数发生器出现错误。
周期检测
原理说明:按照《商用密码产品随机数检测要求GM/T 0005-2012》,产品使用时需对随机数质量进行周期性检测。密码部件采集4*105比特随机数,分成20组,每组20000比特,依据《GM/T 0005-2012 随机性检测规范》中除离散傅立叶检测、线性复杂度检测、通用统计检测外的12项项目进行检测。检测中如果有一项不通过检测标准,则告警检测不合格。允许重复1次随机数采集与检测,如果重复检测仍不合格,则判定为随机数发生器失效。周期检测间隔配置为1小时。
若判定随机数发生器失效,系统使用随机数的相关功能会进行报错,阻止相关功能继续运行。并在报错信息中指明随机数发生器出现错误。
单次检测
原理说明:密码部件在需要使用随机数时对物理随机源产生的随机数的质量进行扑克检测,检测通过后方能使用。其中m取值为2,数据量为256比特。
若判定随机数发生器失效,系统使用随机数的相关功能会进行报错,阻止相关功能继续运行。并在报错信息中指明随机数发生器出现错误。
附录2:算法自测试说明
SM1 ECB算法自检原理说明
调用密码部件对预置原文、预置密钥进行ECB工作模式的加密运算,比较密文值是否与标准数据一致;调用密码部件对预置密文、预置密钥进行ECB工作模式的解密运算,比较得到明文值是否与标准数据一致。对同一组数据重复执行5次上述算法自检过程,5次全部通过,则算法自检通过,否则算法自检失败。若自检失败,系统将停止启动过程。
SM1 CBC算法自检原理说明
调用密码部件对预置原文、预置密钥、预置IV值进行CBC工作模式的加密运算,比较密文值是否与标准数据一致;调用密码部件对预置密文、预置密钥、预置IV值进行CBC工作模式的解密运算,比较得到明文值是否与标准数据一致。对同一组数据重复执行5次上述算法自检过程,5次全部通过,则算法自检通过,否则算法自检失败。若自检失败,系统将停止启动过程。
SM2算法签名验签自检流程。
使用预置的SM2签名验签数据中的公钥、原文和签名值进行验签操作;若签名验证失败,则认为密码部件检测失败,系统将停止启动过程;若签名验证成功,则认为SM2签名验证检测通过;使用预置的SM2签名验签数据中的私钥和原文进行签名操作,然后使用公钥进行验签;若签名值验证失败,则认为密码部件检测失败,系统将停止启动过程;若签名验证成功,则认为密码部件SM2签名功能检测通过。
SM2算法加密解密自检流程。
使用预置的SM2加密解密数据中的私钥、密文进行解密运算,判断解密后的结果是否与预置的原文一致。若不一致,则认为密码部件检测失败,系统将停止启动过程;若一致,则认为SM2解密检测通过。使用密码算法正确性自检预置的公钥和原文进行加密操作,并用预置的私钥进行解密。若解密结果与原文一致,则认为密码部件SM2加密检测通过。若不一致,则认为密码部件检测失败。若检测失败,系统将停止启动过程。
SM3杂凑算法自检流程。
使用预置数据计算杂凑值,将计算的杂凑值与内置的杂凑值进行比对;若两者不同,则认为SM3计算检测失败,系统将停止启动过程;若两者一致,则认为SM3计算检测成功。
密码算法正确性自检预置数据
(1)SM1密码算法正确性自检数据
SM1_ECB模式 | |
预置明文 | ffeeddccbbaa99887766554433221100 |
预置密钥 | 40bb12dd6a8273867f3529d354b4a026 |
预置密文 | 6d7f45b08bc4d966444c86c2b07d2993 |
SM1_CBC模式 | |
预置明文 | ffeeddccbbaa9988776655443322110000112233445566778899aabbccddeeff |
预置IV | e83d1715acf34863aceb93e0e5ab8b90 |
预置密钥 | 40bb12dd6a8273867f3529d354b4a026 |
预置密文 | 3a70b5d49a782c072de11343819ec659f8fc7af05e7c6dfb5f81090f0d8791b2 |
(2)SM2算法(签名验签)
预置数据待签名数据 | 3854C463FA3F73783621B1CE4EF83F7C78048AAC79B221FCDD290866CC131174 |
预置SM2公钥 | 5CA4E440C508C45FE7D758AB10C45D8237C4F9559F7D466185F295399F0AA37D59AD8A3CD17903287681BF9D21DA2EB316A0CE8FD41C89CE1E2B3F1B8E041ABA |
预置SM2私钥 | C242939DDAB6FCC07B6676C07D2DC117EC68A09142C25C008630B9756786162D |
预置SM2签名值 | 6E5DB49DBD0992B97040080A96003C721CDB9CF64C88D74321FC2F630ADF37742F6DFF453DFC8D7A506D3F52301BEE529E62FDDD38948F0D5D2CBCBC55900CFA |
(3)SM2算法(加解密)
预置公钥 | C4F7D581BEFEF25C8BBB6DAD52A6AB8234FA7DB7A988592BC592DAF2BE630647E3746788CBDC59042D85260DD48B6A7347D82C5314E8AC261588A33151DFCA17 |
预置私钥 | E7CB09606A53320B347F61F3F142DCB118F723A9BC27879F2805BE778F24AEE5 |
预置明文 | EA4EC352F076A6BE |
预置密文 | 049E2A4A1AA4CF772622ABBBF1C6D661EE58FF01FF9843782E5A63185ABF6C2EFA9B2D59B2B1E0D0A795BFEF53FABB24C03A02265751B820591200F0D31C551ED67DFDFC65CC9DF7D6287D5BF3358BED992881B69FBA13C8AF76EFC157455DB81ECFACC7B443EA1DB0 |
(4)SM3算法
预置数据 | 3366779900881234567890 |
预置杂凑值 | AE952533F5E24197B6843757F534E49C15C1F65A46C0D01889451C39294B791B |