资源权限概述

    Windows系统的安全访问模型由两个方面组成:一个是进程的访问令牌,代表进程的运行身份;另一个是资源的访问控制列表,代表哪些用户可以访问该资源。进程能够对资源进行哪些操作,就是由访问令牌和访问控制列表这两个因素共同制约的。

    进程就是运行着的应用程序。

    进程的访问令牌,是一个内核程序,里面记录了进程的账户身份、所属的安全组信息,还有该进程所拥有的特权,等等。而资源的访问控制列表则记录了哪些用户可以读写这个资源,哪些资源只有只读的权限等信息。Windows安全子系统会把进程的访问令牌和资源的访问控制列表进行逐项比对,以确认进程是是否拥有访问资源的权限。

    提示:如果要对文件和文件夹设置权限,要求其所在的分区必须是NTFS文件系统。如果要对注册表、打印机等其他资源设置权限,则不要求所在的分区为NTFS文件系统。

    提示:在Windows7的安装分区里有一个“System Volume Information”文件夹(具有系统、隐藏属性),默认情况下无法访问其中的内容,用户可以使用类似的方法设置允许当前用户访问该文件夹。

    利用资源的权限设置,设置只有TrustedInstaller账户才是资源的所有者。这种安全特性叫做Windows资源保护(英文WRP)。就连管理员组的Administrator也没有完全控制的权限,只有受信任的安装包才可以使用TrustedInstaller账户的身份修改系统文件夹下的内容。

    这里的TrstedInstaller账户,Windows服务SID账户。叫做Owner Right(所有者权限),这个SID的主要目的是为了限制所有者对资源的访问权限。

    用户不需要给所有者提供那么高的权限。这时可以借助最新的Owner Right这个账户SID,来对所有者的权限进行限制。

    下面举例说明。假设文件夹C:\TestPerm中创建内容,但是不希望Admin拥有自己修改权限的能力。

    传统的方法是直接给Admin添加写入权限,但这样的话,由于Admin是文件夹的所有者,默认具有修改权限的能力,无法阻止其今后自己调整文件夹权限。

    在Windows 7(也包括Windows Vista)下这个问题就可以得到圆满解决方法如下:

    (1)只需在文件夹属性对话框的“安全”选项卡中单击“编辑”按钮,在打开的权限编辑对话框中单击“添加”按钮,在打开的“选择用户或组”对话框输入“ Owner Rights”,并单击“确定”按钮;

    (2)接下来就把“Owner Right”当成是普通的用户账户,并给该账户添加“修改”权限,最后单击“确定”按钮;

    (3)现在Admin已经可以在文件夹C:\TestPerm中创建内容,但是无法修改该文件夹的权限。此时,如果在“安全”选项卡单击“编辑”按钮,会发现“添加”和“删除”按钮以及权限设置都灰色显示;

    (4)而在“安全”选项卡中单击“高级”按钮,在弹出的对话框中单击“更改权限”按钮,可以看到打开的对话框中只有“查看”按钮可以使用;

    (5)如果这时候查看Admin的有效权限,会发现该账户只具有创建文件和文件夹的权限,而没有更改权限的能力。


NTFS文件系统的硬链接和符号链接

硬链接和符号链接的原理

    硬链接和符号链接是基于NTFS文件系统的重解析点(Reparse Point)技术。NTFS文件系统中的文件或者文件夹,都可以有一个相关联的重解析数据块,这就是重解析点,里面可以存储状态或者位置信息。当应用程序访问硬链接或者符号链接时,NTFS文件系统会自动重定向到目标路径。

    硬链接或者符号链接,其中一个主要的应用场合就是为了解决兼容性的问题,欺骗应用程序,让这些应用程序以为还是在访问以前定义的文件夹路径,但是实际上访问的是全新的路径。

    例如有一个应用程序,其代码要求必须在C盘根目录下访问其配置文件,但是用户希望把该配置文件移动到另外一个安全的位置。办法有两个,一个就是直接修改该应用程序的代码,不要硬性规定必须在C盘根目录下查找配置文件,显然有时候这种方法不太现实;另外一个方法就是给该配置文件创建一个符号链接,欺骗应用程序,让它以为还是在老地方访问配置文件。

快捷方式、硬链接、符号链接和目录联结点之间的差异

    ·快捷方式:快捷方式本身是一个文件,扩展名是.ink。如果在windows资源管理器中双击快捷方式,就会打开目标文件或者文件夹。但是文件系统只是把快捷方式当成一个特殊的文件类型。举个例子,如果在“命令提示符”窗口中输入某个快捷方式并按回车键,并不会打开目标文件或者文件夹。

    ·硬链接:硬链接会给现有的文件创建一个新的目录路径,这样看起来好像可以从多个路径进入同一个文件。但只能在同一个分区或者卷中创建硬链接。

    ·符号链接:符号链接是指向文件或者文件夹的重解析点。符号链接可以使用相对路径。

    ·目录联结点:也叫软连接,用绝对路径来指向某个目录。Windows会自动把联接点重定向到目标文件夹。目录联接点不需要在同一个分区或者卷中创建。

创建符号链接

1、符号链接和目录链接的差异

    符号链接和目录联结点的差异

    符号链接和目录联接点的功能类似,最主要的差别在于以下方面:

    ·符号链接同时支持文件和文件夹的链接方式,而目录联接点,顾名思义,仅支持目录的链接;

    ·符号链接支持目标文件或者文件夹的相对路径,但目录联接点只支持绝对路径;

    ·符号链接支持远程共享文件或者文件夹的链接,目录联接点不支持;

    ·从Windows 2000开始就支持目录联接点,而一些老的API可能不支持符号链接。


EFS加密文件系统高级配置和管理

    加密文件系统(Encrypting File System,简称EFS),是NTFS文件系统所独有的一种安全特性。

EFS加密的原理

    有不少用户认为,有了bitlocker全卷加密功能,就不需要EFS加密功能了。其实不然,一旦系统顺利启动,Bitlocker就不会再提供保护,这时候虽然可以借助NTFS权限防止其他未授权用户访问数据,但是如果其他用户也是管理员,他们就有方法修改NTFS权限而获得访问的权限。

    EFS加密则可以保证在系统启动以后,继续对用户数据提供保护。一个用户加密的数据,其他任何未授权用户,包括管理员,都无法访问。

    EFS是一种基于NTFS文件系统的公钥加密机制。在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK(File Encryption Key,文件加密钥匙),然后会利用FEK和数据扩展标准X算法创建加密后的文件,并把文件存储到硬盘上,同时删除未加密的原始文件。然后系统借助用户的公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密FEK,然后利用解密出文件。

    EFS是一种基于NTFS文件系统的公钥加密机制。在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK(File Encryption Key,文件加密钥匙),然后会利用FEK和数据扩展标准X算法创建加密后的文件,并把文件存储到硬盘上,同时删除未加密的原始文件。随后系统借助用户的公钥加密FSK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密FSK,然后利用FEK解密出文件。

    EFS加密过程如下:

    随即产生一把加密密钥,这把加密密钥称为FEK(文件加密密钥);

    用生成的FEK对目标文件进行加密;

    如果是第一次使用,系统会自动为该用户生成一对公钥/私钥;

    用该用户的公钥对FEK进行加密;

    原始的明文FEK被删除,而加密后的FEK会作为加密文件的一个属性,和该加密文件保存在一起。

    EFS解密过程如下:

    EFS系统先以用户的私钥解密FEK;

    用解密后的FEK将文件解密

    也就是说,在使用EFS时,首先系统会针对每个用户生成一套由公钥和私钥组成的密钥对。在加密文件时,使用的是用户的公钥;而在解密文件时,使用的是用户的私钥。另外,EFS加密的文件也可以共享,这意味着同一个EFS加密文件可通过多个用户的公钥进行加密,这样不同用户使用自己的私钥就可以解密同一个文件。

    与其他加密方法相比,EFS的优势主要在于:

    ·EFS加密机制和操作系统紧密相结合,因此不必要为了加密数据安装额外的软件,这节约了使用成本;

    ·EFS加密系统对用户是透明的。这也就是说,如果加密了一些数据,那么用户对这些数据的访问将是完全允许的,并不会受到任何限制。而其他用户非授权用户试图访问加密过的数据时,就会收到“访问拒绝”的错误信息提示。EFS加密的用户验证过程是在登录Windows时进行的,只要登录到Windows,任何用户都可以打开任何一个被授权的加密文件。

    ·在设计上,EFS可支持被加密文件的共享,只要文件的头部包含某人的公钥,那么该用户就可以使用自己的私钥解密数据。因为可以避免某些公司因员工离职后失去联系,导致员工加密的数据无法解密的问题。

EFS加密的注意事项

    ·在第一次EFS加密后,必须根据需要对密钥进行备份,以备不时之需;

    ·加密和压缩不能同时使用。如果对某个文件夹启用EFS加密,那么就会对该文件进行解压缩;

    ·不能对加密文件,以及位于C:\Windows下的任何文件或者文件夹进行加密。这很容易理解,如果系统文件加密,将会导致操作系统无法访问,系统将无法正常运行。如果试图加密某个系统文件,系统会拒绝执行。

    ·必须给EFS加密的账户设置可靠的密码,否则未授权用户很容易用该账户登录系统,从而轻松访问加密文件。