王 良
国家保密技术研究所
摘要:在涉密信息系统中,终端主机上Windows操作系统的不安全性已成为泄密的重大隐患。为了防止终端主机泄密,有必要开发出加强Windows系统安全性的产品,在用户管理、身份认证、帐号加固、权限分配、存储介质监控、文件操作审计和外联网络等方面进行安全加固,从技术角度大大降低从终端主机泄密的风险。 关键词:涉密信息系统,终端主机,安全保密,泄密
一、 前言
由于技术和历史等原因,大部分涉密信息系统采用Windows系统组网,并且终端主机系统基本上采用Windows操作系统。为了确保国家秘密安全,国家保密局明文规定涉密信息系统必须和国际互联网物理隔离。因此,在涉密信息系统中,终端主机有可能成为泄密的重要途径。通过终端主机泄密的主要途径有: 1) 通过盗用操作系统合法帐号,进入终端主机窃取信息; 2) 通过破解网络域用户帐号密码,进入终端主机窃取信息; 3) 通过对未授权的移动存储介质的存取,造成泄密; 4) 通过拨号上国际互联网,造成泄密; 5) 通过打印文件,造成泄密; 6) 通过终端外设;造成泄密; 7) 缺少监控审计,出现泄密事件,难以及时发现及事后追查。 终端主机安全保密产品的设计必须针对以上泄密的主要途径,通过强大的审计功能,对可能造成泄密的事件进行审计,以保障涉密网络的安全保密性。应从用户管理、身份认证、帐号加固、权限分配、存储介质监控、文件操作审计和外联网络等方面实现对Windows系统的安全加固。
二、 终端主机安全产品的设计
1.设计思想
面向网络用户和终端主机系统用户授权,进行身份认证、访问控制和操作审计。为了确保用户的唯一性和合法性,采用USB KEY或IC卡来存放用户的身份信息,将身份认证、访问控制和操作审计综合考虑,身份认证、访问控制和审计环环相扣,在确保用户身份的安全的基础上,实现终端主机资源安全使用,并通过审计达到事后追查的目的。
2.总体设计
产品从五方面入手,解决终端主机的安全性问题。这五个方面主要包括:网络用户和终端主机操作系统用户安全身份认证、终端主机系统用户帐号的加固、终端设备的监控、终端主机系统的审计和终端主机运行状态的监控。 1) 在用户身份鉴别方面,利用USB KEY或IC卡技术,结合PIN码,全面替换Windows操作系统的登录模块,加强了用户安全登录,即使在Windows安全模式下,依然具有和正常模式下同样的登录机制。 2) 在系统用户帐号加固方面,采用屏蔽非安全用户帐号(未绑定USB KEY或IC 卡的用户帐号)来加固终端主机系统用户帐号。 3) 在终端监控方面,对终端存储介质(软盘、光盘、移动存储设备等)、调制解调器和打印机等设备的使用进行监控。 4) 在终端审计方面,对系统帐号的使用情况、移动存储设备、打印设备、调制解调器的合法使用行为进行审计。 5) 利用客户端程序实现: 获取终端主机在线信息,包括网络地址、操纵系统类型及版本号、软件安装信息、硬件配置、当前登录用户帐号、当前运行进程、共享目录信息;实现终端主机IP地址和MAC地址的绑定;屏蔽终端主机共享目录;对网络访问行为进行监控与审计。
3. 结构设计
产品软件主要由以下两部分组成: 1) 服务器端程序: 安全身份认证中心 用户授权管理中心 管理配置中心 审计中心 2) 客户端程序: 认证和访问控制系统客户端 审计客户端 产品硬件是USB KEY或者IC卡,用于记录系统管理员与用户的认证信息。
4. 身份认证的设计
1) 安全身份认证模型
早期的Windows操作系统基本上采用PAP(Password Authentication Protocol)来鉴别用户的身份,虽然操作系统提供其他的认证方式,但用到最多的还是PAP协议。 PAP协议的最大的问题表现在三个方面: 1) 服务器端用户帐号的安全问题; 2) 客户端口令泄密问题; 3) 在认证过程中,口令被截获破解的问题等。 解决好以上三个问题,Windows 2000以上的系统对用户身份认证进行了强化,如采用MS-CHAP协议、EAP协议等。Windows 2000以上系统缺省的认证协议为MS-CHAP协议。MS-CHAP协议的特点是: 1) 客户端和服务器是采用口令来认证用户的身份,在认证过程中,客户端的口令和域服务器口令保持不变; 2) 在认证过程中,采用CHAP协议,客户端口令不在网上传输,基本上解决了从网上“窃听”用户口令的可能性; 3) 客户端和服务器“静态的口令”成为主要的安全隐患。 解决Windows 2000以上系统客户端和服务器端“静态口令”的问题,成为身份认证所要解决的主要问题。 解决办法是采用CHAP协议来产生客户端和服务器端的动态口令,在实际认证中,利用动态口令来认证用户的身份,即:系统在调用MS-CHAP协议认证用户身份前,先采用CHAP协议,来协议客户端和服务器端的用户口令(动态口令)。
2) 认证模型的详细设计
解决身份认证安全性问题比较好的办法是采用CHAP协议,CHAP协议的认证模型如下:
服务器端认证客户端的身份,其过程如下: 1)客户端发请求给服务器; 2)服务器端产生随机数(challenge)给客户端; 3)客户端利用收到的随机数(challenge)和服务器共享的秘密值,做MD5运算,产生W1; 4)客户端将W1送到服务器; 5)服务器收到W1后,利用challenge和客户端共享的秘密值,做MD5运算,比较W1和W2,如果两值相等,说明客户端和服务器端共享的秘密值一致,返回成功,否则认证失败。 CHAP成功认证的前提是验证双方共享同样的秘密值和单向加密算法(One-way Encryption,实际就是HASH算法)。实际验证中,服务器端在发出随机数的同时,会和客户端一道以共享的秘密值和Challenge为因子计算报文摘要,并把二者计算的结果汇总、比较,若相等,则认可该次访问,反之予以拒绝。 Windows操作系统采用SAM数据库和ADS来管理用户的帐号。客户端在登录系统中,必须要用客户端提供的口令和SAM或ADS用户对应的口令做比较,如果两者一致,用户才能登录系统。为了和Windows系统登录接口相兼容,需要对CHAP协议进行了修改 具体的认证过程如下: 1) 客户端产生随机数X; 2) 客户端将随机数发送到域服务器(或本机); 3) 域服务器收到随机数后,将随机数做变换,并将变换了的随机数和用户的秘密值做报文摘要运算; 4) 服务器将报文摘要运算的结果,作为用户SAM数据库或ADS中用户帐号的口令; 5) 客户端将送给服务器的随机数做和服务器同样的变换,将变换的随机数和存放在用户USB KEY中的秘密值做报文摘要运算; 6) 客户端将报文摘要运算的结果作为用户的登录口令,调用LogonUser()函数来登录系统; 7) 如果客户端客和服务器端生成的口令一致,则用户能顺利认证,如果不一致,则用户为非法用户。
5. 授权管理的设计
服务器端对用户的授权信息存放在USB KEY或者IC卡中,当用户登录Windows操作系统后时,客户端程序通过读取KEY或者IC内授权信息,对用户的操作进行相应限制。例如,授权管理中心对帐号Admin授予的权限为“禁止使用软盘”、“禁止使用CD-ROM”、“禁止使用移动存储”、“禁止使用打印机”、“禁止使用MODEM”、“禁止运行NOTEPAD.EXE”,帐号Admin登录客户端主机后就不能使用软盘、CD-ROM、U盘,不能打印文件,不能拨号上网,不能运行记事本程序,而客户端主机操作系统的属性不发生改变。这样的设计避免了破坏终端主机的资源利用,而且将资源使用的权限固定到了指定用户。
6. 审计功能
审计系统对任何一款网络安全产品来说相当重要。首先,对于终端主机的运行状况、用户操作情况必须进行监控审计,避免出现泄密事件而无法追查。其次,终端主机安全产品的系统管理员的权限是很大的,负责对每一个用户进行授权管理,包括USB KEY或者IC卡的制作和分发,如果没有强有力的审计监督机制,这类产品的使用将是具有相当大的安全隐患的。因此,审计系统的设计必须做到滴水不漏,任何导致泄密的用户操作都将被记录在案,用于事后审计。
1) 终端主机审计
主机审计主要针对终端主机的状态信息和配置情况、系统帐号的使用情况、文件和目录的操作、网络连接情况,以及移动存储器和外设的使用情况进行审计。用户虽然被分配了使用终端主机资源的权限,但是也可能出现造成泄密的行为,例如帐号Admin拥有拷贝文件到U盘的权限和打印文件的权限,那么他进行拷贝或打印文件的信息将出现在审计中心,包括文件名、操作时间、操作帐号、打印份数等信息。出现泄密事件后,能够根据审计中心的记录对Admin进行追查。
2) 管理员操作审计
管理员操作审计是对终端主机安全产品的系统管理员进行监督。这部分的审计操作是系统管理员之外另一管理员审计管理员负责的。系统管理员和审计管理员是终端主机安全产品的两个独立的、互不干涉的管理员角色,这样二权分立的设计避免了系统管理员的单一控制,从某种程度上减小了因系统管理员的独自管理失误导致泄密的风险。
三、产品安全性分析
1. 身份认证的安全性分析
一般的身份认证模块设计的安全问题有: 1) 在Windows正常模式下,用户手工修改注册表,使身份认证失去效果; 2) 用户进入安全模式,绕过正常模式下的身份认证机制; 3) 用户通过网络共享,进入终端主机。 解决办法有: 1) 在客户端程序做到对系统注册表的监控,在正常模式下禁止用户修改或破坏和身份认证有关的注册表键值,防止因修改注册表而使认证系统失效; 2) 通过对系统帐号的加固,屏蔽非USB KEY或者IC卡用户,并且在Windows正常模式下,终端主机系统用户不能恢复其属性,在Windows安全模式下,具有和正常模式下一样的认证机制; 3) 对客户端共享目录进行监控,防止因网络共享而泄密。 身份认证系统体系的安全性维系在认证模型的安全。对于采用PAP(用户名+口令)协议来认证的系统,其安全性主要体现在三个方面: 客户端口令被猜测; 口令在认证过程中被截获破解; 服务器端口令被泄密。 Windows服务器为了解决网上侦听用户口令,采用MS-CHAP协议来认证用户的身份,但Windows的MS-CHAP协议不管在客户端还是服务器,用来认证用户身份的表现形式还是“用户名+口令”,尽管采用了MS-CHAP协议保证用户的录入的“口令”不在网上以明文的形式传输,但在客户端和服务器端难以保证用户身份的安全。 解决方案: 对于第一个隐患,在系统中采用双因子认证(USB KEY + PIN)来认证用户,为了确保USB KEY合法性,USB KEY利用PIN码来保护,并且USB KEY具有输入PIN码出错最大次数限制,例如用户登录时输入PIN码错误次数达到5次,USB KEY将被锁定,即使输入正确PIN码也不能登录系统,防止在遗失USB KEY的情况下,PIN码被暴力破解。 根据修改后的CHAP协议,每次登录系统时,在网络上传送的数据为:challenge和w2(口令),challenge是随机的,因此w2也是随机的,即每一次登录口令不一样,因此,网上侦听密码口令不会成功。 采用修改后的CHAP协议后,用户在登录系统前,采用修改后的CHAP协议客户端和服务器协商登录“口令”(协商的“口令”没有在网上传递),最后,利用该动态的“口令”调用Windows的认证体系(MS-CHAP),来登录系统。因“动态口令”在具体的Windows的认证中采用MS-CHAP协议,该口令不在网上传递,因此,规避了“重放攻击”的安全问题。 即使用户删除SAM数据库文件,系统依然需要用户提供密码,方能进入系统。
2. 访问控制模块的安全性分析
访问控制模块是用来控制客户端外设资源的,系统的访问控制模块以线程的形式存在于gina.dll中,成为操作系统内核的一部分,不存在被用户恶意杀死进程而使访问控制失效的问题。
3. 其他安全性分析
此类产品的应用均建立在Windows操作系统上,因而许多方面受限于Windows自身的安全性能,例如单台终端主机安装多个操作系统时,只有一个Windows系统安装此类产品的客户端,那么用户可以轻而易举地绕过安全防护,从而获取主机的涉密信息。因而对于涉密终端主机,重要文件的保护是需要以加密存储为强化手段的。
四、 结束语
本文讨论了在涉密信息系统内终端安全防护产品的一种设计方案,并从身份认证、访问控制等方面对其安全性进行了分析。面对日益严重的网络安全状况和信息泄密事件,此类终端安全防护产品将会起到更加重要的安全保密作用。
参考文献
1. 戴宗坤 唐三平 . VPN与网络安全.电子工业出版社,2002.
2. [美]William Stallings. 密码编码学与网络安全:原理与实践(第二版). 北京,电子工业出版社,2001
|