安全技术
当前位置: 首页 > 安全技术 > PKI技术规范
密钥管理

在密码算法公开的情况下,现代密码学的安全性主要取决于密钥的安全性。如果获得对方当前使用的密钥,密码破译者就可很轻易地从截获的密文中破解出明文来。由于现代密码学依据科考夫公开原则,算法的设计运用了多种数学知识,并经过了大量的学术研究,是很多人的智慧结晶,因此算法自身的安全性很高。密码破译者通过分析算法可能存在的安全漏洞或缺陷,来推测或演算出对方当前使用的密钥,这种方式难度很大,成本也很高。

聪明的密码破译者开始通过其他方式来获取对方当前使用的密钥。如果密钥使用生日、姓名、单词等符号组成,通过多次尝试就可被猜测出来。如果密钥存储不安全,就可以从对方计算机硬盘或内存中获得密钥。也可以在对方传递密钥过程中,截获或者替换密钥。还可以直接贿赂或收买关键人物,直接获得密钥。各种实例说明,从人身上找到漏洞比找到密码系统的漏洞更容易。

于是,密钥管理应运而生,通过对密钥全生命周期进行安全管理,从而实现密钥的安全性。密钥管理主要包括:密钥产生、密钥传输、密钥验证、密钥更新、密钥存储、密钥备份、密钥销毁、密钥有效期、密钥使用等。广义的密钥管理不仅包括密钥如何分发到用户,也包括密钥如何使用。狭义的密钥管理并不包括用户获得密钥后如何使用。

1.密钥产生

目前针对密钥有两种常见的攻击方法:穷举攻击法和字典攻击法。

穷举攻击法就是通过尝试所有可能的密钥来寻找当前使用的密钥。如果使用一台每秒尝试100万次密钥的计算机,只需36分钟就可以把由小写字母和数字组成的6位长的所有密码尝试一遍。2013年9月,世界上最快的计算机每秒运算速度最快可达5.49亿亿次,而且计算机的计算能力几乎每18个月就增加一倍。

字典攻击法就是把人们最可能使用的所有密码汇聚成一本密码字典,攻击时只尝试该字典中的所有密码。字典攻击法常用于攻击系统口令,是一种特殊的穷举攻击法。计算机上40%的口令可以通过字典攻击法破译。

为了抵御穷举攻击法和字典攻击法,密钥长度应足够长,密钥复杂度应足够高,同时应避免出现弱密钥。一般来说,密钥长度越大,对应的密钥空间就越大,攻击者使用穷举猜测密码的难度就越大。由自动处理设备生成的随机比特串是好密钥。对公钥密码算法来说,密钥产生更加困难,因为密钥必须满足某些数学特征。

2.密钥传输

甲乙双方需要共享一个相同密钥才能进行保密通信。通常由一方.先产生一个密钥,然后通过安全方式传递给另一方。

密钥传输方式有多种形式。可以选择人工面对面方式,也可以选择邮寄或快递方式,将密钥副本交给对方。也可以将密钥分成许多不同的部分,然后采用不同方式发送出去:有的通过电话、有的通过快递等。

X9.17标准描述,两种密钥:密钥加密密钥和数据密钥。密钥加密密钥加密其他需要分发的密钥;而数据密钥只对信息流进行加密。密钥加密密钥一般通过手工分发。

3.密钥验证

有时密钥在传输中会发生错误。可以通过密钥后面附着一些检错和纠错位,来检测这种错误,如果发生错误,可要求重传密钥。

甲收到乙的密钥后,如何验证该密钥是乙的密钥,而不是丙的密钥呢?一种常用的验证方法是,乙选择一段内容用该密钥加密,然后发给甲,甲解密后如果明文正确,则可以确认该密钥是乙的密钥。

4.密钥更新

当密钥需要改变时,如何方便地获得新密钥并不是一件容易的事。可以基于旧密钥产生新密钥。如果双方事先共享同一密钥并约定相同的计算方法(如摘要算法),每次密钥更新时对共享密钥或旧密钥计算一次,就可得到新密钥。

5.密钥存储

密钥可以记忆在大脑中,也可以直接存储到计算机硬盘、智能卡,还可以把密钥分成多个部分,分别存储到不同位置,另外还可以采用其他密钥进行加密保存。

6.密钥备份

密钥备份可以采用密钥托管、密钥分割、密钥共享等方式。

密钥托管是把密钥交给第三方中心进行保管(如锁在保险柜里或用主密钥加密保存),一旦该密钥丢失(如遗忘密钥或用户意外死亡),按照一定的规章制度,可从该中心索取或恢复该密钥。

密钥分割是把密钥分割成许多碎片,每一碎片本身并不代表什么,但把这些碎片放到一块,就可合成该密钥。

密钥共享是将密钥分成n块,知道任意m(m<n)或更多块就能够计算出该密钥,但知道任意m-1或更少的块都无法计算出该密钥,该方法又称作(m,n)门限(阈值)方案。

7.密钥销毁

如果密钥必须替换,旧密钥就必须销毁。旧密钥是有价值的,即使不再使用,有了它们,攻击者就能读到由它加密的一些旧信息。

密钥必须安全地销毁。如果密钥写在纸上,这张纸必须切碎或烧掉。如果密钥存储在硬盘或内存中,存储位置必须使用其他数据多次重写。由于密钥在计算机中很容易被复制并存储到多个地方,应编写特殊的删除程序,查看所有硬盘或内存,寻找可能出现的密钥副本,彻底删除干净;同时需要记住彻底删除所有临时文件或交换文件的内容。

8.密钥有效期

加密密钥不能无限期使用,主要原因包括:密钥使用时间越长,它泄露的机会就越大;如果密钥已泄露,那么密钥使用越久,损失就越人;密钥使用越久,人们花费精力破译它的诱惑力就越大;对用同一密钥加密的多个密文进行密码分析一般比较容易。

对任何密码应用,必须有一个策略能够检测密钥的有效期。不同密钥应有不同的有效期。密钥有效期主要依赖数据的价值和给定时间里加密数据的数量。数据价值越大,加密数据数量越多,所用密钥的有效期就越短,更换越频繁。

9.密钥使用

安全获得密钥后,就可以使用密钥进行保密通信了。进行保密通信时,可以直接使用该密钥对数据进行加解密,但该方式容易造成密钥泄露或容易被对方破解。为避免密钥泄露或破解风险,在进行保密通信时,并不直接使用共享密钥,而是首先基于该密钥产生会话密钥,然后再使用会话密钥对数据进行加解密。