【发布时间】:2021-06-04 08:41:59
【问题描述】:
我需要为我的应用存储凭据。我读过用代码存储它们是一种非常糟糕的做法。
我知道,DPAPI 就是为它而生的,但是如何在像 Ubuntu 这样的 Linux 上使用它呢? 所以 - 如果我可以让 DPAPI 在 Linux 上运行而无需花费一整天的时间 - 这将是我的第一选择。
然后是穷人的安全 - 目标机器上的文件。所以 - 不是与源;)该文件位于只有管理员可以访问的目录中,因此它与主机本身一样安全。我也可以将文件放在我的 Windows 开发机器上,它和我的机器一样安全。
告诉我为什么文件不好? ;)
【问题讨论】:
-
您存储了谁的凭据?用户的?为什么不将它们存储在 ~/.yourapp 中?用户输入了它们,所以他们知道它们是什么。需要访问服务器的东西?同样,如果它们是用户信用,那么 ~/.如果它们是服务器凭据,那么是谁在输入它们?您的代码是否需要与服务器联系?然后不要存储凭据,存储服务器已经给客户端的令牌(超时)(基于他们的凭据)。
-
两者。用户和系统。我的服务需要访问数据库,然后它必须存储他们用于外部服务的用户凭据。我会将它们加密存储在我的数据库中,但同样,我也需要存储加密密钥。在我的开发机器和目标服务器上。启动服务有一个截止日期,然后它可以更适当地开发,所以我现在寻找一种快速的方法,但不是一个完全安全的恐惧。
-
你在保护它免受谁的侵害?用户还是 FBI?用户可能不在乎,而 FBI 可能不值得。
标签: c# linux security .net-core dpapi