English 中文(简体)
安全性 - 通过HTTP GET发送用户名和密码是否可以?
原标题:
  • 时间:2008-10-26 22:34:18
  •  标签:

We are an organisation who have purchased a system which is used by doctors to view test results of patients (quite sensitive information). Being a programmer, I have poked and prodded with the system and found that it submits the username and password via a HTTP GET request. On the domain it is run on, all computers are set to bypass the proxy, so the URL with the request won t be saved in some proxy log somewhere. But I would argue this is an unsafe way of handling username and passwords anyway.

供应商将会辩称我们从未要求过这个功能,这将是一个需要额外费用的增强功能。(我们从一开始就没有编写过系统的规格说明)。

我可以向管理層提出什麼樣的案例,讓他們感覺這不符合標準,而這個系統可能唯一安全的方式是通過HTTPS嗎?

EDIT: Thanks for all your responses! I have raised the issue with the project leader, her response was along the lines of "what s HTTP?". So I plan to explain it all to her in better detail, investigate the legal implications and try to raise the issue with the programmers directly asking why they went that path. I will also try and explain the situation to other colleagues who don t have any direct involvement but may be able to have some influence on the matter.

最佳回答

如果这是医疗数据而您居住在美国,那么访问该数据可能会受到HIPAA法规的限制,包括安全要求。您应该查看:http://www.cms.hhs.gov/SecurityStandard/Downloads/SecurityGuidanceforRemoteUseFinal122806.pdf。如果您不住在美国,我建议您仍然可以指出HIPAA与该领域相关。

如果您的供应商试图用额外费用推迟,请说:“您是在说您不符合相关政府标准吗?哇塞,也许您应该向我们提供有关您的安全和隐私标准、保障和程序的完整文件,因为如果我们受到罚款,我们会追究您的责任。”(我不是律师之类的。)

从技术层面来看,无疑,关于以太状迹,展示了多么容易搜集用户名和密码这个建议,应该让您的管理层知道这是多么令人惊讶的。鉴于正常的网络流量是多么容易被嗅探,以及使用 SSL 进行传输是多么容易,供应商拒绝将其作为“安全增强”的想法是不能接受的。

问题回答

一个好的方法是找一个比较懂技术(或是聪明)的经理,如果你给他们展示一个真实的以太网追踪记录,他们就能够理解(看!这里是用户MrGreen的密码。怎么样,不相信?那你自己试试!)。

只有在您信任并了解经理的情况下才可以这样做,否则请直接与经理交谈,如果他不相信您,请请求展示权限。如果他不授予,请指向此问题或其他在线资源。但是,如果他们不在意,那就没办法了。

进行实时跟踪,并简要说明您所做的事情(我们网络上的任何人都可以做到这一点,只需安装这个程序即可)。之后解释说,在系统上启用加密几乎是免费的,这将防止这种情况发生,并且该应用程序几乎不需要进行修改。并且,它会有传输所有内容加密的好处,因此记录会更加安全。

那就让经理负责相关权限/预算审批/设备等事宜吧。

而整体修复它的唯一明智方式,确实是使用POST(以修复通过URL发送密码)和HTTPS。

我最担心的是,发送明文密码的人可能会有许多其他安全漏洞。

这里有两个问题,一个是技术问题,一个是合同问题(因此涉及法律)。我不会在 Stack Overflow 上寻求法律建议。

技术上的答案很明显——这些做你系统的人是小丑,因为他们在里面留下了一个巨大的安全漏洞。

法律上,这将取决于您所在的国家(我注意到您来自布里斯班,所以来自这个国家的问候)。许多国家都有可能违反医疗和/或隐私立法,因此这是要检查的事情之一。其他人建议研究的HIPAA法律仅适用于美国;我们在澳大利亚可能有类似的法律,但我确信这里的隐私法律也可能会生效。

同样地,您需要检查合同(无论是您起草的还是不是,我假设您(或您的前任)签署了它,否则您就没有任何支付费用的义务)以查看隐私是否是一项要求。即使没有,一位称职的律师也可以争辩说它是一项含蓄的要求。

你可能需要接受现状,支付额外的费用 - 我曾为一些大公司工作,它们倾向于将除客户交付内容以外的任何责任都摆脱掉(这通常写入合同中)。如果你的供应商很有能力(当然是在商业方面而不是客户满意度方面),他们会做到这一点。

但是首先,请联系律师寻求建议。他们是低端的底部饲料器 :-),但他们是知道该怎么做,并且能够最好地审查合同并向您建议最佳选项的人。我大约10年前使用了一位律师,以退出我再也负担不起的汽车合同,尽管这花费了几千美元,但这比另一种选择要好得多。

除非他们经常来这里,否则你在这里得到的建议要么偏向技术方面(最好的情况),要么从法律意义上说是非常危险的(特别是因为这些建议大部分基于美国法律)。我不想为律师类型做广告,但我知道你可以在这里找到一个律师。

祝你好运。

即使使用SSL,请记住,当使用GET发送用户名和密码时,它们将作为URL的一部分包含在内。

这意味着任何服务器日志将在日志记录过程中包含用户名和密码。因此,您需要保护这些日志,或者至少防止查询字符串的记录。

我认为对于您的情况,即使在“安全”网络上,您也应坚持使用 HTTPS。

这类似于HTTP基础认证(基础认证允许在标题中使用 - 这是首选方法,但也可以按照特定格式将其放入URL中,详见rfc2617)。

通过SSL / https,主机名将明文显示(显然需要找到服务器),但URL的其他部分应安全加密。

This is no less secure than built in basic http authentication.

这是事实,除了一个微妙的点,即根据系统设计的方式,用户名和密码可能会出现在浏览器窗口的地址栏中。

我认为至少他们应该将这些信息发布到服务器上。

这不比基本的http身份验证更不安全。只需确保用户名/密码不被客户端Web浏览器缓存(它是否在您的浏览器历史记录中?)

我认为最简单和最便宜的方式是要求使用HTTPS保护您的Web应用程序。如果用户访问的是HTTP网址,您可以简单地将其重定向到HTTPS等效网址。

如果你必须允许HTTP访问(我不确定为什么会这样),那么它绝对不安全。你应该实现类似HTTP摘要访问身份验证的东西。

我认为增强安全性并非你应该让编码人员免费提供的服务,除非用户名/密码出现在浏览器历史记录中。

由于您正在处理医生和患者信息,因此我认为内容本身也应该加密,而不仅仅是身份验证。因此您应该使用HTTPS。

用户名和密码不应以未加密的方式通过网络发送,因此至少在身份验证方面坚持使用HTTPS。我的首选是仅通过POST方式接受用户名/密码(以便它根本不出现在URL中),但您可以想象加密和编码密码,以便可以放入GET请求中。我无法想象为什么会这样做而不是使用POST。

正如其他人指出的那样,如果您具有与患者相关的数据,则可能需要加密与服务器的所有通信。如果您在美国,我建议您研究HIPAA法规,看看在这里有哪些与保护数据相关的法规,特别是隐私规则的第164.306节(PDF)。

这是定制软件还是其他人使用的软件?如果是后者,请考虑加入或创建一个代表所有使用该软件的用户组。





相关问题
热门标签