1概述
1.1电子政务
电子政务是指通过应用、服务及网络3个层面,运用信息及通信技术打破行政机关的组织界限,构建电子化的虚拟机关,以实现政府机关获取和提供信息的网络化及其与社会公众的电子互动化。因而电子政务是面向政府机关内部、其他政府机构、企业以及社会公众的基于Internet技术的信息处理系统。一般是通过建立Web服务器作为政府信息的发布和交换平台的。
因为电子政务系统涉及的是政府机关的信息,所以对系统的安全管理要求非常严格。一般模式是网络安全管理系统对政府内部网所有用户和所有网上的业务系统进行统一管理,为网上的每一个用户进行授权,对入网的每一项服务项目,进行分发授权,保证整个网络的安全运行。但是单对用户进行授权,当用户密码失窃时,安全性将无法保证。于是我们提出将MAC地址与IP地址的绑定作为一种访问控制的手段运用于电子政务安全管理系统。
1.2 MAC地址与IP地址
现行的TCP/IP网络是一个4层协议族结构,从下往上依次为链路层、网络层、传输层和应用层。以太网协议是链路层协议,使用的地址是MAC地址。MAC地址是以太网网卡在以太网中的硬件标志,网卡生产时将其存于网卡的E2PROM中。网卡的MAC地址各不相同,MAC地址可以惟一标志一块网卡。在以太网上传输的每个报文都含有发送该报文的网卡的MAC地址。以太网根据以太网报文头中的源MAC地址和目的MAC来识别报文的发送端和接收端。MAC地址在设计初期是要求全球惟一的。
IP协议应用于网络层,使用的地址为IP地址。使用IP协议进行通讯,每个IP报文头中必须含有源IP和目的IP地址,用以标志该IP报文的发送端和接收端。在以太网上使用IP协议传输报文时,IP报文作为以太网报文的数据。IP地址对于以太网交换机或处理器是透明的,用户可以根据实际网络的需要为网卡配置一个或多个IP地址,MAC地址和IP地址之间并不存在一一对应的关系。
IP地址的修改非常容易,而MAC地址存储在网卡的E2PROM中,且网卡的MAC地址是惟一确定的。将内部网络的IP地址与MAC地址绑定。盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败。而且由于网卡MAC地址的惟一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。
将MAC地址与IP地址的绑定运用于电子政务系统的安全管理不仅能针对具体的用户,还能针对具体的计算机硬件进行访问控制。
2 IP地址和MAC地址的获得2.1 IP地址获得方法
要想绑定MAC地址与IP地址并用于电子政务系统的安全管理,获得MAC地址和IP地址是最重要的一步。远程计算机的IP地址可以在Web服务器端直接利用ASP或JSP等语句获得,下面给出在ASP里获得远程计算机IP地址的语句。
2.2 MAC地址的获得方法
MAC地址的获得则相对要复杂许多。一般可以有3种方式获得MAC地址。第一种:通过ARP地址解析协议获得。ARP是将IP地址与网络物理地址一一对应的协议。他拥有一张ARP表,用于记录IP地址与MAC地址一一对应的关系。他的工作原理是:当传送过来的包要传向一个子网段的主机时,网关根据ARP程序找到与IP地址相对应的MAC地址。ARP程序先是在缓存里查找,若找不到,则在网上广播一个特殊格式的信息,看哪台主机知道与这个IP地址相对应的MAC地址。如果主机发现那个是自己的IP地址,则发送回应。这样通过刚才获得的IP地址和ARP协议即可得到需要的MAC地址。这种方法的缺点是ARP协议不是可路由的协议,所以无法获得不同网段的MAC地址。第二种方法:通过SNMP简单网络管理协议获得。SNMP简单网络管理协议提供监视和控制网络设备、管理和配置网络、以及网络信息的统计收集、性能和安全的一种方式。几乎所有的TCP/IP协议都支持SNMP协议。一般的路由器要准确的投递网络数据包,必须拥有网络上最完整ARP地址识别表,该表存放于路由器上的SNMP MIB管理信息库中,所以可以由这些网络设备入手获取MAC地址。路由器中的路由表MI B中就有网络中工作站IP地址与MAC地址的对应表,这种信息一般放在树型结构的{1.3.6.1.2.1.3.1.1.2.0.0.1.47)位置中,比如:一个IP地址为10.142.168.1的机器的MAC地址就存放在MIB表中{1.3.6.1.2.1.3.1.1.2.0.0.1.47}+{10.142.168.1}的这个位置上。这种方法可以获得不同网段的MAC地址,但是如果路由器不带或不支持远程管理模式的话,也得不到想要的MAC地址。第三种方法:通过NBT协议(NETBIOS OVER TCP/IP)简单来说NBT就是一个转换接口,实现NETBIOS地址到TCP/IP地址的转换。通过NBT可以使不可路由的NETBIOS协议封装到TCP/IP协议之中,以TCP/IP协议为载体访问本子网外的计算机。
2.3具体实现
这里介绍第二种和第三种方法的具体实现方式。通过SNMP简单网络管理协议获得MAC地址的方式可以通过好几种方法来调用SNMP代理,如用C++来调用WINT下SNMP自带的SNMP API FOR WIN32的动态链接库,还可以利用SNMP PERL来编写CGI程序完成这种功能,也可以用SNMP JAVA程序来编写,SNMPJAVA程序类似于SNMP PERL程序,SNMP JAVA是JAVA程序类的扩展库,他提供了JAVA语言与SNMP代理接口的类库,使程序员够通过调用这个类库很容易地操纵SNMP代理,获取网络路由表中储存的网络设备的各种信息包括IP地址与MAC地址映射表,下面介绍SNMP JAVA获取MAC信息的过程,首先在程序开头加SNMP,通过NBT协议获得MAC地址可直接调用WINDOWS 2000以上的系统自带的程序NBTSTAT实现,具体使用的函数就不介绍了,下面给出直接的ASP程序。
3访问控制的过程
有了获得远端主机IP地址和MAC地址的方法,下面介绍如何把他运用于电子政务系统的访问控制过程中。当一个用户注册时,必须指明他所在的部门以及级别、级别代码、用户名、密码等并选择是否绑定主机IP地址和MAC地址。用户提交时,服务器端获得这些资料的同时获得用户主机的IP地址和MAC地址,并将这些数据插入数据库保存。管理员查看用户提交的相关数据,核实以后给用户发放相关的权限,比如文件的浏览权限和发布权限。用户得到权限以后就可以进行相关的操作了。在这里绑定主机IP地址和MAC地址好象没有必要,可是当非法的用户窃取了合法用户的用户名和密码以后,要想在其他的主机上登陆电子政务系统进行相关的操作是会被禁止的,因为你的IP地址和MAC地址不合法,即你使用的计算机是不合法的。
结语
IP地址用户是可以随意修改的,因此网络上出现了许多IP地址被盗用的情况。在现实中,许多网络应用是基于IP的,比如流量统计、账号控制等都将IP地址作为标志用户的一个重要的参数。如果有人盗用了合法地址并伪装成合法用户,网络上传输的数据就可能被破坏、窃听,甚至盗用,造成无法弥补的损失。而MAC地址存储在网卡的E2PROM中,而且网卡的MAC地址是惟一确定的。将IP地址和MAC地址绑定以后,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败。而且由于网卡MAC地址的惟一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。即便是非法用户通过某种手段获得了合法用户主机的IP地址和MAC地址,利用专门的软件修改MAC地址,来假冒是合法的主机,也会因为地址上冲突而不能登陆网络。
目前,很多政府单位的网络都采用了MAC地址与IP地址的绑定技术。需要注意的是MAC地址与IP地址的绑定在电子政务系统中作为一种访问控制手段并不能完全的替代传统的用户名和密码的访问控制方式,只有充分结合多种访问控制手段才能保证电子政务系统的安全性。