很抱歉造成您的不便,因为英语不是我的母语。
我用来hosts
访问一些网站因为DNS被污染了。
我的问题是,举www.google.com
个例子。
如果我被攻击者成功进行社会工程攻击,并将翻译更改hosts
为钓鱼网站。
如果我使用http
,那么我就彻底完蛋了,对吗?
如果我使用https
,并且我的电脑没有受到威胁,浏览器就会发出警告。
对于这种https
情况,钓鱼网站是否可能只是经过给我一份证书www.google.com
来证明它是真的吗?
答案1
考虑以下陈述:
全部
examplebank.com
您的网络浏览器信任的证书颁发机构拒绝向没有域名所有权证明的攻击者颁发证书。所有机构的签名密钥均安全存储,未经授权的人无法向自己颁发证书。(请参阅最近的Comodo 入侵。
您的 Web 浏览器正确检查服务器的 SSL 证书是否由有效的 CA 颁发、是否未被撤销、是否可供服务器使用以及是否为
examplebank.com
域颁发。没有任何活跃的恶意软件或浏览器错误会导致此类检查被绕过。
您始终打开
https://examplebank.com
,明确请求 SSL,而不是依赖网站来重定向您。你实际上读SSL 错误消息,而不是Ignore在打开网站时盲目点击。
如果以上所有情况均属实,则 HTTPS 将警告你您试图连接到虚假网站。但是,HTTPS 无法绕过较低级别的重定向(例如examplebank.com
DNS 或 的欺骗/etc/hosts
),因此如果您忽略警告,您的数据将流向攻击者,而不是真正的银行。
总而言之,是的,这是危险的。
回答编辑后的问题:
如果您使用纯 HTTP,您就完蛋了。
如果您使用 HTTPS,您将收到一个大红色警告(参见答案的第一部分)。
每个“证书”都有一个 RSA(有时是 DSA、ECDSA)密钥对。该密钥对的公钥是证书的一部分,而私钥则被锁定在网络服务器中,永远不会通过网络发送。成功完成 TLS/SSL 握手需要这两个密钥。
如果攻击者提供了证书,但没有相关的私钥,他们将无法解密通过 TLS 传输的任何流量。维基百科有一个TLS 握手描述。
答案2
SSL(HTTPS)仅在您的客户端未受到攻击的情况下才能保护您。
如果有人设法修改 /etc/hosts,他还可以设法修改您的浏览器以不执行您所连接的服务器的 SSL 验证,或者他可以将其欺诈服务器的虚假证书添加到您的系统的受信任证书数据库中。
但是,如果您的客户端没有受到攻击,并且有人设法将您的浏览器重定向到不同的 IP 地址(例如某种与 DNS 相关的黑客攻击,或者欺骗您修改 /etc/hosts 而不采取任何其他措施),浏览器将警告您服务器的证书有问题,并且,只要您不忽略警告并继续操作,您就是安全的。
关于第二个问题:
对于 https 的情况,钓鱼网站是否可能只是将 www.google.com 的证书传递给我以证明它是真实的?
不,这是不可能的,除非攻击者设法获取服务器的私钥(例如通过入侵服务器本身)。即使欺诈服务器“传递”了服务器的证书,如果客户端没有该私钥,他将无法向客户端证明其身份。如果他尝试这样做,他将失败,浏览器将显示警告。
答案3
Dante,欢迎您进行修改。但答案依然存在。如果 hosts 文件被盗用,您的整个安全性(包括那些在该文件上进行过社交工程攻击的域)都可能受到威胁。
HTTPS 是个例外,它会因为证书系统而提供某种形式的保护,让你知道你所查看的网站可能不是看上去的那样。