《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 雾计算中的数据安全问题综述

雾计算中的数据安全问题综述

2021-09-29
来源:信息安全与通信保密杂志社
关键词: 雾计算 数据安全

  一、概述

  2019年1月,美国陆军研究实验室(ARL)和Techinica公司达成合作协议,针对美国国防部需求研发一个智能雾计算平台(Smart Fog)为拒止和竞争环境中的作战人员提供增强的态势感知能力。2019年5月,美国ManTech公司推出了雾计算平台“安全战术边缘平台”(STEP),这是一种高带宽、坚固、安全和可扩展的解决方案,将为严苛环境中的作战人员提供实时数据分析能力。“雾”会在带宽有限的战场上保存和缓存来自传感器和设备的数据,只向云发送必要的基本信息,最大限度地减少资源并提高安全性。当连接稳定后,再将完整的数据传到云端。

  由此可见,安全性是雾计算部署实施过程中的关键问题。系统必须有一个共同的安全基线,确保基本的互操作性和安全保护。加密为雾计算提供了实现安全服务的机制,这些安全服务包括机密性、完整性、身份验证和不可否认性。加密函数可以在平台安全处理器中实现,以保护加密密钥和安全策略,进而保护其他对象。加密函数还可用于为受信任的软件提供安全的执行环境,并保护其中的存储和通信。

  本文将从节点安全、网络安全和数据安全三个方面,分别分析雾计算在部署实施过程中遇到的安全问题。

  二、节点安全方面

  图1所示为开放雾节点的安全架构,该架构可分为四个水平“区域”:

  自下而上的第一层是硬件层。此处可能存在许多可选的硬件加速器。图1中显示的是SoC上的加密设备,它可能是外部设备,也可能作为特殊说明出现在处理器ISA中。此处还显示了其他的通用加速器。系统mmu和iommu也与物理核心一起位于此层。硬件信任根(HW-RoT)也是硬件基础设施的一部分,可以嵌在芯片上或提供此功能的外部设备中。

  第二层包含了系统固件、可选ROM和NVRAM平台。这些组件的存在及其性质取决于平台。为了支持HW-RoT和信任链的扩展,在受信任的系统ROM上必须有一个不可变的固件,这是开机后平台上执行的第一行代码。

  第三层是虚拟层。它实例化和管理虚拟设备,例如,图1所示的vSoC设备,并将它们按照OAM(操作、维护和管理)系统的指令分配给虚拟机。它还实例化了部分其他虚拟设备,这些设备主要包括外部物理设备(如所示的vNIC)。这些虚拟设备完全由硬件支持,该硬件可存储绕过虚拟机管理程序的数据(如SR-IOV兼容设备)或软件模拟的虚拟实例(如共享的硬盘)。如果物理内核支持SMT(同时多线程),那么不论虚拟内核是不是硬件线程,它都允许显示其他虚拟内核。

  最后一层主要是实现虚拟机的实例化。物理资源在此处由虚拟机管理程序映射为虚拟资源。虚拟机中的操作系统管理应用的地址空间,这些空间可以实例化为单独的应用地址空间或Linux容器。

  图1  开放雾节点安全架构

  有许多连接各层并提供系统服务的函数,这些函数可以创建由受信任组件组成的安全信任链。这些由图1中各层之间的垂直箭头表示。

  (一)运行时完整性检查(RTIC)和自省

  安全启动或测量启动不能确保已安全实例化的软件在执行过程中不出现错误或被病毒感染。在运行过程中进行完整性检查的目的是在执行期间监控和侦查镜像中代码和静态数据的改变。这是通过在执行之前运行一组RTIC的特定工具来“理解”图像构造(即代码和静态数据页所在的位置)实现的。管理程序可以承载RTIC机制,基本假设是管理程序本身是受信任的。RTIC仅用于检查虚拟机。所使用的机制大多是被动的,因为页面表单经过修改后,可以对不应该写入页面的内容进行检测,这一过程由策略驱动。通常,虚拟机会被终止。

  目前,这种方法还没有产品实现,但KVM和Xen管理程序中至少有一个实现正在开发中。

  解决此问题的另一种方法是内存加密,它可以保护加密“容器”中的代码和数据免受外部攻击。尽管这样,敌方仍然有可能利用漏洞或对先前感染的镜像进行攻击。当这些“容器”必须走出来以获取服务或数据时,它们也容易受到漏洞的攻击。虽然可以以这种方式保护静态和动态的代码和数据,但容器之外的代码和数据都不会受到保护。

  当这个问题有一个更成熟的解决方案时,雾节点应借助RTIC方法保护节点免受危害。公共场所的节点不一定比保护区中的节点更有用,因为攻击并不一定需要物理访问。

  (二)调试、性能监控和分析控制

  在系统部署后,应关闭所有形式的调试(包括硬件和软件)、性能监控和分析控制。这些机制为具有物理访问或远程访问的第三方提供了一种技术,以破坏系统的安全机制,或深入了解系统的行为,从而允许未来的侧信道攻击。

  如果在现场需要其他调试、监控或分析信息,则必须有机制来确保为合法人员的特定访问提供安全的授权。

  三、网络安全方面

  作为在运营技术前端设备和云计算数据中心之间部署的普适计算基础设施,安全的开放雾计算平台不仅能够提供高度可用的实时可信计算服务,而且还能够很好地定位以实施动态多层纵深防御策略,保护对我们日常生活至关重要的物理网络系统。为了完成这一双重任务,开放雾计算平台必须通过提供网络安全性和持续安全监控与管理来加强节点安全性。

  图2  开放雾计算安全功能层和操作平面图

  图2所示为一个架构平面图,该架构提供了具有端到端安全性的两个操作平面:安全调配、安全监控和管理,以及三个功能层:通信安全、服务安全和应用安全。此架构符合ITU-X.805建议,也符合开放网络基金会(ONF)建议的软件定义网络体系结构(ONF/SDN)。下面将对三个功能层进行详细阐述。

  (一)通信安全层

  该层在设备—雾—云计算层次结构中的所有实体之间的物理/虚拟通信信道内实现了X.800中推荐的以下通信安全服务。

  (1)机密性

  ?    连接和无连接数据的机密性

  ?    通信流量机密性

  (2)完整性

  ?    连接恢复的完整性

  ?    具有侦查功能的无连接完整性

  ?    防重放保护

  (3)可认证性

  ?    无连接通信的数据源身份认证

  ?    基于连接的通信对等实体认证

  ?    已认证的信道访问控制

  (4)不可否认性(可选)

  ?    数据源的不可否认性

  ?    目的地的不可否认性

  设备—雾—云计算统一体中发生的通信可分为三种安全通信路径:节点到云的安全通信路径、节点到节点的安全通信路径和节点到设备的安全通信路径。由于雾节点通常充当云服务器对其相关前端设备的代理,同时将这些前端设备聚合到云服务器并表示这些前端设备,因此这些路径应协作,以保持前端设备和云服务器之间的互操作性。以下重点介绍了各种途径的预期功能和建议的做法。

  图3  开放雾计算安全通信路径

  (二)节点到云的安全通信路径

  为了确保这些通信路径的安全,雾节点需要为自己和其所代表的前端设备实现所有X.800通信安全服务(包括不可否认性)。应使用从雾节点中安装的硬件信任根派生的安全凭证实现强认证和不可否认服务。应根据云服务提供商与雾节点管理器之间建立的通信安全策略强制实施信道访问控制,作为其服务级别协议的一部分。所有的加密操作都应由嵌入在雾节点中的密码加速器执行,而加密密钥则应作为安全监控和管理操作的一部分进行管控。

  这些路径还有望保留云服务器使用的因特网通信协议和API,用于与前端设备(包括IoT设备、个人移动设备、POS终端、独立计算机和服务器)进行通信。当前,几乎所有这些通信都是通过以下两个协议套件作为Web服务事务实现的。

  表1  用于安全节点到云通信的协议套件

  (三)节点到节点的安全通信路径

  分布式雾计算平台可能由跨越多个子网或管理域的雾节点层次结构组成,但这些雾节点需要相互协调以实现特定目标。基于事务的客户端—服务器计算模型和基于事件的发布—订阅消息传递模式应实现节点间的信息交换,以实现直接、及时的交互。以下协议套件通常用于实现这些范例。

  表2  用于安全节点到节点通信的协议套件

  与节点到云的路径一样,节点到节点的路径期望雾节点作为通信端来实现所有X.800的通信安全服务,包括不可否认性。应使用从雾节点中安装的硬件信任根派生的安全凭证实现强认证和不可否认服务。信道访问控制应根据雾节点管理器在其服务层协议中建立的通信安全策略实施。所有的加密操作都应由嵌入在雾节点中的密码加速器执行,而加密密钥则由安全监控和管理操作进行管控。

  (四)节点到设备的安全通信路径

  雾节点通常会充当云服务器通信的代理,它会保留前端设备使用的通信协议和API。遗憾的是,不同应用和通信媒介对设备通信协议的选择是多种多样的。通过调整互联网(TCP/UDP/IP)协议套件,努力实现无线、有线通信和工业自动化之间的协议融合。

  大多数X.800通信安全服务(不包括不可否认性)可以借助安全协议通过有线/无线以太网,以及因特网的网络和传输层实现。在适应因特网协议的前端设备中,可以使用颁发给前端设备的安全凭据实现强认证。信道访问控制可以根据雾服务提供商指定的通信安全策略强制执行。所有加密操作都可以由前端设备中加密的嵌入式处理器执行,而加密密钥可以作为安全监控和管理操作的一部分进行管理。

  但是,在许多不精通因特网且资源受限的前端设备中,只有有限的加密功能(如使用手动安装密钥的对称密码)可用。这些设备必须安装在受物理保护的通信环境中,并通过硬件连接到一个或多个雾节点,这些节点可以提供大多数的X.800通信安全服务。

  随着对雾计算研究的进一步深入,研究人员将继续扩大节点到设备通信的覆盖范围。

  (五)服务安全层

  服务安全层不仅能够提供传统网络安全设备提供的信息安全服务,包括深度数据包检查(DPI)、应用层代理、合法消息拦截、入侵检测和保护系统(IPS/IDS)、系统/网络事件和状态监控、内容筛选和父母监管等,同时,它还可以提供与安全服务捆绑的各类网络服务,包括vRouters、广域网加速器、网络地址转换器(NAT)、内容交付服务器。

  表3  用于安全节点到设备通信的协议套件

  随着越来越多地使用软件定义网络来替代专用设备,这些“设备”越来越多地作为软件解决方案在虚拟机和Linux容器中实现。与上述其他设备一样,此类安全设备通常称为网络功能虚拟化(NFV),或单独称为虚拟网络功能(VNF)。这些虚拟网络功能以及其他单独打包的服务很可能被链接到一个服务功能链路(SFC)上,并使用网络服务报头将数据包路由到选定的服务功能路径(SFP)中。在许多情况下,人们认为这些服务功能将在开放雾计算系统中得以实现。NFV和SFC环境呈现出了它们自己的一组安全问题,包括许多已经讨论过的方法,但也引入了下面所讨论的一些新挑战。

  提供并保持数据完整性与机密性的可信VNF到VNF通信,需要来自平台硬件、软件和固件的许多功能提供支持。除了从信任的硬件根开发出信任链外,还需要具备以下功能:

  (1)基于VNF + CA建立身份的安全密钥供应

  ?    虚拟网络功能(VNFC)的身份认证

  ?    非对称加密

  (2)批量数据加密

  ?    对称加密

  (3)安全持久的密钥存储

  ?    针对私钥

  (4)受信任的VNF到OAM/MANO通信(完整性、机密性)

  ?    安全软件更新

  ?    (与上述预配相同)

  (5)认证

  ?    双方均处于安全状态

  除此之外,研究人员还需要在以下领域针对安全问题引入更多的思考:

  (1)服务覆盖:服务功能转发器(SFF)的传输转发

  ?    在服务功能(SF)/VNF之间使用数据包进行加密

  ?    服务功能转发器必须对服务功能/VNF端点进行身份认证

  (2)启用服务功能链路的域边界

  ?    在边界认证受信任方:防止欺骗和DdoS攻击

  (3)分类

  ?    OAM对分类策略的认证和授权

  (4)服务功能链路封装

  ?    元数据需要验证其来源

  ?    敏感元数据的选择性共享:加密或转换

  此外,网络服务报头(NSH)提供了创建动态关系的功能,这些动态关系可能无法提前进行身份认证,并且可能由服务功能转发器来实现。

  (1)任何服务功能或服务功能转发器都可以动态更新服务功能路径。

  (2)服务功能路径可以在自身路径中列出多种服务功能。

  另外:

  网络服务报头可以包含任意(固定或可变长度)的元数据字段,由原始分类器添加,或者由服务功能、服务功能转发器在遍历服务功能路径时添加。它们用于传达可能对链中其他服务功能有用的环境信息。

  这引入了另一个数据机密性和隐私条件。由于元数据可以包含服务功能路径认为必要组件所需的任何数据,因此还不清楚如何有选择性地在供应链中隐藏(或加密)一些字段(当数据包中的信息包含了服务提供商、用户或部门信息时,这其中的一些信息是专有的、加密的或敏感的),现有架构还没有解决这些问题,这是一个复杂的问题,包含了许多动态变化、且未知的参与者。

  四。数据安全方面

  驻留在系统中的数据一般有三类:处理过程中存在于内存中的数据、存储在非易失性内存上的数据,以及网络接口中所发送/接收的数据。本节将对如何保护这三种数据的安全性进行介绍。

  (一)使用数据

  在处理过程中,数据驻留在内存系统层次结构(例如SRAM、DRAM、缓存、交换空间等)中。其中一些数据,例如密钥材料、个人数据、公司专有数据,甚至专有算法都被视为机密信息,需要受到保护,以免被未授权方读取或更改。如前所述,内存管理单元(例如mmu、iommu、smmu)可用于保护内存免受来自其他地址空间(如虚拟机)或设备(物理或逻辑/虚拟)的未授权访问。读/写/无执行页面属性位还提供了地址空间内的受限访问。管理程序可以通过抽象和虚拟化硬件来添加一些额外的保护,这些硬件可以直接影响另一台虚拟机的执行环境。

  驻留在交换空间上的内存也应该受到保护。其目的是防止未授权方读取磁盘上的页面数据,例如,删除数据并在另一个系统上读取它。这可以通过加密来实现。整体磁盘加密是在相对较低的成本下提供此功能的一种方法。

  使用外部硬件调试器(如JTAG)和软件调试器访问内存不应该在该领域的生产系统中启用。在离开实验室或受控环境时,应始终关闭JTAG。当需要调试时,如果允许,则在字段中必须设置控件,以确保只有授权用户才能使用调试接口,并且对其他所有访问禁用。

  对使用中的数据进行安全保护还会涉及到对加密内存的机密性和完整性进行保护。内存加密用于在执行期间提供代码和数据的机密性。它用于保护内存中的秘密信息,即使系统的其它部分已遭到破坏,内存中的信息依然受到保护。使用内存加密是基于这样一个事实:只有CPU包被认为是可信的——而内存不可信。它还有另外一个作用,可以防止攻击者将代码注入正在运行的镜像,因为解密会导致代码损坏和程序失败。

  由于其速度快,内存加密方案通常使用对称密钥加密。此功能需要额外的硬件支持,包括驻留在内存管理子系统中的加密设备、支持加密硬件管理的操作系统,以及与加密内存相关的密钥管理方法。内存加密并非没有成本。当内存被提取到缓存并从缓存写入内存时,内存的动态加/解密会影响内存响应时间。在雾计算环境中,内存加密技术对某些类别的数据和某些应用具有明显的安全优势。它可以在威胁分析证明合理的情况下使用。

  (二)静止数据

  静止数据是指驻留在硬盘、固态硬盘(SSD)、优盘、CD、DVD等非易失性存储上的数据。加密是针对静态数据的前沿防御。在其他类型的数据中,它保护个人身份信息(隐私)和其他敏感数据(机密性),对具有正确密钥的人进行限制性访问,阻止没有密钥的用户访问数据,避免存储介质受到某种形式的物理损坏。

  它还满足许多合规性要求,消除了有关存储介质停用的任何顾虑,以及未经授权访问可能带来的物理威胁——即使具有物理访问权限的人员离开了雾节点驱动器,他们也将丧失访问权限。

  加密本身是不够的——密钥、策略和证书必须在安全存储中进行主动管理,以确保它们不会被泄露,并且不会落入坏人之手。系统管理员应该设置一个流程,用于监视从数据库、应用和OS/文件系统中访问数据的人员、内容、位置、时间和方式等信息,以及监控对敏感信息的访问和未经授权的访问尝试。所有安全事件都需要记录以便OAM系统进行后续的分析取证。通过管理程序的实例化,以及虚拟机中操作系统和应用程序的实例化,安全数据必须建立在一个安全的信任链上。

  通常有三种保护和加密静态数据的方法:

  (1)全磁盘加密

  尽管软件磁盘加密实现也存在,但在磁盘固件中通常使用基于硬件的加密机制来实现全磁盘加密。它的工作原理是自动加密写入磁盘的所有数据,并自动解密从磁盘读取的所有数据。这两种操作都依赖于拥有正确的身份认证密钥。如果没有正确的认证密钥,即使删除了硬盘驱动器,运行相同或不同软件的另一台机器也无法读取它。全磁盘加密的优点是它不需要软件或OAM系统的特别注意。如果使用软件加密,因为硬盘上的所有东西(包括操作系统)都加密了,加/解密过程可能会增加数据访问时间。全磁盘加密对位于公共场合(如商场、灯柱、街角、路边、车辆等)的雾设备最有用。由于一个密钥用于加密整个硬盘驱动器,所以OAM系统应该提供一个加密密钥备份机制,以防止系统由于某种原因变得不可用,同时需要提供数据检索功能以及安全备份。

  (2)文件系统(和数据库)加密

  文件系统级加密提供了一种方法,可以使用单独的基于密钥的访问和身份认证机制来保护文件或目录/文件夹上的特定文件。当存储在磁盘(或其他媒体)上的单个文件需要保护时,甚至需要防止其他应用(或用户)访问完全加密的磁盘。在使用中,文件使用对称文件加密密钥(FEK)加密。FEK则使用所有者的公钥进行加密。加密的FEK与加密的文件一起存储。要解密文件,文件系统首先使用与所有者公钥匹配的私钥对嵌入的FEK进行解密,然后使用FEK解密文件。整个数据库、单条记录或记录中的字段也可以进行加密。文件系统加密可以由运行在相同虚拟机中的应用使用,这些应用中的数据是专有的,或者包含了其他敏感数据或私有数据的文件。

  (3)文件系统访问控制机制

  文件系统访问控制机制通过USERID或GROUPID限制对特定文件或文件组的访问。所有现代文件系统都以某种方式控制文件权限。应用于权限组的基本文件权限是权限类型。

  权限组——每个文件和目录都有三个基于用户的权限组:

  ?    所有者:所有者权限仅适用于文件或目录的所有者,它们不会影响其他用户的操作。

  ?    组:组权限仅适用于已分配给文件或目录的组,它们不会影响其他用户的操作。

  ?    所有用户:所有用户权限适用于系统上的所有其他用户,这通常是最重要的权限组。

  权限类型——每个文件或目录都有三种基本权限类型:

  ?    读:读权限是指用户读取文件内容的能力。

  ?    写:写权限是指用户写入或修改文件或目录的能力。

  ?    执行:执行权限影响用户执行文件或查看目录内容的能力。

  这些机制是定义USERID和GROUPID的操作系统环境中的重要控件。通常为管理员。在为特定操作系统文件环境设置USERID和/或GROUPID时,将通过OAM操作指定访问权限。如果不同的应用在相同的操作系统环境中运行,每个应用需要对共享文件系统中的数据进行不同的访问(例如,对于某些应用来说是只读的,对于数据生成应用来说是可读写的),那么这一点会非常重要。

  (三)动态数据

  动态数据,有时称为传输中的数据,用于描述网络接口(包括虚拟网络接口)与雾节点之间发送和接收的数据包,即通过网络传输的信息。系统管理员应该使用VPN、SSL或其他技术为所有正在运行的敏感信息或私有数据进行加密,以保护数据在传输过程中不被破坏或以明文形式显示。

  对于动态数据的保护,可以使用两种方法进行加密:使用加密连接或使用加密文件。加密连接是指通过网络连接发送的任何内容都自动加密,而不管要发送的信息的加密状态如何。例如,如果发送一个已经加密的文件,它将在发送时再次加密(使用不同的密钥)。在传输过程中,后续数据的另一种安全方法是使用已加密的文件。由于加密的文件以加密的形式存在,所以它总是加密的,因此是受保护的。

  五。结语

  目前,雾计算安全的研究还刚刚起步,对于用户而言,在享受高速率、低延迟和响应时间的高质量服务的同时,还需要避免用户数据在传输过程中被窃听和盗用,因此,研究人员需要在分析雾计算系统特征的基础上,深入研究雾计算安全所涉及的关键技术,从节点安全、网络安全、数据安全等三个方面研究数据安全保护解决方案,针对不同的数据类型找到合适的加密算法,实现对雾计算中数据安全的保障。




电子技术图片.png

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。