问题标签 [dpapi]

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 投票
2 回答
1217 浏览

c# - IIS 应用程序上的 ProtectedData.Unprotect - IISRESET 后无法工作

我需要从本地数据库中存储和检索敏感数据 - 此数据由 Web 应用程序使用。

为了保护上述数据,我选择使用ProtectedData该类。

IIS 应用程序正在使用特定的 AD 用户(高级设置中的身份属性)运行。

在我执行 IISRESET 之前,一切正常 - 在这一点上,似乎为了ProtectedData课程的目的而更改了身份,并且我留下了无法解密的数据 - 我遇到了一个Key not valid for use in specified state异常。

这是我正在使用的代码:

entropy对于我的应用程序来说显然是静态的。

这是怎么回事?DataProtectionScope.CurrentUser顾名思义,我的印象是将使用当前用户——据我所知,这应该是应用程序池标识。为什么在我执行 IISRESET 时这似乎发生了变化?

0 投票
1 回答
681 浏览

vb.net - 使用用户级 DPAPI (WinForms) 保护配置文件

我想保护我的 app.config 文件中的连接字符串。我正在使用这段代码来做到这一点:

但是,我注意到它使用的是机器级 DPAPI。我希望它使用用户级 DPAPI。我怎样才能做到这一点?

0 投票
1 回答
1679 浏览

c# - 如何使用 Azure Worker Role 和 OWIN 扩展 SignalR

SignalR 使用 Azure Web 角色进行了惊人的扩展。但是,当我在 Azure Worker Role 中使用自托管 OWIN 项目时,SignalR 将在添加多个实例时开始出现问题。作为记录,我的项目使用 Redis 作为背板。

将 Azure Worker Role 实例增加到一个以上时,客户端连接将随机失败,并显示错误"The ConnectionId is in the wrong format"。我相信这是由于负载平衡导致单个客户端的协商跨越多个服务器时引起的;我不相信参与协商的多个服务器可以解密数据(DPAPI 在幕后?)。

我尝试在 app.config 中设置 < machineKey /> validationKey 和 decryptionKey 但这似乎没有什么区别;问题依然存在。同样,该项目可以作为 Web 角色 (IIS) 正常工作,但不能作为工作角色(OWIN 自托管)。

假设这是 DpapiDataProtectionProvider 的问题,我如何确保提供程序在多个服务器/实例之间呈现相同的加密/解密结果?

解决方案

SignalR (DpapiDataProtectionProvider) 使用的默认保护提供程序似乎不支持 Azure 辅助角色扩展。通过滚动我自己的示例提供程序,我能够扩展 SignalR/OWIN/Azure Worker,并且不会收到随机的 400 HTTP/“ConnectionId 格式不正确”。请记住,以下示例不会保护/保护令牌。

在 Owin 启动期间注入自定义提供程序:

0 投票
1 回答
707 浏览

java - Java DPAPI JNI 错误 java.lang.UnsatisfiedLinkError:

代码

我知道库已加载,但我不知道为什么我仍然得到执行。链接:http: //jdpapi.sourceforge.net/

0 投票
2 回答
624 浏览

c# - 当我知道明文和密文时,我可以推导出用于 DPAPI 加密的密钥吗?

所以我有一个用 DPAPI 和一个未知密钥加密的文本,我有加密文本所代表的明文。我可以从中派生使用的密钥吗?如何?

0 投票
1 回答
1940 浏览

encryption - RSA 2048 勒索软件

这是我的第一篇文章!事情就是这样。CryptoDefense(Cryptolocker 的竞争对手)在今年 2 月底席卷了互联网。由于它在它加密的所有文件夹中生成文本文件,我什至计划使用第一个文本文件的时间戳来强制其 PRNG在计算上可管理的时间内生成密钥。

现在发生的事情是,我最近发现它的私有 RSA 密钥存储在 Windows Key Store 中,我能够看到它的第一个字符。其余的似乎通过 DPAPI(Microsoft 的数据保护 API)受到保护。我的问题是:如何解密 DPAPI?而且,另一个是:有没有办法用这些信息重建私钥?

0 投票
1 回答
884 浏览

encryption - 如何从 Windows 密钥存储中解密 RSA 密钥?

在此路径中:%APPDATA%\Roaming\Microsoft\Crypto\RSA

密钥存储在那里,但我无法使用它们。当我在十六进制编辑器中打开它们时,我只能看到其中的一部分,其余部分似乎是通过 CryptoAPI 加密的。我如何解密它?

注意:特别是这个密钥不是由我开发的应用程序创建的。我做了一些研究,似乎 CryptoAPI 使用 DPAPI 来保护它们。有任何想法吗?

谢谢!

0 投票
0 回答
171 浏览

winapi - 如何设置是否使用 DPAPI?

我了解了负责安全存储的 WIN API 方法。我阅读了有关 CryptoAPI 和 DPAPI 的信息:

“公共 DPAPI 接口是 Crypt32.dll 的一部分,可用于任何已加载它的用户进程。此 DLL 是 CryptoAPI 的一部分。”

所以当我想使用时,CryptProtectData我会CryptProtectDataCrypt32.dll. 但是当我想使用 DPAPI 时,我也必须CryptProtectData从中调用Crypt32.dll。如何设置是否使用 DPAPI,是否使用 CryptoAPI?

编辑:我怎么知道我不使用 DPAPI?我怎么能“说”一个程序来使用 DPAPI?

0 投票
1 回答
949 浏览

winapi - Do I need to store key for CryptUnprotectData and CryptProtectData?

DPAPI has 2 functions: CryptUnprotectDataand CryptProtectData.
I read They do the encryption or decryption by using a session key that the function creates by using the user's logon credentials. Does that mean that I do not need store this key anywhere and they will created when I want encrypt or decrypt data?
Also I found An important point to remember is that DPAPI merely applies cryptographic protection to the data. It does not store any of the protected data; therefore applications calling DPAPI must implement their own storage of the protected data. Is this about the key or a file what was encrypted?

0 投票
1 回答
1708 浏览

c# - 请求证书时,如何获取 pfx blob?

以下代码用于从 ADCS 实例请求证书。

如何提取请求和最终的 pfx blob(和密码保护)以用于外部存储?

代码的问题是我不想在 Windows DPAPI 中存储加密材料,特别是我不想“安装”证书,因为加密材料需要在多台计算机之间安全发送和共享.

我遇到问题的特定代码行包括:

我还想从自定义商店保存和导入证书请求......再次不是 DPAPI