基于软件定义网络的非集中式信息流控制系统



  0 引言

  近年来,数据泄漏事件层出不穷,2011年3月,谷歌邮箱爆发大规模的用户数据泄漏事件,大约15万Gmail用户所有邮件被删,部分用户账户被重置。2013年3月,Evernote遭到黑客入侵,用户名、用户邮箱地址及加密后的密码等信息被黑客窃取,Evernote还因此迫使约5000万名用户重置密码。敏感信息的丢失给用户和企业带来了巨大的损失,因此保护敏感信息的机密性和完整性是研究者急需解决的问题。针对主机中敏感信息的保护,研究者作了如下研究。

  1)自主访问控制(Discretionary Access Control, DAC)与强制访问控制(Mandatory Access Control, MAC)。访问控制是保护用户数据隐私性的常用手段之一,主要通过访问权限控制来实现对系统信息和资源的保护,防止非授权的访问。传统的访问控制机制主要分为自主访问控制(Discretionary Access Control, DAC)和强制访问控制(Mandatory Access Control, MAC)[1]。经典的访问控制模型,如BLP(BellLaPudula)[2]、Biba模型都具有各自的优缺点。BLP模型有效解决了信息机密性的问题,却忽略了信息的完整性。而Biba模型在完整性标签的确认上相对困难,其分类和分级没有相应的标准支持,在保护数据一致性方面不充分。另外,BLP[2]模型、Biba模型的访问控制粒度都是用户级,粒度较粗。

  2)信息流控制(Information Flow Control, IFC)与非集中式信息流控制(Decentralized Information Flow Control, DIFC)。为了解决经典访问控制模型对数据隐私性保护粒度过粗的问题,研究者提出了信息流控制(Information Flow Control, IFC)模型[3],但其采用的是集中式的授权和控制策略,灵活性较低;非集中式信息流控制(Decentralized Information Flow Control, DIFC)[1]机制是基于IFC提出的,它摒弃了IFC集中式的授权和控制,由分散的数据所有者控制。数据所有者以标签的方式设置数据的安全级和完整级,并利用可信程序将对数据进行操作的权力下放给其他程序,根据访问控制规则对数据流进行仲裁,拦截不安全的数据流,放行安全的数据流并更新数据流涉及的数据和程序的安全状态。

  信息的泄漏不只发生在主机,网络中敏感信息泄漏的问题同样严重。但是传统的信息流控制在网络中并没有像在主机中那样快速发展,大多采用单一的防火墙策略,缺乏可控性与灵活性。造成这种现象的主要原因在于网络主客体定义的困难性以及网络与主机系统的自治性。例如传统网络控制代码与转发信息都存放在交换机等设备中,开发者无法灵活地对信息流进行监控。

  近几年软件定义网络(Software Defined Network, SDN)技术的出现,为更好地实现敏感信息流控制提供了良好契机。SDN的设计理念是将网络的控制平面与数据转发平面进行分离,逻辑上集中的控制平面能够支持网络资源的灵活调度,灵活的开放接口能够支持网络能力的按需调用,并实现可编程化控制,支持网络业务的创新。SDN的众多优点促使其迅速发展,众多企业与机构参与了对SDN的研究,并构建了商业网络,其中最著名的是Google的B4网络[4]。基于SDN,研究者可以利用灵活的控制策略实现对敏感信息的监控。

  以上研究在一定程度上实现了对敏感信息的监控,然而主机端和网络端敏感信息的监控是相对独立的,并没有形成一体化的监控系统,例如:主机端可以利用DIFC监控文件、进程等信息,当发送机密文件到网络的时候,却不得不放弃这些信息的机密性,而在网络信息流流向主机时,信息流所携带的敏感性同样遭到抛弃,这是不可以接受的。

  针对以上问题,本文提出了一种基于SDN的非集中式信息流控制系统——SDIFC(design framework of DIFC system based on Software Defined Network),较好地实现了敏感信息的全局监控。

  1 相关工作

  针对隐私信息泄露问题,研究者对DIFC的应用进行了广泛而深入的研究,已经存在许多可用的系统实现。现有的DIFC系统实现主要有两类:基于语言的系统实现和基于操作系统的实现。基于操作系统的DIFC实现,主要有HiStar[5]、Asbestos[6]和Dstar[7];基于语言的系统实现主要有JFlow和它的继承者——JIF请补充JIF的英文全称。[1]。