问题标签 [encrypting-file-system]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
447 浏览

encryption - NTFS EFS:如何将加密证书从一个文件复制到(一个)其他文件?

我想将与一个标记文件关联的所有加密证书复制到一组其他文件中。

当然,有QueryUsersOnEncryptedFile一个返回 aPENCRYPTION_CERTIFICATE_HASH_LIST的函数,还有AddUsersToEncryptedFile一个接受 a的函数PENCRYPTION_CERTIFICATE_LIST

因此,据我了解,要复制证书,这些哈希需要转换回证书列表。

为了进行这种转变,我一直在搞乱CertFindCertificateInStore. 这在某种程度上起作用了,但不是所有证书,我什至不知道我应该查询哪些证书存储......我确实尝试了一些:CA,,,,,,,(甚至ROOT,这似乎包含过期的证书缓存,因为其中一些已经过期)但它们都没有让我访问我拥有哈希值的所有证书。MYSPCTrustTrustedPeopleAuthRootAddressBook

那么,我怎样才能可靠地将证书哈希映射回证书本身呢? (一些示例代码会很好。)

提前致谢!


作为旁注:

我还想从这些相同的目标文件中删除所有其他证书。为此,有一个可用的函数,称为RemoveUsersFromEncryptedFile,它也需要一个PENCRYPTION_CERTIFICATE_HASH_LIST.

我想这个列表可以通过首先调用QueryUsersOnEncryptedFile每个文件来收集,然后将生成的证书哈希列表传递给RemoveUsersFromEncryptedFile(在同一个文件上)。

但是有一个警告:我不想丢失所有证书,否则任何人都无法访问这些文件!我可以从这个中间哈希列表中安全地将我自己的(以及任何其他允许的)证书哈希清零吗?(鉴于还有一个专用FreeEncryptionCertificateHashList功能。)

0 投票
1 回答
276 浏览

c++ - 如何复制文件并继承 Windows EFS?

我有一个程序,我在 %USERPROFILE%\AppData\Local\Temp 中创建了一个临时文件,然后我调用 rename.c 的 _wrename() 函数来有效地将该文件移动到使用 Windows 的 EFS 加密的目录中。问题是该文件没有继承该目录的加密设置。有什么办法可以克服这个问题(顺便说一句,我不想​​加密 Temp 文件夹)?

0 投票
1 回答
1433 浏览

windows - 通过 API 以编程方式添加 EFS 数据恢复代理 (DRA) 证书

我正在寻找一种以编程方式(任何语言)为 Windows 操作系统中的加密文件系统 (EFS) 添加数据恢复代理 (DRA) 证书的方法。

手动执行很容易:gpedit.msc - 安全设置 -> 公钥策略 -> 加密文件系统 -> 添加 DRA;

但我想自动化它(不使用 Active Directory 组策略!)。

命令行解决方案也是可以接受的。

0 投票
4 回答
2268 浏览

c++ - 如何使用特定于应用程序的密钥加密目录?

我正在开发一个 C++ 应用程序,该应用程序通过多个类、数据库库等在单个目录中的多个文件中存储(并经常访问)其数据。我想开始使用由管理的密钥加密磁盘上的所有这些数据应用。

在 Windows 上,如果应用程序可以直接设置加密密钥而不是使用基于登录用户密码的加密密钥,那么以编程方式为目录启用 EFS 将是完美的。这似乎不可能。

因为代码中有很多地方可以读取/写入文件,其中一些具有完全随机访问权限,所以在没有直接 OS 支持的情况下,导出类似于 OS 文件操作 API 的库将是最简单的。

Windows 是最大的用户群,但在 Mac 和 Linux 上可用的东西将是一大优势。

有什么建议么?

0 投票
2 回答
1196 浏览

sql-server-2008 - 如何防止本地管理员用户访问使用 EFS 加密的数据库文件?

假设我有一个 C# 多用户客户端-服务器应用程序和 SQL Server 2008 Express 作为数据库。这是一个应该安装在客户个人电脑上的应用程序,为公司工作的每个人都可以访问,即对.mdf文件的物理访问是免费的,因此可以轻松地将.mdf文件复制到他/她的机器上,附加它并查看我开发的所有数据库结构和存储过程的代码。

我已经阅读了很多关于这个问题的信息,这些信息都指导我使用Windows 的免费EFS(加密文件系统)。因此,我实现了.mdf通过专门为此创建的特定 Windows 用户帐户加密我的文件,为用户设置密码,这样任何人都无法以我的用户身份登录并解密文件。一切都很好,但我遇到了一个难题,客户登录的用户几乎总是在本地管理员组中,因此他们可以轻松地为我的用户重置密码并以我的用户身份登录以解密文件。我不能从管理员组中排除他们的用户。

谁能帮我解决这个问题,好吗?或者也许有可能在没有创建额外用户的情况下解密文件,这样他们就无法解密.mdf文件?

我真的很感激任何帮助!

0 投票
1 回答
14980 浏览

encryption - 如何在没有 EFS 证书的情况下解密文件 (Windows 8)

在我的旧 Windows 8 64 位安装中,我有许多使用 EFS 自动加密的文件。我重新安装了 Windows 8 64 位,现在我无法访问这些文件。我没有以前操作系统的 EFS 密钥证书。

我尝试过的所有工作: 1. 我尝试了“添加所有权”软件,也在命令提示符下。2. 我在管理员中启用了 UAC 功能并尝试从管理员帐户访问。3.我主要试用了EFS恢复软件http://www.elcomsoft.com/aefsdr.html

现在还有其他方法可以在没有 EFS 证书的情况下解密文件吗?

0 投票
1 回答
512 浏览

windows - 在 NTFS (EFS) 上查看加密文件的密文

因此,我正在按照我在学校上的一门课程对数据加密进行一些测试(对于这个作业,我们打算只使用 Windows 环境),并且我能够使用 Windows 内置的“cipher.exe” " 工具非常适合我们需要做的事情。

我制作了一个小的 .txt 文件(我的纯文本),并使用没有错误的“cipher /e PlainText.txt”对其进行了加密。但是,我也希望能够查看密文。怎么做呢?我尝试以没有正确访问文件的用户身份登录,而不是看到密文,它只是出现空白,说“访问被拒绝”。

谢谢你的任何想法。

0 投票
2 回答
1848 浏览

windows - EFS(加密文件系统):安全问题:不是与密码相关的哈希存储在硬盘上

以下 youtube 视频很好地总结了 EFS 的工作原理。对于那些对此类窗口的内容摘要感兴趣的人,我将其附在下面。然而,这给我留下了一个关于安全性的问题:

  1. 当用户在 Windows 中登录时,可能会根据密码(或者从密码加上用户名以及其他数据(例如盐))计算哈希值。当用户第一次创建密码时,如果我没记错的话,这样的哈希必须存储在硬盘上的某个地方。至少,旧的 Unix 系统曾经以这种方式工作(这种方式存储在 /etc/passwd 中)。因此,当用户登录时,会计算密码哈希并将其与存储在此类文件中的内容进行比较,以验证用户身份。如果哈希匹配,则用户已登录。

到现在为止还挺好。如果使用上述机制(在现代 Windows 系统上),这意味着当有人入侵 Window 系统时,他们可以读取此类密码哈希,因此,使用特殊的 Microsoft 对称加密算法(如下所述),即密码哈希值加上微软特殊的对称算法加上加密私钥存储在硬盘上的位置的知识允许黑客对其进行解密,从而获得私钥。当然,一旦获得了私钥,那么所有使用证书中的公钥加密的数据都可以被黑客解密。

有人可以指出我推理中的缺陷吗?据推测,该缺陷是由于我对如何执行 Windows 身份验证的误解。

谢谢。

http://www.youtube.com/watch?v=YxgWsa-slOU

上述视频内容摘要: - EFS(在NTFS文件系统中可用)旨在允许用户加密文件和文件夹,以便除了加密此类文件或文件夹的人之外没有人可以访问它。只需最少的黑客知识就可以创建被盗机器上的管理帐户,因此可以访问硬盘驱动器上包含的几乎所有文件。对称密钥加密算法的工作速度比公钥加密算法快 100 到 1000 倍。右键单击 -> 属性 -> 常规 -> 高级... -> 加密内容以保护数据并单击应用,(然后您可以选择仅加密文件或加密文件及其父文件夹,然后单击确定)。Windows 会将文件变为绿色,我们仍然可以完全访问该文件。一旦使用管理员帐户登录的人将无法看到该文件。实际上,您可以使用“certmgr”命令访问证书管理器,从那里您可以查看 Personal -> Certificates 应用程序文件夹的内容,该文件夹一开始可以是空的。当我们以上述方式加密文件时,会生成一个称为DESX算法文件加密密钥(FEK)的对称密钥,然后使用证书的公钥对FEK进行加密并将其与加密数据一起存储。在证书存储中包含的证书中,您可以访问公钥但不能访问私钥(证书证明用户某某就是他们所说的身份并显示用户的公钥)。证书还指向私钥,

0 投票
0 回答
351 浏览

windows-server-2012 - 将 EFS 与 IIS 结合使用。如何确保恢复

嗨,我正在开发一个用户可以在网站上存储重要信息的系统。使用 Ws2012 和 IIS8

我使用 EFS 加密普通文件中的数据。它需要从服务器上的管理员那里获得安全。(至少使获取信息变得困难)文件需要在飞行中进行加密/解密。

它实际上工作正常。只需将文件夹设置为 EFS,然后 IIS 保存的文件被加密,管理员无法获取内容。到目前为止,一切都很好。

问题:但是如果重新安装了 IIS,或者需要重新构建/重新安装服务器,那么文件对于“新”IIS 不可用,因为证书不同。通常我可以以用户身份登录并备份 EFS 证书,但我如何使用 IIS 执行此操作。

这个想法是只有一个管理员(超级信任)来导出证书并保证它的安全。所以所有“正常”的管理员都无法做到。因此,在重建服务器后,可以重新安装证书,新的 IIS 可以再次访问文件。

我查看了几种获取证书的方法,但所有解释/示例都使用本地登录用户,而不是像 IIS 使用的“服务”用户。

可能有两种方法:一种是在创建站点时,将安装证书供 IIS 使用。这种方式导出不是nessesery,所有站点都使用相同的证书。但是如何?

第二种方法是导出 IIS 使用的证书,但是如何?

希望这是一个简单的任务,我只是找不到它。

问候杰斯珀

0 投票
1 回答
59 浏览

windows - EFS 证书被忽略

我的 Windows 配置文件具有有效的 EFS 证书(带有适当的 EFS 标志),当我尝试使用 Windows Encrypt() 方法加密文件时,会生成一个新证书,而不是使用我导入的证书。当我使用开发证书(相同的标志集)对其进行测试时,它可以工作。

可能是什么问题呢?