引言
现代密码体制要求密码算法是可以公开评估的,决定整个密码体制安全性的因素是密钥的保密性。因此,如何对密钥进行安全管理是密码产品、密码应用的设计开发人员关注的重点,也往往是不了解或刚步入密码领域的人所忽视的一项重要内容。
根据GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》,信息系统中的密钥在其生存周期内涉及到产生、分发、存储、使用、更新、归档、撤销、备份、恢复和销毁等环节。
01
密钥产生
为保证密码算法的安全性,防止密钥被攻击者破解或预测,密钥应具有随机性,所有的密钥都应当直接或间接地根据随机数生成。
一般有两种方式生成密钥,第一种直接生成,这种方式通常是采用随机数发生器得到一个随机数作为密钥,一些对称算法的密钥就是使用这个方式来生成的。上面所说的随机数发生器,其原理是先设置一个种子(这个种子也是随机数),通过特定的随机数算法计算得到符合要求的随机数。
另一种则是间接生成,通过密钥派生函数(Key Derivation Function,KDF)生成,这种方法就不是由随机数发生器直接生成得到密钥,而是通过某个秘密值与其他相关数据(如随机数、计数器等)一同作为KDF的输入,由KDF生成指定长度的密钥。KDF一般基于对称密码算法或密码杂凑算法来构造。
上述第二种密钥生成方式有两种情况:
第一种情况是在密钥协商过程中从共享秘密派生密钥。比如TLS协议,就是采用的这种方式生成后续通信过程中使用的密钥,双方先通过Diffie-Hellman等密钥协商协议得到一个共享秘密,后面这个共享秘密与其他信息拼接在一起,作为KDF的输入,生成密钥。除了TLS,在SM2/SM9的密钥协商和公钥加密算法中也使用了基于SM3的KDF。
另一种情况是从主密钥派生密钥。通过主密钥+唯一标识+分散信息(与实体相关其他信息)拼接,送入KDF中,得到派生密钥。一般这种情况是用于一些需要生成大量对称密钥的场景。
无论采用哪种方式,密钥都应在密码产品内部产生。
02
密钥分发
密钥分发有人工(离线)和自动(在线)这两种分发方式,第一种顾名思义,就是由人手动实现密钥的分发,利用加密传输、知识拆分等手段将密钥从一个密码产品分发到另一个密码产品中去,这种方法效率较低,只适用于少量密钥分发,一般用于分发根密钥。而另一种方式就是由密码技术来实现,例如采用数字信封、对称密钥加密等技术。
对称密钥加密应该比较好理解,采用其他密钥对分发的密钥进行保护;数字信封则是对称密码体制和非对称密码体制的一种混合应用,即解决了非对称密码体制加解密效率的问题,又妥善解决了密钥传送的安全问题。这是因为非对称加密的密钥有公钥和私钥,其中公钥可以公开,相对于对称算法来说提供了更高级别的安全性,尤其是在未知或不可信的环境中。然而,由于计算复杂性较高,它通常用于加密小量数据或进行密钥交换。而对称加密由于其高效性,适合加密大量数据。
它的工作流程如下图所示,其功能类似于普通信封,采用对称密码算法对消息进行加密类似于信纸上的内容,采用非对称密码算法对对称密钥加密类似于信封,信封将信纸包装起来,保证了消息的安全性。
图1 数字信封生成和解开过程
自动分发方式也可以通过建立一个密钥分发中心(KDC)来实现。每个用户将与KDC共享一个保密的密钥,KDC可以通过该密钥来鉴别某个用户,会话密钥将按请求由KDC进行传送。
需要注意的是非对称算法的公钥在分发过程中时,保证其完整性即可;若是分发对称算法密钥或非对称算法私钥,机密性和完整性都应该做保护。
03
密钥存储
为保证密钥的存储安全,可以将密钥存储在符合国家标准检测的密码产品中,或者存储在数据库,但是需要对其做机密性和完整性的保护。
对于存储在密码产品中的密钥,采用了分层次的方式,按照密钥的生存周期、功能和保密级别,一般将密钥分为:会话密钥、密钥加密密钥和主密钥。系统使用主密钥通过某种密码算法保护密钥加密密钥,再使用密钥加密密钥通过密码算法保护会话密钥,会话密钥基于某种加解密算法来保护明文数据。
会话密钥的大多数是临时的、动态生成的,生存周期非常短,通常在会话建立初生成,在会话结束后销毁,主要用来对传输的数据进行保护;
密钥加密密钥相对于会话密钥来说生存周期就比较长,它主要用来协商或传送会话密钥;
主密钥对应于层次化密钥结构中的最高层次,它是由用户选定或由系统分配给用的、可在较长时间内由用户所专有的秘密密钥,在某种程度上,主密钥还起到标识用户的作用。它的生存周期最长,受到严格的保护。
在整个密钥层次体系中,各层密钥的使用由相应层次的密钥协议控制。
图2 分层次密钥工作流程
04
密钥使用
为保证密钥的使用安全,一种密钥只能由于一种用途(加密、签名、MAC等),因为一种密钥用于多种用途,被使用的范围扩大、次数增加,这就会导致密钥被泄露的风险大大提高;除此之外,不同的用途对密钥的要求也是互不相同的,例如非对称算法有两种用途,加密和签名。在实际应用当中,由于管理要求的不同,都是需要分别配置签名密钥对和加密密钥对。不同之处在于加密密钥对可能会将其私钥归档以解密历史数据,而签名密钥对的私钥在其生存周期结束时应当立即销毁;所以,若存在有密钥对既用来加密也用来签名,就会产生矛盾。
虽然公钥可以公开,但是在使用非对称算法的公钥之前,需要对公钥进行完整性校验,保证公钥未被篡改,为此也产生了证书认证机构,代表受信任的第三方,将公钥合并到数字证书里面,来证明公钥的完整性和真实性。
05
密钥更新
为避免密钥被长期使用,导致其被攻击者预测和破解,一般密钥都会设置一个有效期。当密钥的有效期结束、安全受到威胁、通信成员中提出更新密钥等这些情况出现时,就会进行密钥更新,常见的流程就是重新再产生一个新的密钥进行分发使用。有些地方采用密钥派生函数来更新密钥,这是一种基于现有密钥生成新密钥的方法,可以在不更换现有密钥的情况下提高加密的安全性,常见的密钥衍生函数有PBKDF2、HKDF等。
需要注意,旧密钥和新密钥同时存在时应处于同等的安全保护水平下。更换下来的密钥一般情况下应避免再次使用,除将用于归档的密钥及时采取有效的保护措施以外应及时进行销毁处理。
06
密钥归档
密钥在生存周期结束时,应当进行销毁。但是有些密钥可能存在解密过往数据或对过往数据进行其他操作的需求,这就不能将其进行销毁,而是归档。
如上面第四节密钥使用所说的,签名密钥对的私钥在其生存周期结束后应立即销毁,不可做备份和归档。因为签名密钥对是用来进行数字签名的,保证数据的完整性,用于防伪造、防抵赖,私钥进行签名,作为私钥拥有者身份的证明,所以应当保证私钥的唯一性。即使签名密钥对的私钥遗失了,重新生成新的签名密钥对即可,也不会影响对以前签名数据的验证,验证只需要签名密钥对的公钥。因此,签名密钥对的公钥需要进行归档,因为可能会需要对之前的数据进行验证,加密密钥对的私钥也需要进行归档。而加密密钥对的公钥只是用于加密数据,就不需要进行备份或归档,丢失了也是重新生成一对新的即可。加密密钥对相对于签名密钥对更换的频率更高,因此生存周期也比较短。
在密钥归档时,也应当需要对这些密钥提供安全保护,以保证历史加密数据的安全性。密钥归档时应进行记录,并生成审计信息,审计信息包括归档的密钥和归档时间等。
07
密钥撤销
密钥撤销是在特定情况下需要进行的步骤,例如密钥泄露、丢失或不再需要时。一般密钥的撤销和更新都是关联起来的,因为在撤销密钥之前,必须确保已经生成了新的替代密钥,以避免数据的丢失或无法访问。在撤销过程中,还需要采取适当的措施来销毁或删除旧密钥,以防止数据泄露或非法使用。
08
密钥备份
为了进一步确保密钥和加密数据的安全,对密钥进行备份是必要的。目的是一旦密钥遭到毁坏,可利用备份的密钥恢复原来的密钥或被加密的数据,避免造成损失。密钥备份本质上也是一种存储。
密钥备份有多种方式,除了用户自己备份以外,也可以交由可信任的第三方进行备份,还可以以密钥分量形态委托密钥托管机构备份或以门限方案进行密钥分量的分享方式备份。前两种方法都比较好理解,这第三种中所提到的密钥分量是由密钥拆分而来的。
拆分方法有两种,第一种将密钥拆分成若干个与其长度一致的分量,导入时利用异或计算恢复出原有密钥,这里用K来表示密钥,K1,…,Kn表示分量,其表达式为K=K1⊕…⊕Kn。
还有一种方式就是上面所说的门限方案,也被称为秘密分割、阈值方案。这种方法设计出来是为了解决解密一些重要信息需要两个(或两个以上)拥有密钥的实体共同协作才能完成,任何一个人都无法单独对加密的信息进行解密的情况。虽然这里不是为了解决这种情况,不过可以借鉴门限方案里面的密钥拆分方法。
门限方案是指将一个密钥K分成n个子密钥K1,…,Kn,并安全分配给n个参与者分别持有,保证只有大于等于t(t<n)个密钥分量才能恢复出K。具体的算法可以参考比较有代表性的Shamir秘密分割门限方案和Asmuth-Bloom门限方案。
09
密钥恢复
当密钥因为人为的操作错误或设备发生故障时可能发生丢失和损坏,因此任何一种密码设备应当具有密钥恢复的措施,从备份或存档中获取密钥的过程称为密钥恢复。密钥恢复措施需要考虑恢复密钥的效率问题,能在故障发生后即使恢复密钥。
10
密钥销毁
当密钥的使用期限到期时,必须终止使用该密钥,并更换新密钥。对终止使用的密钥一般不要求立即销毁,而需要再保留一段时间后再销毁,这是为了确保受其保护的其他密钥和数据得以妥善处理。这属于密钥的正常销毁,当密钥已经被泄露或者存在泄露风险时也需要进行密钥销毁,对于存储在密码产品中的密钥,一般配备了紧急情况下自动销毁密钥的机制;而那些不在密码产品中的密钥,密钥的管理者可以手动提前终止密钥的生存周期。
只要密钥尚未销毁,就必须对其进行保护,丝毫不能疏忽大意。密钥销毁要彻底清除密钥的一切存储形态和相关信息,既包括处于产生、分发、存储和工作状态的密钥及相关信息,也包括处于备份状态的密钥和相关信息。
E·N·D
点击回顾往期精彩
成都创信华通信息技术有限公司
成都创信华通信息技术有限公司作为川内首家同时拥有“等保”与“密评”双资质的网络安全合规检测机构与网络安全综合服务提供商,长期深耕网络安全领域,独创以“等保测评+密码测评+软件测试+信息系统工程监理+数据安全服务+网络安全服务”为主的“6+N”服务模式,已成功为党的二十大、中国共产党成立100周年、北京冬奥会、第31届世界大学生运动会等大型活动提供等保、密评、网络安全应急保障服务,护航50+省厅级单位,3000+企事业单位及机构,测评系统超6000个,行业覆盖政府、医疗、教育、能源、运营商、金融等国家网络安全重要领域。凭借多年积累被评为了四川省“专精特新”企业、四川省新经济100强企业,成都市网络信息安全产业影响力TOP30企业。
公司公司注重技术研发,自主研发“密码大数据平台”、“密码合规检测平台”等工具辅助密评工作开展,拥有自主知识产权50余项,团队先后在西藏、新疆、四川组织的多项省级网络安全竞赛中名列前茅,获得奖项100余项,技术实力受到公安部、密码局等主管部门认可。
期待与您的合作!
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...