|
目前,随着对可靠安全软件和系统的需求的不断增加,替代验证和信任机制正越来越受到人们的青睐。特别是,用户名-口令验证模型通常是导致产生很多安全欺诈行为的根本原因。为什么呢?首先,很 多人将口令记录在某个地方,这使口令非常容易被嗅探到。其次,人们倾向于创建容易记住的口令,这使口令很容易被猜到或检测到。因此,按照上述模型建立流程的企业正在寻找方法,以便在 不进行大范围修整的情况下更好地保护和优化其系统。
请访问 Windows CardSpace(以下简称 CardSpace)以了解相关信息,这是一个由微软带头制订的规范,在过去几个月里获得了人们的广泛认可。CardSpace 定义了一个简化范例,它使用称为 InfoCard 的安全令牌对数字凭证进行管理,Windows XP 和 Vista 中都提供了该范例。
OpenSSO 是 Sun 的开放 Web 访问管理项目,该项目基于 Sun Java System Access Manager 源代码。作为 java.net 上的开源 项目 CardSpace 的一部分,ICSynergy 扩展了 OpenSSO 以包含 CardSpace 并将其作为简单验证模块。此外,ICSynergy 还为 OpenSSO 和 Sun Java System Access Manager 提供了商业 CardSpace 实现以及 培训计划。
本文介绍了 CardSpace-OpenSSO 验证模块的优点、基本体系结构和过程流。
目录
CardSpace 明确定义了用于服务器和客户机的信任模型和机制。利用其构造,例如,与安全声明标记语言 (Security Assertion Markup Language, SAML) 相关的构造(如 xmldsig),您可以创建或自定义满足需要的工具包。让我们回想一下,验证模块的目标旨在建立一个用于替代用户名-口令模型的系统,以便减少或消除对过时方法的依赖。促 进实现这一目标的一个重要内容是,制订一个使用户顺利转换到 CardSpace 的计划。
使用 CardSpace 进行验证非常简单:用户只需提供其 InfoCard 即可获取对 Web 站点的访问权限。幕后起作用的是信任模块,本文后面部分重点介绍了这些模块的一个示例。图 1 说明了过程流。
图 1:使用 CardSpace 的验证机制的过程流
|
优点
InfoCard 的主要优点是,它可以存储并提供称为声明的通用属性,如电子邮件和送货地址。通常,声明是非敏感数据,利用这些数据,支持 CardSpace 的站点可以依据 InfoCard 值对服务进行处理。作为卡选择过程的一部分,支持 InfoCard 的 Web 站点会要求用户指定其声明。因此,它具有以下两大优势:
- 节省时间并减少数据中的错误
- 根据相关站点灵活地选择声明
在更高级的设计中,您可以扩展声明以包含更敏感的数据。
用户界面
用户的 InfoCard 存储在何处?答案是存储在 CardSpace 的 CardSelector 中。这是一个虚拟钱包,其中装有用户创建的卡或通过可信站点为用户颁发的卡。在访问支持 CardSpace 的站点时,CardSelector 会提示用户选择相应的 InfoCard,它反映了用户与实体之间的关系(客户和员工等)。图 2 显示了典型的界面。
图 2:在 CardSpace 上管理 InfoCard
|
CardSelector 还提供了其他功能。例如,在受管理的卡方案中,CardSelector 充当令牌和信息代理。请继续阅读下面的内容。
InfoCard 类型
CardSpace 支持以下两种类型的 InfoCard:
- 自颁发的 InfoCard,它是用户使用 CardSelector 创建的,用户还指定了使用该 InfoCard 进行验证的位置。支持自颁发的 InfoCard 的 Web 站点通常要求进行注册,以便在用户和用户与这些站点的关联之间建立信任关系。
- 受管理的 InfoCard,它是由可信的身份认证提供者 (Identity Provider, IdP) 颁发给用户的,该 可信的身份认证提供者可以证明用户所声明的身份是否属实。CardSpace 规范明确定义了受管理的卡以及服务器端组件的责任和作用。
在线银行就是一个很好的示例。在涉及可信数据(如金融信息)传输的 Web 事务中,必须在用户、IdP 和接受 InfoCard 的站点(通常为银行)之间建立信任模型。
本部分重点介绍了允许用户 Martin Gee 使用 CardSpace 和 OpenSSO 访问应用程序的结构和过程流。
组件和目标
CardSpace 体系结构包含以下两个主要组件:
- 服务器端组件,它提供 InfoCard 的使用服务和所需的访问管理功能。OpenSSO 服务器就是一个例子,它由以下部分组成:
- 配置的 OpenSSO 实例,它在 Web 容器中运行。ICSynergy 使用 Apache Tomcat 开发了这种验证模块,并且不久会将其移到 GlassFish(Sun Java System Application Server 的开源项目)上。
- 支持安全套接字层 (Secure Sockets Layer, SSL) 的 Web 容器,CardSelector 通过它来传输 InfoCard。仅在 SSL 通道上进行传输,这意味着,您必须通过证书颁发机构生成实际的证书。CardSpace 不支持不可信的证书。
- 验证模块,它使用 InfoCard 和声明。
- 辅助访问管理服务,如会话和策略。
- 客户端组件,它通过 CardSelector 传输 InfoCard。该组件是指配置了 Internet Explorer 7.0 或 Firefox 浏览器以及相应 CardSpace 扩展的 Windows 客户机。对于非 Vista 计算机,请安装 .NET 3.0 运行时环境。
注:现在提供了非 Microsoft CardSelector。请确保安装并配置最新的 .NET 运行时环境。有关资源信息,请参见 参考资料。
在部署了验证功能后,接下来可使用以下服务来设计流程:
- 安全地将 InfoCard 声明传输到受保护的应用程序
- 辅助用户注册
- 从过时的验证系统中迁移用户
过程流
上一部分中介绍的拓扑以及用户过程流的基本概念是,OpenSSO 支持 CardSpace 功能,而受保护的应用程序并不需要了解如何使用 InfoCard,这就从整体上提高了伸缩的灵活性、减 少了维护并增强了安全性。图 3 使用松散耦合且支持 CardSpace 的应用程序说明了 OpenSSO 的过程流。
图 3:支持 CardSpace 的应用程序的过程流
|
黄色三角形表示 OpenSSO 策略代理,它通过对用户验证、URL、主体、验证模块和当天时间等强制实施策略规则来控制与应用程序的 Web 通信。这种体系结构利用一项策略代理功能,将 可信数据注入受保护应用程序的 HTTP 流中,并随后共享 InfoCard 声明。
以下是用户首次访问 InfoCard 的过程:
- 在 Open SSO 管理的 InfoCard 提示屏幕中,用户 Martin 单击 Log In(登录)。请参见图 4。
图 4:验证提示屏幕
|
此时将显示用于选择 InfoCard 的屏幕。请参见 图 2。
- Martin 选择相应的 InfoCard。
由于这是首次访问,因此将显示图 5 中所示的屏幕以询问是否将 InfoCard 链接到用户帐户上。这是 ICSynergy 从用户名-口令验证模型到非常安全的 InfoCard 模型的轻量转换的起点。
图 5:帐户链接的转换屏幕
|
- 单击 Yes(是)后,CardSpace 将提示用户登录到 OpenSSO 以执行该步骤。请参见图 6。
图 6:用于登录到 OpenSSO 的提示屏幕
|
- Martin 使用其用户名和口令进行登录。请参见图 7。
图 7:登录屏幕
|
- 当 Martin 的凭证通过验证后,系统便会立即通知他。此时,从用户名-口令验证模型到 InfoCard 验证模型的转换过程已完成。请参见图 8。
图 8:成功登录确认
|
- 在这种体系结构中,当 Martin 单击 Requested URL(请求的 URL)时,系统将显示用于编辑用户配置文件的 OpenSSO 屏幕。请参见图 9。
图 9:用于编辑用户配置文件的 OpenSSO 屏幕
|
本文简要说明了使用 CardSpace 和 OpenSSO 设计的一种典型的安全体系结构(包括注册过程)。后续文章将会更详细地介绍受管理的卡。
InfoCard 可以替代风险日益增加的过时用户名-口令验证模型,但前提是能够顺利完成转换过程。与任何新技术一样,目前面临的一项重要且艰巨的任务是为最终用户和支持人员提供培训。
由于 CardSpace 本身非常适合电子商务领域,因此,它很可能会在 B2C 领域获得广泛应用。将来,仍需要在整合 CardSpace、联盟和 Web 服务方面进行大量的复杂开发工作,不 过这一过程可能还尚需时日。
请务必访问 项目 CardSpace。我们的目标是将验证模块作为 OpenSSO 的一部分进行分发。欢迎加入我们!
|