移动代理安全问题的解决是决定其能否广泛应用的关键问题,为此我们在现有保护方案的基础上提出了一种基于混合加密的移动代理安全传输模型——HESTM。该模型能有效地保护移动代理的安全,从而有效地提高了整个系统的安全性和稳健性。

一、移动代理的安全问题及现有的保护方案

1、移动代理的安全问题

移动代理在目标机器中可能遭受以下两种攻击:来自恶意服务器(或运行环境)的攻击和来自其它代理和实体的攻击。而移动代理在网络中迁移时,其代码和数据也有可能成为攻击的对象。因此,移动代理的安全问题可以归纳为以下3个方面:

(1)主机或代理执行环境受恶意代理攻击问题。

(2)移动代理受恶意主机或代理执行环境攻击问题。

(3)移动代理在传输过程中受攻击问题。

2、现有的移动代理保护方案

(1)主机或代理执行环境保护方案

由于移动代理系统中的服务器允许不同的代理程序在其上运行,这使得它不得不面临恶意代理可能带来的攻击,如偷窃敏感资料、破坏服务器系统资源、扰乱性攻击、拒绝服务攻击等等。

对此,研究人员提出了沙盒模型,签名、认证、授权和资源分配,Proof-carrying code,代码检验,限制技术,核查记录等保护方案。

(2)现有移动代理保护方案

移动代理程序必须在服务器上运行,因此,其代码和数据对于服务器主机来说都是暴露的。当一个服务器是恶意的,或是被攻击者侵占或伪装的时候,它可能对代理程序进行如下几种攻击:破坏代理使其无法完成任务,从代理中窃取有用信息,修改代理携带的数据,修改代理的执行代码,使其在其它的宿主和代理的所有者中运行时做恶意操作等等。

对此,相关的研究人员提出了加入状态评价函数,加密跟踪法,有限的黑匣子安全法,配置可信赖且能抵御攻击的硬件等保护方案。

(3)移动代理传输保护方案

当在开放型网络中(如Internet)中传递信息时,固有的一个缺点就是不安全。因而当代理程序在网络中漫游时,它的程序码和数据都是不安全的。在数据传递和通信链接中都存在着不安全威胁。

主动攻击:攻击者截获并修改网络层的数据报,甚至将原数据报删除,而用伪造的数据取代。另外,身份伪装也可看作一种主动攻击,攻击者伪装成系统的一个合法参与者A,截取并处理发给A的数据。

被动攻击:在这种攻击模式下,攻击者并不干预通信流量,只是尝试从中提取有用的信息。

二、HESTM模型的实现

由于目前很多移动代理平台更多考虑的是服务器和移动代理在平台中的安全问题,而没有考虑到移动代理在网络上安全传输和加密方面的问题,所以我们提出一种基HESTM算法就是在这两个方面对移动代理系统的安全性进行扩展,增强它的安全性和稳健性。

HESTM算法主要分成两部分,即利用混合加密算法加密移动代理和利用传输层安全(nansport Layer Security,TLS)加密通信信道。经过混合加密的移动代理在经过TLS加密通信信道中传输。

1、利用混合加密算法加密移动代理

将移动代理要完成的任务以及所涉及到的所有数据封装成一个类(Object),这样一来加密这个类的实例与加密整个移动代理是等效的,但是在编程的效率上前者显然更简单并且容易实现,同时也减少了执行加解密算法所需要的时间开销。

Object是一个经过抽象、封装而成的类的实例,ObjectByte是一个表征该实例的字节数组,对称加密算法为AES(高级数据加密标准),其密钥为key,非对称加密算法为RSA,其公钥为publickey,私钥为privatekey。

发送方的混合加密算法实现步骤:

(1) 利用AES算法加密类实例;

(2)利用MD5算法产生消息摘要;

(3) 利用RSA算法对消息摘要进行数字签名;

(4)利用RSA算法对AES算法的密钥进行非对称加这样,就可以把经过安全措施保护的移动代理发送到目的机器。

接收方的混合解密算法实现步骤:

(1) 利用RSA算法得到AES算法的密钥;

(2) 利用AES-算法解密得到类实例Object;

(3)对于步骤2得到的Object,得到表征它的字节数组ObjectByte;

(4) 利用MD5算法产生消息摘要;

(5)把步骤(4)得到的消息摘要与传送过来的MD5(ObjecByte)进行比较,如果相同,则说明此移动代理在传输过程中没有被篡改;否则就是已经被篡改过的移动代理,应予以丢弃,这是为了保证移动代理的数据完整性。

(6) 利用RSA算法解密得到数字签名。

(7)类似步骤(5)来验证数字签名,如果验证成功,则认为此移动代理的确是发送方发送过来的;否则就是非法主机发送过来的移动代理,应予以丢弃,这是为了保证移动代理来源的可靠性。

2、利用TLS加密通信信道

我们在移动代理平台与TCP层之间集成了-TLS,采取结合TLS的通信协议来保障通信信息的安全.TLS建立在SSL(Secure Socket Layer)的基础上,它大量采用对称加密和非对称加密技术,提供客户机、服务器之间相互身份验证和保密性、完整性。

(1)身份验证

身份验证的目的是让通信双方确认对方的身份.可以使用不对称的或公用的密钥或加密系统对连接进行验证。TLS支持基于RSA和带有X.509v3证书的Diffie-Hellman/DSS的身份认证。

(2)保密性

连接是保密的,所有的通信内容都经过安全套接字的处理,即用一组对称密钥和一个在真正的TLS会话开始之前就协商好了的加密算法进行加密。虽然IP数据包仍有被截取的可能,但加密后的数据对于截取者来说毫无用处。它支持不同的加密程度,其中包括40位、56位、128位和168位加密。

(3)完整性

连接是可靠的。消息传输中包括了使用键控消息身份认证代码(MAC)进行的消息完整性检查。消息在传输过程中被修改,不管是传输错误还是有人蓄意破坏,消息验证码( MACs)都能验证出来。可以采用安全哈希函数(例如,SHAI、MD5)来进行MAC计算。

移动代理平台服务器所用的协议一般都是建立在TCP/IP协议的基础之上,如在Java2中TCP传输协议由java.net.Socket和java.net.ServerSocket类所提供,所以我们有必要对它进行改造,创建并安装一个定制的TLSSocketFactory-HETLSSocketFactory将允许移动代理传输协议层使用一个非标准TCP的传输协议。其实现步骤如下:

(1)开发自己的Socket类型。

(2)通过提供新的实现,扩展TLSSocketFactory类,参见步骤(3)和步骤(4)。

(3)替换TLSSocketFactory类的createSocket方法。

(4)替换TLSSocketFactory类的createServerSocket方法。

使用TLSSocketFactory类提供的setSocketFactory方法将SocketFactory设为定制的HET-LSSocketFactory,这样移动代理平台使用的协议层就可以与TLS无缝结合使用,从而达到保护传输中移动代理的目的。

三、基于混合加密的移动代理安全模型分析

1、HESTM的仿真和测试

为了证明上述理论的可行性,我们对HESTM模型进行了局域网内粗略的仿真和测试,随后对该模型的性能进行分析。

仿真平台::一个包含三台主机的小局域网.主机上的操作系统为Red hat Linux 7.0.2,移动代理平台为IBM Aglets2.0.1,开发平台为J2SEl.4.0,JCE的实现包为Bouncy Castle
Cryptography API l.04版、其中主机Ai B上配置有自定义的混合加密算法的实现类AgletjCE和信用卡类CreditCard。而主机C扮演的是黑客角色,它对主机A、B之间的通信链路进行监听。

正常通信仿真:主机A欲向主机B派遣一个携带有信用卡卡号(敏感信息)的移动代理MA.为此主机A首先产生类CreditCard的一个对象,并且把信用卡的卡号置入该对象。接着利用混合加密算法的实现类AgletjCE对该对象进行加密,然后由MA携带此经过混合加密的对象发送出去,混合加密过程如图5中的(1)所示。在目的主机B,由于主机B拥有AgletjCE类及信用卡类,所以它可以对移动代理MA携带的信息进行正确的混合解密,重新构造出被加密封装的CreditCard对象,然后它可以访问该对象而获得信用卡卡号。

异常窃听仿真:主机C一直在监听通信链路,当主机A向主机B派遣移动代理的时候它截获了该移动代理,并且试图在自己的移动代理平台上对其进行解密以获取敏感信息,如图5中的(3)所示,但是由于它无法获取正确的AgletjCE类以及CreditCard类,所以无法进行正常的混合解密,导致失败。

2、HESTM模型的性能分析

HESTM模型主要利用TLS协议来保证通信信道的安全性和可靠性,同时利用公钥和私钥加密方法对移动代理的关键类实例进行混合加密,在移动代理接收端进行混合解密,充分保证了移动代理的数据保密性、完整性和来源的可靠性。

相对于没有采用任何保密措施,或者仅仅采取其中一种措施的安全机制,这种双重保护的方法显然能起到更好的作用,与此同时混合加密方法的应用也大大缩短了程序的时间开销。因为私钥加密方法既安全速度又快;公钥加密比私钥加密速度要慢,但是对于认证和钥匙交换又是必不可少的。而HESTM模型利用这两类加密方法各自的优点,取长补短,从上面的平台仿真可以看出,这种方法在保护传输中的移动代理方面能起到很好的效果。

小知识之TLS

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。