一种网络环境中实现多级安全访问控制的技术方法 【技术领域】
本发明涉及一种网络环境下的信息安全技术,确切说是涉及一种能有效防止内部用户,在网络中随便泄漏信息的多级安全访问的控制方法。
背景技术
由于计算机和网络的广泛使用,计算机之间的信息共享快速增长,而目前操作系统的安全机制主要考虑单机系统的信息安全,忽视了网络环境下的信息安全。计算机网络的安全问题一直是研究的热点,过去对网络环境信息安全的研究,主要考虑信息在网络上传送时其本身的安全问题,比如机密性、有效性问题,主要是针对信息的非法窃听,这些问题可以通过加密技术来解决,而对合法用户的信息泄露问题却很少关心。然而,当两个或两个以上独立自主的主机互联构成计算机网络时,操作系统本身的保护机制已经不适合保护计算机网络的通信。由于网络的分布特性,高度开放性,网络信息的共享性,合法用户是可以随便泄露自己所知道的信息,只要允许用户使用网络,只需简单的SOCKET编程,简单的C/S程序就可以将自己所知道的信息传递到世界的任何地方。这对于计算机网络系统来说,自然存在一个很大地漏洞。虽然,网络通信已有TCP/IP协议,但是这个协议对网络通信的控制是脆弱的,通过网络两个用户是很容易通信的,它几乎不受任何限制。解决这个问题,要求对网络间的通信有安全策略,对信息共享应实施控制。
早期的多级安全网络的研究主要针对局域网,采用专用的网络接口设备,通过修改链路层协议,或者通过构造逻辑网络,由逻辑网关来实施对逻辑网络的强制访问控制;或者通过逻辑抽象,对数据报实施强制访问控制,来达到主机之间的强制访问控制目的。其缺点是:①要靠硬件实现,不经济;②要修改链路层协议,带来不兼容的问题;③通过逻辑网关控制,粒度较粗。
【发明内容】
本发明的目的在于:针对网络安全存在的上述问题,提供一种能在操作系统核心实现,具有更高的网络效率和网络应用的兼容性、配置管理简单容易、能有效防止内部用户泄漏息信,在网络环境中实现多级安全访问控制的技术方法。
本发明的目的是这样实现的:
一种网络环境中实现多级安全访问控制的技术方法,其特征在于:修改操作系统核心TCP/IP协议栈,包括修改UDP报文,修改TCP的握手过程,在TCP/UDP层实施网络强制访问控制措施。
UDP报文的修改内容是:
①发送
由于UDP是按数据包为单位进行通信的,因此每个UDP数据应包含MAC信息,而进程又不知道对等进程的其他任何信息,因此需要将MAC信息封装在UDP数据上,具体做法是将MAC信息封装在有效数据的头部,然后才是有效数据;UDP在发送数据时,在用户数据前面封装上MAC信息,再加上UDP头信息,交给IP层发送。
②接收
对等实体收到UDP数据报后,先按通常情况解封,取得对方的MAC信息,然后与自己的MAC信息比较,根据多级安全策略,以确定是否可以接受此数据报,否者丢弃。
对TCP三次握手过程的修改是:
①连接请求
在请求方发送连接请求时,除了发送通常的信息外,还要发送自己的MAC信息;将自己的MAC信息和SYN请求一起发送;
②响应请求
服务器方接受到连接请求后,发回响应信息的同时也发回自己的MAC信息;
③连接建立
连接请求的建立应和通常的TCP/IP协议相一致;
在TCP/UDP层实施网络强制访问控制
通过TCP连接建立的三次握手过程,客户/服务方已经完成了MAC信息的交换,可以实施强制访问控制安全策略;
(1)发送
在发送数据时,首先将自己的MAC标签与对方的MAC标签比较,若对方的MAC标签支配自己的MAC标签则可以发送,否则不发送;对于没有MAC标签的主机,是不能发送的;
(2)接收
接收到的数据,都是在发送时通过了强制访问安全策略检查的,所以是可以接收的;通过上述机制,可以实现网络环境下的强制安全策略,有效的控制主机之间的信息交换。
本发明的优点在于:①在操作系统核心实现,具有更高的效率和安全性;
由于本发明实现了修改操作系统核心TCP/IP协议栈,包括修改UDP报文,修改TCP的握手过程,在TCP/UDP层实施网络强制访问控制,因而对现有技术提供了最大的兼容性。如果在IP层实施,可能是最简单的方法,但是IP层关系到网络的寻径问题,而且如果每个IP报都包含一个MAC信息,其效率是低下的。因此在TCP/UDP层实现几乎可以不影响效率,特别是对TCP通信还会提高网络的效率,避免垃圾数据在网络上传送。
②有效防止内部用户泄漏信息,支持复杂的信任关系;当前网络安全产品,如防火墙,主要针对外部用户的保护,而对内部用户是无能为力的,而强制访问控制可以支持复杂的信任关系,以及通信的安全端。
③完全兼容当前的网络应用;本发明与目前的网络应用完全兼容,所用应用和服务仍然可以正常使用。除了提高了安全性和在增强了访问控制能力之外,没有其他任何影响。
④配置管理简单容易;由于本发明具有很好的兼容性,并充分考虑了用户的实用习惯,因而配置和管理起来就十分方便和简单。
【附图说明】
图1为本发明中UDP数据报中MAC信息的封装和解封示意图
图2为本发明中用户与服务间的MAC信息交换示意图
【具体实施方式】
根据上面的技术方案,下面给出一个基于Linux操作系统的实现举例。
1.软件设计
要实施网络环境下的强制访问控制机制,需要解决以下几个问题:
1)各主机节点间的MAC标签的传送问题;
2)各主机节点间的MAC标签的相互认识问题;
3)对TCP/UDP协议包的修改处理;
4)还要考虑兼容现存的应用问题;
另外一点要考虑的问题是,是否需要设置网络特权主机的问题;如果设置,则该主机就可以和任何其他主机通信,而不管其MAC标签。一方面,可以带来方便;另一方面,也会带来安全隐患,就像OS中的ROOT用户。
当前的设计支持16个敏感级别,28个类别集合。原因是LINUX核心TCP/IP协议栈固有的限制,当然还可以小部分的增加:虽然表示的能力有限,但也能满足一定的应用场合。
LINUX为应用程序提供的网络接口是BSD SOCKET API,因此,SOCKET是主要的控制对象。当由系统调用创建SOCKET时,它缺少继承创建进程的MAC标签,若SOCKET是由连接创建的,它继承监听SOCKET的MAC标签。LINUX的AF-INET协议族创建两个类型的SOCKET,即TCP和UDP。对面向连接的协议,消息的MAC标签就是发送SOCKET的MAC标签;对无连接的协议,每个消息都需要携带MAC标签。
主机之间的信息交换主要是通过TCP/IP协议完成的。当主机A想同主机B通信时;
1)对TCP协议:SERVER进程一直在监听CLIENT的请求,若有请求到达,则SERVER取得CLIENT的MAC标签,调用检验函数以确定是否接受请求,建立连接。为此需要区分请求的类型,比如是请求取得数据,还是发出数据;
2)对UDP协议:SERVER进程一直在等待CLIENT的数据报,在处理之前要根据到达的数据报的MAC标签,以确定是否做进一步的处理。
通过修改TCP/IP协议栈,实施对主机之间通信的强制访问控制。
2.应用举例
2.1前提条件
下面举一个实际应用的例子。为了便于描述,我们首先假定如下几个前提条件:
1.有一个网络安全管理员,负责主机之间的通信控制;
2.参与通信的主机A和主机B都有网络MAC机制的TCP/IP核心协议栈;
3.主机A和主机B在物理上是可以通信的;
4.希望限制主机A和主机B之间的通信。
2.2具体操作步骤
A.UDP协议举例
我们希望通过配置达到如下目的:
主机A可以向主机B发送数据,主机B不能向主机A发送数据,只能接受主机A发送的数据。
则具体配置方式如下:
1.主机A的安全级别LA;
2.配置主机B的安全级别LB,适得LA小于等于LB;
3.配置主机A的类别集合CA;
4.配置主机B的类别集合CB,使得CB包含CA;
5.启动网络MAC机制。
B.TCP协议举例
我们希望通过配置达到如下目的:
主机A和主机B通过TCP协议相互通信。
则具体配置方式如下:
1.配置主机A的安全级别LA;
2.配置主机A的类别集合CA;
3.配置主机B的安全级别LB,使得LB=LA;
4.配置主机B的类别集合CB,使得CB=CA;
5.启动网络MAC机制;