网格计算作为新一代的分布式计算方法,与传统分布式计算的主要区别在于在没有集中控制机制的情况下,通过对计算资源进行大规模共享,满足应用对高性能计算要求,并且这种对计算资源进行大规模共享是动态的、柔性的、安全的和协作式的。
网格安全问题是网格计算中的一个核心问题。我们都知道,安全与便利是一对矛盾的结合体。因为在保证网格计算安全性的同时,还必须要尽量方便用户和各种服务的交互与使用。在设计网格安全机制时特别要考虑网格计算环境的动态主体特征及复杂性。要保证网格计算环境中不同主体之间的相互鉴别和各主体间通信的保密性和完整性。基于以上原因,在网格计算环境中,安全问题比一般意义上的网络安全问题的覆盖面更广。在网格环境中,客户机位于不同的地理空间和组织,为保证网格实体(用户、资源和程序)之间的通信安全、防止篡改、实现组织中安全机制方面的互操作性。就需要具备有一个统一的网格安全基础设施,GSI(Grid Security Infrastructure)正是一个解决网格计算中安全问题的一个集成方案。
信息技术及其基础设施是希望人们处理日常任务变得更加高效。而这些任务的完成在某种程度上依赖于和其他人的协作。网格技术就是在这种状况下应运而生的。任何网络环境中,安全性是一个非常重要的问题。GSI是一个解决网格计算中安全问题的一个集成方案。本文针对GSI所涉及到的安全技术、安全策略、安全体系结构及安全认证方案进行了分析与介绍。
图 GSI认证中B对A认证
GSI方案提供网格环境认证
GSI为网格计算环境提供了一系列的安全协议、安全服务、安全SDK和命令行程序。GSI可以提供在网格计算环境中的安全认证,支持网格计算环境中主体之间的安全通信,防止主体假冒和数据泄密;为网格通信提供保密性、完整性和回放保护,及为网格用户提供单点登录和权限委托的能力。另外,GSI还可以用来对网格实体的身份进行验证,来确定该实体允许执行哪些操作。这些安全技术都能有效地保证网格计算环境的安全性和方便性。
GSI是保证网格计算安全性的核心。它支持用户代理、资源代理、认证机构和协议的实现。它向上提供一系列的安全协议,向下支持各种安全机制和技术。GSI采用GSS-API(Generic Security Service application programming interface) 作为其安全编程接口。提供了通用的安全服务,支持应用程序在源码级的可移植性。它在面向主体间安全鉴别和安全通信操作基础上,提供获得证书、执行安全鉴别、签署消息和加密消息等功能。
GSI的实现符合IETF提出的用于安全系统的标准(GSS-API),它主要集中在网络的传输层和应用层,并强调与现有分布式安全技术的融合。在公钥加密体系的基础上,充分利用现有的网络安全技术,对某些功能进行扩展,使得GSI可以支持单点登录。从而,在网格计算环境下提供一个一致的安全性界面,方便了网格的开发和使用。
实施网格安全策略必须集中于域间相互作用和映射域间操作。对单一信任域内的操作可通过Kerberos 和SSH方法。对每个信任域,都要有一个从全局到局部主体的映像。位于不同信任域的实体间的操作要求相互鉴别。一个被鉴别的全局主体映像为一个局部主体时,被看作等同于局部主体的本地认证。在一个通用的计算环境中,主体和对象必须包含组内所有计算的实体。一个计算包括许多过程,每个过程代表一个用户。其中对象包括可用于网格环境中的大范围的资源。
基于GSI的安全策略是通过通用安全服务编程接口GSS-API、安全认证管理和用户代理的实现三个方面来体现的。在GSI中,着重解决的是安全的认证问题。
GSI通过创建用户代理、代理分配资源、进程分配资源、映射权限四种安全操作协议,充分体现了网格的解决方案。全局命名(证书)和代理证书使得用户对所有的访问资源只进行一次认证。代理证书和委托技术允许一个进程来代表用户访问资源。在GSI的安全策略和单一登录机制的基础上,构建一个网格安全体系,该体系结构体现了用户、资源和过程的鉴别,它支持用户到资源、资源到过程、过程到资源、过程到过程的鉴别。及与本地策略的相互协作及对不同资源的动态请求。
GSI的安全认证
安全认证是对请求者与接受者双方进行身份验证的一个过程,是在SSL上进行的一个成功的安全认证,可以校验一个请求连接的合法性,并为其后的双方通信提供一个会话密钥。GSI的安全认证是基于用户的私钥创建一个代理,从而为用户提供认证方法。用户如果没有创建这个代理,就不能提交作业,也不能传输数据。
GSI认证(certificates)的一个关键是认证证书。在网格计算环境中的每个用户和服务都需要通过认证证书来验证身份,GSI证书采用了X.509的证书格式。主体名称(subject name)是用来明确认证证书所表示的人或其它对象。主体的公钥(public key)来自于X.509 认证签署证书的认证中心。标识则记录了认证中心的名称。签署证书的认证中心的数字签名是可用来确认认证中心的合法性。
在相互认证进行之前,双方要相信彼此的认证中心。双方有彼此认证中心自身的证书,就可以确保双方由认证中心签署的证书具有合法性。双方主体都获得了证书,而且都信任彼此的认证中心后,则双方可相互明确彼此的身份,这就是相互鉴别(mutual authentication)的过程。GSI采用SSL( Secure Sockets Layer)协议作为它的相互认证协议。
认证是安全通信基础
网格安全问题是网格计算中的核心问题。网格计算的特点是网格计算会将现有的各种标准协议有机地融合起来,从而在网格计算中将协议和技术集成起来。网格系统和应用中的每个用户和服务,要求所有的安全标准,包括安全认证、安全身份相互鉴别、通信加密以、私钥保护及委托与单点登录,都能在网格计算环境中通过认证证书来验证身份。提供一个较好的认证解决方案,可以使用户,包含用户计算的过程以及该过程使用的资源都可以证明彼此的身份。
认证是形成安全政策的基础,它可以使各个局部安全策略都被集成为一个全局的框架。从而更加有利于网格实体之间实现安全的通信。