【问题标题】:Can an API key be securely stored/retrieved by a windows desktop app?Windows 桌面应用程序可以安全地存储/检索 API 密钥吗?
【发布时间】:2022-01-02 20:47:36
【问题描述】:

有没有办法在 Windows 中安全地存储和检索 API 密钥?

例如,(c#) 桌面应用程序是否可以使用 Windows 服务/api 来存储和检索密钥?

【问题讨论】:

    标签: windows storage desktop-application api-key


    【解决方案1】:

    如果必须将密钥放在客户端计算机上,则可以将其读出。您使用哪种语言或哪种存储方式并不重要。最后,您必须将该 API 密钥发送到您的服务器以进行身份​​验证,此时有人可以使用 Fiddler 之类的代理来检查数据并记录该 API 密钥。

    要解决此问题,您需要为您的客户提供一个(网络)界面,他们可以在其中登录和管理其 API 密钥,以便他们可以请求新密钥或撤销旧密钥。在这种情况下,您的桌面工具还需要一些输入掩码,用户可以在其中输入该密钥(并将其存储在注册表或文件系统中)。

    通过使用这种方法,每个客户都可以使用自己的密钥,如果它被泄露,您(或客户)只需撤销这个单一的密钥,而不会影响其他客户。

    【讨论】:

    • 我 100% 同意这些 cmets。一个设计良好的系统应该使用服务器来调用需要 API 密钥来防止窥探的底层 API。但我想知道的是,密钥能否安全地存储在本地,即无需任何网络服务器基础设施。
    【解决方案2】:

    很抱歉回答我自己的问题,但似乎 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 2022-12-20
      相关资源
      最近更新 更多