麻省理工学院的课程“计算机系统安全”。 第18课:私人浏览Internet,第2部分

麻省理工学院。 讲座课程#6.858。 “计算机系统的安全性。” Nikolai Zeldovich,James Mickens。 2014年


计算机系统安全是一门有关开发和实施安全计算机系统的课程。 讲座涵盖了威胁模型,危害安全性的攻击以及基于最新科学研究的安全技术。 主题包括操作系统(OS)安全性,功能,信息流管理,语言安全性,网络协议,硬件安全性和Web应用程序安全性。

第1课:“简介:威胁模型” 第1 部分 / 第2 部分 / 第3部分
第2课:“控制黑客攻击”, 第1 部分 / 第2 部分 / 第3部分
第3讲:“缓冲区溢出:漏洞利用和保护” 第1 部分 / 第2 部分 / 第3部分
讲座4:“特权分离”, 第1 部分 / 第2 部分 / 第3部分
讲座5:“安全系统从何而来?” 第1 部分 / 第2部分
讲座6:“机会” 第1 部分 / 第2 部分 / 第3部分
讲座7:“本地客户端沙箱” 第1 部分 / 第2 部分 / 第3部分
讲座8:“网络安全模型” 第1 部分 / 第2 部分 / 第3部分
讲座9:“ Web应用程序安全性” 第1 部分 / 第2 部分 / 第3部分
讲座10:“符号执行” 第1 部分 / 第2 部分 / 第3部分
第11课:“ Ur / Web编程语言” 第1 部分 / 第2 部分 / 第3部分
讲座12:网络安全性第1 部分 / 第2 部分 / 第3部分
讲座13:“网络协议” 第1 部分 / 第2 部分 / 第3部分
第14课:“ SSL和HTTPS” 第1 部分 / 第2 部分 / 第3部分
第15课:“医疗软件” 第1 部分 / 第2 部分 / 第3部分
第16课:“侧面通道攻击” 第1 部分 / 第2 部分 / 第3部分
讲座17:“用户身份验证” 第1 部分 / 第2 部分 / 第3部分
第18课:“私人浏览Internet” 第1 部分 / 第2 部分 / 第3部分

有人认为这是潜在的问题吗? 第一个问题是,人们总是抱怨安全性。 当您重置内存并且程序受到输入/输出设备功能的限制时,这不是问题,您只需等到硬盘的机械部件或其他部件正常工作。



但是,请想象您的程序与处理器绑定在一起,并且可能与内存进行非常密集的交互,从而分配和释放数据。 在这种情况下,将内存清零会严重降低系统性能,这将是您不愿付出的安全代价。 实际上这通常不是问题。 但是众所周知,人们非常重视性能,因此重置内存的选择肯定会引起反对。

内存清零的另一种方法是在数据到达永久存储时对其进行加密。 也就是说,在应用程序将数据写入SSD或HDD之前,数据已被加密。 然后,当程序请求的数据从稳定存储器返回时,在进入RAM之前将对其进行动态解密。 在这种保护方法中,有趣的是,如果丢弃了用于加密和解密数据的密钥,攻击者将无法从磁盘恢复此数据。 这假定您绝对信任加密。

因此,这非常非常好,因为它使我们有机会不记得所有写入此加密数据的地方。 您可能会问,为什么要丢弃密钥,因为我们只是将所有加密数据视为可以再次选择的内容?

例如,考虑具有交换加密选项的Open BSD操作系统。 这样,您可以将键与页面文件的不同部分相关联,即我提到的情况。 因此,每次启动计算机时,此操作系统都会生成一堆新密钥。 关闭或重新启动计算机后,它将忘记用于加密交换空间的所有密钥。 我们可以说交换现在可以重用了,并且由于这些密钥已被遗忘,我们可以假定攻击者将无法访问存储在此处的东西。



学生:这些密钥的熵是如何分配的,是否可以解密?

教授:这是一个很好的问题。 我不知道这里使用了哪些熵资源。 Open BSD对安全性有偏执。 因此,我假设她例如考虑从用户键盘输入的数据和其他类似内容收集的熵池。 我不知道该操作系统如何管理密钥。 但是,您绝对正确的是,如果所使用的熵资源是可预测的,那么它将压缩密钥本身的熵空间,从而使其更加脆弱。

原则上,该模型仅提供交换加密,也就是说,假定密钥的RAM页面永远不会从内存中卸载。 如果仅将此页面固定在内存中,这在操作系统中就很容易做到。 这也不会帮助您与与内存总线有联系的人或可以“浏览”内核内存页面等的人做某事。

学生:从浏览的角度来看,这有助于防止私人浏览之后的入侵者,因为如果您必须丢掉密钥,那么它就不会保留在内存中。

教授:绝对正确。 这样做的好处是,交换加密实际上不需要更改应用程序。

学生:回顾一下-如果您在数据进入RAM之前先查看它们,那么会剩下任何存储器伪像吗?

教授:如果我正确地理解了您的问题,那将使您感到困扰,尽管数据已在磁盘上加密,但仍以明文形式存储在内存中。 回到交换加密的讨论。 加密数据传输到磁盘并不能防止攻击者可以实时查看RAM。 因此,如果仅攻击者在无法实时查看RAM的私人浏览会话后困扰您,则可以正常工作。 但是您绝对正确,因为没有更好的术语,所以不能提供此功能-RAM加密。 有一些研究系统正在尝试做这样的事情。 这有点复杂,因为在某些时候,当您访问硬件时,处理器必须对真实数据进行某些处理。 例如,如果您想使用add命令执行某些操作,并且需要使用纯文本传递操作数。

也有一些有趣的研究系统试图基于加密数据进行计算。 它像电影《黑客帝国》一样炸毁大脑。 但是可以说,RAM中的数据保护通常比驻留在稳定驱动器上的数据保护要弱得多。 还有问题吗?



学生:我们谈到了一个攻击者,该攻击者在一次私密浏览会话后采取行动。 但是,如果浏览器中具有“公共模式”选项卡和“私人模式”选项卡,并且在关闭“私人浏览”选项卡之后,公共浏览选项卡仍然处于打开状态,那么黑客可以通过它访问内存工件吗?

教授:这是一个有趣的问题,在讲座的最后,我们将讨论类似的攻击方法。 事实是,大多数私有浏览模式下的威胁模型并不意味着实时存在攻击者。 换句话说,他们假设您进行私人浏览时,没有其他人同时打开公共浏览选项卡或类似内容。 但实际上,通常没有实施私有浏览模式的方法没有得到很好的保护。

假设您打开选项卡进行私密浏览,然后关闭它以喝杯咖啡。 但是,例如,Firefox保存统计信息,例如内存分配。 因此,如果您的私人浏览选项卡的内存位于浏览器收集到的所有垃圾中,那么我可以在选项卡中看到您访问的URL等。 但是,总之,大多数攻击者模型并不意味着在您忙于私下浏览Internet的同时就构成了攻击者。

因此,交换加密非常有用,因为它为您提供了一些非常有趣的安全功能,而无需更改浏览器或在其之上运行的任何应用程序。 实际上,加密交换时使用处理器的成本通常比执行I / O操作的实际成本要低得多,尤其是如果您有硬盘,这是因为您是用磁盘购买其性能的。 这是纯机械零件和硬件的成本,因此交换加密对性能的影响不是很大。

因此,我们将要讨论的下一种攻击者是Web攻击者,我在本课开始时就提到过。 在此,假定攻击者以私人浏览方式控制了用户将要访问的网站,但是此攻击者并未控制用户的本地计算机。 为此,我们有两个安全目标,以保护自己免受Web攻击。

首先,我们不希望攻击者能够识别用户。 标识意味着攻击者可以将一个用户与另一个访问其站点的用户区分开。

其次,我们不希望攻击者能够判断用户是否正在使用私人浏览模式。 正如一篇演讲文章所写,防范Web攻击者实际上是一项艰巨的任务。

那么,识别不同的用户意味着什么? 就像我说的那样,从全球的角度来看,您可以想象一个用户看起来和访问该站点的所有其他用户完全一样。 假设网络攻击者可能想要执行以下两项特定操作之一。 第一个看起来像这样:“我发现有几个人以私人浏览模式访问了我的网站,而您是第五,第七和第八位访问者。” 换句话说,这意味着在几个私有浏览会话的上下文中的用户标识。



攻击者可能想要的第二件事是尝试在公共模式和私有模式下在用户与浏览会话之间建立连接。 假设我有一次在公开视图下访问amazon.com,第二次在私有视图下访问amazon.com。 攻击者真的可以发现同一用户两次访问了该站点吗?

学生:但这全都与IP地址相关吗?

教授:是的,是的。 这是一个很好的假设,因此我敢于假设在我们的情况下,用户没有使用Tor或类似的东西。 是的,我们可以基于用户的IP地址。 通过IP地址很容易识别。 而且,如果在短时间内从同一IP地址访问过两次站点,则很有可能是同一用户访问了该站点。

实际上,这是使用Tor之类的动机,我们将在下一次讲座中讨论该主题。 如果您还没有听说过Tor,那么我想说它基本上是一种试图隐藏IP地址等工具的工具。 您可以将浏览器想象为基于Tor的图层的集合,并且在其之上您可以使用私有浏览模式。 这可以为您提供私有模式根本无法提供的优势。 因此,Tor提供了IP地址的某种匿名感,但实际上并不能提供数据隐私,生命的特定时间或类似的东西。 您可以认为“ Tor”是充分实施私人浏览Internet的必要条件,但不是充分条件。

有趣的是,即使您使用Tor,Web服务器仍然可以通过查看此浏览器的独特特性来识别用户。



现在,我将向您展示今天的最新演示。 让我们看看我如何使用一个名为Panopticlick的网站。 你们中有些人听说过这个网站。 这是由EFF发起的在线项目-电子前沿基金会,电子前沿基金会。 该项目的主要思想是通过分析Web浏览器的各种特征来尝试将您识别为用户。 我会告诉你我的意思。 我们转到此站点,您看到“测试我”按钮,然后单击它。



通常,一堆JavaScript代码在这里可以工作,也许有一些applet和一些Java。

该网站正试图从我的浏览器中获取指纹,以了解其拥有多少独特信息。

让我增加字体-您看到他想找出的一件事是我使用的浏览器插件的详细信息。 因此,基本上,此测试将运行代码,这些代码看起来是否安装了Flash,该Flash的哪个版本,是否安装了Java以及它具有的版本。



您会看到所有这些插件甚至都无法同时显示在同一屏幕上。 这些是我的浏览器支持的所有各种插件和文件格式。 从全球的角度来看,如果您是“安全人员”,这应该会打扰您。 如果我真的在特定时间积极使用所有这些东西,那简直就是一场噩梦!



最终,Web服务器或Web攻击者可以搜寻此处显示的代码,并可以确定您的浏览器使用了哪些插件。 现在,如果您看一下左侧的这两列,那是什么?



第一列是识别信息的位。 下一栏更有趣-它显示给定数量的浏览器中只有一个具有相同的插件集,在这种情况下,它是27679个浏览器中的1个。 因此,这是获取指纹的一种非常特定的方法。 此数字表示,很少有人浏览器具有完全相同的插件和文件配置集。
因此,事实证明,他们是对的,我是一个完全独特的人,但是从长远来看,这会带来很大的安全问题。 查看其余测试结果。



这是我的笔记本电脑的屏幕分辨率和颜色深度,一台150万台计算机。 这是一个令人震惊的发现,因为这意味着在一百五十万用户的样本中只有一个人具有这种​​屏幕特征。
因此,这些东西在某种程度上是可加的。 指纹越多,攻击者就越容易发现是您访问了他的站点。 请注意,这是完全由服务器完成的。 我刚刚转到此页面,然后单击了一个按钮,这就是他们要做的。 请稍等一会,我再展示一件事。 Panopticlick网站已秘密登录。 现在,我将从地址栏中复制地址,然后打开Firefox的常规公共版本。 之后,我将再次运行此测试。

我再次指出-现在我处于公共浏览器模式,而在此之前我处于私有模式。 您会发现,如果查看浏览器插件,浏览器指纹的唯一性索引几乎保持不变-27679.82对27679.68。 这种差异是由几个插件造成的,具体取决于实现隐私模式的方式,这些插件可能会加载也可能不会加载。 但是,外观-指纹识别仍然很容易。 查看屏幕尺寸和颜色深度-这些指示器在公共和私人观看模式下没有不同。

因此,在两种模式下留下指纹的能力大致相同。 这是很难保护自己免受这种Web攻击的原因之一,因为浏览器本身在其配置中会携带大量信息,以供攻击者识别。

学生:我很好奇屏幕尺寸和颜色深度选项。 这是怎么发生的? 为什么它们如此独特? 通常存在多少个屏幕尺寸和颜色深度?

教授:我认为他实际上是在隐藏Panopticlick用来发现它的魔力的一部分。 在全球范围内,这些测试中的许多测试如何工作? 浏览器的某些部分只能使用JavaScript代码进行查看。 因此,您可以想象JavaScript代码通过window对象的属性进行浏览,该对象是JavaScript的三维图片,并注意到窗口内部的代码如何表示此奇怪的小部件,相邻的小部件,文本部分,插件等。 这样的页面通常还使用Java applet和Flash对象可以查找更有趣的东西的事实,例如计算机上可用的字体等。 因此,我个人认为在确定屏幕尺寸和颜色深度的唯一性时,会发生以下情况:该测试将启动一个applet,该applet尝试请求Java中的图形卡或图形界面,并在显示浏览器页面的过程中交替检查其工作的各个方面。

, , , .

. , , , JavaScript. , , . , .

? . , Tor, Tor – , IP- , — . !

. , , -. , , , , Firefox v10.7. , Firefox, . .

: Tor? ?

: , . , , , , , -. - , - .



: , , - Tor, Firefox .

: , - Tor. , «» Tor. , — IP, — , , , -.

, -, , , Firefox, - . - , . , - Firefox 10.7. , Firefox 10.7. HTML , . .

: , , . Tor , Firefox.

: , . , , , , . , Tor , Tor, , Firefox Java, .

– Tor , «» . , . – , , .
, ? – . , , ? , - . . , , ?



, . , . , , , iframe URL-, , iframe . . , iframe, , , , .

, , , , , . , , , , . . , . JavaScript JavaScript, . .

: , , ?

: , . , , , . , , -. , - , .



, , . , Amazon.com , . , , cookie , -, .

: , IP-.

: , .

: , , , IP- . , , .

: , . , , -, . JavaScript, iframe foo.com, iframe . , , , .

. , iframe, , .

, . , .

IP-, , , Tor IP-.

54:00

MIT « ». 18: « », 3


.

感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的资料吗? 通过下订单或将其推荐给您的朋友来支持我们, 为我们为您发明的入门级服务器的独特模拟,为Habr用户提供30%的折扣: 关于VPS(KVM)E5-2650 v4(6核)的全部真相10GB DDR4 240GB SSD 1Gbps从$ 20还是如何划分服务器? (RAID1和RAID10提供选件,最多24个内核和最大40GB DDR4)。

VPS(KVM)E5-2650 v4(6核)10GB DDR4 240GB SSD 1Gbps至12月免费,在六个月内付款时,您可以在此处订购。

戴尔R730xd便宜2倍?在荷兰和美国,我们有2台Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100电视(249美元起) 阅读有关如何构建基础架构大厦的信息。 使用价格为9000欧元的Dell R730xd E5-2650 v4服务器的上等课程?

Source: https://habr.com/ru/post/zh-CN430206/


All Articles