密码系统中密钥的状态与保护*

2020-11-20 01:44冯文浩
北京电子科技学院学报 2020年2期
关键词:公钥完整性密钥

王 雄 冯文浩

北京电子科技学院,北京市 100070

引言

随着我国信息化与网络化的快速发展与应用,网络空间安全问题逐步凸显。 作为网络空间安全重要基石的密码技术也随着密码法的实施展开了新的篇章。 依据密码学上的柯克霍夫原则(Kerckhoffs’s principle),密码算法的安全性应基于密钥的安全性。 从已有资料看,针对密钥的论述主要集中在密钥管理类相关的文献,比如文献[1-4],或者国家制订并发布的关于密码管理的规范[5-7]。 但是,这些密钥管理技术主要集中在密钥管理系统的设计、密钥生成、密钥存储或密钥传输的方法,而密码管理的规范主要集中在密钥管理的架构设计、管理内容的定义以及管理接口的设计。 针对密钥如何使用,密钥是否可以使用,密钥自身的安全防护等问题没有系统的给出回答。 密钥在工程应用中是一个复杂并且非常重要的内容,要求设计人员必须对密钥有完整的认识之后才能制定有效的密钥管理方案。本文参考美国密钥管理相关资料[8-9],从工程实现的角度对密钥使用及保护的相关内容进行了系统的介绍。

1 密钥元数据

在密码系统中,密钥在其生命周期内涉及到生成、存到、导入和导出、分发、使用、备份和恢复、归档、销毁等环节。 但是,伴随密钥生命周期全过程的不仅是密钥本身,还有与密钥不可分割的密钥控制(属性)信息即密钥元数据。 密钥元数据标识了关联密钥的长度、适用的密码算法、密钥的有效时间、密钥状态等密钥信息,并给出了密钥所有者、密钥标识符等信息。 密钥元数据必须与密钥一起进行安全存储,且密钥使用时受到与其关联的密钥元数据的限制与支持。

密钥元数据一般在密钥生成时进行设置,并随着密钥生命周期的进程而发生变化,主要包括以下内容:

1)密钥标识符:唯一标识密钥的特定符号。

2)密钥标签:一组可读的密钥描述符(文本字符串)。

3)密钥所有者:拥有密钥的一个或多个实体的标识符。

4)密钥状态:描述密钥当前使用条件的有限状态。

5)密码算法:用于使用该密钥的密码算法标识,如SM2、SM3、SM4、SM9 等。

6)工作模式:使用密钥时指定的使用方案或操作模式。 比如对称密码算法的加密模式可以有电子密码本ECB(Electronic CodeBook)、密码块链接CBC((Cipher Block Chaining)、输出反馈模式OFB(Output feedback)和密文反馈CFB(Cipher feedback)。

7)密钥参数:生成密钥的种子或密钥对中的素数、指数、生成元等。

8)密钥长度:密钥数据的长度(以位为单位),如256 位的SM2 密钥、128 位的SM4 密钥。

9)密钥类型:标识了密钥的种类,比如加密公钥、签名私钥等。

10)密钥保护:保护该密钥的安全的类型,可以是完整性、机密性和源认证保护。 比如对称密码算法密钥及其摘要值一起加密,实现密钥数据的机密性和完整性保护。

11)日期-时间:密钥生命周期中密钥状态有关的重要时间信息,生成时间、激活时间、更新时间、停用时间、撤销时间、销毁时间。

12)撤销原因:如果密钥被撤销,必须对密钥撤销的理由进行说明,比如密钥丢失、保存密钥的密码模块丢失、密钥所有者滥用密钥等。

2 密钥状态与转换

虽然密钥生命周期从时间的维度刻画了密钥,但是,密钥是否可以使用并没有明确的说明。比如,在密钥使用阶段,如果怀疑密钥泄露,此时密钥是否可以使用;密钥到达有限期后是否可以继续使用或是有选择的使用。 所以,密钥生命周期的各个环节并不能完整的刻画密钥。 但是,通过密钥状态则可以将密钥是否可以使用的问题有效的清晰表达。

密钥定义有六种状态,即预激活、激活、挂起、停用、盗用、销毁。

2.1 预激活状态

该状态下,密钥已经生成但是还没有被授权使用。

在密钥管理系统中,管理中心一端的大量密钥往往处于预激活状态,比如进行被管端密钥更新之前,管理中心需要提前生成大量密钥用于更新。 此时产生的密钥虽然已经经过检测,但是并没有分发到最终目的设备,没有进行使用授权,所以全部处于预激活状态。

一般来说,这种状态下密钥只能用于所有权证明或者密钥信息的确认。 所有权证明是用来验证密钥的所有者,比如公钥证书在签发之前。密钥信息的确认用来确认密钥的元数据信息,密钥类型等。 因为没有被授权使用,所以该状态的密钥不能用于信息的加解密,签名等操作。

2.2 激活状态

该状态下,密钥已被授权正式使用或者密钥已经通过更新替换原有密钥。

在密钥管理系统中,处于激活状态的密钥可以用来对信息进行处理(例如加解密,签名等)。此外,该密钥也可用于所有权证明或者密钥信息的确认。

一般来说,这种状态下的密钥会根据密钥所属的类型来完成相对应的功能。 例如,私有签名密钥可以用来对明文信息进行签名。 对称加密密钥可以用来对数据进行加密等。

2.3 挂起状态

该状态下,密钥暂时停止使用。 定义该状态一般是用于处理密钥或密码系统中的特殊情况。

在密钥管理系统中,如果系统通过对相关信息综合后感知到密钥可能存在泄漏的情况,系统将密钥状态转换为挂起状态,并对泄露情况进一步核实。 如果结果显示密钥没有被泄露或盗用,可以将密钥恢复到之前的状态。 当签名私钥的所有者信息出现错误或变更,该密钥所生产的签名将无效,此时,需要将密钥转换为挂起状态。

处于该状态的密钥并没有完全丧失全部功能。 比如,如果挂起的原因不是密钥泄露且该密钥是对称密钥,那么该密钥仍然可以用于解密之前加密过的信息。 如果该密钥是验签公钥且挂起原因不是密钥泄露,那么验签公钥同样可以用来对签名私钥生成的签名信息进行认证。

2.4 停用状态

密钥的元数据会保存有密钥的使用期限。在密钥使用期满后,系统将密钥置为停用状态。处于停用状态的密钥不能用于信息加密或信息签名,但可以用于解密或者认证签名。

2.5 盗用状态

处于该状态的密钥已经证实存在泄漏行为。当密钥提供给未经授权的实体或由未经授权的实体使用时,密钥就会被盗用。 被盗用的密钥不能用于信息加密保护。

在某些情况下,泄露的对称密钥或泄露的密钥对公钥仍然可用于处理加密保护的信息。 例如,如果签名在签名私钥泄露之前已经受到物理保护,或者签名数据中包含了可靠的时间戳,则可以验证签名以确定签名数据的完整性。

2.6 销毁状态

销毁状态是密钥的最终状态。 当密钥使用期已满且密钥不再用于对信息进行加密、解密、签名,或者密钥被盗,密钥直接进入该状态。 该状态的密钥需要销毁以释放存储空间。

2.7 状态转换

密钥在任一时刻必定处于上述六种状态之一。 但是,密钥并不是静态的,其状态在某些事件触发下进行状态的转换。 具体转换如图1所示。

预激活->激活:在密钥管理系统中,密钥通过算法生成后立即转为预激活状态,等待使用。处于该状态的密钥,正式分发给用户后,密钥从预激活状态转换为激活状态。

激活->停用:正常情况下,处于激活状态的密钥在使用周期到达后会转换为停用状态。

激活->挂起:特殊情况下,比如激活密钥存在泄漏的可能或者其他原因(非使用期满)造成密钥暂时不能继续使用时,密钥从激活状态转为挂起状态。

挂起->激活:当密钥经核查未泄漏且密钥使用期未满,恢复至激活状态继续使用。

挂起->盗用:处于挂起状态的密钥经过核查后确定密钥泄漏,此时密钥从挂起状态转换为盗用状态。

盗用->销毁:当密钥处于盗用状态下,且该密钥不在进行使用,直接转换到销毁状态。

停用->销毁:当密钥处于停用状态时,待达到缓冲期(比如所有经停用密钥加密过的数据全部更换新密钥重新加密)结束后,此时密钥已经丧失其功能,密钥从停用状态转换为销毁状态。

在密钥整个生命周期中,密钥必定处于某种状态,且在事件触发下,在预激活、激活、挂起、停用、盗用、销毁中轮转。

3 密钥信息保护

鉴于密钥在密码学中的重要地位,密钥信息需要在存储、传输时进行有效的安全保护,尤其是密钥在加密模块外部存储时更加需要保护。密钥的类型决定了密钥信息的保护类型,比如对称加密密钥无论是在存储还是传输时都要受到机密性与完整性保护,而数字证书中验签公钥只需要完整性保护。

一般情况下针对密钥设计的保护技术包含访问控制(授权)、机密性保护、完整性保护。

对存储的密钥进行访问时需要进行授权,即只允许授权用户访问存储的密钥。 在密钥管理系统或底层密码模块中,需要设计针对密钥的授权访问机制。 特别是对非对称密钥中的私钥,需要设置单独的访问授权码进行访问授权。

所有存储的密钥都需要完整性保护。 当密钥的完整性破坏后,新的密钥无法正确执行预期功能,并在某些情况下影响其他密钥[7]。 从某种意义上说,物理安全技术可以为密钥提供完整性保护。 但是,受到存储空间等因素的影响,一般采用密钥完整性检测或纠错技术实现密钥的完整性保护, 比如使用消息认证码 MAC(Message Authentication Code)或数字签名可以实现密钥的完整性保护。 当公钥以数字证书为载体时,利用数字证书上颁发者的数字签名提供公钥的完整性保护;如果公钥并不是以数字证书为载体,系统需要提供其他方法实现公钥的完整性保护。

存储加密密钥时,对称密钥和私钥需要机密性保护和访问控制,对称密钥和非对称密钥都需要完整性保护。 对于机密性保护,可以使用加密、分割、物理安全等技术,一般要求三级保护,在密钥加密保护层次结构的顶层,通常有一个密钥必须受到物理保护。

这里的分割是一种多方控制的门限共享技术。 密钥分割时会生成n 个密钥片段,并分发给n 个不同的持有者。 使用时,可以使用任何k 个密钥片段合成密钥,且任何k-1 个密钥片段都不能合成密钥,从而实现密钥的安全分布式管理。 一般情况下,密钥分割技术应用于密钥保护层次结构中的主密钥或根密钥。

为了防止密钥遭到敌手的破坏或用户误操作删除等情况,需要设计密钥备份、归档和恢复的机制,防止密钥遭受破坏后导致受密钥保护数据无法还原或认证。 这里的备份机制可以采用密码系统配备的智能密码钥匙USB Key 或其他硬件存储设备保存密钥保护后导出数据的方法,此时,备份的密钥仍然需要按照存储密钥保护机制进行机密性和完整性保护,同时备份密钥需要通过密钥分割技术、物理安全等进行保护。

密钥传输时,需要设计安全的密钥传输方案对传输的密钥提供机密性和完整性保护,并且在传输之前,对通信双方的身份进行认证。 目前有一些成熟的设计方案[5],比如基于公钥证书进行身份认证,基于公钥密码体制协商动态对称密钥并建立安全通道。

4 总结

本文对密码/密钥管理系统中涉及密钥的使用与保护相关内容进行了详细的介绍,通过密钥元数据的定义阐述了密钥使用中的限制与支持,即如何使用密钥;通过密钥状态的定义阐述了密钥能不能使用;通过对存储密钥和传输密钥机密性、完整性保护方案给出了密钥信息保护的方法。 本文的内容是密码工程应用中密钥管理涉及的基本问题,也是关键问题。 所设计与方案可为密钥管理系统以及密码模块中针对密钥部分的设计提供参考和指南。

猜你喜欢
公钥完整性密钥
幻中邂逅之金色密钥
幻中邂逅之金色密钥
关于防火门耐火完整性在国标、英标、欧标和美标中的比对分析
ELM及IS/OS完整性对年龄相关性黄斑变性预后视力的影响
更正说明
神奇的公钥密码
Android密钥库简析
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
一种新的动态批密钥更新算法