【IT168 技术】随着电脑的普及 和网络的日益繁荣。安全已经成为了计算机发展程度的重要标志。在Windows的操作系统中是靠EFS(文件加密系统)来实现的下面为大家介绍一下,希望会对大家有所帮助。
EFS(文件加密系统)组成
EFS(文件加密系统)由EFS服务、EFS驱动、EFS文件系统运行库(FSRTL)和Win32API。EFS服务作为一个标准系统服务运行,它是Windows2000安全子系统的一部分。它与CryptoAPI接口产生钥匙、DDF和DRF,EFS驱动就象是NTFS的一部分,它呼叫EFS服务请求钥匙,DDF和DRF作为需要被创建,一个EFS驱动的组成是EFSFSRTL,它定义了EFS驱动程序能作为NTFS的代表而执行的功能。
EFS(文件加密系统)和NTFS如何共存
EFS可以被认为除NTFS外的第二层防护,为访问一个被加密的文件,用户必须有访问到文件的NTFS权限。在相关NTFS权限的用户能看到文件夹中的文件,但不能打开文件除非有相应的解密钥匙。同样,一个用户有相应的钥匙但没有相应的NTFS权限也不能访问到文件。所以一个用户要能打开加密的文件,同时需要NTFS权限和解密钥匙。
然而,NTFS权限可能被大量的方法穿越,包括口令破解程序、用户在离开前没有退出系统或系统内部的NTFSDOS。在NT4.0下,游戏结束了――硬盘上所有的数据都可以访问了。在Windows2000下,当一个文件用EFS加密后,一个未授权的用户,即使访问到磁盘上的文件,但也不能访问文件上数据,因为没有授权用户的私钥。
EFS(文件加密系统)属性
当NTFS加密文件的时候,它首先会为文件设置加密标志,然后在存储DDF和DDR的地方为文件创建一个$EFS属性.这个属性的属性ID=0x100,它可以被加长,占有0.5k到若干k的大小,这个大小是由DDF和DRF的数量决定的.
下面是一个详细的EFS属性的例子.
紫色:EFS(文件加密系统)属性大小
天蓝色:电脑安全标识符和用户数字.它指定EFS存储证书的文件夹.为了得到文件
夹的名字,EFS会做一些转换.
5A56B3781C365429A851FF09D040000-存储在$EFS中的数据.
78B3565A2954361C09FF15A8000004D0-转换后的结果.
2025018970-693384732-167712168-1232-转换成十进制.
S-1-5-21-2025018970-693384732-167712168-1232-加上安全标识符前缀.
得到的文件夹就是:
%UserProfile%\ApplicationData\Microsoft\Crypto\RSA\S-1-5-21-2025018970-693384732167712168-1232\
粉红色:公有密匙特性
黄色:私有密匙全局唯一标识符(同时被当作容器名字).当EFS从CryptoAPIprovider中获取设备环境的时候使用这个名字.如果$EFS属性只有一个DDF,容器的名字可以从$efs中计算出来.但是当更多的用户加入这个文件的时候(就会有更多的DDF和DRF),私有密匙全局唯一标识符并不是保存所有的用户,其它的必须从基于公有密匙存储特性的证书中恢复.
红色:加密提供器的名字(MicrosoftBaseCryptographicProviderv.1.0)
绿色:用户的名称,DDF和DRF的所有者.
蓝色:加密后的FEK.通常FEK是128位的,但是被1024位的RSA密匙加密后,长度变成1024位