密钥分布,密钥分布是什么意思 使用密钥作为加密和验证功能的一部分以锁定和解锁消息。特定的加密算法通常已发布并广为人知,因此用于使每个加密惟一的密钥必须保持安全性和专用性。但在交换密钥时存在后勤问题。如果您向朋友发送一条加密消息,朋友将需要密钥来解密此消息。您的朋友获取此密钥的过程可能危及安全。本节讨论在开放网络(如Internet)中以安全方式交换密钥的方法。 在任何密钥交换中要避免的一件事情很明显:永远不要在开放网络中通过网络发送实际密钥。如果甲和乙需要交换密钥,他们可以通过电话交换(如果密钥是相对较短的字母数字组成的字符串)。他们也可以亲自见面或使用下面描述的公钥方案。在任一情况下,一旦他们拥有ldquo;共享密钥rdquo;,即可用它进行验证和建立信任。 例如,乙可以确保他与甲进行连接,方法为使甲证明她知道密钥,而无需甲通过线路实际发送密钥。如何实现这一目标?乙发送给甲一些随机文本,而甲用该密钥将其加密并返回给乙。乙也使用他的密钥加密这些随机文本,然后将结果与甲返回的内容进行比较。如果结果相同,则甲一定是真实的并建立起信任。 重要的一点是应用程序数据从来不使用共享密钥加密。一旦双方通过互相确认他们知道共享密钥建立起信任,他们将创建互相认同的ldquo;会话rdquo;密钥来保护应用程序数据。这些密钥是一次性密钥,不重复用于将来的会话。这可避免捕获了密钥的某人在将来使用密钥(重放攻击)。 但乙和甲仍然必须在以前交换过密钥。这不总是实际情况,尤其是当所涉及的双方彼此不认识,这种情况在电子商务事务中很常见。公钥密码技术方案提供了另一种解决方案。可以在这种情况下使用简单的技术构造互相共享的密钥,而无需事先交换信息:乙将他的私钥与甲的公钥组合,而甲将她的私钥与乙的公钥组合。这会创建一个新的共享密钥,但该方案要求公钥结构发挥作用。 Kerberos系统依赖于中央密钥服务器进行密钥分发,但此系统在企业内部(而不是在全球性的Internet上)运行最好。不对称公钥可解决此问题,这一点将在后面讨论。 手动密钥交换 如果两个人希望安全地进行通信,他们可以见面以交换密钥,或者通过信使发送密钥。若要避免危及安全,可以拆分密钥,一部分通过信使发送,一部分通过电话交换(希望电话没被窃听),并且一部分是双方都知道的什么东西(假设双方同意这件东西一定不会为窃听者利用而危及安全)。 当两个设备将通过广域网链接建立安全会话时,网络管理员可以为每个盒子配置密码和密钥,然后物理地发送这些盒子,或者以安全方式运送箱子。这些技术在下面的情况下工作良好:只有小数量的站点或用户,并且站点属于同一企业所有(或者至少在同一管理域中)。这些技术同样用于同一组织中的用户,这些用户希望安全地交换信息(假设这些用户可以见面交换密钥)。 但是,手动技术对于公共网络中不认识的双方效果不好。这就是下面讨论的公钥密码技术开始起作用的地方。 公钥和证书 公钥密码技术是一种不对称密钥技术,该技术就是针对私钥密码体制的缺陷被提出来的。通讯各方使用两个不同的密钥,一个是只有发送方知道的专用密钥,另一个则是对应的公用密钥,任何人都可以获得公用密钥。专用密钥和公用密钥在加密算法上相互关联,一个用于数据加密,另一个用于数据解密。密钥对中用一种密钥加密的材料可以用另一种密钥解密,反之亦然。如果一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。但是,在大多数情况下,使用公钥私钥加密大数量的数据计算上不可行。对称密钥速度快得多。因此,公钥密码技术通常只用于验证远程用户或服务器及用于交换密钥(例如,发送方用收件人的公钥加密密钥)。一旦交换了此密钥,将使用该密钥(而不是公钥私钥对)加密所有进一步的应用程序数据。 公钥密码体制的算法中最著名的代表是RSA系统,此外还有:背包密码、McEliece密码、DiffeHellman、Rabin、零知识证明、椭圆曲线、EIGamal算法等。公钥加密系统除了用于数据加密外,还可用于数字签名。 公钥加密系统可提供以下功能: A、机密性(Confidentiality):保证非授权人员不能非法获取信息,通过数据加密来实现; B、确认(Authentication):保证对方属于所声称的实体,通过数字签名来实现; C、数据完整性(Dataintegrity):保证信息内容不被篡改,入侵者不可能用假消息代替合法消息,通过数字签名来实现; D、不可抵赖性(Nonrepudiation):发送者不可能事后否认他发送过消息,消息的接受者可以向中立的第三方证实所指的发送者确实发出了消息,通过数字签名来实现。 证书(或公用密钥证书)是一种经过证书签发机构(CA)数字签名的数据结构。证书颁发机构(CA)管理公钥的通常做法是校验所有者,并将密钥及有关所有者的信息绑定到证书中。将使用CA私钥对证书进行签名,以提供完整性。用私钥签名证书将ldquo;锁定rdquo;其内容。另外,CA的公钥可用于证明证书已被CA的私钥锁定,从而提供了真实性。 在公钥方案中,CA通过证书管理密钥的分发。如果您需要某人的公钥以便给他发送私人消息,您应从他的CA处获取其证书。另外,您还可以让此人将他的证书发送给您。但您如何知道证书是真品?CA使用自己的专用密钥对证书进行数字签名。如果接受方知道CA的公用密钥,就可以证明证书是由CA签发,因此包含可靠的信息和有效的公用密钥。 分发密钥的另一讲方法是扩展现有的DNS(域名系统),以便DNS具有保存证书的新的记录类型。 在IPSec方案中,可以在IPSec策略中指定根证书颁发机构。此根CA受IKE(Internet密钥交换算法,将在后面讨论)的信任。IKE可以请求根CA将证书发送到希望建立通信的其他计算机。请注意,可以指定多个根CA,包括运行在企业网络上的CA。 DiffieHellman密钥交换 WhitfieldDiffie和MartinHellman在20世纪70年代发布了第一种公钥算法。该算法称为DiffieHellman密钥交换。它使双方都同意某个密钥可用于加密双方之间以后交换的消息。 虽然名为密钥交换,但事实上在任何时候,两台通信主机之间都不会交换真正的密钥,它们之间交换的只是一些DH算法生成共享密钥所需要的基本材料信息。DH交换,可以是公开的,也可以受保护。在彼此交换过密钥生成材料后,两端主机可以各自生成出完全一样的共享主密钥,保护紧接其后的认证过程。 认证DH交换需要得到进一步认证,如果认证不成功,通信将无法继续下去。主密钥结合在第一步中确定的协商算法,对通信实体和通信信道进行认证。在这一步中,整个待认证的实体载荷,包括实体类型、端口号和协议,均由前一步生成的主密钥提供机密性和完整性保证。 密钥交换要求双方已具有自己的公钥私钥对。然后每一方将其私钥与另一方的公钥结合起来生成惟一的但对双方相同的秘密号(即使窃听者可能监测,双方之间交换的东西没有任何价值)。秘密号的一部分是从每一方的私钥中导出的,它永远不会显示出来。接着,秘密号转换成共享对称加密密钥,后者可用于加密双方之间以后交换的所有消息。 IKE(Internet密钥交换) Internet密钥交换是IPsec体系结构中的一种主要协议。它是一种混合协议,使用部分Oakley和部分SKEME,并协同ISAKMP提供密钥生成材料和其它安全连系,比如用于IPsecDOI的AH和ESP。IETF的IKE(Internet密钥交换)协议是一个自动安全协商和密钥管理服务。IKE和IPSec(IP安全)协议由需要与另一台计算机协商安全关联(SA)的计算机一起使用。一旦两个对等端之间的IKE协商取得成功,那么IKE就创建到远程对等端的安全关联(securityassociation,SA)。SA是单向的;在两个对等端之间存在两个SA。它是两个系统之间的连接,此连接是出于保护通过连接传输的数据分组的目的建立的。IPSec定义可适用于SA的各种安全特性,如验证数据分组标头和或加密整个数据分组(隧道)。IPSec对于VPN布署很重要,但也可使用其他协议。 IKE被认为是一个用于协商VPN的混合协议。它在InternetRFC2409(TheInternetKeyExchange,November1998)中进行了定义,并通过组合以前定义的下列协议中使用的技术创建: ISAKMP(Internet安全关联和密钥管理协议)ISAKMP在RFC2408(InternetSecurityAssociationandKeyManagementProtocol,November1998)中进行了定义,后者提供用于验证和密钥交换的框架,但不专门定义这样的框架。ISAKMP定义包括交换密钥生成和认证数据的有效载荷。这些格式为传输密钥和认证数据提供了统一框架,而它们与密钥产生技术,加密算法和认证机制相独立。这意味着它支持许多不同的密钥交换方法。 OAKLEY该协议优化了DiffieHellman算法,提供了多种机制对抗多种攻击,通过身份认证协商建立了更加安全可靠的保密连接。以前验证的两方使用此协议就密钥方法(如ldquo;密钥完全向前保密rdquo;、ldquo;标识保护rdquo;和ldquo;验证rdquo;)达成一致。完全向前保密意味着用于保护数据传输的密钥不得用于创建其他密钥。基本机制是DiffieHellman密钥交换算法。OAKLEY在RFC2412(TheOAKLEYKeyDeterminationProtocol,November1998)中进行了定义。请注意,IKE并不实现整个OAKLEY协议,也不完全依赖它。 SKEME这是IEEE定义的提供匿名、信誉和快速密钥刷新的密钥交换技术。IKE并不实现整个SKEME协议,它只实现其公钥加密方法mdash;mdash;使用现在的交换(挑战)快速重新加密的SKEME概念。 希望建立通信的两台计算机使用预定义的密钥、公钥或对称密钥验证自己。一旦经过验证,将建立主安全关联并生成主密钥。接着,可以在系统之间建立会话和会话密钥。 称为GKMP(组密钥管理协议)的相关协议描述这样的能力:在任意大小的组中创建和分发密钥而无需全局中央密钥管理员的介入。 密钥恢复 密钥恢复是指,对一个实体的私钥以某种方式进行永久存储,这种方式允许已授权的个人在不知道谁是拥有该私钥的实体,或没有得到该实体的同意下,就可以访问该私钥。密钥恢复通常是密钥管理方案的一部分。如果密钥丢失,用此密钥加密的数据可能无法恢复。密钥恢复是一种获得对密钥或数据的访问权限的ldquo;紧急rdquo;方法。可以使用数种密钥恢复方法。通常,这是为了访问重要商业信函,或为了满足执法的需要。政府常用的一种是第三方保管的密钥。使用此方法,加密密钥分成几部分,这些部分被分发到数个保管人。如果需要此密钥恢复数据,保管人必须全部同意组合他们的密钥。在犯罪活动事件中可能发出法院指令以获取几部分密钥。 密钥恢复只有在用于永久性数据加密所用的密钥时,才是有用的。对于基于PK的应用程序,它通常指实体密钥的交换密钥。在归档标识或数字签名私钥时,其作用十分有限,并且冒很大风险。这是因为,其唯一的实际用途就是模拟私钥所有者。 另一种方法是第三方保管的会话密钥。会话是两个系统之间的数据交换。可以使用当场生成的一次性会话密钥(永远不会再用)加密会话。为提供密钥恢复,用第三方保管代理的公钥加密会话密钥并将其转发到第三方保管代理。如有必要,第三方保管代理使用这些密钥解密数据。 密钥恢复只有在用于永久性数据加密所用的密钥时,才是有用的。对于基于PK的应用程序,它通常指实体密钥的交换密钥。在归档标识或数字签名私钥时,其作用十分有限,并且冒很大风险。这是因为,其唯一的实际用途就是模拟私钥所有者。 对于希望监视雇员活动的组织而言,密钥恢复可能是要负责任的活动,密钥恢复中的政府参与会涉及许多公民权利问题。 公开密钥