网格计算
取消
显示结果 
搜索替代 
您的意思是: 

分享我的技巧 : GlobusToolkit编写安全网格服务

mybabys
本科生

分享我的技巧 : GlobusToolkit编写安全网格服务

简介

Globus Toolkit 的安全机制

开发安全的网格服务与客户端

结束语



在网格这样的协同计算环境中,安全性是非常重要的问题。我们必须在应用程序的开发过程中正确实现安全机制,并且在部署阶段进行精确地配置,这一点十分关键。本文作者介绍了 Globus Toolkit 3.0 中的安全术语与机制。还提供了示例代码,展示了如何用 Globus Toolkit 3.0 在网格服务中实现消息级的安全性。



简介



Globus Toolkit 3.0 (GT3) 是开放网格服务基础设施(Open Grid Service Infrastructure, OGSI)的参考实现。其中提供了基于开放网格服务架构(Open Grid Service Architecture, OGSA)和 Web 服务架构构建网格服务的基础平台。这些服务可以实现资源共享、任务日程安排与组织,还可以访问网格上的各种分布式资源。对于网格环境中的应用程序来说,安全性是极其重要的。我们需要根据组织机构以及其他一些不同的策略,来控制对资源和数据的访问。因此,网格服务和客户端需要相互进行认证,而且必须访问经过授权的服务。OGSA 安全架构仍然处在开发阶段;所以,GT3 中的某些与安全性有关的 API 将来可能会发生变化。本文的内容基于最新的稳定版本 Globus Toolkit 3.0 。文中相当详细地介绍了网格服务与客户端的编写,并着重强调了安全机制。所以,本文假定您了解网格服务的基本术语,如通知(notification)、服务数据(service data),等等。我们鼓励您用 GT3 编写一个简单的网格服务。GT3 中的程序员教程是很好的起点。



Globus Toolkit 的安全机制



GT3 的安全机制与以前的版本一样,也是基于公钥基础设施(Public Key Infrastructure, PKI)。PKI 系统是一种信任层次系统,参与其中的实体通过其持有的证书,以及事前建立的软件与过程,实现身份的标识和确认。公钥的认证一般遵从 X.509 标准。对于基于 Globu 的安全网格服务和客户端而言,这意味着所有参与的实体(包括服务和客户端)都要具备一个符合 X.509 格式的身份标识。您可能已经有了由公司使用的 X.509 认证标识,或是 Globus Toolkit 以前版本中使用的 Globus 认证标识。有很多的商用产品都可以用来为网格建立认证中心(Certification Authority, CA)。然而,最简单的方法就是使用 Globus 小组发布的 Simple CA 包了,它可以生成 CA,从而可以在 Globus 网格中发出证书。授权,或称访问控制,这项功能用于控制哪些用户可以访问系统中的哪些部分。GT3 的授权基于简单的访问控制列表,这个列表位于明文文件 gridmap 中。在任务提交的过程中,Globus Toolkit 2.0 用这个 gridmap 文件将用户映射为远程资源上的用户 ID。GT3 对这一思路进行了扩展,实现了对 factory 和服务的访问控制策略。gridmap 文件与服务和 factory 相关联,用于限制谁可以访问所提供的功能。



GT3 同时提供传输层和消息层的安全性。传输层的安全性依赖于对传输机制自身的保护。这种保护使得网格服务具有天生的安全性,但是却对传输形成依赖。消息级的安全性依赖于分别保护每一条消息。这样的机制很灵活,可以在任意的传输层之上发送消息。网格安全基础设施(Grid Security Infrastructure, GSI)基于公钥基础设施构建。在 Globus Toolkit 中,安全服务的基础是安全套接字层(Secure Socket Layer, SSL)。在 GT3 中,传输层安全性基于支持 GSI的HTTP 协议。消息层的安全性基于一些正在形成中的技术和标准,比如说 WS-Security、XML Encryption 以及 XML Signature 等。Globus Toolkit 正在朝消息级安全性的方向努力,而基于 GSI 的传输层安全性在将来的发布中可能会逐步淘汰,因此推荐应用程序使用消息级的安全机制。本文的其余部分将着重讨论消息级的安全机制。



Gridmap 文件的格式 gridmap 文件为每个可以访问网格服务的人包含了一个条目。每一行的格式如下:“可区分名称”用户 ID



gridmap 文件示例如下:



/O=Grid/O=Globus/OU=cnidr.org/CN=Lavanya Ramakrishnan"

lavanya "/O=Grid/O=Globus/