【发布时间】:2022-01-02 20:47:36
【问题描述】:
有没有办法在 Windows 中安全地存储和检索 API 密钥?
例如,(c#) 桌面应用程序是否可以使用 Windows 服务/api 来存储和检索密钥?
【问题讨论】:
标签: windows storage desktop-application api-key
有没有办法在 Windows 中安全地存储和检索 API 密钥?
例如,(c#) 桌面应用程序是否可以使用 Windows 服务/api 来存储和检索密钥?
【问题讨论】:
标签: windows storage desktop-application api-key
如果必须将密钥放在客户端计算机上,则可以将其读出。您使用哪种语言或哪种存储方式并不重要。最后,您必须将该 API 密钥发送到您的服务器以进行身份验证,此时有人可以使用 Fiddler 之类的代理来检查数据并记录该 API 密钥。
要解决此问题,您需要为您的客户提供一个(网络)界面,他们可以在其中登录和管理其 API 密钥,以便他们可以请求新密钥或撤销旧密钥。在这种情况下,您的桌面工具还需要一些输入掩码,用户可以在其中输入该密钥(并将其存储在注册表或文件系统中)。
通过使用这种方法,每个客户都可以使用自己的密钥,如果它被泄露,您(或客户)只需撤销这个单一的密钥,而不会影响其他客户。
【讨论】:
很抱歉回答我自己的问题,但似乎 Windows 凭据管理器和底层数据保护 API 就是为此目的而设计的。它与 Windows 用来存储各种密码的保险库相同。
它有一个不错的 c# API..https://docs.microsoft.com/en-us/dotnet/standard/security/how-to-use-data-protection
在这里回答得更全面..PasswordVault security when used from Desktop app
【讨论】: