[Powered by Google Translate] [10]周
[戴维·J·马兰] [哈佛大学]
这是CS50。[CS50.TV]
>> 好吧！这是CS50，但不会持续太久。
这是10周的开始。
上周三，我们有我们的测验，然后在下周一我们有一些庆祝蛋糕
因为我们兜了一圈，所有的方式回到从星期为零。
今天，我们来谈谈我最喜爱的主题之一，​​说实话 -
的安全和隐私，所有的硬件​​和软件的影响
大家都用的这些日子。
说实话，有很多有威胁
如果你还没有真正停下来想想他们，
他们实际上是相当艰巨的。
典型的例子 - 如果你曾经下载一个软件
在互联网上传播，并把它安装在您的计算机上，
你已经参与到一个相当程度的信任，对不对？
没有什么阻止Skype，或者Chrome浏览器，或任何软件
你已经安装到你的电脑，从简单地删除您的硬盘驱动器上的所有文件;
上传一些坏家伙的服务器硬盘驱动器上的所有文件;
您的电子邮件;，堵截所有的即时消息。
因为现实情况是大多数现代操作系统的今天
是不是真的有许多，我们安装的软件程序之间的一堵墙，
你和我都非常简单，只是种交叉手指和信仰
免费下载该应用程序，或99美分的东西，
实际上完全是良性的。
但是，正如我们已经看到通过C，和现在的PHP和JavaScript，
用此来表达自己的编程能力，
你可以做任何你想要的程序，用户自己可以做。
>> 因此，我们今天关于这一主题的重点 -
不仅一些威胁，但防御能力。
事实上，在世界上的安全性一般，
有一种猫捉老鼠的游戏，
我敢说几乎总是有坏人一条腿。
当它涉及到我们自己的个人电脑上的硬件和软件的优势，
我们必须认识到，一个坏家伙只需要找到一个简单的错误 -
一个错误 - 在一块的软件，我们已经写了一个利用，或正在运行
为了他或她接手我们的整个系统。
通过对比，我们 - 好人 - 需要修补和修复这些错误
并避免这些弱点。
所以，我敢说，就整体而言，坏家伙有优势。
什么课和上课是真正的
不是教你如何发动的战役，这些坏家伙，
但关于如何保护自己或至少作出决定，
是的，我知道这个软件确实可以阅读我的​​邮件中的每一个，
但我没因为它带给我的价值，另一方面。
>> 我很高兴能够加入由最聪明的人，我知道 -
罗布Bowden和内特 - 哈迪森。
罗布带我们参观的最低水平的安全标签的 -
的编译器，到现在为止，我们都来爱和信任。罗布·波顿。
[掌声]
>> 罗布所有权利。大卫几乎我的整个高谈阔论
我要介绍的，但是 -
几个星期前，你看到了一个缓冲区溢出攻击的例子
这是一个示例的骇客黑客成某些软件
他们不应该被黑客入侵。
的另一侧
有时，你本身是恶意软件。
它甚至不需要被黑客攻破。
是谁写的软件的人要攻击你。
>> 让我们直接进入代码，
考虑看看在“login.c的”。
在这里，一个傻程序验证用户名和密码组合。
在这里，您一定要熟悉C再次测验。
首先，我们用字符串描述的用户名，
然后，我们使用的是获取字符串抢的密码，
然后我们检查，只是一些琐碎的，是“抢”用户名？
而且是的密码“thisiscs50”？
或者，是汤米“用户名”和密码“I <3javascript”？
如果任一者的情况下，
那么，我们只是要打印的“成功”，然后我们有机会。
否则，我们将打印“无效登录”，然后，当然，
由于草图字符串malloc的内存，我们可以自由的用户名和密码。
这是一个简单的登录程序，
如果你仔细想想，当您登录到设备，
这是非常相似 - 甚至在登录到您的计算机 -
只是有一些登录程序，这是给你的访问。
在这里，我们正好有硬编码'抢'，'thisiscs50“，”汤米，“我<3javascript，
但可能有一些文件放在您的作业系统
其中有一个人可以登录到系统的用户名列表
这些用户名与密码的列表。
通常情况下，密码不只是保存在文本中是这样的。
是某种形式的加密，但是这会在我们的例子中。
>> 我们的编译器 -
这将是非常简单的。
我们需要至少指定一些文件，我们要编译，
然后在这里 - 这些行
只是读取的文件。
它读取整个文件到一个大的缓冲，
然后我们以空终止我们的缓冲区一如既往，
最后，我们只是编译文件。
我们不打算看看如何编译实际执行，
但作为一个提示，它只是调用铿锵。
我们将使用这个程序编译东西，而不是铛。
我们从一个问题是，我们看到的，我们希望我们的编译器编译，
但如果我们不打算使用铛，我不知道我要编译。
这是一个普遍的问题，被称为自举。
所以，就这一次，我将使用铛我们的编译器编译。
>> 如果你认为GCC和Clang的 -
这些方案中，这些编译器正在不断更新，
和这些编译器编译使用GCC和Clang的。
铛是一个大的C或C + +程序，
所以他们使用的编译器编译，这是铛。
在这里，现在，我们只是将要使用的编译器来编译我们的编译器，
我们甚至可以说 - '/编译“，”compiler.c'，'compile.c'，'-o编译器“。
请注意，这是确切的命令，我跑前 -
只需更换铛“。/编译器。
现在，我们有其它的编译器，但它是完全一样的。
它只是调用铛。
>> 我们将使用我们的编译器来编译我们的登录程序。
好了 - “。/编译login.c的的邻登录”。
所以，引用“的GetString”。
得到了“lcs50”。好吧。
所以现在我有我们的登录程序。
运行它 - 收到“请输入您的用户名”。
其中一个例子就是抢劫。请输入您的密码资料 - thisiscs50。
和成功！我有机会。
再次运行它，并输入一些无效的密码 -
或无效的用户名和密码 -
无效的登录。
好吧。没有这样远有趣的。
但是，让我们再次来看看在登录 -
这将是一个有点微不足道的例子，
但让我们添加一个else在这里说，如果（（STRCMP（用户名，“黑客”）== 0 &&
STRCMP（密码“，LOLihackyou”）== 0））
所以，现在，输出（“黑客！您现在可以访问。\ n”）;没关系。
编译 - 编译器login.c的邻登录lcs50 -
现在运行login - 如果我用我的用户名黑客
和密码LOLihackedyou -
我输入错误在那里？
砍死在login.c的- - ihack - 我会做，因为我觉得我做的，后来。
好吧。重新编译。
重新运行 - 黑客 - LOLihackedyou -
黑客攻击！你现在有机会。
>> 似乎没有太大的区别是，
因为它是我在做其他的用户名和密码完全相同的检查。
此外，天大的事情是，如果其他人看这login.c的 -
说，如果我通过了这一关，我的合作伙伴，他们打开这个文件，
他们读这一点，他们会看到 - 好吧，为什么你有这几行代码在这里？
这显然​​不是，应该是在你的程序中。
在某些程序中 - 像任何专有软件，是不是开源 -
你可能永远不会看到这几行代码。
所有你知道的东西像Skype或什么 -
Skype是您的计算机上有一些特定的用户名和密码组合
在一些特殊的方式登录到Skype。
我们不知道，人不知道它，
因为他们不读的源代码，看到有这个洞。
>> 我们所说的这一点 -
虽然这不是一个很聪明的例子 -
这就是所谓的后门。
如果你觉得你的房子的后门。
在这里，如果我的用户名“打劫”或“汤米，验证
这将是像“前门”。
就是这样，我应该能够安全地登录。
但是，如果我输入这个用户名和密码 -
然后，使用“后门”。
这是不是故意的方式进入程序，
但它仍然有效。
和一般人不应该知道这些后门。
我们要改善这一点。
让我们恢复这我们原来的login.c，
让我们来看看我们的新的编译器。好吧。
一切都在这里是完全一样的。
我们整个文件读取到缓冲区中。
一切都在这里是一样的。
我们刚刚编译的文件。
但现在我有这么大的，如果在这里
，说如果我碰巧编译的文件是login.c的，，
然后，我做一些特别的东西。
那是一些特别的东西吗？
我在这里看到了一些被称为“黑客”的字符串，
在这几行代码 -
这些都是相同的代码行 - 我想我做了使用“ihack'，而不是'ihacked前 -
看着这几行代码，
他们是完全相同的，我在login.c的前几行代码。
但现在，而不是让他们在login.c的，
我打算把它们放到我的编译器。
>> 这些都是我将要插入到login.c的行代码。
这行代码 - 最初举行我的login.c，的缓冲区
不再要足够大，因为现在我也想插入这个黑客
到我的程序中。
所有这一切都做的是创建一个新的缓冲区足够大， -
的原始文件和行额外的代码 - 黑客 - 我要插入那里。
下面是一些需要注意的 -
字符模式=“/ /拒绝他们的访问！”
如果我们回头看在login.c的，
我们看到在这里评论 - 拒绝他们的访问！
login.c的，这样的评论，看上去完全无害的，
所以你不会怀疑任何恶意，只是这条评论。
但在我们的编译器，我们专门去看看这行代码，
然后当我们找到它 -
这几行代码中插入我们的hack到该位置。
所以，我们在迭代在整个的login.c，
我们插入的黑客工具，它的确切位置说，拒绝他们进入，
然后我们编译 - 而不是原来的login.c
但新的login.c，黑客在“插入拒绝他们进入。”
>> 现在，我想我的新的编译器编译涉及与黑客。
我不打算使用铛，让我们复制我们之前使用的编译器
- 因此，编译器compiler.c compile.c-O evil_compiler。
现在，我们的邪恶的编译器 -
如果我们用我们的邪恶的编译器编译的任何其他文件，
该文件将编译，因为它应该。
这是完全正常的。
但是，如果我们用我们的邪恶的编译器来编译登录 -
因此，-O / evil_compiler login.c的登录的lcs50 -
再次在login.c的，但绝对没有在这里。
这是我们的一贯“如果是抢劫或托米我们在，否则我们”。
但是，当我们运行我们的可执行文件，这将照常工作。
再次运行 - 的黑客，LOLihackyou -
黑客攻击！你现在有机会。
只是在寻找在login.c的，你不会觉得什么是错的。
但正在使用的编译器的编译login.c
是专门设计用来插入攻入的计划。
我们只是提出我们原来的问题。
本来我们这行代码login.c的，如果任何人都看着他们，
他们会想，为什么在这里？
现在，如果有人碰巧在我们的编译器，
他们会看在这行代码，并说，
为什么在这里？
所以，我们还没有完全解决我们的问题。
但是，我们可以利用这个思路。
>> 看看我们的第三个版本的编译器，
这是同样的想法。
在这里，我们将整个文件读取到缓冲区中，
我们编译的文件在这里，
在这里，我有某种形式的字符串黑客
但要注意的文件，我其实现在黑客。
我是黑客compiler.c
login.c的。
但我是什么在插入compiler.c吗？
我插入代码，这是确切的代码在我们以前的编译器，
这是为了将代码插入login.c的。
这里是我们的，如果的STRCMP文件的login.c
和然后插入login.c的我们的hack东西。
这个新的编译器的目的是创建一个编译器
其目的是恶意编译登入。
为什么我们会看到，可以帮助我们。
所有其他的事情都是一样的，所以它的工作原理完全一样，它与我们以前的编译器。
我们只是遍历整个compile.c的。
但现在，而不是寻找“拒绝他们的访问，
我们要找的编译文件。
在哪里编译的文件吗？
看着我们完全无辜的compiler.c，
它的底部就在这里。
该评论 - 编译文件 - 再次，看起来完全无害。
但是，在我们的恶意版本的编译器，
我们要 - 在此之前，注释 - 此代码插入
其目的是将代码编译时login.c的。
>> 有很多层次的间接这里。
实际运行它。
同样，我们将复制我们的原始编译器。
现在，编译 - 编译器compiler.c compile.c-O evilest_compiler -
，现在evilest_compiler。
Evilest编译器 - 如果我们用它来编译我们的编译器，
让我们来实际看看。
Evilest_compiler - 把它结束了，所有的方式回到我们的编译器版本 -
第1版，我们的编译器只是读取该文件，并编译它。
在这里，我们知道，evilest_compiler - 当编译这个文件 -
要在这里插入代码之前编译的文件，
该代码是要看看我们的编译器的第二个版本的代码完全一样
它这样做。
此代码，其目的是打破登录，
将要被插入到我们的编译器evilest编译器。
让我们用evilest_compiler我们的编译器编译。
现在，我们将使用编译器，
回来登陆，
，并记住本的login.c有绝对没有什么可疑。
但我们的编译器编译login.c的，
抢劫，thisiscs50，取得成功。
让我们先登录的黑客，LOLihackyou，砍死！你现在有机会。
>> 认识到这是不同的，从我们的编译器版本2。
我们使用的编译器 - 让我们的移动 - 复制从登录 -
让我们把我们的编译器在这里。
卸下evilest编译器。
我们现在剩下的是编译器。
如果我们看看compiler.c，，
绝对没有在那里，似乎以任何方式恶意。
如果我们看看login.c的，，
在这里绝对没有以任何方式，看起来恶意。
但是，当我们用我们的编译器编译login.c的，
我们得到的容易被破解的login.c的版本。
当我们用我们的编译器来编译一个新版本的编译器，
我们得到的容易被破解版本的编译器。
现在，如果我们走出去和分发我们的编译器可执行文件，
没有人会知道它有什么恶意。
>> 这实际上是这样的 - 我不记得那一年 -
肯汤普森，他获得了图灵奖 -
如果你不熟悉的图灵奖，它几乎总是定义为
计算机科学的诺贝尔奖，所以这是我将如何定义它。
肯·汤普森发表讲话时，他接受了他的图灵奖
信任信任的“反思”。
基本上，这是他的想法，他的讲话。
除了我们的，而不是编译器，他说的是GCC -
只是一个编译器一样铛 -
他在说什么，像我们的login.c，我们的login.c似乎相对无用的
但他说UNIX的实际login.c的。
当您登录到您的设备，
有一些登录程序正在运行。
这是他在谈论的登录。
这基本上是他的主意。
他说，在GCC中，他在理论上可以种植了一个错误 -
不是一个错误，但恶意代码 -
编译时登录的功能 - login文件 -
将插入一个后门，这样他就可以在世界上任何UNIX系统的绝对
并与一些特定的用户名和密码登录。
当时，GCC是几乎每个人都用什么编译器。
如果有人发生在更新GCC，
然后，他们将使用GCC编译GCC，
你依然会得到一个坏的版本的GCC
，因为它具体地认识到，它被重新编译的编译器编译。
如果你曾经使用GCC重新编译login.c的文件，
然后，它会插入这个后门，他可以使用任何一台计算机登录到。
>> 这是理论上的，但 - 这特定的情况下是理论，
但这些想法是非常真实的。
在2003年，有一个类似的例子 -
我们就来看看这个文件，
它绝对没有用它做，但类似的错误。
该文件定义了一个函数调用的鸿沟。
它需要一个参数，参数b，
的目的是做一个除以b。
但它确实一些错误检查，
所以我们知道的事情是奇怪的，如果B发生等于零。
如果b为0，那么我们就分裂成2例。
你可能已经看到的bug。
第一种情况 - 如果是零，那么我们正在做的零除以零，
我们只是说这是不确定的。
第二种情况下 - 如果不为零，
那么它的东西，如1除以零，而我们只需要调用无穷大。
否则，我们回到往常一样除以b。
所以在这里，我们正在运行的这3起案件，
我们实际运行鸿沟 - 骂我 -
所以，忽略了铿锵的警告 -
非void函数的结束 - 显然我没有编译这个提前。
返回0。
分裂 - 所有权利。
/鸿沟，我们可以看到，无穷远，无穷大。
零除以零，不应该返回无穷大。
如果你还没有想通了的错误 - 还是没看到它之前 -
我们可以看到，我们做了= 0。
也许我们的意思了== 0。也许吧。
>> 但是，这是实际的东西，再次，在2003年，Linux内核 -
因此，我们的设备使用的Linux内核 -
任何Linux操作系统使用的Linux内核 -
所以非常相似，这表明一个错误。
这个错误背后的想法是 -
再次，只是有一些功能，被称为，它做了一些错误检查。
有一些特定的输入错误检测 -
它应该是，所有的权利，你可以调用这个函数与除数为0。
所以，我将只返回一些错误。
除，这是不一样的眼神，只设置一个等于0。
相反，这行代码做更多的东西，如用户=管理员。
或用户超级用户。
这是一个无辜的 - 第一眼 - 错误，它可能只是合理
我只是想一些具体的报告
如果发生用户是超级用户管理员。
但然后重新思考它，希望它看起来像一个简单的拼写错误的人，
但如果这段代码实际上已被释放，
那么你就已经能够破解任何系统通过特定的标志 -
在这种情况下，b = 0时 -
它会自动使用户的管理员，
然后，他有完全的控制。
这发生在2003年。
>> 它只是发生的唯一原因被抓
是因为发生了一些自动化系统
注意到在此文件中的变化
这不应该被改变的人。
该文件应仅是自动生成的。
正巧，有人感动 -
好了，想破解的人，感动的文件，
与电脑发现，触摸。
因此，他们改变了这个，后来才意识到那将是灾难
如果这已经得到了进入真实的世界。
>> 你也许会想 - 我们的编译器的例子 -
即使我们不能看到 - 的源代码 -
，特别是什么是错的，
如果我们看一下编译的二进制代码，
我们将看到什么是错的。
举个例子，如果我们运行的字符串函数 -
这是刚刚要查看的文件，并打印出所有可以找到的字符串 -
如果我们运行我们的编译器上的字符串，
我们看到的是一个字符串，它发现这是奇怪的 -
否则，如果（STRCMP（用户名，“黑客”） - 等等，等等，等等。
如果有人碰巧是偏执狂，不信任他们的编译器，
他们可以执行字符串和看到这一点，
然后他们会知道，有一些错误与实际的二进制。
但是，字符串是不可避免地被编译的东西。
那么，谁又能说我们的编译器不只是有更多特殊的代码
说，如果字符串是有史以来我们的编译器上运行，不输出所有的恶意代码。
>> 同样的想法，如果我们想显示汇编文件 -
我们了解到，汇编器把我们从汇编代码的机器代码 -
我们可以向相反的方向 - objdump的-D编译器 -
会给我们的组件，我们的代码。
见到这种情景，
这是很神秘的，但是如果我们想，我们可以通过这
和理由，等待，有什么在这里，不应该去上，
然后我们就会认识到，编译器做一些恶意的。
但是，就像字符串，说，objdump的是不特殊套管。
基本上，它归结到你不能相信任何事情。
点的纸被称为“信任信任”
在一般情况下，我们相信我们的编译器。
您可以编译你的代码，并期望它做什么，你问它做的。
但是，你为什么要信任的编译器？
你没有写的编译器。你不知道什么编译器必须实际做。
谁是说你可以相信它吗？
但即便如此，好了，也许我们可以相信的编译器。
看着这几十成千上万的人。
一定是有人认可的东西的编译器。
>> 如果我们只是去更深一层？
甚至也可能是您的处理器。
荒谬的，因为它可能是，
也许有一些流氓雇员在英特尔创建这些处理器
的处理器，只要你运行一些命令的注意事项
这意味着登录到计算机，
处理器将接受一些特定的用户名和密码组合。
它会被广泛接受复杂，
但有人能做到这一点。
在这一点上，你真的要打开你的电脑在处理器
用显微镜认识到，这些电路不排队，他们应该是？
从来没有人去捕捉这个错误。
在某些时候，你只需要放弃和信任的东西。
大多数人都相信在这一点上的编译器。
这是，你应该说不一定。
看着有点臭名昭著的视频 -
[戏剧性的音乐播放]
[这是一个UNIX系统。我知道这一点。]
这是所有的文件 - ]
她说：“这是一个UNIX系统，这个我知道。”
更换任何你喜欢的操作系统是UNIX -
她本来可以说，“这是一个Windows系统。这个我知道。”
这是一个完全没有意义的声明，
但我们都知道，她碰巧知道UNIX系统的一个后门进入。
她知道，她居然让一些用户名/密码组合，将
做任何她想要的。
>> 好的。今天的道德基本上你不能相信任何事情。
甚至你写的 - 你不写编译器。
编译器可能是坏的。
即使你没有写的编译器，运行编译器的东西可能是坏的。
（笑）有没有什么可以做。
世界是注定。
给大卫！
[掌声]
>> [大卫]谢谢。这是非常令人沮丧的。
不过说实在的，罗布是正确的。
我们并没有真正的解决方案，但你要得到一些解决方案
一些更常见的防御。
预期，Nate和我已经做台下有
知道，在这个房间里有那么多的笔记本电脑，
我们一直嗅探所有无线流量的通过这个房间，在过去的20分钟
Rob的谈话过程中，所以我们要采取一个2分钟的休息时间。
Nate的设置，然后我们要谈论的东西
我们可以发现。 （笑）
>> 所以，我可能夸大了一点点，只是为了戏剧，
但我们也能嗅探所有的无线通信因为事实上，
它是那么容易。
但也有方法，你可以抵御这样，
我给你内特 - 哈迪森。 >> [内特]甜。
（掌声）
>> [内特]谢谢，伙计。我很欣赏的喊出来。
好吧！这是比赛周。你们激动吗？
希望这将是一场伟大的比赛上周六。
我想你们在这一点 - 因为，你有一个测验周三
所有有关的代码，我们只是坐着一个精彩的讲座由Rob
一大堆的C代码 -
也许是有点累了的代码。
在这一部分，我们其实并没有任何触及任何代码。
我们只是谈论你每天都在使用的一种技术，
往往许多，许多小时一天，
我们将讨论与安全的影响，有。
>> 在本学期，我们已经谈了很多关于安全，
我们开始了一点点的加密。
[Bdoh LV vwlqng！
虽然你们可能是超兴奋地相互传纸条
在课堂上使用像这样的恺撒密码，
在现实中，有一些更有趣的了，当你谈论安全
这样的东西。
今天，我们要介绍几个技术
现实世界中，人们的实际使用中，做各种各样的事情
从人的数据包嗅探其实和
打破进入人们的银行账户和所有的。
这些都是合法的工具，我们在谈论
异常的可能的一个工具。
>> 我只想做一个快速免责声明。
当我们谈论这些事情，我们正在谈论他们，你知道那里有什么，
你知道如何当你使用你的电脑是安全的。
但是，我们绝对不希望暗示，你应该使用这些工具
在宿舍或你的房子，因为你可以遇到很多的大问题。
这是今天的一个原因，我们实际上并没有嗅探你的数据包。
>> 好的。的最后一个星期一，我们谈到饼干，HTTP，和认证，
如何Firesheep打开大门口到您的Facebook帐户，
您的Hotmail帐户 - 如果每个人都在使用Hotmail -
和许多其他帐户。
很多这个东西是要建立关闭，
但首先，我想借此快速浏览的互联网已经发展如何，随着时间的推移。
早在20世纪90年代，你们可能还记得，其实堵
您的计算机之一。
现在我们不这样做那么多了。
实际上，为了到我的笔记本电脑插入以太网电​​缆，
我现在已经使用这些适配器这是一种疯狂的。
>> 相反，在1997年，我们有新的，有趣的技术
走了出来，被称为IEEE 802.11，这是无线网络标准
IEEE是这样的管理机构，给出了各种 -
出版与计算机有关的各种标准。
802标准都对互联网技术。
因此，802.3以太网标准，例如，
图802.15.1我相信是蓝牙的标准，
802.11是所有关于无线上网。
在1997年就出来了。它并不太明白的时候了。
直到1999年和802.11b标准出来了，真的很流行。
>> 你们有多少人还记得，当计算机开始出来，并获得Wi-Fi的吗？
这是种很酷吧？
我记得在高中时，我的第一台笔记本电脑
它有一个无线网卡。
我爸给了我，并说我应该用它为我的大学的应用程序和所有的，
我不知道我是怎么看这个东西网上。
但幸运的是，我有一个无线网卡，所以这是非常酷的。
如今，你还可以看到802.11克的，这是其他非常受欢迎的
无线标准的。
在这一点上，b和g的漂亮已经过时。
任何人都知道是什么版本大多数人都对现在
如果他们购买新的无线路由器，这样的东西吗？
N.没错。宾果游戏。而事实证明，交流标准只是草案形式，
有其他版本的方式。
有了这些标准，我们得到了什么，是更多的带宽，
更多的数据以更快的速度。
这些事情是不断变化很快。
这也使得它使我们不得不购买更多的路由器和所有有趣的东西。
>> 让我们来谈谈什么样的无线通信是其核心。
随着以太网和那些老的拨号调制解调器，
实际上你的东西，你连接到您的计算机，
然后你插入各种各样的调制解调器，然后插入到你的墙上的插孔中。
你有有线连接，对不对？
整点的无线摆脱这东西。
为了做到这一点，我们有什么本质上是
我们的无线路由器的无线电通信 -
指定由我们小的无线图标 -
与此实线箭头表示某种有线连接，连接到Internet的
但是，当您连接到您的无线路由器
你实际使用几乎像一个对讲机之间
您的计算机和无线路由器。
什么是真正酷的是你可以走动。
您可以携带您的计算机上的所有的桑德斯，去网上冲浪，任何你想要的，
就像大家都知道和爱，
和你永远不要插入任何东西。
对于这项工作，我们有这方面的接收和传输。
这真的是这样的对讲机。
>> 这款无线路由器 - 桑德斯坐在下面这个阶段，就在这里 -
总是广播和接收，播放和接收，
同样地，您的电脑都是这样做同样的事情，太。
我们不能听到。
其他的事情，你可以做的是，你可以拥有多台计算机
谈论到相同的无线路由器。
你是一个路由器 - 再次，这是一个无线电通信 -
越接近你，你的信号是更好的，更好的电脑“听到”路由器
并可以与互联网通信。
如果你们是永远在你的宿舍里，在你的房子，你想知道为什么你的信号很糟糕，
它可能是因为：a）。你不是很接近你的路由器，或
b）所示。像一堵水泥墙或东西，有什么东西在你和你的路由器之间
不会让这些无线电波通过。
>> 让我们来谈谈有点像Wi-Fi为什么坏人。
坏人爱的wi-fi的几个原因。
下面是我们讨厌的坏家伙就在那里。
原因之一，这个坏家伙爱的Wi-Fi
是因为，在默认情况下，很多的无线路由器来，当你设置它们，
他们是不加密的。
这一直是一个问题，已经有实例 -
多个实例，现在 - 坏人了别人的房子，
通知有未加密的Wi-Fi来，他们可以连接。
它们连接到的Wi-Fi，然后他们开始下载各种有趣的东西。
他们不是下载的小猫，他们不下载的小狗。
这是BitTorrent这样的。这是最令人头疼的讨厌的。
有情况下，FBI甚至走上
认为谁拥有房子的人实际上是一个
去那里下载东西，他们真的不应该。
在未加密的Wi-Fi绝对不是你想要做的事情，
如果没有FBI来敲你的门。
>> 另一个原因，坏人爱的Wi-Fi
的原因是，大卫前面谈到的突破。
因为它是一个无线电通信为核心，
如果你知道的通道，您可以收听到该电台。
例如，如果有一个坏右，坐在中间偏右的接入点，
旁边的无线路由器，坏家伙可以监听所有无线流量的
从所有这些计算机。
事实上，这些家伙 - 这些幸运的少数人在前排 -
因为他们是超级接近所有这些无线路由器
，坐在舞台正下方，
他们将在这整个房间能听到大家的交通
如果你连接到Wi-Fi，开始浏览这些接入点。
这是不是很辛苦，坐自己在一个很好的位置，嗅，并找出
其他人在做什么。
这件事情要记住的，特别是如果你不知道在哪里的接入点是，
您正在浏览的说法，在星巴克。
>> 事实证明，嗅和所有的
是不是真的很难做到。
有一个节目叫做tcpdump的各种TCP流量转储
，你可以运行它非常简单 - 就像今天早上我这样做。
这里的一点点一倾，这里是一些过来的交通
我的网络的时间。
你可以看到 - 如果你眯着眼睛真的很难 - 在那里，有一点点的Spotify。
除tcpdump的 - 因为这是一个痛苦的使用 -
有一个叫做Wireshark的捆绑了这一切，一个漂亮的GUI程序。
Wireshark是超级方便，所以，如果你采取网络类，
这是一个工具，你会来爱，因为它可以帮助你剖析的所有数据包
那些漂浮在那里。
但是，它也可以被用于坏。
这很简单，只要下载这个程序，启动它，
启动网络捕获，看到的一切是怎么回事 -
过滤器和做各种有趣的东西。
>> 其他的事情，你可以做无线通信
不仅是你可以窃听，但你也可以学习如何与网络螺丝
并注入自己的信息来控制的经验，其他人
在同一个无线网络是越来越强。
让我们来看看在那。
下面是Firesheep - 我们知道，从上周的爱 -
这是窃听技术。
例如，如果我们想积极的坏家伙去和周围的混乱
这些计算机之一，
在这种情况下，我们已经尝试去浏览到harvard.edu的买了台电脑。
什么情况是，先在电脑发送一个消息到无线路由器，并说，
嘿，我想去访问www.harvard.edu。
比如说，本周末，他们正试图获得有关游戏的一些原因。
坏家伙，因为他是坐在中间，
该接入点旁边，可以看到通信的计算机
到路由器中，他知道，“啊哈！有人会的harvard.edu。” （邪恶地笑）
还有的将是此等待时间，而从路由器通信
互联网去寻找网页harvard.edu -
就像你们都知道在做PHP的pset -
这样的坏家伙有一点点时间，一点点的窗口，
他可以响应一些东西。
>> 比方说，这个坏家伙，当然，是一个Yaley的。
他响应harvardsucks.org。嘘！
坏，坏家伙！坏Yaley！
甚至更糟糕的是，他可能回应。 [http://youtu.be/ZSBq8geuJk0]。
我将让你们弄清楚那是什么。
这实际上是一个称为Airpwn的技术！这是开张了
的安全会议上几年。
随着Airpwn！你能够真正注入到网络流量。
计算机试图走出去到互联网，并试图去
Google.com，Facebook.com，harvard.edu
看到进来的恶意响应，并立即承担，好吧，
的响应，我在等待，并最终获得内容
harvardsucks.org或nameyourfavoriteshocksite.com
你可以看到事情会恶化的速度有多快。
>> 所有这些事情不能做
这些有线连接，因为有线连接
这是很难窥探到交通。
如果我是个坏家伙，一端是您的计算机
的另一端是你的路由器 - 调制解调器 -
只有这样我才能得到之间，连接到我的电脑实际上拼接
在中间的某个地方
或做其他事，一些下游的路由器。
但是，随着无线，也可以是那么容易，因为坐在一个教室的前排，
你可以做各种讨厌的东西在后面的人。
>> 让我们来谈谈你会如何抵御一些事情。
人谁开发的无线标准 - 802.11 -
他们没有任何想象力的愚蠢的人。
这是很酷的技术，当它首次亮相于1999年，
他们来到了这个标准称为WEP。
您可以在这里看到，当您尝试加入一个无线网络，
你有各种不同的安全选项。
这是一种痛苦，因为有6个一起
它从来就没有真正意义上的加入。
这是第1的顶部，他们来到了被称为WEP是第一位的。
WEP有线等效保密代表，我相信，
无线加密协议是一种常见的用词不当。
因为它试图给你的隐私的当量和安全保护
相当于一个有线网络的
随着WEP的最终结果是什么，
你有一个简单的，小的，你输入的密码和加密
您的计算机和路由器之间的通信。
>> 但与WEP有什么问题？
与WEP的密码是非常短的，
，也是每个人都使用完全相同的密码，
所以它真的很容易解密。
因此，速度非常快人想出了，WEP一个问题，
唯一的原因，你看到了这个小家伙仍然是 -
有一些老的系统，不使用WEP -
你应该寻找的WPA甚至WPA2标准
，后来被释放。
这些系统是一个更好的去保护无线上网。
这就是说，他们还是有一定的可编程性。
有工具，有可以做到这一点。
特别是可以很讨厌的一件事是，
如果你连接到无线路由器的身份验证，并使用某种形式的
加密通信，事实证明，这样黑客就可以很容易地发送一个数据包
你的路由器断开，
后，他们已经断开然后，他们可以听 -
您尝试重新建立连接与您的路由器，它们能嗅出这些数据包。
利用这些信息，他们就可以去和解密你的通信。
这是不以任何方式任何形式的安全超出了所有人的想象。
>> 其他的事情你可以做，当你设置无线网络
或者你加入他们的是 - 你注意，在这里，当我加入这个网络，
它要求我的网络的名称。
这也被称为作为SSID。
你在这里看到的权利，我有一个框，显示我使用的SSID。
有哈佛大学，CS50和CS50员工网络。
现在，你们有多少人知道，有一个的CS50员工网络周围？
你们中的一些。并非所有的你。
的问题，当然，如果我们不把这个在我们的SSID列表，
没有人会知道它最有可能。
我的希望。除非你们都试图破解我们的无线。
但是，这是你能做到这一点是非常重要的，当你设置了
一个路由器在家里。
这可能不会发生了几年了很多你，
但千万记住，保持该SSID那里，而不是将其命名为
超级共同的东西将有助于让您更安全的长远。
>> 最后一个夫妇的事情你可以做的。一个是HTTPS。
如果你在星巴克，如果你是在公共Wi-Fi
你决定访问您的银行帐户，访问您的Gmail，你的Facebook，
确保这些连接通过HTTPS。
这是一个额外的安全层，加层加密。
有一件事要记住的是，
你们有多少人曾经通过点击那个又大又红的屏幕，上面写着，
“这个网站可能是坏的。”
我知道我有。
这也可能是，当你浏览去看看国土或类似的东西，对不对？
是啊。 （观众笑）是啊。你去那里。我们知道谁在观看国土。
那又大又红的屏幕右下角有
往往预示着一些时髦是怎么回事。
有时，它只是网站本身是不安全的，
但同样的，红色的大屏幕上出现时，人们正试图
安装网络攻击。
所以，如果你看到了，红色的大屏幕在星巴克，
不会通过点击它。
坏消息。坏消息熊。
>> 最后一点，你可以看一下
是某种形式的VPN。
VPN可通过哈佛 - vpn.fas.harvard.edu -
这是什么做的是建立一个安全的连接
你和哈佛之间，漏斗，通过它，你的流量
这样，如果你正坐在一家星巴克这样的地方
您可以连接到哈佛，交通，安全，然后从哈佛大学浏览。
同样，并非万无一失。人们可以在中间。
他们可以开始打破它，而不是依赖的安全性，这是更为安全
在Wi-Fi单独。
>> 好的。总之，
当你设置的无线网络，
当你走出去，在公共场所使用无线 -
无论是星巴克，无论是五个人，无论是B.Good，
类似的东西 - 无论他们有Wi-Fi -
要知道你周围的环境。
要知道，什么人都可以做。
并且是安全的。不要访问您的银行帐户。
这可能是一个粗鲁的觉醒，如果有人显示了你的密码。
，深红色！我要扭转乾坤大卫最后一个字。
（掌声）
>> [大卫]我想从个人的经验，我会分享一件事。
你可能喜欢玩的 - 尽管苹果已经在很大程度上根除这个问题的工具
如果您更新您的软件，因为 -
但为此而没有真正能够信任的软件，我们使用，
和Nate的点，能嗅出了相当多的其他人在做什么
- 这是一个软件，现在是大约一年和半前。
[iPhoneTracker] [http://petewarden.github.com/iPhoneTracker/]
一段时间以来，iTunes的 - 之前的iCloud，当你被同步您的iPod或您的iPhone或
与iTunes或你的ipad公司 - 中备份的利益，
你的iPhone和其他设备已经做了一段时间
利用GPS数据。
>> 你们都知道也许你的iPhone和Android的Windows Mobile手机
和这样的日子可以跟踪你是在显示你的地图的利益
和类似 - 苹果和其他公司做什么
他们通常跟踪几乎无处不在，你的利益，实际上已在
提高服务质量。
一，你可以得到更有针对性的广告和喜欢，
但有两个，他们也可以找出哪里有无线热点，在世界上，
这可以帮助与地理定位 - 三角测量人的位置排序。
>> 长话短说，我们所有的人已经走的天线一定量的时间。
不幸的是，苹果已经作出设计决策 - 或缺少 -
不加密信息，当它被备份到iTunes。
什么样的安全研究人员发现的是，这是一个巨大的XML文件 -
一个巨大的文本文件 - 坐在人们的iTunes软件，
如果你只是有点好奇，
你可以去打探你的配偶的历史，你的​​室友的历史，
你的兄弟姐妹的历史等，
由于一些免费的软件，你可以绘制所有的这些GPS坐标 -
经度和纬度。
>> 所以，其实我这样做，我自己的手机。
我插在我的手机，果然，我的版本的iTunes未加密的时候，
我能看到的是我自己的模式。
下面是美国和每一个的这些蓝色圆圈代表
我碰巧已经超过那些拥有这种特殊的电话的前几个月。
我花了很多的时间，当然，在东北，在美国加州的一点点时间，
得克萨斯州的一个短命的行，如果你再放大，在此 -
这是所有种类的罚款和有趣的，但我知道这一点。
我的许多朋友都知道这一点，但如果你在更深的潜水，
你看，我花了我大部分时间在东北。
如果抓住一些熟悉的前瞻性城镇 -
这个大的，蓝色的墨水污点基本上是集中在波士顿，
然后我花了一点时间在从波士顿郊区辐射。
但我也做了相当多的咨询服务，一年。
今年是东部沿海地区，实际上，你可以看到我
我在我的口袋里的iPhone在波士顿和纽约之间来回行驶
和费城的进一步下降，以及花费一点点的休假时间
在开普敦，这是小胳膊有。
因此，每一个这些点代表我已经有一些地方，
我完全不知道的是，这整个历史只是坐在那里，
在我的桌面计算机上。
如果你缩小 - 这其实是一个小麻烦的。
我不记得曾在宾夕法尼亚州，尤其是今年。
但我虽然有点困难，我想通了，哦，这是事实，旅
果然，我的手机已经抓住了我。
>> 苹果自加密信息，
然而，这也仅仅是证明关于我们多少信息被收集，
以及如何轻松 - 或好或坏 - 这是可以接受的。
其中一个外卖希望从Rob的谈话，从Nate的谈话
今天这个样子是小的视觉效果，更认识到这一点
所以，即使 - 罗布的点 - 走，排序完蛋了，对不对？
有没有什么我们可以做的，当涉及到其中的一些威胁，
但在一天结束的时候，我们要相信某事或某人
如果我们想使用这些技术。
至少，我们可以做出明智的决策和计算决定是否
实际上，我们应该检查这个特别敏感的帐户
实际上，我们应该发出那略带怀疑的即时消息
在这样一个Wi-Fi环境。
>> 因此，随着中说，只有一次测验，一次讲座依然存在。
我们会看到你在周三然后周一。
（热烈的掌声和欢呼声）
[CS50TV]