【问题标题】:Storing credentials for automated use存储凭据以供自动使用
【发布时间】:2014-07-23 17:57:08
【问题描述】:

我已经环顾四周,由于我不是安全或加密专家,我仍然对如何在我的程序中实现加密感到困惑。我需要一个服务器来登录它的 gitHub 帐户来更新带有特殊标题的代码文件。我现在唯一的问题是如何存储/检索服务器的凭据。

PushOptions push = new PushOptions
{
    Credentials =
    new UsernamePasswordCredentials
    {
        Password = "password",
        Username = "Username"
    }
};

如何加密这些凭据以进行存储?我知道像示例一样将它们存储在代码中是一个坏主意,而且将它们存储在任何未加密的文件中也是一个坏主意。

另外,我想要的唯一用户交互发生在他们在服务器上编译和设置程序时。它就像 linux 服务器上的 cronjob,以防万一。另一个需要注意的细节,我使用的是 libgit2sharp,但之前使用的是 bash 脚本和 ssh 来验证测试。

【问题讨论】:

  • 你可能想看看OAuth
  • 我做了,但是 libgit2sharp 没有我可以找到的使用 OAuth 进行身份验证的选项。
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • 如果没有用户交互,您将如何提供密码来解密这些凭据?

标签: c# encryption mono password-encryption libgit2sharp


【解决方案1】:

我找到的最佳解决方案是将它们简单地放在日志文件中,因为服务器已经受到密码保护,我可以这样做,这样只有一个用户(我猜是 root)能够读取它们,但很少有人会知道服务器的存在,只有一个人应该知道在哪里可以找到它们并拥有这样做的凭据。

尽管缺乏安全性,但它达到了目的,并且仍然具有足够的安全性。如果不需要的人获得了凭据,很容易重置几个密码,这样他们就无法访问 gitHub 帐户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-08
    • 2014-08-29
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2019-12-04
    • 2012-04-18
    • 2017-09-14
    相关资源
    最近更新 更多