一直以来,公钥体系(PKI)对加强Web业务的安全性可谓功不可没,但从技术角度而言,PKI的部署过于麻烦,而且成本高昂,因此难以得到广泛的应用。对此,3W协会提出了一种改善后的新标准,即XML钥匙管理定义(XKMS)。XKMS不但继承了PKI的全部精华,而且丝毫没有减少安全性和可扩展性,同时大大降低了PKI的成本。为推动Web业务的平稳发展注入了新的力量。
与KDC相比(Kerberos钥匙发布中心),Kerberos使用共享机密的加密方法,所以很容易成为黑客攻击的对象,加之它包含了太多的敏感信息,因此很难推广使用。而PKI使用了一套公钥和私钥系统,避开了这些问题:私钥仅被某一个人持有;而公钥则可公开发送。所以,利用某个PKI安全消息,对于任何两个人之间的安全通信而言,类似KDC的在线业务显然就没必要了。此外,PKI具有层次钥匙体系和对通过层次的路径进行实时分析的功能。这些都使得无须事先安排的个人安全通信成为可能。
但PKI的部署也是非常繁琐的:它要求每个用户和应用都要验证他们与之通信的每个用户的身份,以确保对方的身份真实有效,而开发人员是很难开发出相应的系统来满足这些要求的。实际上,PKI将所有的信任决定统统抛给了用户,而这就要求复杂的程序库和配置信息。
XKMS的出现,使得某个客户端和应用服务器可以共享XKMS服务来彼此巩固,并处理他们之间的请求。XKMS将许多PKI协议和数据格式,如证书管理协议和简单证书注册协议等,替换成一个基于XML的协议。XKMS也可被用来实施客户对客户、应用服务器对客户、服务器对服务器等环境。在XKMS环境中,信任的决定是由一个公共的服务器完成的。XKMS用户仅需的配置工作就是服务器的URL地址和服务器将用来签名答复的证书,而使用不同的URL地址,可支持不同的信任模型。
XKMS协议提供了三种基本操作:定位查找,即还原某一个加密的钥匙,以和另一个人进行安全通信;确认,即确保某钥匙处于激活状态而没有被废除;登记,用来发布或重新发布,或废除钥匙。由于XKMS是建立在XML的数字签名和加密标准基础之上,因此有许多相似之处。例如,定位查找和确认的操作均要使用一个元素,这意味着某个消息接收者可以通过拾取元素来检查发送者的身份,查看服务器的响应,而服务器则仅以私钥做出响应。
由于XKMS开创了一种信任服务,通过向PKI提供XML接口使用户从繁琐的配置中解脱出来。现在有多家厂商都开始开发XKMS工具包和应用系统,更有许多XML Web服务标准,包括Security Assertions Markup Language和WS-Security等都使用数字签名来保护验证内容和消息数据。目前此标准正处于最后的阶段。
工作原理