背景技术
对大型的企业或组织机构来说,一般存在着众多信息系统或信息设备(如服务器、数据库、防火墙、路由器的它应用系统),其网络结构复杂、系统繁多。使用和管理这些系统,一般都需要通过身份认证,即分别使用各自系统的帐号和口令直接登录到各系统中进行操作。因此无论从用户角度还是系统管理员角度来看,要登录或管理这众多的系统都面临着极大的困难。具体表现在:
1.帐号/口令太多,难以记忆。由于信息系统越来越多,而每套系统中又有一套独有的用户名/口令的用户身份管理体系,用户需要同时记忆多个用户名/口令对,有时甚至需要记忆上百个用户名/口令对,这无疑给用户带来了沉重负担。因此,在实际使用过程中,很多用户往往把一些常用的用户名/口令粘贴在计算机旁,或将用户名/口令存放到一个容易记忆的文本文件中,其结果是进一步降低了本来就不高的系统安全性。
2.存在多人共用帐号现象。有时用户为了方便和省事,可能多人同时使用一个帐号,这不仅难以确定帐号的实际使用者,而且难以对帐号的扩散范围进行控制,造成安全漏洞。
3.系统繁多,切换麻烦。经常需要在各个系统之间切换,每次从一个系统切换到另一系统时,都需要单独进行登录,给用户的工作带来不便,影响了工作效率。
4.帐号及口令容易被窃取。由于大多数信息系统的认证方式如raduis、telnet、ftp、防火墙、数据库等等在使用帐号/口令进行用户身份认证时,帐号/口令都是以明文的方式在网络上传输的,因此,只需要利用简单的嗅探工具就可以轻而易举地获取用户的帐号及口令。
5.由于口令设置得过于简单或有规律可循,口令极容易被猜解或是利用工具进行穷举破解。
6.如果口令太长太复杂,则在难以记忆的同时,在使用输入时也极易出错,特别是在紧急情况下使用口令时更易出错。
7.权限管理粗放,难以贯彻最小授权原则。各种类型的系统以及这些系统对应的用户权限间的关系多样复杂,缺乏确实可行的完全管理的办法。系统管理员为了不因为权限控制的原因而影响用户的正常使用,会草率地把系统的权限对所有用户的都放开。此外在人员离职、岗位变动时,难以完全彻底地注销用户在各系统中的相应权限。系统的权限不能集中统一有效的管理,给企业带来安全隐患。
8.难以实现统一的安全策略,使得企业的信息安全处于较低的水平。按照安全策略,往往要求口令定期进行更改,或者要求所有的口令都要满足其它某些规定。但是,在实际使用过程中,用户往往由于各种原因而没有执行;同时,应用系统中有些帐号可能在创建之后从来就没有人使用过,更不用说对其口令进行更换了。再有,由于用户名/口令在各个系统中各自进行管理,难以适用统一的安全管理策略,而且由于应用系统日益增多,用户名/口令的管理也成为管理人员的一项沉重负担。
9.用户操作行为、责任难以确定。企业众多的系统,其中有很大一部分系统不能对用户所做的操作进行有效的审计,难以进行事后追查。或是还有一些系统,虽然具备对用户的操作行为进行审计的功能,但是,黑客甚至是系统管理员可以轻易地修改或直接删除系统审计信息,以逃避追查。
中国专利文献CN1547343公开了一种基于数字证书的单点登录实现方法。通过在应用服务器存放数字证书及公/私钥对,利用服务器公/私钥,将用户信息加密保存应用于多应用系统之间,实现安全单点登录。用户可一次登录,无须重复输入登录信息。增加数字证书身份认证,用户在多应用系统之间切换,无须重复校验身份。
中国专利文献CN1581771公开了一种验证系统、服务器和验证方法及程序。其目的是向验证系统提供对服务性能影响较小的一次性登录,以便通过网络提供服务。验证系统包括提供服务的提供者,安全性权标服务,和置于安全性权标服务和提供者之间的代理服务。代理服务保存安全性权标服务的验证结果,并在某些条件下,可在不把从提供者接收的验证请求传送给安全性权标服务的情况下,根据自己保存的验证结果,代理执行客户验证。此外,当根据提供者自己保存的客户的服务使用历史,显然可向客户提供服务时,提供者向客户提供服务,而不必发出验证请求。
上述几篇对比文献的不足之处在于:
信息系统或设备为了管理需要,均设有特权帐号;但具有系统管理特权的超级管理员可随意使用系统,且可以做到不留下任何操作痕迹即日志,因此超级管理员本身就成为系统中的安全隐患。
另外,为了实现多个不同类型的应用客户端能集中访问控制,需支持众多的信息系统或设备通讯时使用的各种不同的协议。这些协议使用不同的端口进行通讯,如telnet默认服务端口为23,smtp默认服务端口为25,甚至一些协议使用的是动态服务端口,这些服务端口变化不定,如ftp的数据传输端口就是动态端口。要正常访问这些信息系统或设备,防火墙就必须放开对这些端口的限制,但这样必将增大潜在的安全风险,在当前对安全问题越来越重视的情况下,这种对外敞开大门的做法是需要尽量避免的。安全的做法是,只允许指定的源机器的访问,对来自不明源机器的访问全部拒绝,防火墙对外关闭内部信息系统或设备的服务端口,只保留尽可能少的服务端口对外提供服务,但如此处理势必影响对系统的正常使用。如ftp服务的数据传输端口,其数据传输端口在每完成了一个文件的上传或下载就变换一次,且变化范围无法确定,因此,要使ftp服务能够正常使用,就必须放开所有可能的端口,一旦防火墙限制了过多的端口的使用,ftp服务便无法正常使用。此外还有tuxedo中间件,oracle数据库等等都属于此种情况。
具体实施方式
实施例1
本实施例的信息系统或设备的安全防护系统具有:多个客户机、访问控制单元即访问控制服务器、帐号管理单元即帐号管理服务器、认证授权单元包括认证服务器和授权服务器、审计服务单元即审计服务器、多个信息系统或设备。
见图3,所述帐号管理服务器、认证服务器、授权服务器和审计服务器合称为4A服务器。
如图1和图3,所述信息系统或设备包括:主机系统,如windows、Unix、Unix类(Unix Like)操作系统,数据库系统、应用信息系统和网络设备如路由器(Router)、防火墙(Firewall)、打印设备、移动通讯设备等一切与信息技术相关的软硬件系统或设备。
客户机用于经网络(广域网WAN或局域网LAN)访问多个信息系统或设备;访问控制单元设置于客户机与所述各信息系统或设备之间,使由客户机通过数字证书对各信息系统或设备进行登录;帐号管理单元预存有数字证书主体标识与用于访问各信息系统或设备的帐号及口令的映射,用于实现数字证书主体与信息系统或设备帐号及口令的关联;认证授权单元与访问控制单元配合,对通过数字证书登录的用户进行身份鉴别,并在通过鉴别后获取其相应的访问权限列表,包括在所有可访问的信息系统或设备上的帐号及口令;帐号管理单元,预存有数字证书主体标识与用于访问各信息系统或设备的帐号及口令的映射,用于实现数字证书主体与信息系统或设备帐号及口令的关联;客户机与访问控制单元相互配合,从访问权限列表中取得信息系统或设备的帐号及口令信息,完成对信息系统或设备的登录过程。
审计服务单元用于对客户机与访问控制单元之间的通信数据进行拦截分析,以记录客户机访问信息系统或设备的操作日志。将所有操作过程作为日志记录下来,并做有选择性地保存,保存的日志信息经过数字签名,防止非法对其修改。
帐号管理单元具有数据存储系统,其预存用于访问信息系统或设备的至少一对帐号及口令;帐号管理单元通过访问控制单元对所述帐号及口令进行定期更新。
本实施例的数字证书由CA(认证权威)来生成、颁发并管理。
所述数据存储系统包括如LDAP(轻量目录访问协议)、数据库、文件系统等一切可存储数据的系统。其中,LDAP是用来存储用户身份信息及用户权限列表、应用系统帐号等信息的。它是一个数据存储设备,不同于关系型数据库,其存储结构是一种树型的,方便扩展,此外,它也符合当前对用户身份信息存储和管理的标准。
访问控制单元具有终端仿真单元,用于对信息系统或设备的帐号及口令进行修改或定期更新,并仿真登录信息系统或设备。
见图2,各客户机设有应用客户端和访问控制客户端代理即ACCA,应用客户端与ACCA之间采用socket连接;访问控制单元设有访问控制服务器代理即ACSA,ACSA设置于各ACCA与各信息系统或设备的服务器之间,ACCA与ACSA之间通过标准协议建立连接;ACSA与信息系统或设备的服务器之间为socket连接;各应用客户端与各信息系统或设备的服务器之间的通讯数据格式分别由ACCA与ACSA进行协议转换,以实现ACCA与ACSA之间通过标准协议进行通讯数据的传输。
其中,所谓socket通常也称作″套接字″,用于描述IP地址和端口,是一个通信链的句柄。应用客户端包括telnet客户端、ftp客户端和smtp客户端等。
图4示出了ACSA的模块结构。ACSA屏蔽对信息系统或设备的非授权访问。用户通过ACCA对信息系统或设备进行访问时,必须先提交其数字证书,然后ACSA通过证书验证模块检查该证书是否合法、有效,并由策略验证模块检查用户是否有访问该信息系统或设备的权限,在上述检查通过后客户机经协议转换模块与所述信息系统或设备建立连接。ACSA与ACCA一起,构筑加密通道(SSL),防止非法窃听、篡改。日志模块记录对信息系统或设备的所有访问日志。为防止系统崩溃,ACSA监视进程对ACSA进行监视,若发现ACSA崩溃即重启ACSA,同时也可以接受SecurityCenter即安全中心的管理要求,停止、启动、重启动ACSA服务,或接受对ACSA的状态查询。
图5示出了ACCA的模块结构。客户端证书管理模块用于调用保存在硬件Key中的证书、证书私钥进行信息加解密等。ACCA启动后,先让用户选证书,然后通过ACSA从授权服务器下载该用户的权限列表,用户再从中选择需要访问的信息系统或设备。一个用户只能有一张证书,但可以访问多个ACSA所保护的信息系统或设备。用户的权限列表可以在启动ACCA的时候自动获取,也可以在启动后手工刷新。地址分配模块管理权限列表中的信息系统或设备的访问地址。策略处理模块用于处理获取的权限列表,使用户能够直观地了解其有权限访问的信息系统或设备的情况及访问这些信息系统或设备可以使用的帐号。由于ACSA中的IP Filter已经屏蔽了受保护服务器端的应用端口,因此受保护服务的客户端不能再像原来一样去连接这些服务的地址和端口,只能访问由地址分配模块动态分配的地址。为了减少用户使用上的复杂度,地址分配模块自动维护本地端的DNS列表,这样用户只需要在应用客户端中设置需访问的域名,ACCA维护域名/地址映射,即可建立连接。在地址分配模块将服务映射成本地IP后,在本地还需要启动端口监听线程,服务监听模块对策略中指定的所有服务的端口进行监听,在监听到受保护客户端发出的连接建立请求后,提取用户证书,往ACSA端发出建立连接请求。协议转换模块用于按照受保护服务所需的传输协议,对数据流进行转换。客户端证书管理模块用于客户端证书选取、证书口令保护、口令更改等。
本实施例的信息系统或设备的安全防护系统的工作方法,包括:帐号管理单元通过数据存储系统建立数字证书主体标识与信息系统或设备的帐号及口令的映射,实现数字证书主体与信息系统帐号的关联;由客户机的应用客户端启动ACCA,并通过数字证书对信息系统或设备进行登录;认证授权单元与访问控制单元配合对所述数字证书进行认证;在认证通过后,根据数字证书主体标识获取其唯一标识及其相应的访问权限,包括所有可访问的信息系统或设备及其对应的帐号及口令;由ACCA与ACSA相互配合完成对信息系统或设备的登录过程并实现对信息系统或设备的数据通讯。
审计服务单元对客户机与访问控制单元之间的通信数据进行拦截分析,以记录客户机的访问信息系统或设备的操作日志。
帐号管理单元通过数据存储系统预存用于访问信息系统或设备的至少一对帐号及口令,并制定帐号及口令更新策略,即通过访问控制单元对所述帐号及口令实现定期更新的计划任务。帐号及口令更新策略包括更新时间、更新周期、口令强度、手动更新还是系统自动更新。
帐号管理单元定期启动自动更新所述帐号及口令的计划任务,并通知访问控制单元通过终端仿真单元执行更新信息系统或设备的口令的过程。
访问控制单元按帐号管理单元的帐号及口令更新策略,通过终端仿真单元执行帐号及口令的更新。其执行更新的步骤如下:
注册所管理的信息系统或设备的帐号到帐号管理单元;设定与各帐号一一对应的初始口令;自动更新时,帐号管理单元按预设时间间隔用随机函数产生各帐号一一对应的新口令(手动更新时,由管理员输入所需的新口令),然后通知访问控制单元执行更新;由访问控制单元的仿真单元模拟应用客户端,使用具有超级管理员权限的帐号及口令登录信息系统或设备,使用新口令修改信息系统或设备中各帐号的旧口令;使用新口令登录一次,若登录成功,由返回修改成功的消息至帐号管理单元,帐号管理单元将新、旧口令加密后保存。
应用客户端与ACCA之间采用socket连接;ACSA设置于各ACCA与各信息系统或设备的服务器之间,ACCA与ACSA之间通过标准协议建立连接,且所述标准协议通过SSL加密;ACSA与信息系统或设备的服务器之间为socket连接;各应用客户端与各信息系统或设备的服务器之间的通讯数据格式分别由ACCA与ACSA进行协议转换,以实现ACCA与ACSA之间通过标准协议进行通讯数据的传输。
所述标准协议为http协议,也可以是其它标准协议。所述信息系统或设备的服务器包括telnet服务器、ftp服务器和smtp服务器等。
由ACCA与ACSA相互配合接管用户的登录过程包括:由ACCA自动完成登录信息系统或设备的过程、由ACSA自动完成登录信息系统或设备的过程及由ACCA与ACSA相互协调完成登录信息系统或设备的过程;登录时,仍使用信息系统或设备内部帐号及口令,通过使用终端仿真、数据拦载替换或直接通过ACCA模拟用户输入,实现对信息系统或设备的登录。
实现单点登录sso的方法需按具体的信息系统或是设备情况来决定采取哪种方式。此外,对于安全级别较高的应用系统或设备服务器,要求其帐号及口令不能到达客户机,此时,适用2,3种情况来完成对应用系统或设备的登录过程。
由ACCA自动完成登录信息系统或设备时,主要由ACCA完成对应用系统或设备的登录。通过ACCA捕获应用客户端的登录界面,代替用户完成输入用户名和密码的过程,实现应用客户端的自动登录;此种方式适合C/S结构的应用,且应用客户端的窗口元素容易获取的情况,同时可实现对大多数信息系统的支持。
由ACSA自动完成登录信息系统或设备时,ACSA对还未完成登录过程的请求,分析其数据流,判断应用客户端是否正在请求登录到应用系统或设备服务器。通过拦截且使用替换、插入、修改等手段干预其登录过程中的数据,完成对应用系统或设备的登录。此种方式适合C/S结构的应用中无法准确获取客户端的窗口元素的情况,同时也适应B/S结构的应用。
由ACCA与ACSA相互协调完成登录信息系统或设备时,ACCA模拟应用系统或设备服务器端的功能,ACSA模拟应用系统或设备的应用客户端功能。ACSA仿真模拟登录后,ACSA与应用系统或设备的服务器端建立一个会话;同时,ACCA与应用客户端建立起一个会话。把两个会话通过ACCA与ACSA间的桥接作用联结起来,实现正常的通讯。此种情况适应不能简单使用上述两种中的任何一种方式来实现的情况。
认证授权单元包括认证服务单元和授权服务单元;认证授权单元与访问控制单元配合对数字证书进行合法性认证及完成登录并访问信息系统或设备的过程包括:通过客户机提交数字证书到ACCA;ACSA对由ACCA得到的数字证书的信息进行验证,判断所述数字证书是否合法,包括是不是由可信的CA机构(即证书授证中心)颁发,是不是在有效期,数字证书有无被撤销。
若数字证书没有通过合法性验证,则直接返回相应信息给ACCA,ACCA与ACSA的通信便结束;认证服务单元返回是否通过认证的信息到ACSA;若通过合法性验证,则认证服务单元对所述数字证书的唯一标识进行查询并认证,检查此数字证书所代表的用户是否已经注册并处于正常状态。
认证服务单元返回用户是否合法的信息到ACSA;若没有通过认证,则直接返回相应信息给ACCA,ACCA与ACSA的通信便结束;若通过认证,则认证服务单元将所述唯一标识提交到授权服务单元,并查询此用户的权限列表;授权服务单元返回所述权限列表至ACSA,ACSA缓存所述权限列表;ACSA返回所述权限列表到ACCA,ACCA根据该用户的权限列表,打开相应的服务端口;应用客户端与ACCA对应的服务端口建立连接,并向ACCA发送数据请求;ACCA通过服务地址及端口识别应用客户端所需访问的真正的信息系统或设备的映射名称,并向ACSA请求与相应的信息系统或设备打开一个连接;ACSA检查用户是否有访问此应用的权限,若没有,则直接返回权限错误信息;若有,则ACSA与应用服务器间建立起一个连接;ACCA通过应用客户端请求的地址与端口判断此应用客户端请求的是哪种类型的信息系统或设备,以决定使用何种方式实现对信息系统或设备的登录,ACCA与ACSA建立相应连接,完成登录信息系统或设备的过程。
当ACCA向ACSA请求写入数据时,ACCA把由应用客户端得到的数据发送到ACSA;ACSA对数据进行分析判断,在对一些未经授权的操作或命令加以阻拦后,把由ACCA得到的数据写入到对应的信息系统或设备;当ACCA向ACSA请求读取数据时,ACCA从ACSA读取信息系统或设备的响应数据。ACCA返回所述响应数据到应用客户端。
其中,授权服务单元可以精确到实体级集中授权,也可以精确到实体内部资源级集中授权,授权粒度精确到应用、设备、主机内的资源。资源包括应用的功能模块、HTML页面、数据库表或字段;主机内的文件或目录等。
另外,审计服务器将来自不同区域、不同设备、不同系统的日志信息集中起来,置于一个数据库中,便于检索和分析。审计内容包括对帐号分配情况的审计、对帐号授权的审计、对登录过程的审计、对身份认证的审计、对登录后用户行为的审计。
显然,本实用新型的上述实施例仅仅是为清楚地说明本实用新型所作的举例,而并非是对本实用新型的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而这些属于本实用新型的精神所引伸出的显而易见的变化或变动仍处于本实用新型的保护范围之中。