首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当通过我的站点服务器传递密码时,我需要考虑哪些安全安排?

当通过我的站点服务器传递密码时,我需要考虑哪些安全安排?
EN

Security用户
提问于 2019-01-12 07:51:00
回答 1查看 157关注 0票数 1

我想自动化一些我的家庭管理。

我在写一个小型的网站。用C#/.NET编写,托管在Azure上,由Azure支持,代码库在GitHub上公开可用。

我想让我的网站做的事情之一是登录到Selenium的其他几个网站,并收集一些信息。

我不想担心我是否做了正确的密码存储,所以我希望有用户(我!:D)输入相关的密码(S)到我的网站的用户界面时,它想要这样做。

因此,我将将相关的p/w输入到我的站点中,明文将传输到Azure中的服务器,我的代码将在插入目标站点的Selenium UI之前将其短暂保存在内存中(同样是纯文本)。

我想确保这样做不会降低我自己的安全性。

这个系统的安全考虑和解决方案是什么?

我认为有四个攻击矢量我应该考虑:

  1. 在我的家庭电脑和我的Azure网站之间的请求窥探。
  2. 在我的Azure站点和目标站点之间窥探请求的东西。
  3. 有人注意到了GitHub上的源代码。
  4. 进入Azure系统的人。

我认为我对这些问题的解决办法/对策是:

  1. 这可以通过为我的站点( 记录在OWASP上 )实现标准TLS来解决。
  2. 我假设目标站点是安全设置的(否则,从我的家庭PC登录到它也是不安全的,在这种情况下,我的新系统也不会更糟)。因此,我所需要做的就是确保Selenium尊重“浏览器与网站对话”的所有正常安全性。
  3. 我可以控制对代码库的写入权限。对代码库的只读访问永远不会带来安全风险,因为您已经假定攻击者完全了解您的系统结构。代码库不知道任何关于密码的信息,所以我没有公开任何内容。
  4. 将取决于他们在那里能做什么..。如果他们能看到数据库,那就没有问题了,因为密码永远不会放在那里。如果他们能监控流量,这和#1和#2没有什么不同。如果他们可以替换我的可执行文件,我将无法挽回,因为我所做的任何保护都可以通过更改可执行文件来完成。

基于上述情况:

  • 我认为前两个已经知道了解决方案。
  • 我觉得第三个没问题。
  • 我认为最后一个问题是不可解决的(但也不太可能是一个风险)

我不能做任何类似于发送密码哈希(而不是密码本身)的事情,因为我基本上需要我的服务器代码才能获得明文密码,这样它才能将其提供给目标站点UI。

我可以尝试在我的浏览器(或我的头脑中)对密码进行一些加密,并让我的站点对它进行解密。但要么我使用正确的,安全的加密,在那里知道机制和_en_cryption密钥没有帮助.在这种情况下,我认为我只是重新实现TLS,可能会做一个糟糕的工作。或者我正在添加简单的安全加密,因为代码库是公开的(因此,完整的解密码机制和密钥也是公开的),所以它什么也没有实现。

我的分析和理解是正确的吗?

EN

回答 1

Security用户

发布于 2019-01-12 14:00:13

最大的担忧似乎来自于您所知道的密码的使用,该密码被传输到远程站点收集信息。基于密码的用例身份验证保护中最主要的是HTTPS,它将防止大多数MitM攻击,并将您的信息从数据包嗅探器中隐藏出来。

至于担心有人劫持你的Azure系统,听起来你没什么可失去的。您所有的代码都可以在线使用,我唯一担心的就是您的数据库和存储在那里的数据。如果可以在应用服务器上的任何位置找到访问数据库的凭据,则可以公开您的数据。不幸的是,除了退役、重建和阻止攻击者再次进入计算机之外,您无法阻止计算机上的攻击者。

现在,基于密码的身份验证背后的挑战正在继续困扰着安全社区。密码很难管理,安全性也不太好。虽然已经构建了一些协议来试图降低这些风险(NTML、Kerberos等),但我们发现需要更安全的身份验证方案。取决于您与供应商的关系,可能值得看看他们是否能够或将在不久的将来支持FIDO、FIDO或其他现代身份验证解决方案。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/201325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档