我www.facebook.com
在浏览器的地址栏中输入并按回车,然后使用 Facebook。
即使我https://www.facebook.com
在地址栏旁边看到一个 URL 和一个锁定图标,我真的可以访问假 Facebook 吗?
我www.facebook.com
在浏览器的地址栏中输入并按回车,然后使用 Facebook。
即使我https://www.facebook.com
在地址栏旁边看到一个 URL 和一个锁定图标,我真的可以访问假 Facebook 吗?
您可以通过多种方式确认您在真实 Facebook 上:
检查用于保护站点的证书。打开您的证书(说明因浏览器而异)并查看它的内容 - 它是发给 Facebook 的吗?是否在有效时间段内?现在,再看看是谁签署了该证书,再次用批判的眼光看待它。确保一切都有意义。沿着证书链向下走,直到获得根证书。现在,转到您最喜欢的搜索引擎并检查是否没有证书供应商出现在新闻中以获取泄露的私钥。不幸的是,基于 CA 的生态系统意味着您必须在某种程度上信任根 CA。
检查您要连接的 IP 地址 - 使用您最喜欢的 NSLookup 工具查看当您连接到 facebook.com 时 DNS 指向您的位置。将该地址带到谷歌,看看它是否与人们通常所说的 Facebook 的公共 IP 地址相匹配。
查看其他人最近是否报告了通过 TLS 连接到 Facebook 的问题,或有任何疑虑。考虑这些担忧对您来说是否有效,或者它们是否看起来像是用户做错了什么。
接下来,获取您从上述各点收集的所有数据,以及您所做的任何其他侦察。批判性地思考你是否认为以上所有内容都被令人信服的病毒、网络上的邪恶恶意行为者或马克·扎克伯格的笑声所伪造是合理的。还要考虑您想要避免的问题(提交或查看来自 Fakebook 而不是 Facebook 的信息)并考虑最终后果(数据泄露)是否可能以另一种方式发生,例如屏幕抓取器或键盘记录器病毒正在运行并只是记录您对真实 Facebook 的输入。然后,考虑风险是否超过了登录 Facebook 所获得的价值。然后意识到 Facebook 没有给你任何价值,并决定不值得冒险。
这正是 HTTPS 旨在解决的问题。https://
如果您使用以( not )开头的 URL 访问 Facebook(或任何其他网站http://
),那么您的浏览器将自动采用许多安全措施来确保它连接到您的网站确实是一个紧随其后显示https://
在 URL 栏中,如果不是,则警告您。
让我们简要介绍一下这些安全措施,以便您更好地了解它们的工作原理以及它们有效(或无效)的条件。
域名如何运作
当您第一次访问 URL 时https://www.facebook.com/
,您的浏览器首先会从您提供的 URL 中提取站点的域名。域名是 URL 中位于 URL 开头的“https://”之后和下一个“/”之前的部分。在这种情况下,域名是“www.facebook.com”。
域名内有多个标签,以句点 ( .
) 分隔。在这种情况下,最右边的标签com
是顶级域。在这种情况下facebook
,左侧的标签是顶级域 ( ) 的子域,而左侧的任何.com
其他标签,例如,都是由该域的所有者控制的子域。因此,虽然一个类似的域由 Facebook 控制(因为他们拥有该域名),但另一个类似的域将由拥有该域的任何人控制(可能不是 Facebook)。www
secure.facebook.com
facebook.com
www.facebook.com.login.site
login.site
理解这一点很重要,因为虽然https://www.facebook.com/
是 Facebook 的正确 URL,但不是https://other.site.com/www.facebook.com
,也不是,,或。如果您在 URL 栏中看到的域名不完全以 . 结尾,您的浏览器将不会知道您真的要连接到 Facebook,因此无法保护您免于连接到只是冒充 Facebook 的其他站点。https://www.faceb0ok.com/
https://www.faceboook.com/
https://www.facebook.com.secure.site/
facebook.com
域名验证
一旦您的浏览器获得您访问的站点的域名,它将使用称为 TLS 握手的过程连接到该站点。(同样,这是假设您通过 https 访问该站点。)作为此过程的一部分,您连接的服务器(无论是真实服务器还是假服务器)必须向您的浏览器提供一个称为 TLS 证书的特殊文件. 此文件必须包含来自第三方的签名声明,即您的浏览器已经信任的证书颁发机构。该声明将告诉您的浏览器在联系您请求的网站时使用什么加密密钥,并且您的浏览器将要求您连接的服务器(无论是真实的还是虚假的)证明它控制该密钥,然后再向该服务器发送任何进一步的信息.
因为 TLS 证书必须由您的浏览器已经信任的第三方签名,所以您正在与之交谈的服务器无法伪造该证书中的信息。而且由于证书包含您尝试联系的服务器的真实密钥(在我们的例子中为 facebook.com),因此伪造的服务器将无法让您的浏览器相信它是合法的,并且您的浏览器将显示警告给你,告诉你你连接的网站可能是假的。
有关此过程的更多信息,请参阅SSL/TLS 如何工作?.
但这足够了吗?
即使 URL 栏显示,您的浏览器是否会被欺骗从 Facebook 的虚假版本加载页面https://www.facebook.com/
?
在正常情况下,不会。如果您检查您使用的是 https 并且域名是正确的,这些内置保护通常足以确保您真正与真实的facebook.com
.
但是,尽管有这些保护措施,但在极少数情况下,有人可能会冒充 Facebook。例如,如果您在计算机上安装了自定义的受信任证书颁发机构,则该证书颁发机构的所有者可能能够冒充 Facebook。在工作中,您的雇主可能已经对您的工作计算机做了类似的事情,因此在使用不属于您的计算机浏览网页时要小心。(学校或图书馆的计算机也是如此。)您计算机上的恶意软件也可能能够安装自己的证书颁发机构或以其他方式绕过浏览器的保护。
还有其他更不常见的方法,攻击者可能会欺骗您的浏览器连接到虚假的 facebook.com,例如破坏您的浏览器信任的证书颁发机构,但我不会详细介绍这些方法,因为他们不太可能。
如果您怀疑,尽管有这些保护措施,您的浏览器可能会在没有警告您的情况下连接到虚假的 facebook.com,您可以使用Adonasium 的答案中探索的一些方法来确定是否是这种情况,但即使是那些方法绝不是万无一失的。
但同样,对于大多数用户而言,验证您通过 HTTPS 进行连接以及 URL 栏中显示的域名是否正确应该足以让您合理地确定您确实在与真正的 Facebook 交谈。
URL 是https://
(其中s
代表安全性)并且浏览器在 URL 栏中显示锁定的事实就是证明。这意味着使用 HTTPS 协议,网站必须提供证明其身份的证书。因此,作为用户,您需要确保使用了 HTTPS 并且您已开启,facebook.com
而不是其他东西(例如faceb00k.com
)。
但是,如果您的设备已被黑客入侵或被其他人(例如您的雇主)控制,您无法确定这一点(或任何事情,就此而言)。
只是为了补充已经非常好的答案,并遵循上面 user21820 的评论,您可以通过部分和分析来建立信任。
我只是想指出,在您描述的情况下,您的安全设置的一个基本点是浏览器。无论谁编写了您正在使用的浏览器的代码,都可以完全自由地向您展示您正在访问 www.facebook.com 并显示绿色证书,同时将您连接到他们想要的任何网站。您可以通过从您的计算机上嗅探 ip 流量来检测这种情况,而不是通过查看浏览器。
最后,我们都使用信任不同的人/公司/机构的设置:编写操作系统的人,安装它的人,编写硬件中的 bios 和其他固件的人,编写浏览器的人,安装的证书您的系统等大多数常见设置都是众所周知的,因此它们或多或少是值得信赖的,但我们最信任的是数字:如果微软、谷歌或计算机制造商将他们的软件定向到可疑站点或窃取敏感信息信息,或者如果 Mozilla 安装了不安全的证书,数百万用户中的某个人可能会以一种或另一种方式注意到。它不会让你的系统或我的系统中发生可疑的事情:只是不太可能。