大多数电子商务网站在您想要登录时都使用 SSL/TLS。但大多数只有使用 http 的主页。在登录页面和登录页面上有 SSL/TLS 是否足以防止 sslstrip ?
如果公司网站不在主页上使用 ssl 而在其他任何地方都使用 ssl,那么公司网站对 sslstrip 是否安全?
检查 HTTPS 的正确使用最终是用户的唯一责任。用户在访问网页时至少需要查看 3 点:
- 他们是否期望使用 HTTPS(至少对于网站的这一部分)?
- 如果是,证书是否有效(锁定/绿色/蓝色条,无警告)?
- 如果是这样,地址栏中的主机名是他们打算访问的站点的名称吗?
正确使用 HTTPS 需要对这 3 个问题回答“是”。
在初始页面上不启用 HTTPS 不一定是世界末日。此页面可能容易受到 SSLStrip 攻击,但该页面上的内容可能不需要安全传输。
- 如果有指向“安全部分”的链接,用户应该检查它是否将他们发送到他们期望的站点(参见上面的 3 点)。那是用户的责任。
- 网站的安全部分不应该假设在进入安全部分之前所做的事情(例如将物品添加到购物篮)是安全完成的(用户应该始终确认)。登录登录页面本身(如果有)也应该通过 HTTPS 提供(以便用户可以期望登录表单也被发送到 HTTPS,请参阅此 OWASP 规则)。另外,应该使用不同的会话管理,并且应该丢弃不安全的会话,以免会话被盗。这是 Web 开发人员的责任。
大多数网站可能有一个普通的 HTTP 欢迎页面,如果只是为了执行重定向到 HTTPS 或发送第一个HSTS 标头。http://
在这个阶段这可能确实容易受到 SSLStrip 的攻击,但如果用户不知道会发生什么(并且大多数人会首先使用纯 URL),则需要有一个起点。自动重定向可以(仅)降低风险。解决这个问题的唯一方法是让用户知道只有https://
URI 可以工作,或者让网站成为预加载的 HSTS 列表的一部分。
(如果用户或浏览器不希望使用 HTTPS,则没有网站是安全的 SSLStrip。这种预期可以通过 HSTS 在浏览器中自动激活,或者通过来自未发生攻击的网络的首次访问,或通过预加载列表。)
不会。主页上缺少 HTTPS 不会阻止 SSLStrip。如果任何连接以纯文本(即 HTTP)传输,它就可以被嗅探,并且会话可能被劫持。所有需要保护的页面都应该使用 HTTPS,并且应该使用HSTS 标头。
每当用户第一次访问http:
Web 上的页面(而不是本地文件或本地服务器上的页面)时,恶意 HTTP 代理都存在更改https:
链接到以下任何一项的风险:
- 普通
http:
链接 https:
指向具有相似名称的另一个网站的链接(example-login.com 而不是 example.com)
任何具有http:
链接到https:
登录页面的主页的银行都不了解安全性,句号。
解释:
银行应该明白,提供一个“安全”的服务器(HTTPS 服务器)是不够的,一个负责任的合理用户应该最终连接到这个服务器。(按照定义,关注电子邮件中链接的用户是不合理的。)
可以期望用户记住(或写下)他的银行的主域名(一个域名),而不是知道他的银行可能出于任何目的使用的所有其他域。再加上许多用户不了解 DNS 的分层性质,因此他们无法识别 secure-login.mybank.com 是 mybank.com 的子域,而是 mybank.secure-login.com、mybank-secure-login。 com 和secure-login-mybank.com 不是。他们并不愚蠢,只是对 DNS 的基本原理一无所知,不愿意学习这些技术细节。除非用户知道这个确切的完全限定域名,否则不能期望用户识别域名是合法的。
只需简单的规则,就必须保证用户到达正确的地方。“负面”规则,例如“检查,如果发现问题就停止”很难始终如一地应用:
- 只要没有攻击正在进行,用户就不会检测到任何问题
- 用户对总是给出相同(正确)结果的检查感到厌烦(它们似乎是多余的)
- 很容易忘记否定规则,然后继续
另一个问题是,在物理世界中,可以识别假物体,因为它们往往难以模仿真实物体,而且许多特征是对安全敏感的物理物体(银行纸币、信用卡)被设计成很难模仿,我们的直觉被训练来观察物体的属性以检测模仿。在处理网站时,这种直觉是完全错误的:模仿的网页看起来和原版一样好——事实上,它是原版的,有点像(甚至法律也带有混淆,即制作非法复制品是一样的)模仿的事情)。
与假银行(电子商务、ISP、社交...)网站打交道时,只有 URL(地址)会有所不同。登录页面看起来完全一样(除非骗子不称职,这也会发生)。
此外,我们已经接受了关于可能存在假钞票而不是假银行的想法的训练。
OTOH,不可能忘记诸如“输入此 URL”之类的“积极”规则,因为如果您忘记它,您的浏览器(通常)不会去任何地方。因此,如果有一天您的浏览器访问的网站看起来像您的银行(电子商务、ISP、社交...)网站,而您没有输入正确的 URL,那么您就知道出了点问题(至少非常可疑) .
所以在实践中,由于用户不是机器人,安全推荐程序理想情况下应该只包含积极的规则。浏览器是一个机器人,所以他应该执行所有的负面规则(SSL/TLS 有一堆负面规则)。