技术开发 频道

XML 密钥管理规范(XKMS)

    【IT168 信息化

    XML密钥管理规范(XML Key Management Specification,XKMS)为访问和集成公钥基础设施(Public Key Infrastructure,PKI)拟出了一种容易的机制。在本文中,Manish Verma解释了XKMS背后的目标,之后还为使用XKMS服务来注册和检索与公钥和/或私钥相关的信息提供了逐步操作指南。

    随着越来越多的个人和企业依赖于Internet来交换机密信息和敏感信息,安全性已经成为一个热门问题。其中有两个与安全性相关的话题得到了极大的重视:

    ·易于管理:使得安全性基础设施的使用及其与应用程序的集成比较容易,以便于广泛采纳。 

    ·可移植的信任:在与某个实体建立了信任关系之后,要有一种标准机制来将那种信任转移至另一个协作的实体。单点登录(Single SignOn)就是可移植的信任的一个典型实例。当某个用户经过了一个特定网站的认证之后,就有一种标准机制将那种信息传递给其他需要该用户认证信息的协作站点。这样那些站点就可以透明地共享关于某个实体的信息,而不必一次又一次地请求那个实体的同样的信息。要使单点登录生效,这些实体必须认识彼此的凭证(credential)。

    XML密钥管理规范(XML Key Management Specification,XKMS)使得安全性基础设施易于管理,而安全性断言标记语言(Security Assertion Markup Language,SAML)则使信任可以移植。SAML为在相互协作的各个不同实体之间传输关于实体认证的断言提供了一种机制,这样就不必迫使这些实体失去对信息的所有权。

    本文将讨论XKMS在管理安全性基础设施的过程中所扮演的角色,并为使用XKMS提供一个逐步操作指南。

    可管理性问题

    XML加密和数字签名依赖于公共密钥基础设施(Public Key Infrastructure,PKI)来帮助加密(encrypt)、解密(decrypt)、签名(sign)和验证(verify)各种文档。对于一个要使用XML加密和/或数字签名的应用程序来说,它必须使用或者集成一个PKI解决方案。有很多PKI解决方案可供使用,例如X.509(使用最广泛)、Pretty Good Privacy (PGP)、Simple Public Key Infrastructure(SPKI)和Public Key Infrastructure X.509(PKIX)。问题是,到底该使用或集成哪种解决方案呢?

    不幸的是,答案并不像选择某种可用的PKI并与之集成那么简单。真正的问题是,一个应用程序要想与其他应用程序对话,它必须知道多少PKI以及这些PKI的语法和语义,而其他应用程序又可能使用其他可用的PKI解决方案来发送经过编码或签名的文档,或者期望收到这样的文档。例如,如果组织A使用X.509 PKI解决方案,它要发送加密的文档给组织B,而组织B使用的是SPKI PKI解决方案,那么,组织B就不能解密和使用由组织A发送的文档。要使A和B协同工作,它们当中必须有一方能够理解另一方的PKI解决方案。如果将这种场景再扩展一下,假设牵涉到多方,那么显然所有方都必须知道彼此的PKI解决方案,这样就使应用程序的复杂性增加了很多倍。

    在本文的其余部分,我将演示XKMS如何为这个问题提供答案。

    XML密钥管理规范(XKMS)

    XKMS将管理客户机应用程序的PKI的复杂性抽象到了一个受信任的第三方,从而使PKI易于管理。这个受信任的第三方在提供一个到客户机应用程序的PKI接口的同时驻留了XKMS服务。

    XKMS的目标

    XKMS的主要目标是:

    ·在应用程序与PKI解决方案之间创建一个抽象层。这样就允许应用程序根据需要插入不同的PKI解决方案,而不需要对应用程序本身作任何修改。 
    ·提供一种基于XML的简单协议,以便通过XKMS服务处理密钥信息,使应用程序不必理解复杂的PKI语法和语义。 
    ·将复杂性从客户机应用程序转移到基础设施层,从而允许应用程序更简单、更小巧。这样一来,即使是占用内存很少(small footprint)的设备也可以利用PKI。 
    ·实现XKMS,使其平台无关、供应商无关和传输协议无关。

    XKMS概述

    XKMS是以Web服务的形式实现的,它允许客户机应用程序访问PKI功能,从而减少客户机应用程序的复杂性。客户机应用程序不需要关心底层PKI的语法,底层PKI可以是以下的任何一种:

    ·X.509(最广泛使用) 

    ·Pretty Good Privacy (PGP) 

    ·Simple Public Key Infrastructure (SPKI) 

    ·Public Key Infrastructure X.509 (PKIX)

    XKMS规范由两个规范组成,其中一个规范与公钥的注册有关 ——XML密钥注册服务规范(XML Key Registration Service Specification,XKRSS),另一个规范关心的是基于密钥信息的信息检索 ——XML密钥信息服务规范(XML Key Information Service Specification,XKISS)。

    另一种规范,也就是X-Bulk,是由万维网联盟(Worldwide Web Consortium,W3C)发布的。该规范用于解决批量注册密钥对这一问题。我将在讨论了XKRSS之后解释X-Bulk。

    XML密钥注册服务规范(XKRSS)

    XKMS的这一部分为将密钥对注册到服务提供程序提供机制。可以有两种方式来将密钥注册到一个XKMS服务:

    ·客户机生成一个密钥对,并将公钥和其他信息一起提供给服务提供程序,以便注册。 

    ·XKMS服务为客户机生成一个密钥对,将密钥对的公钥注册到它自己,然后将密钥对的私钥发送给客户机,供其使用。客户机还可以告诉XKMS服务,让XKMS服务也保留私钥。在客户机丢失了私钥的情况下,私钥就与XKMS服务保持一致。

0
相关文章