杭菲璐 陈小丹 方宁 谢林江
摘 要:移动代理技术在云计算环境中被广泛应用,但其安全问题不可忽视,其中数据安全成为制约其发展的主要因素之一。文章提出了一种私钥委托技术,有效地解决了云计算环境中移动代理所携带的数据保护问题。该方法利用可信计算技术提供的新功能和机制,采用公钥和对称密钥加密手段进行数据和密钥保护,其最显著的特点是,它通过将移动代理的私钥委托给防篡改硬件,使私钥的使用更加方便和安全。实验证明该方法执行效率高,具有较高的使用价值。
关键词:移动代理;数据安全;密钥委托
中图分类号:TP309 文献标识码:A
Data security protection of mobile agent cloud service
Hang Feilu1, Chen Xiaodan2, Fang Ning3, Xie Linjiang1
(1. Information Center, Yunnan Power Grid Co., Ltd., YunnanKunming 650217;
2. Qingdao University, ShandongQingdao 266071;
3. Beijing Bangcle Security Technology Co., Ltd., Beijing 100093)
Abstract: Mobile agent technology is widely used in cloud computing environment, but its security problem cannot be ignored, among which data security has become one of the main factors restricting its development. This paper pro-poses a private key delegation technology, which effectively solves the problem of data protection carried by mo-bile agents in cloud computing environment. This method uses the new functions and mechanisms provided by trusted computing technology, and uses public key and symmetric key encryption to protect data and key. Its most notable feature is that it makes the use of private key more convenient and secure by delegating the private key of mobile agent to tamper-proof hardware. Experiments show that the method has high efficiency and high application value.
Key words: mobile agent; data security; key delegation
1 引言
移動互联网的发展使企业对用户提供的服务和业务越来越多地通过Web应用服务以及移动应用等途径展开。移动代理可以将计算任务移动到它们需要访问的资源附近,从而减少网络通信、带宽和延迟,具有明显的计算优势[1,2]。这种优化思想与边缘计算技术类似[3],但其本质仍然是云计算与移动互联网相结合的一种技术方法。
尽管移动代理技术具有计算性能方面的优势和广泛的应用领域,但其发展潜力受到了安全问题的制约。在移动互联网这种不可信的、开放的网络环境中,移动代理技术面临的安全问题大致可分为云服务主机安全和移动代理安全。
云服务主机安全涉及保护主机平台不受恶意移动代理的攻击,这些恶意移动代理可能试图在未经授权的情况下,访问本地资源或在平台上发起恶意操作。另一方面,移动代理的安全性旨在保护移动代理免受恶意云服务主机平台或云服务的攻击。攻击者可能试图破坏正确的操作或操作其中包含的敏感数据。云服务主机安全的研究工作较多,研究者已经提出许多可行的机制,包括沙箱安全(在Java中提供访问控制)[4]、安全类型语言[5]和证明携带代码[6]等。然而,这些与移动代理本身相关的安全问题要严重得多,由此引发了云计算环境中移动代理场景特有的安全问题。众所周知的安全机制包括代码混淆[7]、加密函数[8]、执行跟踪[9]等,但在移动代理本身的安全性或对代理所有者的利益构成威胁方面,还有其他未解决的问题,其中移动代理数据的保护问题是最重要的问题之一。
本文基于密钥委托的思想,利用可信计算技术[10],提出了一种移动代理私钥委托的方法,实现了对移动代理所携带数据的有效保护。方法是使用对称密钥和公钥加密方法来保护数据和密钥,可以有效地避免移动代理的私钥暴露。
2 可信计算技术
可信计算最早是由可信计算组织TCG提出的一个概念。其基本思想是在计算机系统中建立一个信任根,通过建立信任链,实现逐级测量认证,逐级信任扩展,进而把信任关系扩大到整个计算机系统,保证计算机系统的可信执行。
其中,最重要的技术是可信计算平台模块(Trusted Platform Module,TPM)。TPM是一种SOC芯片,它是可信计算平台的信任根,由存储器I/O、CPU、密码协处理器、随机数发生器和嵌入式操作系统等部件组成,能够进行可信度量的存储、可信度量的报告、密钥生成、加密解密、数字签名、数据安全存储等任务。
TPM上层的支持软件被称作可信的软件栈(TSS),可以提供兼容异构可信平台模块的开发环境。安全应用程序不能直接访问TPM,而是通过调用TSS接口来使用TPM提供的安全功能。TSS可以为可信计算平台的应用层提供完整性保护、身份可信性认证、数据安全保护等可信特征功能。遵照不同规范的TSS产品实现机制可能会不同,但只要TSS能实现相对应的可信特征功能,同样可以达到安全要求。TSS 由三个逻辑组件组成:TCG 设备驱动程序库(TDDL)、 TCG 核心服务(TCS)和TCG 服务提供者(TSP)。TSS 可以独占的打开 TPM 设备驱动,而不允许应用程序通过其他绕开TSS的方法与TPM设备建立连接。本文使用的技术包括TPM和TSS。
3 技术方案与原理
3.1 基本安全假设
本文的安全方案基于两个基本假设。
假设1:移动代理要访问的每个云服务主机上都有一个TPM,并且TPM的状态应该是活动的和正常工作的。
假设2:移动代理的执行不受其他进程的干扰,移动代理进程使用的内存是隔离的,不能被其他进程篡改或窥视。
这些假设可以通过TCG提供的各种证明协议来实现和验证。
3.2 方案概述
总体设计思路是通过将密钥存储在TPM中避免其泄露,或者使用受TPM保护的另一密钥对其进行加密来保护密钥。由此形成了一个密钥层次结构树,叶节点是受保护的委托密钥,用于加密移动代理的数据,中间节点是存储根密钥,根节点是TPM的存储信任根。在密钥保护过程中,需要使用TPM的易失性内存。TPM负责执行活动密钥和非活动密钥的交换和分析,结构树如图1所示。
存储信任根(RTS)保护委托给TPM的密钥(和其他数据)。RTS管理少量易失性内存,在这些内存中,密钥在执行签名和解密操作时被保存。非活动密钥可以加密并移出芯片,为其他活动密钥腾出空间。每个TPM都有一个存储根密钥(SRK),它在硬件内部受到保护,从未暴露在任何介质中。存储在TPM外部的密钥受SRK保护,密钥可以是对称密钥,也可以是私钥收到保护的非对称密钥对。
3.3 密钥委托
在将移动代理发送到云服务主机之前,需要将代理的私钥传递给TPM。私钥的分发需要一个安全的通道,在方法中,使用TPM的认证身份密钥(AIK)来保护私钥,这样就不需要更多的密钥,密钥委托过程如图2所示。
该过程中的H(A)是移动代理代码的哈希值,用于验证。如果移动代理的迁移路径是预先固定的,代理的启动程序可以提前将SK_A分发给该迁移路径中的每台云服务平台主机。但是,如果行程是可变的,或者移动代理必须动态地选择下一步节点,那么代理可以承担关键的委托工作。在这种情况下,在移动代理从下一台主机获得一个AIK公钥PK_AIK_NX并对其进行验证之后,调用当前云服务主机上的TPM函数,用PK_AIK_NX对SK_A进行加密。ENCPK_AIK_NX(SK_A||H(A)的过程,将在当前TPM中执行,这样SK_A就不会暴露。在这两种情况下,只有具有正确AIK私钥的TPM,才能解密代理的私钥,保证私钥的安全性。
3.4 身份验證
移动代理必须向TPM进行身份验证,才能使用其私钥。如果允许其他应用程序使用私钥,整个方案将毫无意义。由于代码决定程序的行为,而代码对于移动代理是唯一的,恶意移动代理就不可能拥有与正常移动代理相同的代码。考虑到代码在迁移期间是稳定的,使用二进制代码的散列值进行身份验证。散列值H(A)与移动代理的私钥一起传递,并在TPM的保护下存储。为了确定移动代理的真实性和完整性,TPM只需要将代码部分进行哈希,并将其与H(A)进行比较。如果某个移动代理的代码被恶意破坏或篡改,它将无法通过身份验证。
3.5 完整性保护
完整性保护的目的是让移动代理检查其数据在上一台云服务主机上执行以后是否被篡改。在离开上一台云服务主机之前,移动代理对其数据计算哈希值,然后调用TPM与存储在TPM中的代理私钥对数据进行签名。然后,签名块与代理一起发送到下一台云服务主机。当后继云服务主机将移动代理加载到内存中时,移动代理使用公钥对数据进行签名验证,检查原始数据是否被修改。由于非对称密钥的公钥部分不需要保护,因此该公钥可以与移动代理一起携带,而不需要考虑任何安全问题。
必须确保只有移动代理才能调用TPM以使用其私钥执行加密/解密。如果允许其他应用程序执行此操作,则会有恶意应用程序将代理数据修改,并使用合法的签名私钥生成合法的数字签名。当数据连同签名被发送到下一台云服务主机时,会接受此数据和签名。因此,移动代理必须通过向TPM进行身份验证才能使用其私钥。TPM规范[10]为应用程序向TPM进行身份验证提供了方法。
3.6 基于TSS的TPM访问
在移动代理实现方案中设计了一个专门的模块,用来与TSS交互,实现TPM访问。TPM的计算能力有限,存储资源较少,仅对外提供基本功能接口。为了充分应用TPM,在TPM外部套接一个可信计算软件栈TSS,作为TPM的支撑软件,从而可以简单直接地访问TPM。TSS由设备驱动程序库、TSS核心服务、TCG服务提供者三个逻辑组件构成。首先,提供了与TPM设备驱动程序进行交互的API库,用来打开和关闭TPM设备驱动程序、发送和接收数据块、查询设备驱动程序的属性、取消已经提交的TPM命令。另外,提供了一个TPM命令数据块产生器和一个全局的密钥存储设备,用来管理TPM的资源。最后,通过共享对象或动态链接库直接被应用程序调用。移动代理运行在操作系统的用户模式,通过调用API访问TSS,进而实现对TPM的访问和使用。
4 实验与性能分析
文中使用Jade平台实现了设计的安全机制,Jade平台是一个符合FIPA的代理平台。该系统基于Jade平台提供的“图书交易”示例,扩展了其中的销售代理类来创建云服务主机代理类,扩展了采购代理类来创建移动代理类。本文设计了一个tpm_helper类来封装的TPM操作,该类是从示例的类“behavior”扩展而来的。扩展“behavior”类并创建另一个类来处理移动代理的迁移操作。分别模拟实现了云服务器C1和C2、移动代理云服务平台主机P1、P2、P3、P4和P5。其中,云服务器使用了两台配备有3.20GHz Intel i5-6500四核处理器和8GB运行内存的戴尔OptiPlex 5250台式计算机,其操作系统为Windows 10。移动代理云服务平台主机,使用了5台配有英特尔酷睿i7处理器和8G内存的联想(Lenovo)天逸510 Pro 台式机。
首先,为了验证方案的有效性。分别创建了2个移动代理实例Agent1和Agent2,分别携带100MB和200MB的模拟交易数据。通过预先设定代理迁移条件,使Agent1完成了P1 P3 P2 P5的迁移路径,Agent2完成了P1 P4 P3 P5 P2的迁移路径。在两次移动代理迁移过程中,对移动代理数据和移动代理云服务平台主机进程进行了检测,移动代理数据在平台主机上能够正常使用,平台主机进程利用TSS机制访问TPM,并实现了密钥委托,即没有移动代理的私钥被暴露在网络传输过程中。移动代理的迁移路径,如图3所示。
然后,通过实验测试了移动代理迁移所消耗的时间,采用不同大小的代理数据测量了迁移耗时与数据大小的关系,结果如图4所示。
从图4中可以看出,移动代理迁移耗时与数据大小呈线性关系,密钥获取等操作不受数据大小的影响。因此,该方案具有较强的实用性。
5 结束语
针对移动代理技术在云计算环境中面临的数据安全保护问题,本文提出了一种私钥委托技术,利用可信计算技术提供的新功能和机制,采用公钥和对称密钥加密手段进行数据和密钥保护,能够有效地解决云计算环境中移动代理所带来的数据保护问题。该方法通过将移动代理的私钥委托给防篡改硬件,通过可信硬件实现私钥使用的安全性保护。实验证明,该方法具有执行效率高、实用性强等特点。
参考文献
[1] J.-H. Morin. HyperNews: a Hyper–Media Electronic Newspaper based on Agents[C]. In Proceedings of HICSS-31, Hawai Inter-na-tional Conference on System Sciences, Kona, Hawaii, January 1998:58–67.
[2] Danny B. Lange, Mitsuru Oshima. Seven Good Reasons for Mo-bile Agents[J]. Communication of the ACM March 1999,42(3):88-89
[3] 吕华章, 陈丹, 范斌,等. 边缘计算标准化进展与案例分析[J]. 计算机研究与发展, 2018, 55(3): 487-511.
[4] Li Gong. Java Security Architecture[J].Technical report,1998.
[5] D. Volpano and G. Smith. Language issues in mobile program security[J]. Mobile Agents and Security,1998.
[6] G. Necula and P. Lee. Safe kernel extensions without run-time checking[J]. Proceedings of the 2nd Symposium on Operating System Design and Implementation (OSDI '96),1996.
[7] 趙玉洁, 汤战勇, 王妮,等. 代码混淆算法有效性评估[J].软件学报,2012.
[8] 张明武, 杨波, TAKAGI Tsuyoshi. 抗主密钥泄露和连续泄露的双态仿射函数加密[J].计算机学报,2012.
[9] 李佳妮.基于拓扑结构的软件执行过程安全加固技术的研究[D].北京理工大学,2016.
LI J N. Research on secure reinforcement technology during soft-ware implementation process based on topological structure[D]. Beijing Institute of Technology, 2016.
[10] 沈昌祥,张焕国,王怀民,等.可信计算的研究与发展[J].中国科学:信息科学,2010(2).
作者简介:
杭菲璐(1984-),男,汉族,云南昭通人,云南大学,硕士,云南电网有限责任公司信息中心,工程师;主要研究方向和关注领域:网络与信息安全。
陈小丹(1994-),女,山东潍坊人,青岛大学计算机科学技术学院,硕士研究生;主要研究方向和关注领域:信息安全。
方宁(1979-),男,山东济南人,北京邮电大学,硕士;主要研究方向和关注领域:移动安全、程序安全。
谢林江(1985-),男,汉族,云南曲靖人,云南大学,学士,云南电网有限责任公司信息中心,助理工程师;主要研究方向和关注领域:网络与信息安全。