平时我们在使用Windows XP时,总要先进行登录。Windows XP的登录验证机制比Windows 98严格很多,理解并掌握Windows XP的登录验证机制和原理对我们来说很重要,能增强对系统安全的认识,并能够有效预防、解决黑客和病毒的入侵。
一、了解Windows XP的几种登录类型
1. 交互式登录
交互式登录是我们平常登录时最常见的类型,就是用户通过相应的用户账号(User Account)和密码在本机进行登录。有些网友认为“交互式登录”就是“本地登录”,其实这是错误的。“交互式登录”还包括“域账号登录”,而“本地登录”仅限于“本地账号登录”。
这里有必要提及的是,通过终端服务和远程桌面登录主机,可以看做“交互式登录”,其验证的原理是一样的。
在交互式登录时,系统会首先检验登录的用户账号类型,是本地用户账号(Local User Account),还是域用户账号(Domain User Account),再采用相应的验证机制。因为不同的用户账号类型,其处理方法也不同。
◇ 本地用户账号
采用本地用户账号登录,系统会通过存储在本机SAM数据库中的信息进行验证。所以也就是为什么Windows2000忘记Administrator密码时可以用删除SAM文件的方法来解决。不过对于Windows XP则不可以,可能是出于安全方面的考虑吧。用本地用户账号登录后,只能访问到具有访问权限的本地资源。(图1)
◇域用户账号
采用域用户账号登录,系统则通过存储在域控制器的活动目录中的数据进行验证。如果该用户账号有效,则登录后可以访问到整个域中具有访问权限的资源。
小提示:如果计算机加入域以后,登录对话框就会显示“登录到:”项目,可以从中选择登录到域还是登录到本机。
2. 网络登录
如果计算机加入到工作组或域,当要访问其他计算机的资源时,就需要“网络登录”了。如图2,当要登录名称为Heelen的主机时,输入该主机的用户名称和密码后进行验证。这里需要提醒的是,输入的用户账号必须是对方主机上的,而非自己主机上的用户账号。因为进行网络登录时,用户账号的有效性是由受访主机控制的。
4. SAM数据库
SAM的全称为“Security Account Manager”——安全账号管理器,是一个被保护的子系统,它通过存储在计算机注册表中的安全账号来管理用户和用户组的信息。我们可以把SAM看成一个账号数据库。对于没有加入到域的计算机来说,它存储在本地,而对于加入到域的计算机,它存储在域控制器上。
如果用户试图登录本机,那么系统会使用存储在本机上的SAM数据库中的账号信息同用户提供的信息进行比较;如果用户试图登录到域,那么系统会使用存储在域控制器中上的SAM数据库中的账号信息同用户提供的信息进行比较。
5. Net Logon服务
Net Logon服务主要和NTLM(NT LAN Manager,Windows NT 4.0 的默认验证协议)协同使用,用户验证Windows NT域控制器上的SAM数据库上的信息同用户提供的信息是否匹配。NTLM协议主要用于迪滞 Windows NT的兼容性而保留的。
6. KDC服务
KDC(Kerberos Key Distribution Center——Kerberos密钥发布中心)服务主要同Kerberos认证协议协同使用,用于在整个活动目录范围内对用户的登录进行验证。如果你确保整个域中没有Windows NT计算机,可以只使用Kerberos协议,以确保最大的安全性。该服务要在Active Directory服务启动后才能启用。
7. Active Directory服务
如果计算机加入到Windows 2000或Windows 2003域中,则需启动该服务以对Active Directory(活动目录)功能的支持。
三、登录前后,Winlogon到底干了什么
如果用户设置了“安全登录”,在Winlogon初始化时,会在系统中注册一个SAS (Secure Attention Sequence——安全警告序列)。SAS是一组组合键,默认情况下为Ctrl-Alt-Delete。它的作用是确保用户交互式登录时输入的信息被系统所接受,而不会被其他程序所获取。所以说,使用“安全登录”进行登录,可以确保用户的账号和密码不会被黑客盗取。要启用“安全登录”的功能,可以运行“Control userpasswords2”命令,打开“用户账户”对话框,选择“高级”。(如图4)选中“要求用户按Ctrl-Alt-Delete”选项后确定即可。以后,在每次登录对话框出现前都有一个提示,要求用户按Ctrl-Alt-Delete组合键,目