IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Grid computing  >

网格进展: 安全性 —— 观察一些技巧和项目

分布式计算安全专家们谈论网格安全

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论


级别: 初级

Travis Van (travis.van@gmail.com), PR 主席

2005 年 6 月 24 日

在上一篇 网格进展 专栏中,专家们讨论了 Web 服务和网格服务安全的发展,评价了社区正在解决的网格安全前沿的一些具体的新挑战。本文将重点介绍为编写网格应用程序的开发人员准备的一些具体的安全技巧;同时您还可以获得目前学术界在网格安全方面所作出的一些努力的基本信息,对于企业环境来说,这可能也是一份很好的教材。

为网格开发人员准备的技巧

1. 保证安全性与基础设施之间的关系是松耦合的

专家意见:Nataraj Nagaratnam,IBM 资深技术成员和架构师,从事随需应变安全基础设施方面的研究

“单一应用程序中可能有一些被特殊用户修正了的安全模型。我们用来保证 Web 服务和网格服务的安全的基本原理是:让业务自己来关心业务逻辑,并让安全专家来担心安全基础设施的问题。换句话说,开发人员构建的应用程序应该在安全实现和基础设置之间保持松耦合的关系。”

“WebSphere® 就是一个很好的例子。我们允许任何提供者进行身份验证;基于开发的标准,我们还可以适应所有的部署环境。这可以帮助公司构建自己的应用程序,对哪些地方进行部署,以及是使用 LDAP(轻量级目录服务协议)、Tivoli® Access Manager、RACF(Resource Access Control Facility ),还是使用其他身份验证实体,这些都无关紧要,公司仍然可以适应某种部署环境。问题的关键是应用程序开发人员需要构建一些应用来解决业务问题,并且通过一些公开的模型使安全的各个问题得以具体化。我们强烈支持使用公开的策略,这可以帮助客户切换到自己这些模型上来,而不用在构建安全设施上进行投资,只需要构建自已的业务应用,并让安全基础设施成为具体的框架(对于应用程序的逻辑)即可。”

“因此,不用构建对安全敏感的应用程序,只需要采用一种反复的模式,使应用程序对安全的需求得以具体化即可。这对于某些网格服务环境来说是至关重要的,在这些环境中,您可以声明自己是接收 Kerberos 还是接收 SAML(Security Assertion Markup Language),或者二者同时接收。客户机可以根据自己的环境选择采用哪种方式,它可以根据使用 WS-Policy 框架表示的策略进行选择,而不用硬编码并映射到客户机可能不支持的一组技术上。”

2:了解 Global Grid Forum Grid Certificate Policy Model

专家意见:David Snelling,架构领域总监,负责全球网格论坛

“开发人员应该看一下 GFD-16 [1],Global Grid Forum Certificate Policy Model,因为现在密钥基础设施是电子商务的问题之一,将来,网格会成为可信证书权威机构(CA)的需求之一。”

“在目前的电子商务安全模型中,消费者将 CA 的根证书放在自己的购买文件夹中 —— 一些企业付钱给第三方的公司,让这些公司对这些证书进行识别。通过这种模型,就可以建立一个特定的信任级别,这可以让消费者感觉十分放心地在 Internet 上支出自己的金钱。”

“网格对于客户机的身份验证有更高的要求。服务需要知道自己在向谁提供服务。GFD-16 对构建公钥基础设施时需要询问的问题进行了总结。它与 IETF(Internet Engineering Task Force)一起进行工作,后者定义了证书的结构和内容。GFD-16 中的 GGF 介绍了安全实践和在构建网格时需要指定的策略决策。”

3:利用额外的步骤保证输入内容的有效性

专家意见:Phil Janson,PM,Services Research Assets,IBM

“黑客用来闯入系统最常见的攻击方法是使用堆栈溢出、缓冲区溢出和内存溢出。它们向系统发送的信息超过了目标系统的预期。结果,当目标系统在读取这些信息时,内容就超出了为读取这些参数而保留的内存范围,因此它会覆盖内存中的其他一些数据结构,这会导致程序的异常操作,并将控制权转交给刚才发送的参数中包含的代码。如果您可以让目标程序异常地进行操作,并将控制权转交给在这个参数中嵌套的程序,那么您就可以在目标系统中任意进行操作。”

“我编写的 Eclipse 插件(Web Services Interface Definition for Intrusion Defense)利用了 WSDL,并根据一组标准进行检查,从而确定相关的接口是否受到了黑客的攻击。我的这种编码方法可以防止诸如缓冲区溢出之类的攻击:如果指定了一个字符串或一个整型参数,那么这种方法可以确保这个参数的大小是有限的。由于它不会让过大的内容进入,因此可以强制您为希望接收的参数指定最大值。您仍然可以覆盖这个工具,或者坚持使用一个很大的参数,但是至少您已经收到可能会出现风险的警告。(注意,C# 或 Java™ 语言会自动负责检查这个问题,因为它们要负责对内存进行管理。然而,如果 Java 或 C# 组件是一个传统组件的封装程序,那么风险就被限定在了组件中,因此这种检查总是有益的。)”

“这种技术通常被认为是安全技术中的二等市民。人们总是对安全协议或类似的内容更感兴趣。他们试图忽略输入数据的有效性验证,并且采用的不是良好的程序员应该使用的方式。但是问题是,大部分程序员都不这样做......因此,您可以为他们提供一些工具来帮助他们自动执行这个步骤。基于这种工具,将来的 Web 和网格容器可以进行自动化的输入有效性验证,这可以帮助那些健忘或粗心的程序员实现验证功能。”





回页首


需要了解的一些有趣项目

有趣的项目 1:Grid-Shibboleth Integration(Grid Shib)

专家意见:Frank Siebenlist,资深软件架构师,在 Distributed Systems Laboratory 工作,该实验室位于 Argonne National Laboratories,Frank 从事的是 Shibboleth 项目

“Shibboleth 项目(源自于 Internet2)是一个中间件产品,它可以让不同的大学进行合作,同时共享 Web 资源。它利用了“校园身份和访问管理基础设施”来控制个人的身份验证,它实质上是一个代理服务,资源提供者可以连接到这个服务,用其中的资源来验证请求者是否满足访问标准。这是一个强制性的身份联盟活动,并且在这个领域取得了很大的成功,新的努力包括基于 Globus Toolkit 将它连接到网格上。”

“Shibboleth 被设计并部署到一个以浏览器为中心的世界中。Grid-Shib 项目的这种做法使得相同的 Shibboleth 属性服务也可以用于更多的 Web 服务和面向 Globus 的部署。因此,客户机不仅仅是浏览器;它们包括 Web 服务客户机,可以与跨管理域的应用服务进行交互,这些应用服务然后可以回调客户机的 Shibboleth 服务,从而获取可用于访问控制授权需求的属性。Grid-Shib 实际上会充分利用 Shibboleth 已经开展的工作,并将它们呈现在一个基于 Web 服务的社区中。我们已经接受了 NSF 的赞助,这一些都会成为可能。”

有趣的项目 2:Globus Toolkit 和处理系统

“网格安全中另外一个有趣的新领域是目前不断成长的有关为网格开发一个 处理系统 讨论。这个处理系统可以是一个可选的实现,您可以使用它作为通用的属性服务器和命名服务器。Corporation for National Research Initiatives(CRNI)目前正在从事处理系统的开发,这不仅会提供一些属性服务,而且还会作为一个基础设施提供服务,成为一个可以解析全局资源名的基本服务。这很像是域名系统(DNS)的一个模型。您有一个全局命名系统,其中的值或属性都被绑定到这个名字上。在一些基础方面,这有点像是 DNS,不过安全已经真正集成到了整个结构中。它具有透明应用程序的所有好的特性,并且允许单独某个人来管理属于自己的绑定内容,因此可以推动访问权限与单个名称的绑定。”

“使用集中的根系统来进行网格资源注册的概念十分有趣,因为我们考虑到了将来的‘超网格’,其中对等资源共享需要我们考虑分布式策略的需求和资源发现问题。”

David Holtzman,Network Solutions(Verisign 在 2000 年花费了 200 亿美元购得)的前 CTO,在 20 世纪 90 年代末领导着一个负责 DNS 的运行的团队,他见证了 Internet 从 500,000 个域名到 2 千万个域名的发展。Network Solutions 与 National Science Foundation 的契约意味着任何希望拥有域名并加入 Internet 的个人都必须先向 Network Solutions 域名注册系统注册。

Holtzman 认为网格处理系统是网格进化中的下一个逻辑步骤,他认为对网格中的商业利益感兴趣的供应商会很聪明地来支持它。

“管理数百万个域名是一个很大的挑战,但是要负责全球网格中几十亿的资源,这个想法会使人麻木”,Holtzman 说。“拥有一个集中的资源库看起来似乎是解决这个问题的一个逻辑步骤。我从早期商业 Internet 不景气的日子中学习到的一课是:资源的分布并不是要充分利用各个组件的总和,而是要构建一个适当的框架,这样,每个用户都可以从整体中获得价值,而不需要强制在企业中指定一个空洞的战略决策。构建处理系统只需要花费组织最少的管理精力就可以充分利用现有的技术,而且不用频繁地获得组织的一致认同。我相信 DNS 系统就是由于这个原因才能够在 20 实际 90 年代后期快速得到了商业 Internet 的采用。”

这个 Globus 处理系统项目的设计目的是为处理系统提供一个 Web 服务接口,从而充分利用标准的接口,例如 SAML 属性查询接口、CKMS 查询和简单的名称/值解析。

“当您在多个虚拟组织之间进行合作时,就需要一种方法来管理组成员关系,并增加更多的人或资源”,Siebenlist 说。“这个处理系统就是用来管理信息和管理为不同的实体和个人分配的属性的地方。”

有趣的项目 3:Earth System Grid

Earth System Grid II 是一个研究项目,其目的是利用网格让科学家可以更加简便地访问大量的分布式数据(他们需要使用这些数据,围绕气象建模进行复杂的协作)。

在 Earth System Grid 中,数据被存储到不同的管理站点和组织中。它们保留了一个集中的元信息数据库,其中保存的是有关可用数据的信息,因此科学家就可以浏览这个数据库,并确定他们希望使用哪些信息。当从不同的站点检索数据时,就产生了网格安全问题。

“这是一个真正的授权挑战”,Siebenlist 说。“所有不同的站点都不知道谁在访问自己的数据,因为这会增加对这些数据进行维护的所有组织的管理负担。”

因此,这些组织信任 Earth System Grid,让它为他们实现访问控制,并确保访问权限只会授予那些具有适当权限的用户。以下是一个权限委托的例子:当用户希望从其他组织获取大文件时,只能从 Earth System Grid 权威那里获得授权声明,该权威机构会告诉外部组织,这个用户被允许访问这个文件。这是一种授权声明 —— 如果一个用户通过 Earth System Grid 权威进行了签名,那么这表明该用户可以检索这些文件。

“外部组织都知道这个权威机构,它的声明会被广泛认可”,Siebenlist 说。“当用户浏览这些元数据时,系统通过身份验证了解到他们的存在。他们必须通过组成员关系进行授权,并且只被允许查看特定类型的文件。但是这种访问控制知识完全被限制在 Earth System Grid 门户中。对于所有的外部站点来说,它们不知道这些访问控制知识。它们不希望承担所有的管理知识。这些外部站点了解的惟一内容是 Earth Systems Grid 权威机构。他们信任这家权威机构进行的访问控制授权。”

有趣的项目 4:IBM 和 University of Virginia

去年,IBM 与 University of Virginia 赞助了一个称为 CredEx 的项目,以便基于开源(对 Apache 的贡献)软件构建一个基础设施,以此作为网格安全框架的起点。它要解决的问题是在不同的计算系统之间架起一座桥梁。

“随着时间的推移,用户需要访问许多不同的计算系统”,Nagaratnam 说。“问题是每个系统通常都会使用自己的身份验证系统。对于所有要访问的 Web 站点,有谁能够避免使用成吨的不同密码呢?通常,用来进行身份验证的安全性类型未必是相同的。有些系统使用用户名和密码;有些系统则使用基于 X.509 的公钥加密机制;还有一些则使用 Kerberos 网络身份验证协议。用户面临的挑战包括这么多令牌的存储和管理,做好这些,他们才能在希望使用一个特定的系统时,使用正确格式的令牌。”

CredEx 的重点是实现一个基于标准的兼容的证书交换机制,它使用 Web 服务来进行安全令牌的管理,并在网格环境中进行交换证书。通过构建开源的标准,例如 WS-Security(用于 SOAP 消息安全性)和 WS-Trust(用于安全性的令牌交换),CredEx 可以最大限度地与现有系统以及将来出现的系统进行互操作。这样,当用户需要通过其他系统进行身份验证时,就可以通过交换一个安全令牌来检索他们所存储的证书,例如用户名和密码。

CredEx 所做出的努力可以帮助这所大学在 Globus 与 WebSphere 和 .NET 之间基于 WS-Security 和 WS-Trust 建起一座桥梁。

CredEx 安全模型的主要特性包括:

  • 基于 Web 服务的协议,构建在多个开放标准之上,包括 SOAP、WS-Security 和 WS-Trust。
  • 支持多种平台和语言,包括 Java 和 .NET。
  • 支持多种类型的令牌和交换(密码和 X.509 证书)。
  • 为每个用户集中存储多个证书(身份)。




回页首


结束语

安全性将成为企业网格革命中最为活跃的一个领域。过去 10 年,开发人员从商业 Internet 和电子商务的第一波浪潮中学到的经验(尤其是身份验证和身份管理方面的经验),都可以在网格环境中都得到实际应用。同时,随着虚拟组织之间资源的共享变得更加普遍,新的安全问题的不断出现,我们有理由相信还会出现下一代的攻击、监听和其他安全威胁。我希望能够定期为您的开发团队提供一些安全技巧和更新,并及时介绍一些目前正在进展的有趣工作。



参考资料



关于作者

Author photo

Travis Van 是硅谷的一位专注于新技术的技术 PR 宣传者。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

将您的建议发给我们或者通过参加讨论与其他人分享您的想法.







回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款