朱敏
(江苏航运职业技术学院智能制造与信息学院,江苏 南通226010)
迅速发展的物联网技术,使得人们能够利用各种各样的智能终端设备服务于工作和生活。数目庞大的智能设备产生了大量的数据,也产生了大量的数据存储和数据处理需求。我们一般使用云计算来存储和处理这些数据。然而指数级的数据增长使得云计算这种中心化的处理方式难以满足用户的需要。为解决这些问题,雾计算被引入进来,它可以在本地处理大多数任务,而不是在终端设备或云平台上处理它们。
雾计算是一种扩展的云计算模式,在终端设备与传统的云平台之间提供计算、存储和网络服务。最早由思科公司提出,包含三个层次,即物联网终端层、雾层和云层。如图1 所示。终端层包含了大量的传感器和终端设备,它们负责数据的收集,并把这些数据发送到雾层的雾设备中。雾设备处理接收到的数据,并把结果发送到云层。
雾计算最主要的特点是创造了一个巨大的虚拟化平台,利用闲置的资源为客户提供多样化的计算、存储和网络服务。此外,雾计算还具有支持地理分布、位置感知、低延迟、异质性、去中心化、服务质量可感知的物联网应用支持、移动性支持、与云计算的互动、情境感知、在线分析、无线接入的优势、靠近终端用户、节省存储空间、更高的可扩展性、节省带宽、实时互动、数据安全和隐私保护、低能耗等特性[1]。
图1 雾计算架构
雾计算把云计算的相关能力扩展到网络边缘,在云计算框架下,大大降低了服务延迟。并且为不同的应用服务提供商和企业提供无缝的集成化服务。然而,采用雾计算架构会面临很多复杂的安全方面的威胁与挑战,可以把它们分为两大类:安全问题和隐私问题,如图2 所示。安全问题包括无线网络安全、认证和信任、访问控制,以及入侵检测等方面。雾计算采用了多种不同的技术来构建网络,因而也容易受到各种不同的攻击,如中间人攻击、拒绝服务攻击、分布式拒绝服务攻击和无线干扰等。虚拟机(VM)跳转和窃听攻击也是针对雾计算平台中所使用的虚拟化技术的常用攻击手段。
对诸如个人数据和位置等的隐私信息的保护是雾计算架构下需要面对的另一个重要问题。由于与终端设备的地理位置非常接近,像信用卡号、个人邮箱等一类的敏感信息容易成为攻击的目标。一些基于地理位置的服务需要共享用户的位置信息,这也是容易暴露个人隐私的薄弱环节[2]。
图2 雾计算安全威胁与挑战
信任管理是一种在实体与实体之间建立信任关系的机制。目前常见的信任管理模型,采用量化的方法收集、存储实体的信息,得出该实体的信任值。通过信任值来判定网络中实体的可信程度,实体与实体之间通过发送信任值来传递信任。这种管理方式能够很好地提高网络的安全性和健壮性。
在雾计算环境中,雾节点负责为终端用户提供可靠和安全的服务。这需要各种设备之间要有一定的信任度。由于雾平台与云平台的架构及服务机制的不同,雾平台的信任管理机制也与云平台迥异。雾计算平台是广泛的分布式的,而云计算平台则是集中式的。云计算环境下的信任管理相对比较容易部署,因为它有自己的安全基础设施。而雾计算平台则有更高的开放性,也没有自己的安全基础设施,所以它更脆弱,更容易受到恶意的攻击。在云计算环境下的信任管理是单向的,而在雾计算环境下信任管理必须是双向的,雾节点与终端设备之间必须先要维护一种相互的信任关系,才能进行信息的交流。
这些显著的差异决定了雾计算环境下的信任管理有它自身的特点。首先,这种信任是动态的,因为在雾计算环境下,频繁的有设备的加入或者设备的退出,网络的拓扑结构处于持续的变化之中,网络中的设备很可能会偏离它们以前的行为,因此,信任应该持续地加以监控。其次,这种信任是个性化的。雾计算网络是由各种各样的对象与设备构成的,设备与设备、对象与对象之间的安全需求也是多种多样的,对不同的对象使用不同类型的安全策略是很必要的。第三,这种信任是不对称的。如果设备A 信任设备B,并不意味着设备B 可以信任设备A。第四,这种信任是语境依赖的。在雾计算环境下,上下文语境是非常重要的。例如一个雾设备可能在完成某一任务时选择信任某一终端设备。而在另一个任务中,对同一终端设备,它可能会选择不信任。
目前常见的信任模型有以下几种:
基于信誉的信任模型。这种模型广泛应用于诸如电子商务、社交媒体、用户评价等等的对等网络中。然而由于这种模型拘泥于一般的观点,所以把它推广到动态性较高的雾计算平台并不合适。
基于合理性的信任模型。Soleymani 等人[3]提出了一种经验性的、基于可信度的模糊信任模型,用于保障车联网的安全。确保车联网应用的完整性与可靠性是非常重要的,通过安全的信任模型建立信任关系,可以解决车联网环境下由有害信息引起的危险和不确定因素。
可信执行环境(TEE)模型。可信执行环境是一个与外界隔离的环境。一个相对独立的区域,可以保证内部操作的可信度以及代码与数据的完整性。
安全元素(SE)模型。安全元素可以安全地存储敏感信息,并在微处理器芯片中运行应用程序,从而能够保护数据和应用免受恶意软件的攻击。
可信平台模块(TPM)模型。可信平台模块中存储着主机识别密钥对,在特殊的芯片内对硬件进行认证。芯片内的数据软件无法访问。
雾计算对任何非法实体都是脆弱的,因此在雾计算中采用一种安全高效的信任模型显得尤其重要,而且是一个迫切需要解决的问题。然而对这一问题的研究还很有限,目前很多的研究集中在云计算领域,雾计算领域针对性强的信任模型是今后一个重要的研究方向。
不安全的身份鉴别机制会给雾平台带来巨大的安全隐患。物联网终端设备很容易遭受数据篡改和欺骗等攻击。一些针对雾节点为的隐密的中间人攻击,在内存和CPU 占用方面几乎没有可觉察的变化,很难被检测和消除。然而,如果在雾节点与终端设备之间实施安全的身份鉴别方案,这些风险是能够避免的。
身份鉴别对雾计算的安全性至关重要。通过身份鉴别可以确保只有合法用户才能够使用雾节点的服务。目前已经有多种传统的身份鉴别技术,各自有其优点的同时也有其不足之处。
基于密码的身份鉴别:在基于密码的身份鉴别中,终端用户在取得服务前需要先输入密码。这种方式经常被用在云计算中。但把它推广到雾计算存在一些限制。首先,它需要较强的计算能力,而雾网络中的终端设备的计算资源是很有限的。其次,在雾网络中,终端用户需要与许许多多不同的雾节点通信,为每一个雾节点设置不同的密码是很不方便的,而对所有的雾节点使用相同的密码又是不安全的。而且,一般而言,密码方式不能提供高度的保密性,比如,它容易受到离线字典攻击。
基于公钥体制的身份鉴别:公钥体制通过提供证书和密钥来建立安全可靠的网络环境,公钥体制提供了机密性、身份鉴别、完整性和不可否认性,且易于使用。然而传统的基于公钥体制的身份鉴别技术在雾计算环境下的可扩展性很差。对于数量庞大的雾节点和终端设备,公钥的分发需要很大的计算开销。同时,私钥的保存也是个重要的安全问题,一旦私钥泄漏,整个系统安全就被破坏了。
生物特征认证:目前常见的生物特征认证技术有指纹,虹膜,语音识别,人脸识别等。生物特征认证是一种相对较新的技术,但指纹识别,人脸识别等技术已经在移动计算中迅速部署了。生物特征认证技术也有其不足之处,在系统需要的安全等级较高时,生物特征认证技术无法提供足够的安全性。把生物特征认证技术应用到雾计算环境下是一种不错的解决方案,但仍需要进一步的完善。
访问控制已成为确保系统安全、保护用户隐私的可靠工具。在访问控制系统下,用户必须要有合法的凭据,系统才能授予他访问的权限。常见的访问控制模型有以下几种。
访问控制列表(ACL):访问控制列表就是用列表的形式来维护某个用户对某种资源的访问权限。
自主访问控制(DAC):资源的拥有者可以将其拥有的权限分配给其他用户。
强制访问控制(MAC):所有的访问控制策略都由系统管理员来制定,用户无法改变。强制访问控制一般会给用户和资源进行分级。
基于角色的访问控制(RBAC):和访问控制列表的结构类似,只不过把人和权限的关系变成了角色和权限的关系。
基于属性的访问控制(ABAC):基于任意的属性组合来达到访问控制的目的,它是一种新的访问控制模型,是最灵活,也是最复杂的访问控制模型。
基于属性的加密(ABE):这是一种看属性集合与策略是否相匹配的一种公钥加密方法。可分成两种类型。一种叫密钥策略ABE,另一种叫密文策略ABE。前者将策略嵌入到用户密钥中,后者将策略嵌入到密文中。两者的应用场景各有不同。雾计算是云计算的延伸,是一个动态的环境,原来云计算的访问控制模式并不能直接满足雾计算的需求。研究者发现[4]基于属性的加密模型能够比较好的适用于雾计算的环境,但仍然需要在诸如密码强制执行、延迟和策略管理等问题上作进一步的研究和改进。而且在访问策略的管理方面要支持用户属性的创建、更新和撤销等操作,以与雾计算环境的动态性相适应。
在雾计算环境下,人们在使用物联网终端设备,无线网络或者云服务时,常常面临私人信息的泄露问题,如数据信息、位置信息、使用信息等等。与处在远端的云计算相比,雾计算的用户都在位置上接近雾节点,对个人隐私的泄露更加敏感。要求加强隐私保护的需求更为迫切。隐私信息主要有以下几类:
数据隐私:在雾计算网络中,隐私保护算法运行在雾平台与云平台之间的区域,而这些算法在资源受到限制的终端设备上无法运行。处于边缘的雾节点能很容易收集到传感器和终端设备生成的敏感数据。同态加密等等的一类技术可以利用来保护这些数据的隐私。差分隐私也是一种有用的技术,当对统计数据库查询时,它可以保护数据库中每个数据条目的隐私信息。
使用隐私:另一个隐私问题是用户使用雾计算服务时的使用模式隐私。如在智能家居的物联网应用中,传感器发出的信息会泄露家中何时有人何时没人,何时打开电视,何时上网等等的隐私信息。雾节点能够轻易收集到用户使用情况的统计信息。为保护使用隐私,一种方法是雾客户端创建虚拟任务并将其卸载到多个雾节点,将真实任务隐藏到多个雾节点中。这种方法的缺点是增加了用户开销,浪费资源与能量。另一种方法是对应用程序进行智能分区,以确保任务卸载时不会暴露隐私信息。
位置隐私:在雾计算环境下,终端用户的任务通常会被卸载到地理位置最邻近的雾节点,这就暴露了他的位置隐私。保护位置隐私的方法是身份混淆。这样即使雾节点知道有终端客户在附近,也无法识别他。实现身份混淆的方法有多种。例如,可以使用一个可信的第三方为每一个终端用户生成伪身份识别码。实际上,终端用户不应当每次选择最邻近的雾节点,也可以使用其他的标准,如延迟、信誉、负载均衡等,来选择合适的雾节点。从而也可以起到保护位置隐私的作用。
本文讨论了雾计算的安全与隐私问题。与集中化的云计算的安全性相比,具有分布式特性的雾计算面临更多更复杂的安全问题。我们从信任管理、身份鉴别、访问控制和隐私保护等几个方面分析和研究了针对雾计算安全问题的解决方法,它们仍然面临的挑战性问题,以及在未来需要重点关注的研究方向。