首页 > 解决方案 > AD域DPAPI-NG API中的加密/解密

问题描述

我需要以特定域用户/组可以在域内的不同机器上解密它的方式加密一些数据。 例如,用户A登录到机器A并加密一些数据,然后他通过网络将数据传递给机器B并解密这些数据。两台机器当然是同一个域的一部分。

我在MSDN上发现了一些信息,即 DPAPI-NG API 是专门为解决此类问题而设计的。我认为他们使用用户凭据哈希或 kerberos 票证或类似的东西作为对称加密密钥,因此不同机器上的加密和解密不需要管理额外的秘密(密钥)。但事实证明,没有魔法。即使我使用 DPAPI-NG API,我仍然需要管理这些密钥。这就是我想要避免的,因为这带来了一个新的挑战 - 将我的秘密保存在安全的地方......我们在 AD 域中是否有一个简单的加密解密机制,不需要额外的证书或秘密来管理?

PS我考虑过使用漫游配置文件,它几乎可以完美地满足我的需求,但唯一的问题是,为了正常工作,它只允许同时登录一个帐户,否则解密不起作用。

我目前在 ASP.Net Core 3.1 控制台应用程序中使用的代码示例 ->

var services = new ServiceCollection();

services.AddDataProtection()
    .PersistKeysToFileSystem(new DirectoryInfo(@"\\computer_in_domain_share\SHARE\DPAPI_Keys")) // that is what I want to avoid...
    .ProtectKeysWithDpapiNG();

标签: .net-coreencryptiondpapi

解决方案


推荐阅读