您现在的位置:e-works > 智造书屋 > 书籍列表 > 电脑系统与数据安全防护 > SAM文件保护

第三章 文件安全

第七节 SAM文件保护

    SAM(Security Account Manager)即安全账号管理器,它存储了散列运算的用户密码的副本。此数据库是使用本地存储的系统密钥加密的。

    Windows中对用户账户的安全管理使用了安全账号管理器SAM的机制,安全账号管理器对账号的管理是通过安全标识进行的,安全标识在账号创建时就同时创建,一旦账号被删除,安全标识也同时被删除。

    安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识也是完全不同的。因此,一旦某个账号被删除,它的安全标识就不再存在了,即使用相同的用户名重建账号,也会被赋予不同的安全标识,不会保留原来的权限。

    SAM文件是Windows的用户账户数据库,所有用户的登录名及口令等相关信息都会保存在这个文件中。SAM文件可以看作类似于UNIX系统中的passwd文件,不过没有passwd文件那么直观。SAM文件藏身于两个地方。第一个地方是C:\WINDOWS\ repair\SAM,第二个地方是C:\WINDOWS\system32\config\SAM(具体盘符取决于Windows所在的分区)。

    如果有人获取了SAM文件也可以拿来做密码破解。对应的防范方法是采用Windows下的syskey命令来对SAM进行加密,其原理是使用启动密钥来加密SAM文件中的账户信息。默认情况下,系统生成一个随机的密钥,密钥存储在本地计算机下,当计算机启动时必须正确输入随机生成的启动密钥才能登录系统,攻击者即使盗走SAM文件副本也无法进行破解。

    为防止启动密钥被盗,可以将其存储在磁盘或U盘中,这样就可以实现启动密钥和本地计算机分离,从而保护SAM信息安全。

    运行“Syskey.exe”程序时,会出现一个账户数据库加密提示界面,如图3-42所示,单击“更新”按钮后选择密码启动,并输入启动密码。如图3-43所示,在对话框中经过设置后,将使Windows在启动时需要多输入一次密码,起到了二次加密的作用。其实Syskey工具就是对SAM文件进行了再次加密,从而使得一般的破解工具无法破解口令。

   运行SysKey

图3-42  运行SysKey    图3-43  设置Syskey密码保存位置

    如果希望用密码来启动 Windows,可单击“密码启动”,并使用一个复杂的密码,包含大写和小写字母、数字和特殊符号。启动密码必须至少由12 个字符构成,并可达 128 个字符长。否则选择“系统产生的密码”,并选择密码存储的位置,如果将密码保存在本机上,则在系统开始时不需要任何交互操作,也不需要多输入一次密码,很方便。

    Windows XP和Windows 7都提供了这个加密工具。