一、 引言
信息安全包括防止系统存储和传输的信息被故意或偶然地非授权泄露、更改、破坏或被非法的系统辩识和控制,确保信息的保密性和可控性。目前信息传输的途径主要是网络,随着网络的开放性、互连性和共享性程度的扩大,使得网络的安全问题变得更加突出,成为信息安全的重要环节[1]。
在以Windows NT(包括Windows NT4.0,Windows 2000 Server系列,windows Server2003)为操作系统的服务器上通过Internet 信息服务器(Internet Information Server,IIS)程序为客户的请求提供服务。维护IIS信息安全的方法包括公共网关接口(Common Gateway Interface,CGI),Internet服务应用编程接口(Internet Server API,ISAPI)的过滤器(Filter)程序和安全套接字(Security Socket Layer,SSL)等。CGI是最常用的方法,可以实现基于IIS的信息存储和传输的安全,用CGI编制的程序由IIS调用,但运行在自己的进程内,所以其运行的速度较慢。ISAPI Filter主要实现信息存储的安全,是以动态链接库的形式封装,直接运行在IIS进程内,运行速度较快。SSL可以用于信息传输的安全,直接集成在IIS中。将ISAPI Filter和SSL结合即可达到信息存储和传输的安全,本文即通过这种方法实现基于IIS的信息安全。
二、 ISAPI Filter的作用机制
ISAPI是微软提供的基于Windows NT(包括Windows NT4.0,Windows 2000 Server系列,windows Server2003)的Internet编程接口,利用ISAPI编制的应用程序以动态链接库的形式封装,直接运行在IIS进程中。ISAPI实现的应用程序包括扩展和过滤器两种形式,ISAPI扩展可以响应客户的请求,执行非凡的功能,而过滤器可以实现数据压缩、重定向、加密和身份验证等功能[2]。
图1 过滤器的作用机制
ISAPI过滤器运行在IIS的前端,可以处理IIS提供的每一步服务。ISAPI过滤器的作用机制如图1所示。过滤器在IIS进程启动时装载,并运行GetFilterVison函数,GetFilterVison函数的目的是设置过滤器的优先级并将事件通知的关注点注册到过滤器。当系统中存在多个过滤器时需要通过设置优先级确定过滤器的执行顺序,而事件通知的关注点是过滤器可以处理的服务。当客户请求服务时,IIS首先启动过滤器程序,然后根据过滤器注册的关注点调用过滤器实现的事件处理函数。
三、 ISAPI过滤器实现信息存储安全
通过ISAPI过滤器可以对客户的身份进行验证,控制访问的客户,从而实现系统存储的信息安全。在ISAPI过滤器中,验证客户身份需要注册的事件关注点是SF_AUTHENTICATION事件,相应的事件处理函数是OnAuthentication。客户在提交访问后,IIS启动新的线程为客户提供服务,在IIS线程验证客户的身份前会首先查看过滤器中有无SF_AUTHENTICATION事件关注点,若有,则执行过滤器的OnAuthentication函数。所以可以通过OnAuthentication函数在IIS线程前对客户的身份进行验证。
图2 身份验证过滤器基本架构
IIS以HTTP的挑战/响应机制结合Windows NT(包括Windows NT4.0,Windows 2000 Server系列,windows Server2003)的用户数据库验证客户的身份,而Windows NT(包括Windows NT4.0,Windows 2000 Server系列,windows Server2003)的用户数目是有限的,并且直接以NT用户访问存在着不安全的因素,所以在过滤器中引入专用的用户访问数据库,数据库中包含客户的密码和用户名以及对应的系统密码和用户名身份验证过滤器的基本结构如图2所示。
客户匿名访问时,过滤器直接返回,保证客户可以访问非保密的资源。当客户非匿名访问时,过滤器查找用户数据库,找到对应的系统密码和用户名,并替代客户的密码和用户名,然后在IIS中用替换的系统密码和用户名对客户的身份进行验证。采用这种方法使得客户输入的密码和用户名并不是系统真正的密码和用户名,既保证了客户的数量又保护了系统的安全。
ISAPI身份验证过滤器运行在多线程的IIS进程中,每一个线程都将调用过滤器程序,而与数据库的连接很占系统的资源,当访问的客户超过一定的数量时,可能会导致系统的崩溃。在实现时可以通过一段缓存解决这个问题,具体方法是过滤器装载时在内存中开辟一段空间,用以保存近来访问服务器的客户的密码和用户名以及对应的系统密码和用户名。在客户访问时,过滤器先查找缓存中有无客户的密码和用户名,若没有再查找数据库,并将查找到的内容写入缓存中,由于查找缓存的时间及占用的资源远远小于对数据库的查找,所以可以大大提高过滤器的执行效率。
ISAPI过滤器实现的过程中应注重的问题主要是内存泄漏和多线程。避免的方法在于选择支持多线程的数据库,并且保证缓存的单线程访问以及释放占用的内存。
四、 SSL实现信息传输安全
图3 SSL会话过程
在Internet传输的所有数据都暴露于任何网络客户面前,任何对通信进行监测的人都可以对通信的数据进行截取和修改。保证数据传输的保密性、完整性和安全性的要害在于防止网络的监听和篡改。SSL技术为应用层间数据通信提供安全的途径,它位于可靠的传输层之上,为高层的应用提供透明的服务,保证传输信息的隐私性、可靠性和用户的非否认性。
SSL通信分两个阶段:连接阶段和数据传输阶段。在连接阶段,建立安全连接,一旦算法达成协议,就交换密钥,接着验证身份,然后开始数据传输。在数据传输阶段,信息传输到SSL时通过加密或解密后向下或向上传输。SSL要求在客户端与服务器端建立通信渠道,通信渠道的建立通过客户与服务器的握手来完成。具体过程如图3所示。
客户和服务器之间通过相互询问确定最终的加密算法。询问信息提供了建立安全渠道的重要信息。服务器端通过证书确定客户的身份,然后发出确认和结束信息结束握手阶段,开始正常的数据传输。数据在传输过程中被分解为许多信息,同时用会话密钥加密并使用数字签名。接收端在试图解密数据之前首先要验证数字签名[2]。
在IIS中可以方便的通过SSL建立数据传输的安全性。服务器建立SSL链接之前必须安装证书。证书可以使用Microsoft Certificate Server生成。新密钥的创建通过IIS密钥治理器完成,它会根据向导自动请求服务器上安装的Certificate Server生成证书。在密钥建成后需要通过IIS的控制台配置SSL,可以配置的选项包括密钥设置、是否要求客户端证书以及客户端证书映射等。在这些设置完成后就可以实现信息传输的安全性。
五、 结束语
以ISAPI过滤器程序保护系统存储信息安全的方法,采用DLL的形式运行在IIS进程中,可以通过用户数据库和缓存扩充用户的数量并提高过滤器运行的效率。用SSL保护信息传输的安全是目前常用的也是较好的方法之一。本文将二者结合给出了基于IIS进程的信息安全策略,通过作者在实际应用中的检验,确定了方案的可行性。
参考文献
[1] 罗军舟, 《网络信息安全的技术和策略》,《科技进步与学科发展综合学术研讨会论文集》1999年10月
[2] Lecond braginski, 《IIS4.0使用大全》,中兴业科技公司译,人民邮电出版社1998年
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回通信学论文列表