密钥的管理
密钥既然要求保密,这就涉及密钥的管理问题。任何保密都是相对的,而且是有时效的。要管理好密钥我们还要注意以下几个方面:
字串4
1.密钥的使用要注意时效和次数
如果用户可以一次又一次地使用同样密钥与别人交换信息,那么密钥也同其他任何密码一样存在着一定的安全性,虽然说用户的私钥是不对外公开的,但是也很难保证长此以往不泄露。使用一个特定密钥加密的信息越多,提供给窃听者的材料也就越多,从某种意义上来讲也就越不安全。
因此,一般强调仅将一个对话密钥用于一条信息中或一次对话中,或者建立一种按时更换密钥的机制以减小密钥泄露的可能性。 字串9
2.多密钥的管理 字串5
在大企业中,任意两人之间进行秘密对话,就需要每个人记住很多密钥。Kerberos提供了一种较好的解决方案,它使密钥的管理和分发变得十分容易,虽然这种方法本身还存在一定的缺点,但它建立了一个安全的、可信任的密钥分发中心,每个用户只要知道一个和KDC进行会话的密钥就可以了。
假设用户甲想要和用户乙进行秘密通信,则用户甲先和KDC通信,用只有用户甲和KDC知道的密钥进行加密,用户甲告诉KDC他想和用户乙进行通信,KDC会为用户甲和用户乙之间的会话随机选择一个对话密钥,并生成一个标签,这个标签由KDC和用户乙之间的密钥进行加密,并在用户甲和用户乙对话时,由用户甲把这个标签交给用户乙。这个标签的作用是让用户甲确信和他交谈的是用户乙,而不是冒充者。因为这个标签是由只有用户乙和KDC知道的密钥进行加密的,所以即使冒充者得到用户甲发出的标签也不可能进行解密,只有用户乙收到后才能够进行解密,从而确定了与用户甲对话的人就是用户乙。
当KDC生成标签和随机会话密码,就会把它们用只有用户甲和KDC知道的密钥进行加密,然后把标签和会话钥传给用户甲,加密的结果可以确保只有用户甲能得到这个信息,只有用户甲能利用这个会话密钥和用户乙进行通话。同理,KDC会把会话密码用只有KDC和用户乙知道的密钥加密,并把会话密钥给用户乙。 字串4
用户甲会启动一个和用户乙的会话,并用得到的会话密钥加密自己和用户乙的会话,还要把KDC传给它的标签传给用户乙以确定用户乙的身份,然后用户甲和用户乙之间就可以用会话密钥进行安全会话,而且为了保证安全,这个会话密钥是一次性的,这样黑客就更难进行破解。同时由于密钥是一次性由系统自动产生的,则用户不必记很多密钥而方便了人们的通信。
3.数据加密的标准 字串6
最早、也是最著名的密钥或对称密钥加密算法DES是由IBM公司在20世纪70年代开发的,并于1976年11月被美国政府采用,被美国国家标准局和美国国家标准协会承认。
DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的“每轮”密钥值由56位的完整密钥得出来。DES用软件进行解码需用很长时间,而用硬件解码速度非常快。幸运的是,当时大多数黑客并没有足够的设备制造出这种硬件设备。当时DES被认为是一种十分强大的加密方法。如果只用它来保护一台普通服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一台服务器而花那么多的钱破解DES密文。
字串7
另一种非常著名的加密算法是RSA。RSA算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”,另一个为“私钥”。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过来也一样。 字串6
假设用户甲要寄信给用户乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信是不是甲的来信呢?那就要用到基于加密技术的数字签名了。
甲用自己的私钥将签名内容加密,附加在邮件后,再用乙的公钥将整个邮件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和数字签名,然后用甲的公钥解密签名,这样一来就可以确保两方面的安全了。
字串1