Internet上一种新型的CORBA应用安全防护模型


(作者:曾勇(福州大学计算机系98研究生,福建省信息网络重点实验室))

 

 

摘要 CORBA技术在Internet上的广泛应用对其安全性也提出了更高的要求。本文介绍了常见的两种CORBA应用的安全防护模型,并在此基础上提出了一种新型的CORBA应用安全防护模型。
 

 

关键词CORBA CORBA防火墙 IIOP  SSL 安全服务环境
 

 


 引言:

    CORBA即公共对象请求代理结构,它作为面向对象分布式处理的主流标准之一,正日趋完善和成熟,并在各领域得到了广泛的应用。一些基于CORBA的应用(如电子银行、电子商务等)更是在Internet上迅速地发展起来。但由于Internet的早期设计并未考虑到网络的安全性问题,它灵活、松散的体系结构,使其很难满足分布式CORBA应用对安全性的要求。

    InternetCORBA应用程序的安全需求

 

         客户对象域                         Internet                服务对象域

 

 

 CORBA客户对象 客户方防火墙         服务方防火墙        CORBA服务对象

1 Internet 上的CORBA应用程序

(对象域:一组受防火墙保护的CORBA对象)

    图1所示为一典型的Internet 上的CORBA应用程序,如(电子商务)。在这里CORBA客户对象和服务对象处于不同的对象域里,都受到防火墙的保护。当客户对象通过互联网向远端不同对象域的服务对象激发一个调用请求时,它必须考虑如下安全问题:

    1身份鉴别

    在CORBA应用中,无论是客户对象还是服务对象都必须实现互相之间的可靠的身份鉴别。如:基于CORBA的电子银行应用,它必须保证将客户的请求发往给他提供服务的银行,而银行必须验证客户的身份,然后对其请求服务;如果客户对银行没有身份鉴别,则黑客可能冒充客户的银行,骗取客户的帐户信息,相反如果银行没有对客户进行身份鉴别,则黑客可能冒充客户向银行提出服务。

    2 完整性

    在InternetCORBA应用中,仅有身份鉴别是不够的,保持请求的完整性也相当重要。如:尽管在CORBA客户方和服务方都有安全的身份鉴别机制,但黑客可以截获CORBA客户对象和服务对象之间的通信信息,并插入假冒的请求,欺骗服务对象对其服务。

    3机密性

    在InternetCORBA应用中, CORBA客户对象和服务对象之间的通信信息必需保密。

    4授权和访问控制

    在InternetCORBA应用中,一个服务对象可能会允许多个客户对象的请求,但不同的客户对象要求分配不同的权力。

    5 可靠性

    当然,InternetCORBA应用必须有很高的稳定性.此外CORBA应用不应该对系统的其他应用产生影响。

、InternetCORBA应用的安全性实现技术及工具

 对于CORBA应用的保密性, 完整性, 身份鉴别我们可以采用加密的方法解决。SSL包括:各种加密算法(DESRSAIDEARC2RC4Blowfish),各种检验和机制(MD2MD5SHA),证书函数(X.509)等。我们可以用SSL协议对IIOP通信进行加密,实现Internet上的CORBA应用的保密性, 完整性和身份鉴别。具体方法是:

  1)用DES加密算法实现保密性。

    2)用MD5检验和机制保证完整性。

    3)身份鉴别机制用RSA的非对称密钥加解密机制和SSL握手协议实现。

 另一种常见的安全技术是防火墙技术。一般的基于Tcp/ip层的防火墙对低层的网络层、传输层的攻击能很好的防护。而应用层防火墙能提供很好的授权和访问控制功能,同时它还能对内容进行检查。因此,可以将防火墙技术嵌入CORBA应用的模型里,为Internet上的CORBA应用提供安全保护。

    最后,CORBA安全服务(CORBASec)CORBA中一项重要的公共对象服务,它在CORBA客户对象和服务对象之间建立安全语言环境,为CORBA应用提供很好的安全服务。

 

、Internet 上的CORBA应用的常见安全防护模型.

    有了这些安全技术和工具之后,下面的任务就是确定一种合理的安全模型,使它能充分地利用这些安全技术和工具,使它满足Internet 上的CORBA应用程序的安全需求。

 

    1基于CORBA防火墙的安全防护模型

 

 



2

防火墙技术已被广泛的用于网络的安全防护,它可以就每个通过它的网络数据包,检查数据包收、发双方的身份,根据预先的安全性设置确定该数据包是否能通过防火墙。将防火墙技术应用到CORBA中,并结合SSLInternet上传送的IIOP请求加密,就形成了如图2所示的基于CORBA防火墙的安全模型。

IIOP Proxy是一种常见的CORBA防火墙, 它是一种应用级的防火墙,工作在IIOP应用层,对IIOP请求进行检查,从而实现对CORBA对象调用的控制;另一方面,它也不允许客户和服务之间直接传递任何数据包,因此,对于非CORBA的服务和应用也能提供安全保护。

在这种模型里, CORBA客户对象并不直接和CORBA服务对象通信,而是通过设在防火墙主机上的IIOP Proxy代理他们之间的通信.。一个CORBA客户对象对CORBA服务对象的请求经过三个阶段:

  1. CORBA客户对象将它对CORBA服务对象的IIOP请求用SSL加密后发往IIOP Proxy
  2. IIOP Proxy收到CORBA客户对象的IIOP请求后,将请求解密,检查请求的有效性,而后根据目标服务对象、客户对象认证标志等信息对解密后的请求进行安全过滤。
  3. 假如请求符合预设的安全规则,IIOP Proxy将请求转发给相应的服务对象。

 

CORBA服务对象对CORBA客户对象请求的回应过程则与之相反。

但这种模型有其缺点:IIOP Proxy转发解密后的请求给服务对象时,它并不对请求再加密,或只用防火墙的密钥加密,服务对象和客户对象之间也没有完全传递安全语言环境,而CORBA的安全语言环境含有保证服务对象和客户对象之间通信安全的重要信息(如客户的鉴别证书等)

2 第二种模型是:端到端的安全防护模型

在这种模型里, 仍用SSLInternet上传送的IIOP请求加密,但是,CORBA客户对象直接和CORBA服务对象通信,中间不设任何防火墙,他们之间的通信安全由CORBA安全服务保证。由于CORBA安全服务(CORBASec)CORBA客户对象与CORBA服务对象之间的通信提供了直接的安全语言环境,它能提供比IIOP Proxy更可靠的身份鉴别、安全审计、授权和访问控制功能。

但是这种模型有个非常严重的缺陷:既使CORBA应用程序能够很好地保护自己,但是不能保证主机上的其他应用和服务也能提供相同级别的安全防护。如果要对这些应用和服务也提供全面的安全防护,则每台主机都需要一个防火墙系统,很显然这是不现实的。

. CORBA应用的一种新型的安全防护模型

1:基本实现原理

由于上面常见的两种模型都有其缺点,我们提出了这种新的安全模型,它综合了前两种模型的优点,在保证完整地传递CORBA对象之间的安全语言环境的同时,又能很好地对其他非CORBA应用和服务提供安全保障。其基本原理如下(图 4)所示:

 

在这种模型里,在保持客户对象和服务对象之间的安全语言环境的基础上,再设一个基于Tcp层的CORBA防火墙系统(Tcp Proxy),对除CORBA应用之外的服务提供保护,但是它比IIOP Proxy要简化了许多,它的任务只是将加密了的包含IIOP请求的tcp数据流从客户对象转发给服务对象,它并不象IIOP Proxy一样对IIOP请求进行控制,客户对象和服务对象之间仍保持有直接的安全语言环境,因此它能利用CORBA的安全服务(CORBASec),满足CORBA应用的独特安全需求。

由于Tcp Proxy不对IIOP请求的内容进行检查,而由服务对象对IIOP的请求内容进行检查,并提供审计、授权和访问控制功能,因此,CORBA应用程序不但拥有了和端对端模型一样的安全保护,而且有Tcp Proxy提供低层安全防护,能对ipTcp级的网络攻击过滤,确保了传给服务对象的Tcp信息流是安全的。另外,由于Tcp Proxy只连接了CORBA应用使用的端口号,因此,非CORBA的服务也得到了保护。

2:安全性比较

在新型安全防护模型里,Tcp Porxy只工作在Tcp层,它不能对IIOP消息流中的恶意内容进行过滤。例如:易受到针对CORBA服务的缓冲区溢出攻击等。它提供的安全级别看起来比IIOP Proxy要低,但是,实际上IIOP Proxy也带来了许多的安全问题:

1 ) 在没有IIOP ProxyCORBA应用中,客户对象的请求和安全语言环境是一同传给服务对象的,因此服务对象能从安全语言环境中直接得到客户对象的身份鉴别标志,从而直接对之进行授权和访问控制;然而,IIOP Proxy将客户对象的请求和客户的身份鉴别标志(即安全语言环境)分离,这就意味着不能保证服务对象接受到的从IIOP Proxy转发来的请求和由IIOP Proxy附在请求上的服务语言环境是相一致的。

2 ) 服务对象只信任IIOP Proxy,也导致另一个严重的安全问题。如果一个黑客成功地入侵了防火墙主机,则整个CORBA应用的安全就被破坏了。另外,仅靠IIOP ProxyIIOP消息中的恶意内容进行过滤也有相当的局限性。因为IIOP Proxy能利用的信息只有请求的头部信息(GIOP headermessage header),而请求体由于IIOP Proxy不能存取服务对象的接口定义而不可识别,它是以一种非结构化的字节流,应此,IIOP Proxy也不能防范一些应用层的攻击(如缓冲区溢出攻击)

而这些问题在新型的安全防护模型里,由于客户对象和服务对象之间仍保持有直接的安全语言环境,因此我们可以直接利用CORBA的安全服务(CORBASec)来解决它们。从而弥补了CORBA防火墙(IIOP Proxy)的不足。同时Tcp Proxy能对非CORBA的应用提供安全防护,它有效地克服了端到端安全防护模型的缺点。

 

结论

通过比较三种CORBA应用安全防护模型,可以看到:结合Tcp ProxyCORBA安全服务,SSL(Secure Socket Layer)的新型的安全防护模型能为CORBA应用提供全面的安全防护。

 

参考文献

1 <<CORBA教程 --公用对象请求代理体系结构>> 清华大学出版社

  1. Firewalls a technical Overview
  2. http//www.boran.com/security/it12-firewall.html

  3. http//www.omg.org
  4. CORBA Overview http//www.infosys.tuwien.ac.at/Research/CORBA/OMG/arch2.htm
  5. CORBA 技术的新进展 <<计算机应用>> 第十九卷第五期 刘锦德 苏森
  6. CORBA 规范、实现及其在CIMS中的应用

 

(联系方式: 曾勇 福州大学计算机系98研究生 邮编 350002

email:zenyong@mail.si.net.cn 电话:0591-7803442)