[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]