文件加密后,不知道怎么打开了!请高高手赐
你的证书存储机构有重大问题,请访问
文件加密证书是由用户的SID加上k随即生成的
1。EFS文件加密系EFS(Encrypting File System)使用核心的的文件加密技术在NTFS卷上存储加密文件。
它可以防止那些未经允许的对敏感数据进行物理访问的入侵者(偷取笔记本电脑,硬盘等)。
2。用户就象使用其他文件一样使用加密文件。加密对于加密文件的用户来说是透明的;当加密用户访问
文件和文件夹的时候,系统自动解密文件和文件夹。 当文件保存之后,文件又被自动加密。未获得加密文
件或者文件夹访问权限的用户试图对加密文件进行打开,复制,移动,重命名等操作事将会收到"拒绝访
问"的消息。...全部
你的证书存储机构有重大问题,请访问
文件加密证书是由用户的SID加上k随即生成的
1。EFS文件加密系EFS(Encrypting File System)使用核心的的文件加密技术在NTFS卷上存储加密文件。
它可以防止那些未经允许的对敏感数据进行物理访问的入侵者(偷取笔记本电脑,硬盘等)。
2。用户就象使用其他文件一样使用加密文件。加密对于加密文件的用户来说是透明的;当加密用户访问
文件和文件夹的时候,系统自动解密文件和文件夹。
当文件保存之后,文件又被自动加密。未获得加密文
件或者文件夹访问权限的用户试图对加密文件进行打开,复制,移动,重命名等操作事将会收到"拒绝访
问"的消息。具体的出错提示信息是由试图访问加密文件的应用程序决定的。
因为它并不关心用户是否有
权力访问文件,而是关心efs是否可以使用用户的私有密匙解密文件。
3。EFS具有下面几个优点:
(1)。它对用户和所有应用程序是透明的。用户不会有忘记加密文件或者使文件处于非保护状态下的风险。
一旦用户的文件和文件夹被标记了加密属性,文件将会在不打扰用户的情况下在后台加密文件。用户不必
使用密码去解密文件。
(2)。efs可以安全的存储密匙。和其他由用户输入常用短语作为密码相比较。
EFS产生的密匙可以有效的防
止基于字典的攻击。
(3)。所有的加密和解密操作都是在内核模式下运行,从而避免了把密匙遗留在内存文件中,如果把密匙留
在内存中的话,很可能会被提取出来。
(4)。EFS提供实用于商业环境的数据恢复机制,雇员将文件加密离开之后,公司还有机会将数据恢复。
EFS原理:
EFS使用对称密匙加密算法和公用密匙加密算法结合起来保护文件。
文件数据使用对称加密算法(DESX)加密。
在对称加密算法中使用的密匙叫做文件加密密匙。英文是File Encryption Key (FEK)。EFS使用公有/私有密
匙算法加密FEK,同时把它和文件存储在一起。
同时使用对称密匙加密算法和公有密匙加密算法是为了增加加
密的速度。非对称加密算法加密数量很大的数据时要花费很多的时间,但使用对称的加密算法将是它的1000倍。
当加密一个文件的时候,NTFS首先在这个文件所在卷的卷信息目录下(这个目录隐藏在根目录下面)创建一个
叫做efs0。
log的日志文件。然后efs调用CryptoAPI设备环境。设备环境使用Microsoft Base Cryptographic
Provider 1。0 产生密匙,当打开这个设备环境后,EFS产生文件加密密匙(FEK)。
下一步是获取公有/私有密匙对;如果这个密匙还没有的话(当EFS第一次被调用时),EFS产生一对新的密匙。EFS
使用1024位的RSA算法去加密FEK。
然后,EFS为当前用户创建一个数据解密快Data Decryptong Field(DDF),在这里存放FEK然后用公有密匙加密
FEK。
如果系统设置了加密的代理,EFS同时会创建一个数据恢复快Data Recovery Field(DRF),然后把使用恢复
代理密匙加密过的FEK放在DRF。每定义一个恢复代理,EFS将会创建一个Data Recovery Agent(DRA)。
Winxp没有
恢复代理这个功能,所以没有这一步。
这时,在加密文件所在的文件夹下将会创建一个叫做 p的临时文件。要加密的内容被拷贝到这个临时文
件,然后原来的文件被加密后的数据覆盖。
在默认的情况下,EFS使用128位的DESX算法加密文件数据,但是Windows
还允许使用更强大的的168位的3DES算法加密文件,这是FIPS算法必须打开,因为在默认的情况下它是关闭的,如下
图:
EFS通过注册表去判断是使用DESX还是3DES。
如果HKLM\SYSTEM\CurrentControlSet\Control\LSA\FipsAlgorith-
mPolicy = 1 的话将会使用3DES。否则,EFS检查HKLM\Software\Microsoft\Windows NT\CurrentVersion\EFS\A-
lgorithmID (这个值可能不存在);如果存在的话,它将会是CALG_3DES or CALG_DESX,否则,使用DESX。
加密完成后,临时文件和日志文件被删除。加密过程如下图:
文件被加密后,只有可以从DDF或是DRF中解密出FEK的用户才可以访问文件。
这种机制和一般的安全机制不同并意
味着要想访问文件,除了要有访问这个文件的权力外还必须拥有被用户的公有密匙加密过的FEK。只有使用私有密
匙解密文件的用户才可以访问文件。
这样的话会有一个问题:就是一个可以访问文件的用户可把文件加密之后,文
件真正的拥有者却不能访问文件。解决这个问题的办法:用户加密文件的时候只创建一个文件解密快Data Decryp-
tion Field(DDF),但是只后他可以增加附加用户到密匙队列。
这种情况下,EFS简单地把FEK用想给其他用户访问权
的用户的私有密匙加密。然后用这些用户的公有密匙加密FEK,新增加的DDF和第一个DDF放在一起(这些新增加的用
户对文件只有访问的权力)。
解密过程和加密过程是相反的,如下图:
首先,系统检测用户是否具有被EFS使用的私有密匙。如果有的话,系统将会在读取EFS属性,同时在DDF对列中寻找当
前用户的DDF。
如果DDF找到的话,用户私有密匙将会在那里解密出FEK。使用解密出来的FEK,EFS去解密加密的文件数据。
需要注意的是文件从来不会完全被加密,但是有时候会去加密一些特殊的扇区如果上层模块要求的话。
数据恢复代理在Windows 2000 下和 Windows XP下不一样,在Windows 2000默认的情况下,本机管理员使用公用密匙
去加密数据恢复代理。
所以,当用户加密文件时,数据加密快和数据恢复快同时被创建。如果数据恢复代理被删除,整个
EFS的功能将关闭同时这个文件将不能被加密。
在Win XP下,情况是不一样的。
因为大部分的家庭用户都是独自工作,所以没必要用数据恢复代理,所以公有密匙不包
括DRA同时EFS工作时不需要DRA。在这种情况下,加密一个文件只创建文件解密快Data Decryption File(DDF)。
$EFS 属性
当NTFS加密文件的时候,它首先会为文件设置加密标志,然后在存储DDF和DDR的地方为文件创建一个$EFS属性。
这个属性的属性ID=0x100,它可以被加长,占有0。
5k到若干k的大小,这个大小是由DDF和DRF的数量决定的。
下面是一个详细的$EFS属性的例子。
$EFS属性大小
电脑安全标识符和用户数字。
它指定EFS存储证书的文件夹。为了得到文件
夹的名字,EFS会做一些转换。
5A56B378 1C365429 A851FF09 D040000 - 存储在$EFS中的数据。
78B3565A 2954361C 09FF15A8 000004D0 - 转换后的结果。
2025018970-693384732-167712168-1232 - 转换成十进制。
S-1-5-21-2025018970-693384732-167712168-1232 - 加上安全标识符前缀。
得到的文件夹就是:
%UserProfile%\ApplicationData\Microsoft\Crypto\RSA\S-1-5-21-2025018970-693384732-167712168-1232\
公有密匙特性
私有密匙全局唯一标识符(同时被当作容器名字)。
当EFS从CryptoAPI provider
中获取设备环境的时候使用这个名字。如果$EFS属性只有一个DDF,容器的名字可以从$efs中计算出来。但是当更多
的用户加入这个文件的时候(就会有更多的DDF和DRF),私有密匙全局唯一标识符并不是保存所有的用户,其它的必
须从基于公有密匙存储特性的证书中恢复。
加密提供器的名字(Microsoft Base Cryptographic Provider v。1。0)
用户的名称,DDF和DRF的所有者。
加密后的FEK。
通常FEK是128位的,但是被1024位的RSA密匙加密后,长度变成1024位。
。收起