《信息安全技术动态口令密码应用技术规范(GB-T 38556-2020).pdf》由会员分享,可在线阅读,更多相关《信息安全技术动态口令密码应用技术规范(GB-T 38556-2020).pdf(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ICS 35.040L80中中 华华 人人 民民 共共 和和 国国 国国 家家 标标 准准GB/TXXXXXXXXX信息安全技术 动态口令密码应用技术规范Information security technology-One-time-password cryptographicapplication technical specifications(报批稿)XXXX-XX-XX 发布XXXX-XX-XX 实施GB/T XXXXX-XXXXI目次前言.II1 范围.12 规范性引用文件.13 术语和定义.14 符号和缩略语.35 技术框架.35.1 总体框架.35.2 系统组成.46 动态口令
2、生成.56.1 口令生成方式.56.2 算法使用说明.67 鉴别.错误!未定义书签。错误!未定义书签。7.1 鉴别模块说明.77.2 鉴别模块服务.87.3 鉴别模块管理功能.107.4 安全要求.108 密钥管理.错误!未定义书签。错误!未定义书签。8.1 概述.118.2 系统架构.118.3 功能要求.138.4 系统安全性设计.148.5 硬件密码设备接口说明.17附录 A(规范性附录)硬件动态令牌要求.19附录 B(资料性附录)动态口令鉴别原理.21附录 C(资料性附录)鉴别模块接口.31附录 D(规范性附录)运算参数与数据说明用例.30附录 E(资料性附录)动态口令生成算法 C 语
3、言实现用例.错误!未定义书签。错误!未定义书签。1附录 F(规范性附录)动态口令生成算法计算输入输出用例.43GB/T XXXXX-XXXXII前言本标准依据 GB/T1.12009标准化工作导则 第 1 部分:标准的结构和编写给出的规则起草。请注意本标准的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。本标准由全国信息安全标准化技术委员会(SAC/TC260)提出并归口。本标准起草单位:上海众人网络安全技术有限公司、上海复旦微电子股份有限公司、飞天诚信科技股份有限公司、北京集联网络技术有限公司、上海华虹集成电路有限责任公司、紫光同芯微电子有限公司、上海林果实业有限公司、上海格
4、尔软件股份有限公司。本标准主要起草人:谈剑锋、尤磊、李坤、柳逊、郑强、朱鹏飞、郭思健、李阗、田敏求、吕春梅、周学庆、王凤珍。GB/T XXXXX-XXXX1信息安全技术 动态口令密码应用技术规范1范围本标准规定了动态口令技术框架,动态口令生成算法、鉴别和密钥管理等的相关内容。本标准适用于动态口令相关产品的研制、生产、应用,也可用于指导相关产品的检测。2规范性引用文件下列文件对于本标准的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本标准,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本标准。GB/T 2423.1-2008电工电子产品环境试验第 2 部分:试验方法
5、试验 A:低温GB/T 2423.2-2008电工电子产品环境试验第 2 部分:试验方法试验 B:高温GB/T 2423.8-1995电工电子产品环境试验第 2 部分:试验方法试验 Ed:自由跌落GB/T 2423.9-2001电工电子产品环境试验第 2 部分:试验方法试验 Cb 设备用恒定湿热GB/T 2423.10-2008电工电子产品环境试验第 2 部分:试验方法试验 Fc:振动(正弦)GB/T 2423.21-2008电工电子产品环境试验第 2 部分:试验方法试验 M:低气压GB/T 2423.22-2012环境试验第 2 部分:试验方法试验 N:温度变化GB/T 2423.53-20
6、05电工电子产品环境试验第 2 部分:试验方法试验 Xb 由手的摩擦造成标记和印刷文字的磨损GB/T 4208-2017外壳防护等级(IP 代码)GB/T 17626.2-2006电磁兼容试验和测量技术静电放电抗扰度试验GB/T 18336.1信息技术安全技术信息技术安全性评估准则第 1 部分:简介和一般模型GB/T 18336.2信息技术安全技术信息技术安全性评估准则第 2 部分:安全功能组件GB/T 18336.3信息技术安全技术信息技术安全性评估准则第 3 部分:安全保障组件GB/T 32905信息安全技术SM3 密码杂凑算法GB/T 32907信息安全技术SM4 分组密码算法GB/T
7、32915信息安全技术二元序列随机性检测规范3术语和定义下列术语和定义适用于本文件。3.1动态口令one-time-password,dynamic password由种子密钥与其它数据,通过特定算法,运算生成的一次性口令。3.2动态令牌one-time-password token,dynamic token生成并显示动态口令的载体。GB/T XXXXX-XXXX23.3种子密钥 seed key即令牌种子密钥,计算动态口令的密钥。3.4静态口令 static password用户设置的,除非用户主动修改,否则不会发生变化的口令。3.5挑战码 challenge code即挑战因子,可参与到
8、动态口令生成过程中的一种数据。3.6大端 big-endian数据在内存中的一种表示格式,规定左边为高有效位,右边为低有效位。数的高阶字节放在存储器的低地址,数的低阶字节放在存储器的高地址。3.7鉴别模块 authentication system能够为应用系统提供动态口令身份鉴别服务的系统。3.8服务报表 service list系统提供的,对于令牌和系统不同时间段对应的状态和结果的统计报表。3.9主密钥 master key系统的根密钥,用于生成种子密钥,种子密钥加密密钥,厂商生产主密钥等。3.10种子密钥加密密钥 encryption key for seed key用于对种子密钥进行加
9、密的密钥。3.11厂商生产主密钥 main key for manufacturer production生成令牌生产时所需的种子密钥加密密钥。3.12厂商代码 manufacturer code用于标识厂商的代码,可以是数字、英文字母、数字与英文字母的混合。GB/T XXXXX-XXXX33.13内部挑战鉴别 internal challenge authentication一种由用户主动解除令牌异常状态时采用的挑战鉴别方式。4符号和缩略语下列符号和缩略语适用于本文件。bitN:指一个字节当中的第N+1个比特位(从低位计起)C:参与运算的事件因子F():算法函数ID:杂凑及分组算法的输入信息
10、IP44:防护等级第一特性4(防尘),防护等级第二特性4(防水)。K:长度不少于128比特的运算密钥Km:主密钥Kt:传输密钥Kp:厂商生产主密钥Ks:种子密钥加密密钥N:令牌或其它终端显示口令的位数OD:输出结果PIN:指用于使令牌工作并显示动态口令的一种口令,是一个至少6位长度的十进制数。Q:鉴别双方通过协商输入的挑战因子S:算法函数输出结果T:参与运算的时间因子T0:是以UTC时间为标准的一个长度为8字节的整数Tc:以秒为单位的口令变化周期Truncate():截位函数UTC时间:距1970年1月1日00:00时(格林尼治标准时间)的秒数:幂运算符,即2n代表2的n次方%:求余运算,即5
11、%3=2|:连接符,将两组数据根据左右顺序拼接田:算术加符号,且不进位。5技术框架5.1总体框架动态口令系统为应用系统提供动态口令鉴别服务。由动态令牌、鉴别模块和密钥管理模块组成。动态令牌生成动态口令,鉴别模块验证动态口令的正确性,密钥管理模块负责动态口令的密钥管理,应用系统将动态口令按照指定的协议(报文)发送至鉴别模块进行鉴别。动态口令系统架构图如图1所示:GB/T XXXXX-XXXX4图 1动态口令系统架构5.2系统组成5.2.1动态令牌动态令牌产生动态口令,做为用户身份鉴别依据。硬件动态令牌产品的要求见附录A。5.2.2鉴别模块鉴别模块用于执行动态口令鉴别和令牌同步,以及令牌相关状态的
12、管理及配置等功能。鉴别模块通过鉴别通讯协议与应用系统进行通讯,或支持调用鉴别接口的方式,用以完成动态口令的鉴别、同步等功能。动态口令鉴别原理参见附录 B。5.2.3密钥管理模块密钥管理模块用于动态令牌种子密钥的生成、传输和存储进行安全管理,包括系统登录鉴别子模块、用户管理子模块、保护密钥生成子模块、种子密钥生成子模块、令牌序号生成子模块、时间同步子模块(可选)、令牌生产配置子模块、密码机接口模块和动态令牌读写接口等。5.2.4应用系统应用系统是指集成了将动态口令按照鉴别通讯协议(或鉴别接口)与鉴别模块交互完成动态口令鉴别的应用程序集合,应用系统可以是软件系统,可以是硬件设备,也可以是软件和硬件
13、相结合的形式。5.2.5鉴别接口鉴别接口是鉴别模块提供的用于连接应用系统与鉴别模块的接口集合。应用系统通过调用接口,可以完成动态口令鉴别、同步等功能。鉴别模块的接口参见附录C。5.2.6鉴别通讯协议鉴别通讯协议是鉴别服务通过标准的通讯协议和应用系统进行通讯的依据。应用系统通过发送报文的形式完成动态口令的鉴别、同步等功能。GB/T XXXXX-XXXX56动态口令生成6.1口令生成方式6.1.1计算时间因子T=T0/TcT 是参与运算的时间因子,是一个 8 字节整数。T0是以 UTC 时间或用户选择的时间标准为计量标准的一个 8 字节整数。Tc是以秒为单位的口令变化周期,最大值为 60。6.1.
14、2组装输入序列ID=T|C|Q ID 是杂凑或分组算法的输入序列。T 是 6.1.1 的计算结果。C 是参与运算的事件因子,是一个 4 字节整数。Q 是鉴别双方通过协商输入的挑战因子或其它类型需要参与运算的因子,使用 ASCII 码表示,最小长度为 4 字节。ID 最小长度为 128 比特,至少需要包含 T、C 的其中一个参数,Q 为可选参数,并按照 T|C|Q的顺序进行数据组装。未包含的参数位置,由下一个参数进行补充。如 ID 由 T、Q 组成,则数据组装方式为 T|Q。如 ID 由 C、Q 组成,则数据组装方式为 C|Q。如组成 ID 的数据不足 128 比特,ID 的数据末端填零至 12
15、8 比特。6.1.3计算一次性中间值S=F(K,ID)K 是长度不小于 128 比特的种子密钥,只有鉴别双方持有;F()是算法函数,使用分组算法 SM4 或者杂凑算法 SM3,其中使用 SM4 时 S 的输出长度为 128 比特,使用 SM3 时 S 的输出长度为 256 比特。6.1.4截位计算OD=Truncate(S)输入为 6.1.3 的输出。Truncate()是截位函数,OD 是其输出结果,长度为 32 比特。选用SM3作为F运算时,定义S1,S2,S3,S4,S5,S6,S7,S8为8个4字节整数,通过如下方法赋值:S=S1|S2|S3|S4|S5|S6|S7|S8OD=(S1+
16、S2+S3+S4+S5+S6+S7+S8)%(232)使用SM4作为F运算时,定义S1,S2,S3,S4为4个4字节整数,通过如下方法赋值:S=S1|S2|S3|S4OD=(S1+S2+S3+S4)%(232)6.1.5计算动态口令P=OD%(10N)N是令牌或其它终端显示口令的位数,N不小于6。P是最终显示的动态口令。GB/T XXXXX-XXXX66.2算法使用说明6.2.1使用要求分组密码算法应采用 SM4 算法,满足 GB/T 32907 的要求。分组长度为 128 比特,密钥长度为128 比特,运算方式选用 ECB 加密的工作模式,加密结果长度为 128 比特。密码杂凑算法应采用 S
17、M3 算法,满足 GB/T 32905 的要求。本标准涉及随机数生成的算法,应满足 GB/T 32915 的要求。6.2.2杂凑算法使用说明在S=F(K,ID)环节,当使用SM3算法时,K|ID为输入参数。6.2.3分组算法使用说明在 S=F(K,ID)环节,当使用 SM4 算法时,K 为运算密钥,ID 为输入参数,K 或 ID 大于 128 比特时,运算过程如下:K 大于 128 比特时,记 K 的长度为 L1比特。n 为不小于 L1/128 的最小整数,在 K 末端填充 128*n-L1个比特 0。再将 K 以 128 比特长度进行分组,高位在前,分别为 K1、K2、K3Kn。ID 大于
18、128 比特时,记 ID 的长度为 L2比特。m 为不小于 L2/128 的最小整数,在 ID 末端填充 128*m-L2个比特 0。再将 ID 以 128 比特长度进行分组,高位在前,分别为 ID1、ID2、ID3IDm。运算过程如图 2 所示:图 2 SM4 运算过程图ID1和K1作为第一个分组运算的输入,通过SM4运算生成S1。将S1分别与ID2和K2进行算术加运算(高位溢出舍去),获得ID2和K2,用于第二个分组的输入,通过SM4运算生成S2。之后的运算以此类推。如 Kn和 IDm中,nm,则 m 次运算以后,使用 IDm与 Si(m-1in)算术加运算(高位溢出舍去)生成IDi+1,
19、参与后续运算。如Kn和IDm中,nm,则n次运算以后,使用Kn与Si(n-1im)算术加运算(高位溢出舍去)生成Ki+1,参与后续运算。如图2中所示,S=Smaxm,n。6.2.4数据格式和输入输出用例数据运算与存储,应采用大端(big-endian)格式。见附录 D动态口令生成算法的 C 语言实现用例参见附录 E,输入输出的用例数据见附录 F。GB/T XXXXX-XXXX77鉴别7.1鉴别模块说明7.1.1鉴别模块构成鉴别模块是为应用系统提供动态令牌鉴别及管理的服务系统,由两个部分构成:鉴别服务子模块、管理子模块:a)鉴别服务子模块对应用提供鉴别和管理服务。b)管理子模块对鉴别模块的运行进
20、行管理。7.1.2令牌的状态令牌的状态为鉴别模块内保存的令牌工作状态,如表 1 所示:表1 令牌工作状态表状态描述说明未激活令牌出厂时的状态,须激活后令牌才能进入就绪状态未激活令牌不能提供正常的口令鉴别就绪令牌正常工作状态就绪状态下令牌可用于口令鉴别锁定令牌因连续错误、重放攻击、人工方式等原因被锁定后处于锁定状态锁定状态的令牌不能提供正常的口令鉴别挂起令牌被人为挂起后,处于挂起状态挂起状态的令牌不能提供正常的口令鉴别作废令牌执行作废操作后,进入作废状态作废的令牌不能提供正常的口令鉴别7.1.3令牌的数据令牌的数据应包括:令牌序列号、密钥数据、令牌状态、上次使用时间、连续错误次数、令牌偏移量、其
21、它配置参数等,其中:a)密钥数据应加密存放。b)其它数据应采用校验机制保证完整性。7.1.4令牌的同步鉴别模块应提供对令牌的内部计数器与系统的令牌计数器之间的同步处理。对于时间型令牌,使用GB/T XXXXX-XXXX8双向时间窗口;对于事件型令牌,使用单向事件窗口。窗口指用于令牌时间与系统时间同步的窗口。时间型令牌根据不同的令牌同步需求,分别采用大窗口、中窗口、小窗口进行同步。使用各种窗口时,要求如下:a)大窗口,窗口大小不应超过10 分钟。使用大窗口同步时,要求下一个连续的动态口令匹配,同时调整系统的令牌偏移量。大窗口要求使用受限的同步服务,即进一步身份鉴别或需要更高权限才能执行大窗口的同
22、步服务。大窗口可由鉴别模块的授权运维人员使用,并应与应用系统的验证码机制同时使用。b)中窗口,窗口大小不应超过5 分钟。使用中窗口同步时,要求下一个连续的动态口令匹配,同时调整系统的令牌偏移量。中窗口可由令牌用户或鉴别模块的运维人员使用,并应与应用系统的验证码机制同时使用。c)小窗口,窗口大小不应超过2 分钟。使用小窗口同步时,鉴别模块通过动态口令鉴别,同时调整系统的令牌偏移量。小窗口可由鉴别模块自动调用,在令牌用户使用动态口令进行身份鉴别时使用。d)事件型令牌的大窗口、中窗口、小窗口的大小,可由用户与厂商协商制定,但应保证其鉴别的安全性和有效性。7.1.5自动锁定和自动解锁令牌在使用过程中若
23、连续多次验证错误超过最大次数后,鉴别模块会自动将该令牌状态修改为“锁定”。在超过设定的自动解锁时间后,鉴别模块会自动解除该令牌的锁定状态。自动解锁只能解除被自动锁定的令牌。7.2鉴别模块服务7.2.1安全服务7.2.1.1动态口令鉴别对提交的动态口令进行鉴别的服务,鉴别方式包括:静态口令+动态口令、动态口令。其中静态口令为与该动态令牌绑定的静态口令。7.2.1.2挑战应答鉴别对提交的挑战应答码进行鉴别的服务,鉴别方式包括:挑战鉴别、内部挑战鉴别。挑战鉴别是用户采用向令牌输入应用服务提供的挑战码的方式,获取相应的动态口令,完成鉴别。内部挑战鉴别是用户通过向令牌输入 PIN、静态口令等用户私有数据
24、,获取相应的动态口令,完成鉴别。7.2.1.3产生挑战码根据应用的请求产生挑战码,生成的挑战码格式包括:数字型、字符型、数字+字符型。其中数字为阿拉伯数字 0-9,字符为英文字符或符号字符,区分大小写。挑战码的最小长度和最大长度可由鉴别模块进行设置。7.2.2管理服务7.2.2.1激活GB/T XXXXX-XXXX9将未激活的令牌设为可用状态。激活时,要求验证令牌的动态口令。a)激活时验证动态口令的窗口使用大窗口。b)令牌成功激活后,状态设置为就绪。c)激活不成功,记录激活错误次数,但不锁定令牌。7.2.2.2锁定令牌在连续错误、重放攻击等操作下将就绪状态的令牌设置为锁定状态。a)令牌被锁定后
25、,应通过解锁服务回到就绪状态。b)令牌被锁定后,应通过废止服务设置为废止状态。7.2.2.3解锁通过静态口令、静态口令+动态口令将锁定状态的令牌解锁,设置为就绪状态。a)解锁时,要求当前的动态口令。b)若设置了静态口令,要求验证静态口令。c)若静态口令的验证方式是内部挑战方式,使用内部挑战鉴别。d)若静态口令的验证方式是静动态混合方式,使用静态口令+动态口令鉴别。7.2.2.4挂起将动态令牌设置为挂起状态。a)只有就绪或锁定状态的令牌应被设置为挂起状态。b)令牌被挂起后,应通过废止服务设置为废止状态。7.2.2.5解挂解除令牌的挂起状态。a)解挂成功后令牌的状态设置为就绪状态。b)要求验证当前
26、的动态口令。c)若设置了静态口令,要求验证静态口令。d)若静态口令的验证方式是内部挑战方式,使用内部挑战鉴别。e)若静态口令的验证方式是普通方式,使用静态口令+动态口令鉴别。7.2.2.6设置静态口令设置动态令牌绑定的静态口令。a)要求验证原有的静态口令。b)若静态口令的验证方式是内部挑战方式,使用内部挑战鉴别。c)若静态口令的验证方式是静动态混合方式,使用静态口令+动态口令鉴别。7.2.2.7远程解 PIN鉴别模块可提供远程解 PIN 的功能(针对具有 PIN 保护的令牌)。根据应用请求,鉴别模块生成当前的远程解 PIN 密码。a)解 PIN 的密码为 0-9 的数字串,长度最少为 6 位。
27、b)解 PIN 的操作最大尝试次数不可超过 5 次,若超过最大尝试次数,应至少等待 1 小时才可继续尝试。c)超过最大尝试次数的情况不可超过 5 次,否则令牌应永久锁定,不可再使用。GB/T XXXXX-XXXX107.2.2.8同步与窗口要求鉴别模块提供令牌的同步服务。a)在大窗口、中窗口内验证令牌的连续 2 个动态口令,若成功,调整令牌的系统偏移量。b)在小窗口内验证令牌的当前动态口令,若成功,调整令牌的系统偏移量。c)令牌的同步服务不改变令牌状态。7.2.2.9废止令牌损坏或失效后,可使用鉴别模块的废止服务将其废止。废止的令牌不可再用于用户的身份鉴别和交易验证。系统仅保留该令牌的使用历史
28、记录。7.2.2.10令牌信息查询鉴别模块应提供令牌的信息查询服务,包括:令牌的当前状态、上次使用时间、当前累计错误次数等。信息查询服务不改变令牌状态。7.3鉴别模块管理功能7.3.1权限管理鉴别模块应对访问人员采取权限控制,不同角色的访问人员赋予不同的操作权限。7.3.2参数配置鉴别模块应能对鉴别和管理功能参数进行配置。7.3.3日志管理日志管理包括日志的写入,查询等功能,每条日志至少记录事件的日期和时间、事件类型、主体身份、事件的结果(成功或失效)、日志级别。以下事件应该记录日志:a)动态口令鉴别,同步的结果。b)令牌系统状态的变更。c)日志应保留至少 2 年。7.3.4服务报表鉴别模块应
29、提供对令牌和系统不同时间段对应的状态和结果的统计报表。7.3.5种子导入鉴别模块应能导入令牌的种子密钥,并设置令牌的初始状态。7.3.6备份恢复鉴别模块应能对敏感信息进行备份和恢复。7.4安全要求7.4.1接入端控制鉴别模块应具有控制应用系统安全接入的方法和措施。GB/T XXXXX-XXXX117.4.2通讯敏感字段加密为了防止网络监听的形式对鉴别数据进行窃听和分析,应在鉴别模块和应用系统之间的通讯数据上做加密处理。7.4.3种子密钥存储加密鉴别模块中的种子密钥是加密存储的,当鉴别模块接收到鉴别请求时,鉴别模块应首先解密种子密钥加密密钥密文,然后读通过种子密钥和时间因子等信息生成对应的动态口
30、令,并与接收到的动态口令进行比较,从而完成动态口令身份鉴别。7.4.4令牌安全性控制7.4.4.1锁定及解锁提供锁定机制,当一个令牌连续尝试鉴别失败次数累计达到上限,应对令牌进行锁定,应提供人工解锁和自动解锁机制。7.4.4.2防重复鉴别对于已经通过鉴别的动态口令,鉴别模块将予以作废,通过鉴别的动态口令,不能再次通过鉴别。7.4.4.3日志安全日志信息应具有校验码,用户对日志信息进行修改可通过校验码检查出来。敏感数据应具有备份恢复机制。鉴别模块针对日志访问应具备相应的访问控制策略,对日志的操作应有记录,以保证日志的完整性和安全性。7.4.4.4接入端控制鉴别模块应具有时间校准的处理方法和措施。
31、7.4.4.5鉴别模块安全鉴别模块安全应符合目标应用服务或系统的安全需求。8密钥管理8.1概述密钥管理主要是指对种子密钥的生成、传输和存储的安全管理,种子密钥是否安全直接影响到整个鉴别模块是否安全。应从以下几个方面来保护:a)生成的安全性;b)传输的安全性;c)存储的安全性;d)使用的安全性。8.2模块架构8.2.1模块组成GB/T XXXXX-XXXX128.2.1.1密钥管理模块组成密钥管理模块主要由系统登录鉴别子模块、用户管理子模块、保护密钥生成子模块、种子密钥生成子模块、令牌序号生成子模块、时间同步子模块(可选)、令牌生产配置子模块、硬件密码设备接口子模块和动态令牌读写接口子模块组成,
32、如图 3 所示:图 3 密钥管理模块组成图8.2.1.2系统登录鉴别子模块该模块负责密钥管理模块的用户登录鉴别。8.2.1.3用户管理子模块该模块负责密钥管理模块操作员的管理(新建、删除和修改)和权限分配。8.2.1.4保护密钥生成子模块该模块主要用于生成密钥系统的根密钥及传输密钥。8.2.1.5种子密钥生成子模块该模块的功能是调用硬件密码设备接口生成动态令牌的种子密钥,同时将生成的种子密钥加密后写入导出数据文件。8.2.1.6令牌序号生成子模块该模块的功能是根据序号生成规则生成动态令牌的唯一序列号。8.2.1.7时间同步子模块(可选)该模块的功能是同步密钥系统的系统时间,以保证种子密钥生成系
33、统与动态口令鉴别模块的时间一致。GB/T XXXXX-XXXX138.2.1.8令牌生产配置子模块该模块的功能是将令牌序列号和种子密钥通过动态令牌读写接口子模块写入动态令牌。8.2.1.9硬件密码设备接口子模块该模块的功能是完成软件与硬件密码设备之间的通讯。8.2.1.10动态令牌读写接口子模块该模块的功能是完成软件和令牌之间的通讯。8.2.2系统安全系统安全的主要目标是保障网络、主机系统、应用系统及数据库运行的安全。应采取防火墙、病毒防治、漏洞扫描、入侵监测、数据备份、灾难恢复等安全防护措施。8.3功能要求8.3.1模块功能8.3.1.1系统登录鉴别系统登录鉴别是指密钥管理模块的使用必须在系
34、统合法用户登录以后才能使用,且系统对用户分权限管理,不同的用户授权使用不同的功能。用户登录系统一段时间未操作后,系统应能够自动锁定。8.3.1.2用户管理用户管理的功能包用户账号和角色的分配、修改和删除。系统角色包括:系统管理员、密钥管理操作员、种子生成操作员和令牌生成操作员。密码管理系统的用户应通过身份鉴别后才能登录系统。8.3.1.3保护密钥管理保护密钥管理是指主密钥、传输密钥的生成、备份和更新。密钥的备用载体应使用国家密码管理机构定型的硬件。8.3.1.4令牌序列号管理令牌序列号管理功能包括:令牌序列号模板的定义、修改和删除;令牌序列号的生成。8.3.1.5种子密钥生成种子密钥管理功能包
35、括:种子密钥的生成和加密导出。8.3.1.6令牌生产配置令牌生成配置功能主要是指将种子密钥、序列号和时间(可选)写入动态令牌8.3.1.7时间同步时间同步功能是指生产时间同步令牌时,应预先校对生产电脑的时间。8.3.1.8日志日志功能记录密钥管理模块的所有操作及运行日志。GB/T XXXXX-XXXX148.3.2兼容性a)算法兼容性:能够支持多种分组密码算法来对密钥的管理。b)硬件密码设备兼容性:能够兼容多种密码硬件设备,如密码机、密码卡、IC 卡等。8.4系统安全性设计8.4.1密钥管理的目的密钥管理的目的是保障系统中所使用的密钥,在其生成、存储、使用等生命周期中的安全性。8.4.2密钥管
36、理的原则本系统中密钥安全设计应遵循以下原则:a)采用国家密码管理局批准的硬件密码设备。b)主密钥的生成、存储在硬件密码设备中,并且无法导出。c)所有密钥的运算都在硬件密码设备中完成。d)种子加密密钥由主密钥对令牌序号分散得到。e)主密钥管理机制和灾难恢复机制。8.4.3密钥管理的机制采用非对称算法进行密钥管理保护种子密钥安全时应符合8.4.2的原则。对称算法密钥管理模块管理的密钥包括6种。主密钥Km:在令牌应用服务商(如银行、电信公司、企业等)的硬件密码设备中生成与存储、使用。种子密钥:由硬件密码设备生成。种子密钥加密密钥Ks:由主密钥Km对令牌序列号分散获得,用于加密给鉴别模块使用的种子密钥
37、。厂商生产主密钥Kp:由主密钥Km对厂商代码分散获得,通过Kt加密提供给厂商使用。厂商种子密钥加密密钥Kps:由厂商生产主密钥Kp对令牌序列号分散获得,用于加密给动态令牌使用的种子密钥。传输密钥Kt:由令牌应用服务商的硬件密码设备随机生成,可分拆成多个分量,交付给令牌厂商使用。对称算法密钥管理的示例流程如图4所示:GB/T XXXXX-XXXX15图 4 对称算法密钥管理机制GB/T XXXXX-XXXX168.4.3.1主密钥主密钥 Km是在令牌应用服务商(如银行、电信公司、企业等)的硬件密码设备中生成与存储,使用时不离开该硬件密码设备。有严格的主密钥管理机制和灾难恢复机制。8.4.3.2厂
38、商生产主密钥厂商生产主密钥 Kp由主密钥 Km分散厂商代码后得到,通过 Kt加密提供给厂商使用,存储在令牌应用服务商的硬件密码设备中。8.4.3.3传输密钥 Kt用于加密保护厂商生产主密钥 Kp的交换。传输密钥 Kt随机产生,可分拆成多个分量。解密厂商生产主密钥 Kp时,输入传输密钥的多个分量及厂商生产主密钥 Kp密文,内部合成传输密钥并解密出厂商生产主密钥 Kp保存。8.4.3.4种子密钥加密密钥系统中有两种类型的种子密钥加密密钥分别是鉴别硬件密码设备中的种子密钥加密密钥 Ks和生产所用的硬件密码设备中的 Kps。Ks由主密钥 Km对令牌序号分散后生成。Kps由厂商生产主密钥 Kp对令牌序号
39、分散后生成。硬件密码设备内部使用 SM4 算法负责密钥的分散过程,分散出的种子密钥加密密钥不向硬件密码设备以外导出,不在硬件密码设备内部保存。8.4.4种子密钥的安全8.4.4.1种子密钥的生成安全种子密钥采用国家密码管理局批准的随机数发生器生成。8.4.4.2种子密钥的传输安全种子密钥的传输安全主要是指种子密钥在生成以后,写入令牌和导入鉴别模块过程中种子密钥的安全。8.4.4.3种子密钥写入动态令牌过程的安全该过程应在安全的生产环境中进行,具有安全的管理机制,保证其写入线路的安全性。8.4.4.4种子密钥导入鉴别模块过程的安全通过硬件传输方式导入到相关鉴别模块中。数据文件命名规则:otp_厂
40、商代码_yyyymmdd_数量.data数据文件内容格式如图 5 所示:图 5 数据文件的内部格式GB/T XXXXX-XXXX178.4.4.5种子密钥的存储安全种子密钥的存储安全是指种子密钥在鉴别模块中的存储安全。当种子密钥在鉴别模块中以 SM4 算法加密后的密文方式存储时,种子密钥具体的加密流程如下:a)硬件密码设备使用主密钥 Km对令牌的序列号填充数据到 16 字节(填充数据为 0 x00),然后使用 SM4 算法进行分散,得到种子密钥加密密钥 Ks。b)对刚刚生成种子密钥进行填充到 16 字节的整数倍,填充数据的规则遵循 PKCS#5 中定义的规范(即:对输入数据 MSG,在 MSG
41、 的右端添加 16-(|MSG|%16)个取值为 16-(|MSG|%10)的 PAD 字符;也就是说,对 MSG,最右端数据块,缺 n 个字节则补充 n 个数值 n,最少补 1 个0 x01,最多补 16 个 0 x10(当 MSG 长度为 16 字节的整数倍时)。c)使用种子密钥加密密钥 Ks对填充后的种子密钥数据进行 SM4 加密。d)加密完成后,将种子密钥加密密钥 Ks和明文种子密钥数据销毁。e)采用上述加密过程好处是每个令牌的种子密钥加密密钥发生重复情况为小概率事件。即便意外失窃一份加密后的令牌种子密钥,并对其破译,对系统内其它令牌的种子密钥安全性也不会造成影响。种子密钥存储时,应包
42、含但不限于以下属性,如表 2 所示:表 2 种子密钥存储格式令牌序列号密文种子密钥索引校验值创建时间8.4.4.6种子密钥的使用安全种子密钥的使用安全是指使用种子密钥计算动态口令过程中的安全。种子密钥的使用过程全部在硬件密码设备内完成,杜绝了种子密钥在使用过程中泄密的可能。具体使用流程如下:a)将令牌序号和密文种子密钥发送到硬件密码设备中,硬件密码设备对加密的种子密钥根据令牌序号进行“种子密钥存储”相同运算,即使用令牌序号由主密钥 Km分散得到种子密钥解密密钥 Ks。b)对种子密钥密文进行 SM4 解密获得种子密钥的原文。c)使用明文种子密钥和其它相应的参数运算得到动态口令,对客户端发送的鉴别
43、请求进行甄别。d)解密完成后,将种子密钥解密密钥 Ks和明文种子密钥数据销毁。8.5硬件密码设备接口说明8.5.1硬件密码设备应用接口动态口令计算功能:使用种子密钥密文,计算动态口令。8.5.2鉴别模块密钥管理接口a)种子密钥的生成接口应具备功能:随机产生或运算产生指定长度的种子密钥,根据令牌序号产生种子密钥加密密钥,返回加密后的种子密钥密文。b)向令牌导入种子密钥应具备功能:将种子明文写入令牌中。c)合成主密钥接口GB/T XXXXX-XXXX18应具备功能:根据密钥成分合成主密钥。d)主密钥的备份接口应具备功能:将主密钥备份成多个密文密钥成分。e)主密钥的恢复接口应具备功能:将备份的密钥成
44、分,在硬件设备内恢复成主密钥。f)传输密钥保护导出主密钥接口应具备功能:将主密钥从硬件密码设备中密文导出。g)传输密钥保护导入主密钥接口应具备功能:将密文主密要导入硬件密码设备。8.5.3接口使用权限控制机制建立接口使用权限机制,以达到控制管理接口使用权限的目的。GB/T XXXXX-XXXX19附录A(规范性附录)硬件动态令牌要求A.1令牌硬件要求A.1.1高温按照 GB/T 2423.2-2008 中试验方法 Bb,严酷等级选择温度:+50,持续时间:2 小时。A.1.2低温按照 GB/T 2423.1-2008 中试验方法 Ab,严酷等级选择温度:-10,持续时间:2 小时。A.1.3高
45、低温冲击按照 GB/T 2423.22-2012,严酷等级选择高温温度:+50,低温温度:-10,暴露试验时间:10分钟,转换时间:(23)分钟,循环数:3 个。A.1.4湿度按照 GB/T 2423.9-2001,严酷等级选择温度:302,相对湿度 93%3%,试验时间:2 小时。A.1.5工作海拔按照 GB/T 2423.21-2008,严酷等级选择气压:55kPa,持续时间:2 小时。A.1.6跌落按照 GB/T 2423.8-1995 中方法一,严酷等级选择跌落高度:1000 毫米。A.1.7防尘防水遵守 GB/T 4208-2017 中 IP44 的要求。A.1.8标记和印刷按照 G
46、B/T 2423.53-2005,试验液体:人工合成汗液,力的大小:1N0.2N,循环次数:1000 次。产品必须具备标记文字为:“序列号”和“有效期”。A.1.9振动按照GB/T 2423.10-2008,严酷等级选择频率范围:10Hz到300Hz,振动幅值:3.5毫米,持续时间:60分钟。A.1.10静电放电不低于GB/T 17626.2-2006中试验等级3的标准,即满足外壳端口接触放电6kV,空气放电8kV。A.1.11试验过程中试验样品是否处于工作状态的判断标准样品带电运行,目视检查,提供最少 12 个显示相同动态口令的样品,6 个一组为参与试验样品,6个一组为不参与试验样品,参与试
47、验的样品显示动态口令与不参与试验样品一致即为合格。GB/T XXXXX-XXXX20A.2令牌安全要求A.2.1种子密钥安全种子密钥为令牌重要安全要素,令牌必须保证产品内的种子密钥的完整性,且种子密钥为单向导入令牌(或在令牌内生成),种子密钥不能被导出产品外部。令牌必须拥有种子密钥的保护功能。令牌种子密钥加密、存储、使用在令牌芯片的安全区域内实现。A.2.2令牌芯片安全本标准涉及的令牌芯片,应是国家密码管理局批准产品型号证书的安全芯片。A.2.3令牌物理安全令牌具有低电压检测功能。令牌完成种子密钥导入后,通讯I/O端口应失效,不能再输入或输出信息,包括但不限于内部参与口令生成运算的K、T、C信
48、息。令牌应防范通过物理攻击的手段获取设备内的敏感信息,物理攻击的手段包括但不限于开盖、搭线、复制等。令牌芯片必须具备令牌掉电后,会自动销毁种子密钥的措施。令牌芯片应保证种子密钥无法通过外部或内部的方式读出,包括但不限于:调试接口、改编的程序。令牌芯片可防范通过物理攻击的手段获取芯片内的敏感信息,确保种子密钥和算法程序的安全性。令牌芯片应具备抵抗旁路攻击的能力,包括但不限于:抗SPA/DPA 攻击能力,抗SEMA/DEMA 攻击能力。在外部环境发生变化时,令牌芯片不应泄漏敏感信息或影响安全功能。外部环境的变化包含但不限于:高低电压、高低温、强光干扰、电磁干扰、紫外线干扰、静电干扰。A.2.4使用
49、安全具有数字和功能按键的令牌必须具有 PIN 保护功能,PIN 长度不少于 6 位,并具有 PIN 防暴力穷举功能。令牌可具有 PIN 找回功能,即令牌用户如果忘记令牌 PIN,可通过安全有效的环境与机制找回令牌 PIN,或对令牌 PIN 进行重新设置(如远程解 PIN)。PIN 输入错误的次数不可超过 5 次,若超过,应至少等待 1 小时才可继续尝试。PIN 输入超过最大尝试次数的情况不可超过 5 次,否则令牌应永久锁定,不可再使用。令牌基本使用寿命为 3 年,令牌产品最长使用不超过 5 年。室温环境下,令牌时间偏差小于2分钟/年。A.2.5安全评估动态令牌产品安全评估按照以下国标规定:GB
50、/T 18336.1GB/T 18336.2GB/T 18336.3GB/T XXXXX-XXXX21附录B(资料性附录)动态口令鉴别原理动态口令的鉴别原理,是通过客户端(动态令牌)与鉴别服务端(鉴别模块),以相同的运算因子,采用相同的运算方法,生成相同的口令,并进行比对,来完成整个鉴别过程。通常,口令的比对是由鉴别服务提供端完成。具体如图 B.1 所示:图 B.1 基本鉴别原理图GB/T XXXXX-XXXX22附录C(资料性附录)鉴别模块接口C.1服务报文格式C.1.1报文格式鉴别模块的服务报文由+构成。其中报头定义报文类型和选项,报体为具体的服务请求或服务响应数据。报头的格式如表 C.1