我想自动化一些我的家庭管理。
我在写一个小型的网站。用C#/.NET编写,托管在Azure上,由Azure支持,代码库在GitHub上公开可用。
我想让我的网站做的事情之一是登录到Selenium的其他几个网站,并收集一些信息。
我不想担心我是否做了正确的密码存储,所以我希望有用户(我!:D)输入相关的密码(S)到我的网站的用户界面时,它想要这样做。
因此,我将将相关的p/w输入到我的站点中,明文将传输到Azure中的服务器,我的代码将在插入目标站点的Selenium UI之前将其短暂保存在内存中(同样是纯文本)。
我想确保这样做不会降低我自己的安全性。
我认为有四个攻击矢量我应该考虑:
我认为我对这些问题的解决办法/对策是:
基于上述情况:
我不能做任何类似于发送密码哈希(而不是密码本身)的事情,因为我基本上需要我的服务器代码才能获得明文密码,这样它才能将其提供给目标站点UI。
我可以尝试在我的浏览器(或我的头脑中)对密码进行一些加密,并让我的站点对它进行解密。但要么我使用正确的,安全的加密,在那里知道机制和_en_cryption密钥没有帮助.在这种情况下,我认为我只是重新实现TLS,可能会做一个糟糕的工作。或者我正在添加简单的安全加密,因为代码库是公开的(因此,完整的解密码机制和密钥也是公开的),所以它什么也没有实现。
发布于 2019-01-12 14:00:13
最大的担忧似乎来自于您所知道的密码的使用,该密码被传输到远程站点收集信息。基于密码的用例身份验证保护中最主要的是HTTPS,它将防止大多数MitM攻击,并将您的信息从数据包嗅探器中隐藏出来。
至于担心有人劫持你的Azure系统,听起来你没什么可失去的。您所有的代码都可以在线使用,我唯一担心的就是您的数据库和存储在那里的数据。如果可以在应用服务器上的任何位置找到访问数据库的凭据,则可以公开您的数据。不幸的是,除了退役、重建和阻止攻击者再次进入计算机之外,您无法阻止计算机上的攻击者。
现在,基于密码的身份验证背后的挑战正在继续困扰着安全社区。密码很难管理,安全性也不太好。虽然已经构建了一些协议来试图降低这些风险(NTML、Kerberos等),但我们发现需要更安全的身份验证方案。取决于您与供应商的关系,可能值得看看他们是否能够或将在不久的将来支持FIDO、FIDO或其他现代身份验证解决方案。
https://security.stackexchange.com/questions/201325
复制相似问题