加密文件的备份和还原
加密文件系统(EFS)会筛选已加密文件的打开方式,以便打开文件的应用程序能够访问未加密的信息,当然,它具有适当的凭据来访问该文件并获取解密文件所需的密钥。 此文件的后续读取作将生成未加密的文本。 这非常适用于对加密文件的典型访问,并使文件的加密和解密保持透明。 但是,它阻碍了加密文件的备份,因为如果使用标准文件 I/O 调用(如 CreateFile)进行备份,ReadFile,WriteFile,则备份的文件将是纯文本版本。
提供原始加密函数来解决此问题。 备份应用程序是这些功能的主要目标用户。 原始加密函数不同于其他文件系统函数,即打开、读取和写入函数允许访问原始加密数据流,并允许读取/写入$EFS流。 因此,原始加密函数的调用方不需要访问解密文件的加密密钥。 以下原始加密 API 可用于备份和还原应用程序:
原始加密 API | 描述 |
---|---|
OpenEncryptedFileRaw | 以加密格式打开有权访问数据的加密文件。 如果调用方无权访问文件的密钥,则调用方需要 SeBackupPrivilege 导出加密文件或 SeRestorePrivilege 以导入加密文件。 |
CloseEncryptedFileRaw | 关闭使用 OpenEncryptedFileRaw 打开的加密文件 |
ReadEncryptedFileRaw | 读取加密文件,以加密格式保留其数据 |
WriteEncryptedFileRaw | 写入加密文件,以加密格式保留其数据 |
ImportCallback | 应用程序定义的回调,用于 WriteEncryptedFileRaw |
ExportCallback | 应用程序定义的回调,用于 ReadEncryptedFileRaw |