技术工作总结报告&安全性设计报告&用户手册 编写说明
前言
在申请商用密码产品型号(2020年1月1日以前)和商用密码产品认证资质(2020年1月1日以后)的过程中,送检方都要在发起申请流程前编写《技术工作总结报告》、《安全性设计报告》和《产品用户手册》三个涉及商密产品基本技术情况的申请材料。这三个申请材料模板可以从商密认证中心获取。也可从国家密码管理局的网站上下载旧版本,内容与最新版本差异不大。为方便大家,特将最新模板上传与方便提前熟悉申请材料内容。
《技术工作总结报告》、《安全性设计报告》和《产品用户手册》这三个申请材料的编写难度要比《密码模块分级检测申请材料》小,因为前三者仅仅是站在技术的角度阐述商用密码产品的设计方案,不像后者涉及GM/T 0028-2014这样具体的标准规范和抽象概念。同时《技术工作总结报告》、《安全性设计报告》和《产品用户手册》有些格式化的内容,与技术实现并不密切相关,如实填写即可。因此,本文将《技术工作总结报告》、《安全性设计报告》和《产品用户手册》三者与《密码模块分级检测申请材料》分开,将三个材料放在一起介绍。
本文的目的是介绍《技术工作总结报告》、《安全性设计报告》和《产品用户手册》三个申请材料在编写过程中的注意事项。为初次编写者提供指引。由于模板中已经存在基本的编写要求,本文主要是在编写要求基础上展开说明,并提供适当的例子。
《技术工作总结报告》和《安全性设计报告》涉及技术实现细节较多,这两个申请材料部分内容最好由研发人员或方案设计者编写,剩余部分可由产品经理编写。产品用户手册主要涉及产品的安装、初始化和使用。可由测试人员、售前等编写。如果在产品材料编写或送审过程中遇到问题可站内联系笔者微信号:symmrz。
技术工作总结报告
1项目概述
模板要求:简述产品的基本组成、主要功能、遵循标准、采用的密码算法和已经获得认证证书的商用密码产品等,可以拓扑图等形式展现应用领域或典型应用场景,并附有产品整体照片和软硬件版本号截图。
编写说明:这部分很重要,由于这是审核人员最先看到的产品介绍,相当于见到一个人的第一印象,或者说是一个人求职时投递的简历。审核人员根据项目概述就可以初步得出这个产品是否合规,属于哪一类型,应遵循哪些规范,密码边界,认证难度等等。所以这部分要格外注意不能乱写。
模板要求中的内容一般都要覆盖,尤其是基本组成、遵循标准、密码算法和获得证书的商用密码产品这四部分。基本组成指的是产品的边界,包含哪些软件、硬件部件,例如对外介绍产品时常用的拓补图上会有哪些部分属于产品范围之内。可能包括客户端软件,物理硬件实体,服务端之类;主要功能是产品为用户提供了哪些功能服务;遵循标准指的是产品涉及的标准规范,这里主要是商用密码行业的规范(以GM/T开头的,注意是产品的技术规范),这些规范可以在http://www.oscca.gov.cn/app-zxfw/zxfw/bzgfcx.jsp查到;采用的密码算法一般要选择商密的SM123479等受国密认可的密码算法(注意尽量不要选择国际算法),每种算法的应用场景这里不展开描述,后续我会更新相关的内容;已获得证书的商密产品是指产品中使用的有商密资质的密码部件,一般为安全芯片、智能卡、钥匙、密码机等产品,一定要与实际产品对应;应用领域和应用场景可以用图或文字形式描述产品的使用者、使用场景和目标,更加具体的描述出产品的功能与名字、规范是否对应。
2研制背景和意义
模板要求:简明扼要、实事求是的对产品进行需求分析,及其在信息安全领域中所处的地位、所起的作用、目标市场和预期经济效益分析等。
编写说明:这部分按照模板要求编写即可。部分内容可摘抄以显示文档充实。
3主要研制过程
模板要求:研制工作组织实施情况,如采取的质量、进度管理措施;硬件开发、软件开发、硬件组装和测试环境;分阶段描述工作进度并细化到年月,以及各阶段遇到的主要困难和解决办法。
编写说明:说明产品项目的进度细节,涉及质量体系或信息安全体系的部分可以查找ISO9001或27001等部分内容。涉及工作进度等可以查找项目管理过程中的文档
4设计原则
模板要求:阐述产品设计、研制过程中在标准化、创新性、可靠性、可操作性、兼容性、适用性、易用性、经济效益等方面的主要考虑和遵循的原则。
请在此详细列出产品所遵循的标准规范,包括但不限于密码相关标准。
编写说明:按照模板要求编写即可。无特殊要求
5组成框图
5.1硬件组成
模板要求:以逻辑框图形式给出产品的硬件组成,并简要描述每个功能模块或部件的功能、作用及其相互之间的关系。
列出产品每个硬件组成部分的技术研发情况,如自主研发、直接购买、购买后定制等,以及产品硬件组成部分的国产化率。如为自主研发,应明确其功能作用;如为直接购买,应给出生产厂家和型号;如为购买后定制,应给出对原产品的改动之处。
编写说明:说明产品内部的关键部件包括但不限于安全芯片、通信接口、运行环境、密码部件等。需详细说明每个关键部件所承担的功能,通信接口所遵循的协议和版本。随机数发生器的实现方式。若软件密码模块可不写本部分。
5.2软件组成
模板要求:以逻辑框图形式给出产品的软件组成,并简要描述每个功能模块或部件的功能、作用及其相互之间的关系。
列出产品每个软件组成部分的技术研发情况,如自主研发、直接购买、购买后定制等,以及产品软件组成部分的国产化率。如为自主研发,应明确其功能作用;如为直接购买,应给出生产厂家和型号;如为购买后定制,应给出对原产品的改动之处。
编写说明:说明软件部件的组件、逻辑关系、在整体产品中起到的作用,密码算法和随机数如何实现,运行环境要明确。
6工作原理
模板要求:围绕产品实现的主要功能,详细描述其实现原理。阐述各组成模块或部件的结构、原理、接口和技术实现方式。对于随机数产生、数据加解密等密码模块或部件,应详细描述工作机理。
编写说明:这部分模板写的最简单,但实际需要写的内容最多。这部分如何编写不固定,笔者喜欢把这个章节分成硬件工作原理、软件工作原理、通信接口、密钥管理这几部分分开介绍。硬件工作原理有些类似前面的硬件组成,描述各个硬件关键部件的实现方式和功能,研发人员可对硬件细节展开来说,详细说明硬件方案的技术实现。软件工作原理与软件组成类似,但是要详细说明软件的架构,每层的作用,甚至每层对外提供的接口原型。涉及密码的部分要着重介绍,例如密码算法和随机数如何实现、传输报文如何保护、本地存储的敏感数据如何保护。通信接口要描述不同部件之间的通讯采用何种接口、遵循的协议、如何确保通信中不会泄露敏感数据。密钥管理要介绍产品中所有的密钥,以及每个密钥的生命周期,包括密钥生成、使用、导入导出、存储、备份恢复、更新销毁等
7工作流程
模板要求:围绕产品实现的各项功能,详细描述各组成模块或部件之间的动态交互关系及具体步骤。应采取图表形式,并附以文字说明。列出产品具有的各种工作状态及其互相转换的条件、路径。应采用图表形式,并附以文字说明。
编写说明:这部分主要站在产品的角度看产品使用过程中涉及的数据流以及产品自身的状态转换。按照实际情况写即可。工作流程即产品的使用者的使用步骤,在使用过程中产生的输入输出数据流,可以图表+文件描述形式体现。使用者应包括执行初始化的密码主管和执行业务功能的操作员
8关键技术和创新点入侵式安全
编写说明:按照实际情况写即可。主要不要着重描述相对前言但未被国密认可的技术。
9国内外同类产品比较
编写说明:按照模板要求填写即可。
10逻辑框图和电路原理图
编写说明:按照模板要求填写即可。
11主要器件及说明
编写说明:注意填写产品的关键密码部件
12主要技术及指标
编写说明:注意填写产品的密码算法性能和系统级性能。
13主要开发人员名单
编写说明:以表格形式列出主要开发人员名单,一般不超过10个即可。
安全性设计报告
1安全性需求分析
模板要求:针对产品的应用领域和应用环境,从信息安全的角度分析应用面临的安全风险以及产品本身可能存在的安全威胁,提出产品安全性设计总体目标,满足GM/T 0028-2014《密码模块安全技术要求》的安全等级,需要提供的密码功能以及安全防护要求等。
编写说明:可摘抄《技术工作总结报告》中涉及应用领域和应用环境的部分描述。要分析本文第二章的10个安全角度,描述本产品面临的安全需求,需要达到的安全目标。这部分可不写如何实现这些安全目标,留在后面具体描述。
2安全性设计
1密码算法
模板要求:包括使用密码算法种类、工作模式及其用途,各密码算法实现方式(软件、硬件、软硬结合等)
编写说明:要详细描述密码算法及如何使用这些算法。密码算法尽量使用SM系列,不要使用RSA、DES、AES、SHA1、MD5等国际算法。算法模式也要写明,例如SM4 ECB模式,SM2签名。
2密钥管理
模板要求:密钥管理体系或逻辑结构、密钥种类、密钥长度、用途及与对应密码算法的关系,可采取表格形式并附以文字说明;各类密钥和关键敏感数据的生成、分发、使用、存储、备份、更换、销毁等全生命周期管理。
编写说明:这部分要详细描述产品涉及的密钥,最好有密钥列表,说明密钥名称(所有文档中保持一致)、算法、用途。密钥的生命周期管理最终也要形成一个表格,与《技术工作总结报告》中的对应。
3密码协议
模板要求:针对通信保护、安全认证、密钥协商等密码协议,分别描述协议用途、安全目标、协议要素(包含协议主体、使用的算法和工作模式、密钥等)、协议流程、协议数据结构等。
编写说明:通信过程中遵循的协议,例如SSL、GB15843、GM0003.3等。详细说明通信中交互的数据内容,最好以图表+文字说明介绍数据流。
4 角色及其策略管理
模板要求:说明角色及其管理策略设计原则,描述定义的各类角色、权限定义、身份认证机制、系统服务访问控制策略等
编写说明:说明产品存在哪些使用角色,各角色对应的功能,如何鉴别这些角色身份。如有必要,可以与GM/T 0028中关于角色鉴别的部分对应。
5 软件安全
模板要求:描述自主设计开发的软件安全性设计和完整性保护措施,以及使用的操作系统、数据库、防火墙、防病毒、入侵检测等第三方软件来源、版本号和安全增强措施
编写说明:描述产品使用哪些方式保护自身的软件安全和完整性。一般软件安全指的是自身安全逻辑设计、对运行环境的控制、自身校验软件完整性。这部分软件的安全可以借鉴GM/T 0028的软件/固件安全章节。完整性要考虑自身软件的安整性、数据的完整性、密钥管理的完整性
6硬件安全
模板要求:针对常见的各类物理攻击手段,实现的各类静态安全保护和运行时动态防护措施,包括上电、复位和运行中的硬件、密码算法、随机数自检方式和检查内容,掉电保护及电磁兼容性措施,以及防窥探、防拆卸、防解剖等物理防护措施
编写说明:若使用安全芯片,需强调随机数和密码相关使用了安全芯片。密码算法和随机数的自检是主要关注内容。可参考GM/T 0028的自测试章节。密码算法自检要涉及所有使用的密码算法的所有模式(例如ECB和CBC),如采用标准数据自检应确保数据的正确。随机数自检要确定产品属于的种类,可通过查询GM/T0062确定产品应遵循哪一类随机数自检标准。
7应用安全
模板要求:描述针对产品主要业务安全需求进行的硬件、业务流程、数据格式、使用方式等方面的安全性设计
编写说明:描述产品业务角度保证安全的措施,例如产品出厂时配套智能密码钥匙,由专人进行初始化操作。
8运行安全
模板要求:描述数据备份及恢复、服务连续性保障措施,本地或远程管理的安全措施;以及产品运行环境的安全防护设计;描述日志审计的设计策略,记录信息的主要类型和主要内容等。
编写说明:按照模板要求写即可。
9研发管理生产安全
模板要求:描述产品的软硬件开发、测试、生产、制造环境,人员管理,制度建设、质量和服务保障等安全性相关措施
编写说明:描述开发测试过程、生产制造过程的安全控制,描述相关办公环境安全措施、具备的规章制度。可参考ISO9001或27001部分内容编写。
10其他安全性设计
模板要求:按照GM/T 0028-2014《密码模块安全技术要求》安全等级第X级要求,应具有的其他安全性设计内容,如产品不涉及相关内容,可不予描述。如不描述,请注意编号连续
编写说明:按照模板要求编写即可。
3安全性分析与评估
模板要求:针对安全性需求分析,结合产品采取的安全性设计,分析产品达到的实际目标,并与预期的安全性设计总体目标进行评估
编写说明:结合本文第1章的安全需求,总结产品是否达到安全要求。
用户手册
模板要求:描述产品满足的GM/T 0028-2014《密码模块安全技术要求》安全等级,支持的密码算法、软硬件环境、具备功能、主要技术指标和操作指南,指导用户安装、使用产品。对于密码卡、智能密码钥匙、智能IC卡、密码机等基础类密码产品,应提供包含主要函数接口/指令集等内容的二次开发手册。用户手册中提及的密码算法、主要功能、密码部件应与前述技术工作总结报告和安全性设计报告内容一致
编写说明:本文主要用于通过图片和操作手册的形式更直观形象的介绍产品功能。密码算法、软硬件环境、具备功能、主要技术指标方面可以摘抄《技术工作总结报告》的第一章。产品使用者的操作指南应包括初始化和各角色涉及的操作步骤,应具备必要的照片或截图。常见的基础类密码产品应有接口列表指令手册等。
写在最后
《技术工作总结报告》、《安全性设计报告》和《产品用户手册》这三个申请材料主要在提交流程过程和检测阶段受关注程度较高。里面涉及的内容可能需要研发人员、测试人员、项目管理人员甚至质量体系人员参与,内容相对复杂。部分内容与密码模块的0028规范有重合,注意不要与《密码模块分级检测申请材料》冲突。