Windows 应用程序数据加密,只能由同一数字签名应用解密



是否有Windows API(最好带有托管的.NET包装器)允许对数据进行加密,并且仅在从同一数字签名应用程序调用时解密相同的数据?

例如,我有一个缓存的安全令牌,用于发送到服务器的桌面应用程序。 当用户选中"记住我"时,此令牌在登录时使用。 我想加密应用程序存储的此令牌,以便只有加密它的应用程序才能解密它。 我无法在应用程序中硬编码键/iv。 不知何故,操作系统(Windows)必须支持这样的东西,它在入口点的可执行文件上使用数字签名来验证和允许解密。

我需要避免让用户输入任何凭据来加密/解密此令牌。 自动登录的全部意义在于用户不必输入凭据。

是的,缓存的登录名存在安全风险,但将令牌使用限制为数字签名的应用程序可以减少暴露的外围应用。

我不认为桌面Windows应用程序可以做到这一点。Windows商店应用程序可能可以,我认为他们有一些每次安装的安全内容。

最接近桌面的东西可能是来自 .NET 的受保护数据类。指定DataProtectionScope.CurrentUser以使用特定于用户帐户的某些操作系统提供的加密密钥。

不要忘记optionalEntropy论点。我通常使用缓冲区,random.org 我在源代码中硬编码。

最新更新