Windows 2000中的信息网络安全技术


随着信息技术和网络技术的发展 , 特别是Internet的不断普及 , 如何防止信息不被非法截获和破坏 , 即有效维护网络信息的安全性 , 成为越来越多的人关注的焦点 。作为新一代的操作系统的Windows
2000 , 可通过多种技术和手段来控制用户对资源的访问 , 提高网络的安全性 , 其中包括与活动目录(Active Directory)服务的集成、支持认证Windows 2000用户的Kerberos v5认证协议、提供了公钥基础设施PKI支持 , 用公钥证书对外部用户进行认证、使用加密文件系统EFS(Encrypting File
System)保护本地数据以、使用Internet协议安全IPSec(Internet Protocol security)来保证通过公有网络的通信的安全性 , 以及基于Windows 2000的安全应用开发的可扩展性等等 。
1 活动目录技术
活动目录服务在Windows 2000信息安全和网络安全中具有重要作用 , 它是关于用户、硬件、应用和网络数据的存储中心 , 也存储用户的认证信息 , 以及用户使用某一资源的授权信息等 。活动目录与Windows
2000的其他安全服务紧密集成 , 如Kerberos认证协议、公钥基础设施PKI、加密文件系统EFS、安全设置管理器和组策略等 。
同Windows NT中的平面文件(flat-file)目录不同 , Windows 2000活动目录采用了代表商业企业组织结构的分层目录结构来存储信息 , 这样可以简化管理 , 具有良好的可伸缩性 。为了创建这种分层结构 , 同Windows采用文件和文件夹来组织本地资源的方法类似 , 活动目录使用域(domains)、组织单元OUs(Organizational Units)和对象来管理和使用网络资源 。
一个域是网络对象 , 包括组织单元、用户账号、组和计算机等的集合 , 它们共享一个公共目录数据库 , 并组成活动目录中逻辑结构的核心单元 。每个域中可能包含多个组织单元和用户(对象) , 这样更符合公司或企业的组织模式 。
大的企业或组织可能包含多个域 , 这种情况下的域分层就称为域树(Domain Tree) 。创建的第一个域为根(root)域 , 也称为父域 , 在其下面创建的域为子(child)域 。为了支持更大的组织结构 , 多个域树连接起来可以组成森林(forest) , 在这种情况下 , 需要使用多个域控制器 , 活动目录就可以定时在多个域控制器之间复制信息 , 从而保持目录数据库信息的同步 。
在域中 , 一个组织单元OU是把对象组织成逻辑管理组的容器 , 其中包括一个或多个对象 , 如用户账号、组、计算机、打印机、应用、文件共享或其他OU等 。
一个对象包括一个独立个体 , 如特定的用户、计算机或硬件信息(属性) , 如一个用户的属性可能包括名字、电话号码和电子邮件等;一个计算机对象的属性可能包括计算机位置和指定哪些用户或组能够访问该计算机资源的存取控制列表ACL(Access Control List)等 。通过域和OU的组织形式 , 系统就可以以集合的形式来管理对象的安全性 , 如用户组和计算机组等 , 而不需要对每个独立的用户和对象进行配置 。
为了使用户登录一次而在整个网络中使用资源 , 即单次登录(single sign-on) , Win2000支持域之间的信任关系 。在域之间建立起相互认证的逻辑关系 , 允许计算机和用户只需在域树(甚至森林)中的任何一个域中进行身份认证 , 然后就可以在整个网络中使用经过授权的资源 。
2 Kerberos认证
Kerberos认证协议定义了客户端和称为密钥分配中心KDC(Key Distribution Center)的认证服务之间的安全交互过程 。Windows2000在每一个域控制器中应用KDC认证服务 , 其域同Kerberos中的realm功能类似 , 具体可参考RFC 1510协议 。Windows2000中采用多种措施提供对Kerberos协议的支持:Kerberos客户端使用基于SSPI的Windows2000安全提供者 , 初始Kerberos认证同WinLogon的单次登录进行了集成 , 而Kerberos KDC也同运行在域控制器中的安全服务进行了集成 , 并使用活动目录作为用户和组的账号数据库 。
Kerberos是基于共享密钥的认证协议 , 用户和密钥分配中心KDC都知道用户的口令 , 或从口令中单向产生的密钥 , 并定义了一套客户端、KDC和服务器之间获取和使用Kerberos票据的交换协议 。当用户初始化Windows登录时 , Kerberos SSP利用基于用户口令的加密散列获取一个初始Kerberos票据TGT , Windows2000把TGT存储在与用户的登录上下文相关的工作站的票据缓存中 。当客户端想要使用网络服务时 , Kerberos首先检查票据缓存中是否有该服务器的有效会话票据 。如果没有 , 则向KDC发送TGT来请求一个会话票据 , 以请求服务器提供服务 。
请求的会话票据也会存储在票据缓存中 , 以用于后续对同一个服务器的连接 , 直到票据超期为止 。票据的有效期由域安全策略来规定 , 一般为8个小时 。如果在会话过程中票据超期 ,
Kerberos SSP将返回一个响应的错误值 , 允许客户端和服务器刷新票据 , 产生一个新的会话密钥 , 并恢复连接 。
使用Kerberos认证协议的客户端、KDC和应用服务器之间的关系: 在初始连接消息中 , Kerberos把会话票据提交给远程服务 , 会话票据中的一部分使用了服务和KDC共享的密钥进行了加密 。因为服务器端的Kerberos有服务器密钥的缓存拷贝 , 所以 , 服务器不需要到KDC进行认证 , 而直接可以通过验证会话票据来认证客户端 。在服务器端 , 采用Kerberos认证系统的会话建立速度要比NTLM认证快得多 , 因为使用NTLM , 服务器获取用户的信任书以后 , 还要与域控制器建立连接 , 来对用户进行重新认证 。
Kerberos会话票据中包含有一个唯一的、由KDC创建的、用于客户端和服务器之间传输数据和认证信息加密的会话密钥 。在Kerberos模型中 , KDC是作为产生会话密钥的可信第三方而存在的 , 这种形式更适合于分布式计算环境下的认证服务 。
Kerberos作为基本的Windows 2000认证协议 , 与Windows2000认证和存取控制安全框架进行了紧密整合 。初始的Windows域登录由WinLogon提供 , 它使用Kerberos安全提供者(security provider)来获取一个初始的Kerberos票据 。操作系统的其他组件 , 如转向器(ReDirector)则使用安全提供者的SSPI接口来获取一个会话票据 , 以连接对远程文件存取的SMB服务器 。
Kerberos V5协议在会话票据中定义了一个携带授权数据的加密域 , 该域的使用留给了应用开发 , 而Windows2000则使用Kerberos票据中的授权数据来附带代表用户和组成员的Windows安全ID 。在服务器端的Kerberos安全提供者则使用授权数据来建立代表用户的一个Windows安全存取控制令牌 , 可以模拟客户端来请求提供相应服务 。
Windows2000中应用了Kerberos协议的扩展 , 除共享密钥外 , 还支持基于公/私钥对的身份认证机制 。Kerberos公钥认证的扩展允许客户端在请求一个初始TGT时使用私钥 , 而KDC则使用公钥来验证请求 , 该公钥是从存储在活动目录中用户对象的X.509证书中获取的 。用户的证书可以由权威的第三方 , 如VeriSign和Digital IDs等来发放 , 也可以由Windows2000中的微软证书服务器来产生 。初始认证以后 , 就可以使用标准的Kerberos来获取会话票据 , 并连接到相应的网络服务 。
通过对Kerberos协议进行公钥扩展 , 可以使用户采用多种方式来登录工作站和网络 , 如采用智能卡技术 。智能卡中一般存储有用户的私钥 , 可用于Kerberos的初始化认证处理 。
目前 , 使用公钥技术来扩展Kerberos协议的计划和建议已经提交到IETF来进行标准化推广 。
3 公钥基础设施PKI和认证机构CA
Windows 2000作为新推出的操作系统 , 对PKI做了全面支持 。PKI在提供高强度安全性的同时 , 还与操作系统进行了紧密集成 , 并作为操作系统的一项基本服务而存在 , 避免了购买第三方PKI所带来的额外开销 。组成Windows2000 PKI的基本逻辑组件中最核心的为微软证书服务系统(Microsoft Certificate Services) , 它允许用户配置一个或多个企业CA , 这些CA支持证书的发放和废除 , 并与活动目录和策略配合 , 共同完成证书和废除信息的发布 。
Windows 2000 PKI并没有替换掉基于域控制器DC (Domain Controller)和Kerberos密钥分配中心KDC的Windows NT 域信任和认证机制 , 相反 , Windows 2000 PKI反而对这些服务进行了增强 , 适合于Extranet和Internet的不同应用 , 并可应用于具有可伸缩性和分布式环境下 , 提供身份识别、认证、完整性验证和机密性等安全服务 。
Windows 2000 PKI建立在微软久经考验的PKI组件基础之上 , 其基本组件包括如下几种:
?证书服务(Certificate Services) 。证书服务作为一项核心的操作系统级服务 , 允许组织和企业建立自己的CA系统 , 并发布和管理数字证书 。
?活动目录 。活动目录服务作为一项核心的操作系统级服务 , 提供了查找网络资源的唯一位置 , 在PKI中为证书和CRL等信息提供发布服务 。
?基于PKI的应用 。Windows 本身提供了许多基于PKI的应用 , 如Internet Explorer、Microsoft
Money、Internet Information Server、OutLook和Outlook
Express等 。另外 , 一些其它第三方PKI应用也同样可以建立在Windows 2000 PKI基础之上 。
【Windows 2000中的信息网络安全技术】?Exchange密钥管理服务KMS(Exchange Key Management Service) 。KMS是Microsoft Exchange提供的一项服务 , 允许应用存储和获取用于加密e-mail的密钥 。在将来版本的Windows系统中 , KMS将作为Windows操作系统的一部分来提供企业级的KMS服务 。
Windows 2000中的集成PKI系统提供了证书服务功能 , 可以让用户通过Internet/ extranets/intranets安全地交互敏感信息 。证书服务验证一个电子商务交易中参与各方的有效性和真实性 , 并使用智能卡等提供的额外安全措施来使域用户登录到某个域 。
Windows2000通过创建一个证书机构CA来管理其公钥基础设施PKI , 以提供证书服务 。一个CA通过发布证书来确认用户公钥和其他属性的绑定关系 , 以提供对用户身份的证明 。Windows2000证书服务创建的CA可以接收证书请求、验证请求信息和请求者身份、发行和撤销证书 , 以及发布证书废除列表CRL(Certificate Revocation List) 。证书服务是通过内置的证书管理单元来实现的 。4 智能卡技术
现在越来越多的企业正在寻找各种方法来提高其网络资源的安全性 , 智能卡(smart cards , 或称为灵巧卡)就是其中比较流行的一个 。智能卡提供了让非授权人更难获取网络存取权限的一种简单方式 , Windows2000对智能卡安全提供了内在支持 。
智能卡同普通信用卡的大小差不多 , 并提供了抗修改能力 , 用于保护其中的用户证书和私钥 。在这种方式下 , 智能卡提供了一种非常安全的方式以进行用户认证、交互式登录、代码签名和安全e-mail传送等 。每一个智能卡中都包含一个芯片 , 其中存储有用户的私钥、登录信息和用于不同目的的公钥证书 , 如数字签名证书和数据加密证书等 。
使用智能卡比使用口令进行认证具有更高的安全性:
?智能卡方式下需要使用物理对象(卡)来认证用户 。
?智能卡的使用必须提供一个个人标识号PIN(Personal Identification Number) , 这样可以保证只有经过授权的人才能使用该智能卡 。
?从物理形式上 , 密钥不能从卡中导出 , 就消除了通过盗取用户证书而对系统发起的攻击和威胁 。
?没有智能卡 , 攻击者不能存取和使用经过卡保护的信息资源 。
?在网络中 , 没有口令或任何可重用信息的传输 。
在存取和使用资源之前 , 智能卡通过要求用户提供物理对象(卡)和卡使用信息(如卡的PIN)的方式来增强纯软件认证方案的安全性 , 这种认证方式称为双因素(two-factor)认证 , 比较适合应用于安全性要求较高的重要场合 。
同口令认证方式不同 , 采用智能卡进行认证时 , 用户把卡插入连接到计算机的读写器中 , 并输入卡的PIN , Windows就可以使用卡中存储的私钥和证书来向Windows2000域控制器的KDC认证用户 。认证完用户以后 , KDC将返回一个许可票据 。
5 加密文件系统EFS
前面讨论的技术 , 包括活动目录、Kerberos认证和PKI等 , 都是用于保护存储在中心网络中的资源 。如何保护本地系统 , 如硬盘中的数据的安全性 , 也是人们很关心的问题 。
Windows2000加密文件系统EFS则满足了上述需求 , 让用户可以对指定的本地计算机中的文件或文件夹进行加密 , 非授权用户不能对这些文件进行读写操作 。当用户的计算机物理丢失时 , 使用EFS系统可以防止敏感信息的丢失和泄漏 , 因为这些文档都是经过加密处理的 。
当使用EFS对NTFS文件系统的文件或文件夹进行安全处理时 , 操作系统将使用CryptoAPI所提供的公钥和对称密钥加密算法对文件或文件夹进行加密 。EFS作为操作系统级的安全服务 , 内部实现机制非常复杂 , 但管理员和用户使用起来却非常简单 。选中某一文件或文件夹以后 , 右击 , 在弹出式按钮中选择“属性”菜单项 , 在弹出的对话框中选择“常规标签页” , 单击“高级”按钮 , 并选择“加密内容以便保护数据”检查框 , 如图3所示 。单击“确定”按钮即可完成文件或文件夹的加密处理 。
当文件保存时EFS将自动对文件进行加密 , 当用户重新打开文件时将对文件进行自动解密 。除加密文件的用户和具有EFS文件恢复证书的管理员之外 , 没有人可以读写经过加密处理的文件或文件夹 。因为加密机制建立到了文件系统内部 , 它对用户的操作是透明的 , 而对攻击者来说却是加密的 。
EFS加密文件的时候 , 使用对该文件唯一的对称加密密钥 , 并使用文件拥有者EFS证书中的公钥对这些对称加密密钥进行加密 。因为只有文件的拥有者才能使用密钥对中的私钥 , 所以也只有他才能解密密钥和文件 。
在某些情况下 , 即使有些人使用底层的磁盘工具 , 也不能越过EFS机制来读取文件信息 , 这点在Windows NT中是无法做到的 。如果不是合法的用户登录到网络中 , 即使文件通过网络或物理方法被窃取到 , 因为没有密钥 , 同样不能读写 , 也不能进行任何不被发觉的修改 。
在某些情况下会发生诸如用户私钥丢失或雇员离开公司等突发事件 , EFS提供了一种恢复机制 , 可以恢复经EFS加密的文件信息 。当使用EFS时 , 系统将自动创建一个独立的恢复密钥对 , 并存储在管理员EFS文件恢复证书中 。恢复密钥对的公钥用于加密原始的加密密钥 , 并在紧急情况下使用私钥来恢复加密文件的密钥 , 从而恢复经过加密的文件 。
6 安全设置模板 为了方便一个组织网络安全设置的建立和管理 , Windows 2000提供了安全模板(Security Templates)工具 。管理员使用微软管理控制台MMC可以很容易定义标准模板 , 并统一地应用到多个计算机或用户中 。
一个安全模板是一个安全配置的物理表示 , 换句话说 , 它是存储一组安全设置的文件 。Windows2000中包括一系列的标准安全模板 , 并应用于不同的场合和计算机的不同角色 。这些标准模板包括的范围比较广 , 从低安全的域客户端设置到高安全的域控制器设置都有 。这些模板可直接应用、修改或作为创建用户自定义安全模板的基础 。
预定义的安全模板包括如下几种:
?默认工作站 (basicwk.inf)
?默认服务器 (basicsv.inf)
?默认域控制器 (basicdc.inf)
?兼容工作站或服务器 (compatws.inf)
?安全工作站或服务器 (securews.inf)
?高度安全工作站或服务器 (hisecws.inf)
?专用域控制器 (dediCADc.inf)
?安全域控制器 (securedc.inf)
?高度安全域控制器 (hisecdc.inf)
系统中的每个模板都为基于文本的 .inf 文件 。可允许复制、粘贴、导入或导出某些或所有模板属性 。除了IP安全性和公用密钥策略之外 , 可以在安全模板中包含所有其他安全属性 。
一个模板中一般包括如下安全设置项:
?账号策略 。密码、账号锁定和 Kerberos 策略的安全性 。
?本地策略 。用户权利和记录安全事件 。
?事件日志 。定义事件日志的安全性 。
?受限的组 。本地组成员的管理 。
?注册表 。本地注册表项的安全性 。
?文件系统 。本地文件系统的安全性 。
?系统服务 。本地服务的安全性和启动模式 。
7 Windows 2000中的网络安全
在Windows2000安全结构和框架中 , 除了能够保护网络资源和硬盘资源的合法使用以外 , 还应该提供多种技术措施来保证网络传输数据的安全性 。为满足这种需求 , Windows2000中集成了对Internet协议安全IPSec的支持 。
IPSec是一组Internet标准协议 , 可以在非安全网络之间建立安全通道 , 对传输的信息进行安全处理 。IPSec的加密技术应用于网络的IP层 , 所以 , 对于大部分使用特定网络通信协议的上层应用来说都是透明的 。IPSec提供了端到端(end-to-end)的安全性 , 也就是说由发送端计算机加密的IP包只能被接收端计算机解密 , 中间截获的数据都是不可读的 。
IPSec提供了如下安全功能:
?在Kerberos认证、数字证书或共享密钥的基础上认证IP数据包的发送者 。
?保证IP数据包在网络传输过程中的完整性 。
?对通过网络传输的所有信息进行加密 , 以保证数据的机密性 。
?在数据传输过程中 , 可以隐藏数据的原始IP地址 。
所以 , Windows 2000使用IPSec , 可以充分保障网络数据传输的机密性、认证性、完整性和不可否认性 。
另外 , Windows 2000中还提供了其它的网络和信息安全技术支持 , 如虚拟专用网VPN支持和Internet验证服务等 。所私 , 通过对Windows 2000的合理化管理和配置 , 可以在现有投资的情况下有效保证网络信息的安全性 。