这是网上的另一位朋友对 加密文件系统的介绍,虽然本站在前面已经介绍了加密文件系统,但还是要将不同人的观点摘给大家看看,我相信他们的观点都是对我们有益的!原文如下: 字串5
本文对加密文件系统 (EFS) 及技术进行了概述。该系统包含在 Microsoft® Windows® 2000 操作系统中。
EFS 提供的核心文件加密技术可将加密的 NTFS 文件存储到磁盘上。EFS 特别考虑了其他操作系统上的现有工具引起的安全性问题,这些工具允许用户不经过访问检查就可以从 NTFS 卷访问文件。使用 EFS,NTFS 文件中的数据在磁盘上进行了加密。所用的加密技术是基于公钥的,并作为一个集成系统服务运行;它易于管理,不易受到攻击,并且对用户是透明的。如果用户要访问一个加密的 NTFS 文件,并且有这个文件的私钥,那么用户能够打开这个文件,并透明地将该文件作为普通文档使用。没有该文件私钥的用户被拒绝对文件的访问。
概述
个人计算机系统采取的一个标准安全措施就是,在试图从硬盘引导前,尝试从软盘引导。这可以保护用户避开硬盘驱动器故障以及被破坏的引导分区。不幸的是,它方便了启动不同的操作系统。这意味着可以物理访问系统的人可以使用可读取 Windows NTFS 盘上结构的工具,绕过 Microsoft® Windows® NT 文件系统访问控制的内置安全功能。很多硬件配置提供了类似引导口令的功能来限制此类访问。但此类功能并没有得到广泛使用。在典型环境中,多用户共享一个工作站,这些功能没有很好地发挥作用。即使这些功能获得了普遍使用,口令提供的保护也不是很强大。
EFS 的早期版本不支持文件共享。但是,EFS 结构是为任意数量的用户使用其公钥、实现文件共享而设计的。然后,用户可以使用他们的个人私钥,独立地解密文件。可以方便地从一组许可共享加入用户(如果他们有配置的公钥对)或删除用户。
EFS 提供内置的数据恢复支持。Windows 2000 安全基础结构强制对数据恢复密钥的配置。只有当系统配置了一个或多个恢复密钥时,才可以使用文件加密。EFS 允许恢复代理配置用于启用文件恢复的公钥。使用恢复密钥时,仅仅文件随机产生的密钥可用,用户的私钥不可用。这保证了其它私人信息不会无意中泄露给恢复代理。
数据恢复是出于对大多数业务环境的考虑,例如员工离开公司后或加密密钥丢失时公司要恢复员工加密过的文件。恢复策略可以在 Windows 域的域控制器中定义。此域中的所有计算机都被强制执行此策略。恢复策略处在域管理员控制之下,域管理员使用 Windows 目录服务委派功能,可以将此策略委派给受托的数据安全管理员帐户。这提供了更好、更灵活的方法控制被授权恢复加密数据者。通过允许多恢复密钥配置,EFS还支持多恢复代理,为单位实现恢复过程提供冗余和灵活性。
EFS 也可用于家庭环境。在没有 Windows 域的情况下,EFS 自动生成恢复密钥,并将它存为机器密钥。通过使用管理员帐户,家庭用户也可以使用命令行工具恢复数据。这减少了家庭用户的管理开销。 字串8
使用加密文件系统
下面几节提供用户一些案例用以说明 EFS 是如何工作的。
下图给出了 Windows Explorer 用于文件加密服务的上下文菜单。
上下文菜单提供用户以下 EFS 功能:
· 加密--此选项允许用户加密当前选定文件。如果当前选定的是一个目录,此选项让用户加密目录中的所有文件(和子目录),并标记目录为已加密。
· 解密--此选项与加密选项正好相反。此选项使用户能够将当前选定的文件进行解密。如果当前选定的是一个目录,此选项使用户能够将目录中的所有文件进行解密,并将目录重设为未加密目录。
· 配置-用户可以生成、导出、导入和管理用于基于 EFS 的文件加密的公钥。配置与用户安全设置的其它部分集成在一起。此功能是为要管理自己密钥的高级用户开发的。通常,用户并不需要进行任何配置。如果用户没有用于文件加密的配置的密钥,EFS 自动为他生成密钥。
除了图形界面,Windows 2000 还提供命令行工具以丰富管理操作的功能。命令行工具有:
· 密码命令行工具--可以在命令提示符下加密和解密文件。
例如:
o 要加密“C:\My Documents”目录,用户键入:
C:\>cipher /e "My Documents" 字串7
o 要加密所有带有“cnfdl”的文件时,用户键入:
C:\ >cipher /e /s *cnfdl*
完整的 cipher 命令支持以下选项:
CIPHER [/E | /D] [/S[:dir]] [/A] [/I] [/F] [/Q] [filename [...]]
/E 加密指定文件。目录会被标记,这样以后添加的文件就会被加密。
/D 解密指定文件。目录会被标记,这样以后添加的文件就不会被加密。
/S 对给定目录及所有子目录中的文件进行指定操作。默认“dir”指的是当前目录。
/I 即使发生了错误,也要继续执行恢复操作。默认情况下,当出现错误时,CIPHER 命令停止执行。
/F 对所有指定文件强制执行加密操作,即使是对已加密的文件。默认情况下,会跳过已加密的文件。
/Q 仅报告最基本的信息。
filename 指定一个模式、文件或目录。
如果没有参数,CIPHER 命令显示当前目录及目录下文件的加密情况。可以使用多文件名和通配符。多个参数之间必须加空格。
· Copy 命令--此命令将用新的选项加以扩展,以可移植的格式导出和导入加密文件。
例如:
o 要将加密文件导出到软盘上,用户键入:
C:\>copy /e EncResume.doc a:
copy命令支持的新选项是:
字串9
字串6
文件加密
用户只需选择一个或多个文件,然后从“文件加密”上下文菜单中选择“加密”。EFS 对选定文件进行加密。
文件一旦加密,就以加密形式存储到磁盘上。对文件的所有读写均透明地解密和加密。要查看文件是否已加密,用户可以检查文件的属性,看加密属性位是否打开。因为加密是透明的,用户可以像以前一样使用文件。例如,用户仍可以像以前一样打开 Word 文档进行编辑,或者使用 Notepad 打开和编辑文本文件。任何其他用户要打开此加密文件,就会出现访问被拒绝的错误,这是因为此用户没有解密文件的密钥。
用户(此处指管理员)不应加密系统目录中的文件,因为系统引导时需要这些文件。在引导过程中,用户的密钥不能解密这些文件。这一操作会使系统失去作用。Windows Explorer 使用户无法加密带有系统属性的文件,来防范此类操作。Windows 将来的发行版本会提供支持系统文件加密的安全引导功能。
EFS 也给用户提供了在不同系统之间传送加密文件的功能。“导出加密文件”和“导入加密文件”功能是 Windows 命令提示符下 Copy 命令的扩展。用户要做的只是使用导出选项,指定一个已加密文件作为源,并指定另一个在未加密目录中的文件作为目标。导出文件仍是加密的。然后,用户可以将此导出文件复制到别的文件系统,包括 FAT、备份磁带,或者像普通文件一样,将它作为电子邮件附件发出。要在复制的目标系统上使用这个文件,用户须将导出的文件指定为源文件,在 NTFS 卷上的新文件名作为目标文件进行导入,这样系统会创建一个新的加密文件。备注:简单地复制文件会得到一个明文副本,除非复制文件的目录已标为加密,则副本会被再次加密。这是因为普通复制命令使用由 EFS 透明解密的文件读取。这可用来创建用于分发的加密文件的明文副本。 字串7
目录加密
用户也可以使用 Windows Explorer 上下文菜单,将目录标为加密目录。将一个目录标记为加密目录可确保以后此目录中的所有文件默认为加密且所有子目录均标为加密。文件的目录列表不加密,只要对该目录有足够的访问权限,就可以和平时一样列举文件。
将目录标记为加密与文件加密类似。用户选定文件,然后在 Windows Explorer 中选择加密选项。在这种情况下,用户可以选择仅将目录标记为加密,或者将目录下所有文件及子目录标为加密。使用目录加密,用户只需将敏感文件复制到加密目录中就可对其进行管理。
文件或目录解密
普通操作时用户并不需要将文件或目录解密,因为在数据读写过程中 EFS 提供透明的加密和解密。然而在特定场合下,例如用户需要与其他用户共享一个加密文件时,可能需要这样的操作。
用户可以使用 Windows Explorer 上下文菜单,对文件进行解密和标记目录为未加密。此操作与加密类似。在一个或多个文件上执行此操作,EFS 对整个文件进行解密,并将其标为未加密文件。对一个目录进行解密时,上下文菜单也提供选项,递归地对目录中的所有加密文件及子目录进行解密。
EFS 恢复策略作为系统整个安全策略的一部分来实现。它或者是作为 Windows 域域安全策略的一部分,或者是作为独立工作站和服务器的本地安全策略的一部分。作为域安全策略的一部分,它适用于域中所有基于 Windows 2000 或 Windows NT 的计算机。“EFS 策略”用户接口已被集成为“域策略”和“本地策略”接口的一部分。此接口允许恢复代理通过公用密钥管理控制生成、导出、导入和备份恢复密钥。恢复策略与系统安全策略的集成提供了一致的安全强制模型。Windows 安全子系统负责强制、复制和缓存 EFS 策略。因此,用户能够在暂时脱机的系统(如膝上型计算机)上使用文件加密,这与用户可以使用缓存凭据够登录到他们的域帐户非常相似。 字串7
· EfsRecvr 命令行工具--使恢复代理使用任一恢复密钥,就可以查询恢复密钥和恢复一个加密文件。
例如:
o 要恢复 My Documents 目录中的所有文件,恢复代理可以键入:
C:\>efsrecvr /s:"My Documents" *.*
cipher 命令支持以下选项:
EFSRECVR [/S[:dir]] [/I] [/Q] [filename [...]]
/S 对给定目录中及所有子目录中的文件进行恢复。默认“dir”指的是当前目录。
/I 即使发生了错误,也要继续执行恢复。默认情况下,当出现错误时,CIPHER 命令停止执行。
/Q 只报告最基本的信息,包括恢复密钥标识列表以帮助恢复代理加载适当的密钥。
filename 指定了一个模式、文件或目录。
加密恢复
在 EFS 可以使用之前,EFS 要求在“域”的层次(或在本地,如果计算机不是一个域的成员)设置数据恢复。恢复策略由域管理员设置(或由称为恢复代理的受托人设置),系统管理员控制域中的所有计算机的恢复密钥。
如果一个用户丢失了私钥,被该密钥保护的文件可通过以下方式进行恢复:导出该文件,并以电子邮件的方式发送到一个恢复代理。恢复代理使用恢复私钥将文件导入到安全的计算机上,并使用恢复命令行工具解密该文件。然后,恢复代理将明文文件返回给用户。在没有域的小型业务环境或家庭环境中,恢复可以自己在独立的计算机上完成。
字串9
EFS 结构
本节提供对 EFS 的一个简要的技术和结构概述。
EFS 采用基于公钥的方案实现数据加密和解密。文件数据加密使用带有一个文件加密的 (FEK) 的快速对称算法完成的。FEK 是随机产生的一定长度的密钥,其长度是由算法决定的,或是由法则决定(如果算法支持可变长度的密钥)。与 EFS 有关的导出问题将在一个单独的文档中进行讨论。
FEK加密使用一个或多个密钥加密公钥,生成一个加密的 FEK 列表。用户密钥对的公共部分用来加密 FEK。加密的 FEK 列表与加密文件一起存储在一个特殊的 EFS 属性中,该属性称为数据加密字段 (DDF)。文件加密信息与文件紧密地捆绑在一起。用户密钥对的私有部分在解密过程中使用。FEK 是通过使用密钥对的私有部分进行解密的。用户密钥对的私有部分安全地存放在别的地方,如智能卡或其它安全存储设备上。
备注 用户密钥也可以使用对称算法加密,如由口令演变而来的密钥。EFS 并不支持这种密钥,因为基于口令的方案自身安全性较弱,易受到字典攻击。
FEK 也使用一个或多个恢复密钥加密公钥进行加密。再者,每个密钥对的公共部分用来加密 FEK。此加密的 FEK 列表与文件一起存储在一个特殊的 EFS 属性中,该属性称为数据恢复字段 (DRF)。加密 DRF 中的 FEK,只需要恢复密钥对的公共部分。在正常文件系统操作中,要求这些公共恢复密钥始终在 EFS 系统上。恢复本身一般很少用到,只是当用户离开公司或者丢失密钥时才使用。正因为如此,恢复代理可以将密钥的私有部分安全地存放到别的地方(智能卡或其它安全的存储设备上)。 字串4
下图给出了加密、解密和恢复过程的示意图。
图1 文件加密过程
图1 表示加密过程。用户的明文文件使用随机产生的 FEK 加密。文件加密密钥与文件存储在一起,文件是使用 DDF 中的用户公钥和 DRF 中的恢复代理公钥进行加密的。备注:此图表示仅一个用户和一个恢复代理--实际上可以是使用独立密钥的一组用户和一组恢复代理列表。EFS 的第一版支持单用户和多恢复代理。
图2 文件解密过程
图2 表示解密过程。用户的私钥用来对 FEK 进行解密,它使用 DDF 中相应的加密 FEK 项。FEK 以块为单位对文件数据读取进行解密。当对大文件进行随机访问时,只对从磁盘中读取该文件的特定块进行解密。不需要对整个文件进行解密。
图3 文件恢复过程
图3 表示恢复过程。恢复过程与解密类似,只是它使用恢复代理的私钥来解密 DRF 中的 FEK。
此简单方案提供了强大的加密技术,使多用户能够共享一个加密文件,也允许多恢复代理恢复此文件(如果需要)。此方案中算法使用十分灵活,在各个加密阶段,可使用任意的加密算法。这是至关重要的,因为产生了新的和更好的加密算法。
EFS 结构如图 4 所示。
图 4 EFS 结构
在 Windows 2000 操作系统中,EFS 由以下组件组成: 字串9
· EFS 驱动程序。 EFS 驱动程序在 NTFS 上面一层。它与 EFS 服务通信,请求文件加密密钥、DDF、DRF 和其它密钥管理服务。它将信息送到 EFS 文件系统运行时库 (FSRTL),以透明地执行各种文件系统操作(打开、读取、写入和附加)。
· EFS FSRTL。FSRTL 是 EFS 驱动程序中的一个模块,用于实现 NTFS 标注以处理各种文件系统操作,如对加密文件和目录的读取、写入和打开操作,以及文件数据写入磁盘或从磁盘中读取时对文件数据的加密、解密和恢复。即使 EFS 驱动程序和 FSRTL 都是以单个组件实现的,它们之间从不直接通信。它们使用 NTFS 文件控制标注机制相互传递消息。这保证了 NTFS 参与所有的文件操作。使用文件控制机制完成的操作包括,将 EFS 属性数据(DDF 和 DRF)作为文件属性写入,以及将 EFS 服务中计算的 FEK 传送到 FSRTL,使之可以在开放文件上下文中建立起来。此文件上下文又可用于磁盘文件读写操作的透明加密和解密。
· EFS 服务。EFS 服务是安全子系统的一部分。它使用本地安全授权 (LSA) 和内核模式安全参考监视器之间的现有 LPC 通信端口与 EFS 驱动程序进行通信。在用户模式下,它面对 CryptoAPI,提供文件加密密钥并生成 DDF 和 DRF。EFS 服务也支持 Win32® API 的加密、解密、恢复、导入和导出。!
字串4