一种基于Linux安全模块的云平台间的信息流控制系统及方法转让专利

申请号 : CN202010410615.7

文献号 : CN111683056B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金舒原杨立坤鲁金钿

申请人 : 中山大学

摘要 :

本发明公开了一种基于Linux安全模块的云平台间的信息流控制系统及方法,所述系统包括:控制模块、通信模块、Linux安全模块、若干云平台,每个云平台均包括有客户端管理模块,所述控制模块用于处理云平台的服务请求,所述通信模块用于代表进程间的通信,所述Linux安全模块通过覆盖进程通信的hook函数以执行信息流控制策略;所述云平台通过客户端管理模块向控制模块请求服务、连接进程、发送接收数据、警告不符合信息流控制策略的信息流。本发明通过在云平台之间引入信息流控制可以有效控制信息的传播和流动,保证接收方在接收数据后合法地传播数据,保证信息传播过程中的保密性和完整性。

权利要求 :

1.一种基于Linux安全模块的云平台间的信息流控制系统,其特征在于,包括:控制模块、通信模块、Linux安全模块、若干云平台,其中每个云平台均包括有客户端管理模块,所述控制模块用于处理云平台的服务请求,所述通信模块用于进程间的通信,所述Linux安全模块通过覆盖进程通信的hook函数以执行信息流控制策略;所述云平台通过客户端管理模块向控制模块请求服务、连接进程、发送接收数据、警告不符合信息流控制策略的信息流;

所述控制系统中包括有三类进程:控制进程、代表进程、公共进程,所述控制进程用于执行控制模块的功能;

所述代表进程均与设定的云平台的IP关联,每个代表进程拥有可配置的信息流控制策略,负责与其他云平台的通信;

所述公共进程是公共领域的信息进出口。

2.一种基于Linux安全模块的云平台间的信息流控制方法,所述方法应用于如权利要求1所述的基于Linux安全模块的云平台间的信息流控制系统,其特征在于,所述方法包括注册阶段和通信阶段,

所述注册阶段步骤包括:

云平台首先通过客户端管理模块向控制模块发起注册请求,确定指定的安全策略和注册的IP地址;控制模块根据云平台指定的安全策略设置代表进程的标签;最后控制模块将注册的IP地址和管道文件路径的映射关系配置到通信模块的管道解析表中,以供通信阶段使用;

所述通信阶段步骤包括:

云平台的客户端管理模块首先利用IP隧道技术将数据包发送给通信模块;通信模块利用管道解析表将数据包的目的IP地址转换为管道文件路径;最后通信模块通过Linux安全模块的hook函数实现权限控制。

3.根据权利要求2所述的一种基于Linux安全模块的云平台间的信息流控制方法,其特征在于,所述注册阶段的具体过程:

S1:云平台的客户端管理模块向控制模块发出注册代表进程的请求,控制模块接收请求后创建代表进程;控制模块通过linux安全模块配置代表进程的安全上下文,并返回状态值至控制模块;

S2:控制模块创建用于接收信息的管道;控制模块向云平台的客户端管理模块获取注册IP,云平台的客户端管理模块返回注册IP;

S3:控制模块调用通信模块的应用程序接口更新管道解析表,通信模块返回状态值至控制模块,并将接收到的返回状态值发送至客户端管理模块。

4.根据权利要求3所述的一种基于Linux安全模块的云平台间的信息流控制方法,其特征在于,所述安全上下文包括有保密性标记和完整性标记,保密性标记保护信息的发送方,保证其敏感数据不流向未经授权的实体;完整性标记保护信息的接受方,保证敏感数据不受未经授权实体的修改,保证数据来源的真实性;标记是标签的集合,每一个标签都是云平台或者注册IP的唯一标识符,标识符包括有:IP地址、数字、字符串,分别用S和I表示保密性标记和完整性标记。

5.根据权利要求2所述的一种基于Linux安全模块的云平台间的信息流控制方法,其特征在于,云平台的客户端管理模块进行IP包的封装,然后将数据包发送至通信模块,通信模块取出数据包中IP地址,通过查询管道解析表IP地址转换为管道文件路径,打开管道,通信模块向linux安全模块查询访问权限,若权限不足,则通信模块返回失败状态值至云平台,若权限满足则将数据包中的数据写入管道,并返回成功的状态值至云平台。

6.根据权利要求2所述的一种基于Linux安全模块的云平台间的信息流控制方法,其特征在于,所述Linux安全模块在内核数据结构中增加安全域字段,并在内核代码的关键点添加hook函数以进行访问控制。

7.根据权利要求2所述的一种基于Linux安全模块的云平台间的信息流控制方法,其特征在于,IP隧道技术是云平台的客户端管理模块在发送数据时,先把原始IP报文用带有代表进程的目的IP地址进行封装再传输;在通信模块接收数据时,先解除封装用的协议再递交给比本级层次高的网络协议。

说明书 :

一种基于Linux安全模块的云平台间的信息流控制系统及

方法

技术领域

[0001] 本发明涉及云计算安全领域,更具体地,涉及一种基于Linux安全模块的云平台间的信息流控制系统及方法。

背景技术

[0002] 随着计算机技术的发展和业界需求的提高,云计算已经不只是一种分布式计算,而是以互联网为载体,分布式存储、负载均衡以及虚拟化等技术的结合体。云计算具有高可
靠性、高可扩展性以及高性价比等优点,能够很好地减少企业的初期建设成本和后期维护
成本。但多租户隔离、权限管理以及隐私数据保护等安全需求给云计算带来严峻的安全挑
战。云计算技术已经在生活中得到广泛的应用,诞生出各种各样的云计算系统和平台,其中
包括医疗云、金融云、教育云以及科研云等。然而如今没有一种通用的方法来管理各种云平
台之间的隐私数据的流动,这种现象导致用户数据在云平台之间共享时,其保密性和完整
性得不到保证。
[0003] 传统的访问控制和加密方法是比较成熟的数据安全技术,但这些技术只能保证在端与端之间数据传输安全,并不能较好保证接收端在接收数据后安全、合法地传播数据。例
如医疗云作为一个医疗健康服务的云平台,其病人们的挂号、病历以及医保等隐私数据愿
意作为研究数据提供给科研人员,但不愿意流传到公共场所。即科研云被允许读取医疗云
的数据,而存储云不被允许。但传统的访问控制和加密方法只能保证数据从医疗云传送到
科研云时的安全,但不能保证科研云在接收到数据后合法地利用、传播这些数据。科研云可
能出于某种原因(配置不当、功能不完善等)将医疗数据传播给存储云,导致医疗数据的保
密性得不到保证。
[0004] 在实际应用情形下并不是所有病人都愿意将其隐私数据提供给科研人员,或者有些病人根本不在意其隐私数据是否公开。传统的访问控制和加密方法的灵活性不高,不足
以适应信息发送方对信息流动策略的需求的变化。

发明内容

[0005] 本发明为克服上述现有技术中云平台之间进行信息传输仅能保证传输的安全性无法保证接收方在接收数据后、合法地传播数据的缺陷,提供一种基于Linux安全模块的云
平台间的信息流控制系统及方法。
[0006] 本发明的首要目的是为解决上述技术问题,本发明的技术方案如下:
[0007] 本发明第一方面提供了一种基于Linux安全模块的云平台间的信息流控制系统,包括:控制模块、通信模块、Linux安全模块、若干云平台,每个云平台均包括有客户端管理
模块,所述控制模块用于处理云平台的服务请求,所述通信模块用于进程间的通信,所述
Linux安全模块通过覆盖进程通信的hook函数以执行信息流控制策略;所述云平台通过客
户端管理模块向控制模块请求服务、连接进程、发送接收数据、警告不符合信息流控制策略
的信息流。
[0008] 本方案中,所述控制系统中包括有三类进程:控制进程、代表进程、公共进程,所述控制进程用于执行控制模块的功能;
[0009] 所述代表进程均与设定的云平台的IP关联,每个代表进程拥有可配置的信息流控制策略,负责与其他云平台的通信;
[0010] 所述公共进程是公共领域的信息进出口。
[0011] 本发明第二方面提供了一种基于Linux安全模块的云平台间的信息流控制方法,所述方法应用于基于Linux安全模块的云平台间的信息流控制系统,所述方法包括注册阶
段和通信阶段,
[0012] 所述注册阶段步骤包括:
[0013] 云平台首先通过客户端管理模块向控制模块发起注册请求,确定指定的安全策略和注册的IP地址;控制模块根据云平台指定的安全策略设置代表进程的标签;最后控制模
块将注册的IP地址和管道文件路径的映射关系配置到通信模块的管道解析表中,以供通信
阶段使用;
[0014] 所述通信阶段步骤包括:
[0015] 云平台的客户端管理模块首先利用IP隧道技术将数据包发送给通信模块;通信模块利用管道解析表将数据包的目的IP地址转换为管道文件路径;最后通信模块通过Linux
安全模块的hook函数实现权限控制。
[0016] 本方案中,所述注册阶段的具体过程:
[0017] S1:云平台的客户端管理模块向控制模块发出注册代表进程的请求,控制模块接收请求后创建代表进程;控制模块通过linux安全模块配置代表进程的安全上下文,并返回
状态值至控制模块;
[0018] S2:控制模块创建用于接收信息的管道;控制模块向云平台的客户端管理模块获取注册IP,云平台的客户端管理模块返回注册IP;
[0019] S3:控制模块调用通信模块的应用程序接口更新管道解析表,通信模块返回状态值至控制模块,并将接收到的返回状态值发送至客户端管理模块。
[0020] 本方案中,所述安全上下文包括有保密性标记和完整性标记,保密性标记保护信息的发送方,保证其敏感数据不流向未经授权的实体;完整性标记保护信息的接受方,保证
敏感数据不受未经授权实体的修改,保证数据来源的真实性;标记是标签的集合,每一个标
签都是云平台或者注册IP的唯一标识符,标识符包括有:IP地址、数字、字符串,分别用S和I
表示保密性标记和完整性标记。
[0021] 本方案中,云平台的客户端管理模块进行IP包的封装,然后将数据包发送至通信模块,通信模块取出数据包中IP地址,通过查询管道解析表IP地址转换为管道文件路径,打
开管道,通信模块向linux安全模块查询访问权限,若权限不足,则通信模块返回失败状态
值至云平台,若权限满足则将数据包中的数据写入管道,并返回成功的状态值至云平台。
[0022] 本方案中,所述Linux安全模块在内核数据结构中增加安全域字段,并在内核代码的关键点添加hook函数以进行访问控制。
[0023] 本方案中,IP隧道技术是云平台的客户端管理模块在发送数据时,先把原始IP报文用带有代表进程的目的IP地址进行封装再传输;在通信模块接收数据时,先解除封装用
的协议再递交给比本级层次高的网络协议。
[0024] 与现有技术相比,本发明技术方案的有益效果是:
[0025] 本发明通过在云平台之间引入信息流控制可以有效控制信息的传播和流动,保证接收方在接收数据后合法地传播数据,保证信息传播过程中的保密性和完整性。

附图说明

[0026] 图1为本发明系统结构图。
[0027] 图2为本发明注册代表进程时序图。
[0028] 图3为本发明云平台发送数据时序图。
[0029] 图4为本发明代表进程间通信流程图。
[0030] 图5为本发明实施例提供的一种信息流示意图。

具体实施方式

[0031] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施
例及实施例中的特征可以相互组合。
[0032] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开
的具体实施例的限制。
[0033] 实施例1
[0034] 如图1所示,本发明第一方面提供了一种基于Linux安全模块的云平台间的信息流控制系统,包括:控制模块、通信模块、Linux安全模块、若干云平台,每个云平台均包括有客
户端管理模块,所述控制模块用于处理云平台的服务请求,所述通信模块用于进程间的通
信及管道解析表的增删改查,
[0035] 所述Linux安全模块通过覆盖进程通信的hook函数以执行信息流控制策略;所述云平台通过客户端管理模块向控制模块请求服务、连接进程、发送接收数据、警告不符合信
息流控制策略的信息流。需要说明的是,只有同时符合保密性标签增加和完整性标签减少
的信息流才是安全合法的(也即符合符合信息流控制策略的),无法同时符合符合保密性标
签增加和完整性标签减少的信息流为非法信息流,即为不符合信息流控制策略的信息流。
[0036] 对本发明中系统各模块进一步的说明
[0037] 控制模块
[0038] 控制模块作为系统的控制中心负责向云平台提供服务和功能,云平台身份认证、代表进程的注册和注销、信息流控制策略的配置管理以及管道解析表的更新。
[0039] 对于信息流控制,本发明中是基于格的信息流控制模型即将标记附着在数据上,在数据传播的过程中使用标记来限制其流动方向。基于格的信息流控制模型将系统的信息
流控制策略形式化地描述为安全类的偏序格结构。设是一个偏序集合,并且L中每一
对元素都存在最小上界和最大下界,则称二元组是格。在基于格的信息流控制模型
中,L是安全类的集合。每一个安全类代表一种安全级别,安全级别之间可以存在比较关系,
也可以不存在。
[0040] 从信息保密性的角度举个简单的例子,假设L={{medical},{research,medical,financial},{financial}, },分别表示医疗云、科研云、金融云以及存储云的数据的安全
级别;≤表示“包含于”的关系。所以{medical}包含于{research,medical,financial},即
科研云的数据的安全级别比医疗云的高。科研云作为最小上界,其安全级别是最高的;存储
云作为最大下界,代表“公共场所”,其安全级别是最低的。只有从安全级别较低的一方流向
安全级别较高的一方的信息流才是安全的。因此在该例子中,医疗云的数据只允许流向科
研云,而不能流向金融云,更不能泄露给存储云。如图5所示为信息流示意图。
[0041] 对于代表进程的注册和注销,云平台在认证后可以注册其代表进程,此后代表进程将代表云平台与外界进行通信。注册过程分4个步骤:
[0042] (1)创建代表进程;
[0043] (2)配置代表进程的安全上下文;
[0044] (3)创建一条或者多条用于接收信息的管道;
[0045] (4)建立云平台所注册的IP地址和管道文件路径之间的一对多映射关系,更新管道解析表。云平台可以注册多个IP地址,创建多个代表进程,但每个IP地址都只有一个代表
进程与之对应。
[0046] 在配置代表进程的安全上下文时,首先需要为云平台生成一个唯一的标识符。可以由控制模块统一分配随机的、唯一的数字作为标识符。该标识符作为标签总是属于完整
性标记。需要注意的是,云平台在注册过程中可以任意地配置其保密性标记,因为保密性标
记仅表示信息发送方所愿意共享数据的对象,而还需要信息接收方愿意接纳其数据才能形
成安全的信息流。完整性标记的配置则需要认证过程。如果完整性标记包含其它云平台的
标签,则只有在得到对应云平台的允许后才能进行配置,以保证其完整性。
[0047] 相对的,代表进程的注销包括删除管道解析表的数据项和终止进程等操作。
[0048] 通信模块
[0049] 所述通信模块用于代表进程间的通信及管道解析表的增删改查,本系统的进程间通信采用有名管道的方式,所以通信模块维护一个名为管道解析表的数据结构,记录IP地
址与管道文件路径之间一对多映射关系的信息,目的是为了将IP地址解析成管道的文件路
径。如果在解析过程中找不到对应的代表进程的管道,说明该IP地址没注册,则返回公共进
程的管道文件路径,将数据发送到公共领域。管道解析表可以使用哈希表、红黑树或优先级
队列等数据结构实现。
[0050] 需要注意的是,每个代表进程在注册时已经创建好只用于接收信息的一条或多条管道,这些管道继承代表进程的安全上下文。假设代表进程A需要发送信息给代表进程B,则
A通过管道解析表解析得到的是代表进程B在注册时创建的管道的文件路径。
[0051] 如图4所示,代表进程间的通信过程可以分解为4步:
[0052] 第一步:代表进程A从云平台接收IP报文,抽取出目的IP地址;
[0053] 第二步:代表进程A利用管道解析表将IP地址解析成对应的代表进程B的管道的文件路径;
[0054] 第三步:代表进程A使用文件路径打开管道;
[0055] 第四步:代表进程A向管道写入信息,代表进程B向管道读出信息。
[0056] 本方案中,所述控制系统中包括有三类进程:控制进程、代表进程、公共进程,所述控制进程用于执行控制模块的功能;
[0057] 所述代表进程均与设定的云平台的IP关联,每个代表进程拥有可配置的信息流控制策略,负责与其他云平台的通信;
[0058] 所述公共进程是公共领域的信息进出口。
[0059] 需要说明的是,在本发明中每一方云平台都有其专属的一个或者多个代表进程。云平台之间不直接进行通信,而是由与云平台相对应的代表进程代表云平台进行通信。云
平台可以向控制模块注册多个代表进程,绑定多个IP地址,定制多种信息流控制策略,以满
足多种特定的安全需求。相反,公共进程作为公共领域的信息进出口,并不绑定任何IP地
址。当通信模块在管道解析表中找不到目的地址的匹配项时,默认返回公共进程的管道文
件路径,以公共领域的安全约束转发数据。
[0060] 本发明第二方面提供了一种基于Linux安全模块的云平台间的信息流控制方法,所述方法应用于基于Linux安全模块的云平台间的信息流控制系统,所述方法包括注册阶
段和通信阶段,
[0061] 所述注册阶段步骤包括:
[0062] 云平台首先通过客户端管理模块向控制模块发起注册请求,确定指定的安全策略和注册的IP地址;控制模块根据云平台指定的安全策略设置代表进程的标签;最后控制模
块将注册的IP地址和管道文件路径的映射关系配置到通信模块的管道解析表中,以供通信
阶段使用;
[0063] 所述通信阶段步骤包括:
[0064] 云平台的客户端管理模块首先利用IP隧道技术将数据包发送给通信模块;通信模块利用管道解析表将数据包的目的IP地址转换为管道文件路径;最后通信模块通过Linux
安全模块的hook函数实现权限控制。
[0065] 如图2所示,本方案中,所述注册阶段的具体过程:
[0066] S1:云平台的客户端管理模块向控制模块发出注册代表进程的请求,控制模块接收请求后创建代表进程;控制模块通过linux安全模块配置代表进程的安全上下文,并返回
状态值至控制模块;
[0067] S2:控制模块创建用于接收信息的管道;控制模块向云平台的客户端管理模块获取注册IP,云平台的客户端管理模块返回注册IP;
[0068] S3:控制模块调用通信模块的应用程序接口更新管道解析表,通信模块返回状态值至控制模块,并将接收到的返回状态值发送至客户端管理模块。
[0069] 本方案中,所述安全上下文包括有保密性标记和完整性标记,保密性标记保护信息的发送方,保证其敏感数据不流向未经授权的实体;完整性标记保护信息的接受方,保证
敏感数据不受未经授权实体的修改,保证数据来源的真实性;标记是标签的集合,每一个标
签都是云平台或者注册IP的唯一标识符,标识符可以是IP地址、数字、字符串等。分别用S和
I表示保密性标记和完整性标记。
[0070] 例如信息从A流向B是安全的,当且仅当 即只有同时符合保密性标签增加和完整性标签减少的信息流才是安全的。公共进程拥有保密性最低,完整
性最低的安全上下文。
[0071] 如图3所示,本方案中,云平台的客户端管理模块进行IP包的封装,然后将数据包发送至通信模块,通信模块取出数据包中IP地址,通过查询管道解析表IP地址转换为管道
文件路径,打开管道,通信模块向linux安全模块查询访问权限,若权限不足,则通信模块返
回失败状态值至云平台,若权限满足则将数据包中的数据写入管道,并返回成功的状态值
至云平台。
[0072] 本方案中,所述Linux安全模块在内核数据结构中(例如struct task_struct)增加安全域字段,并在内核代码的关键点添加hook函数以进行访问控制。因此安全域字段可
以存放安全上下文,包括保密性标记和完整性标记。由于通信模块采用的是管道进行通信,
而管道的本质是一种特殊的文件。在内核数据结构中,struct file和struct inode分别包
括f_security和i_security的安全域字段,选其一来存放安全上下文即可,该方法选择了
f_security。所以本系统主要涉及代表进程和文件的安全域字段和hook函数。代表进程的
安全上下文在云平台注册的阶段已经确定,而文件或inode则继承创建管道的代表进程的
安全上下文。在linux‑5.3.1版本的Linux安全模块中,涉及管道通信和文件的主要hook函
数包括file_open、file_permission、file_alloc_security、file_free_security等。
file_open将打开文件时的权限检查状态保存到以后供file_permission使用;file_
permission在访问打开的文件之前检查文件权限,被不同的读写文件的操作所调用;file_
alloc_security和file_free_security为f_security字段分配或回收一个安全结构。
[0073] 本方案中,IP隧道技术是云平台的客户端管理模块在发送数据时,先把原始IP报文用带有代表进程的目的IP地址进行封装再传输;在通信模块接收数据时,先解除封装用
的协议再递交给比本级层次高的网络协议。
[0074] 本发明具有四个方面的效果:第一,通过将信息流控制技术应用到云平台间的通信,可以控制信息的传播和流动,避免信息流向未经授权的利益相关方。第二,云平台可以
通过注册多个代表进程,来为不同的部门或者不同类型用户的需求定制安全策略,灵活性
较高。第三,信息流控制不仅能实时检测信息流动的合法性,更能提供详细的信息流动日
志,可以更直观、更快捷地得知信息泄露的路径,以供日志审计或者漏洞检测等安全技术使
用。第四,基于Linux安全模块的信息流控制以内核模块的形式加载到Linux内核中,实现并
运行于内核空间,其保密性和完整性随着内核的安全性提高而提高。
[0075] 显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可
以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本
发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求
的保护范围之内。