[Powered by Google Translate] [Woche 10] [David J. Malan] [Harvard University] [Dies ist CS50.] [CS50.TV] All right! Dies ist CS50 aber nicht viel länger. Dies ist der Beginn der Woche 10. Am Mittwoch haben wir unser Quiz, und dann am nächsten Montag haben wir einige festliche Kuchen Als sich der Kreis den ganzen Weg zurück von Woche Null. Heute sind wir zu einer meiner Lieblings-Themen zu sprechen, die Wahrheit zu sagen - , dass der Sicherheit und der Privatsphäre und die Auswirkungen all der Hard-und Software dass wir alle in diesen Tagen. Um ehrlich zu sein, gibt es eine Menge von Bedrohungen gibt dass, wenn Sie nicht wirklich hielt inne, um darüber nachzudenken, sie sind eigentlich ziemlich entmutigend. Case in point - wenn jemand von euch schon einmal ein Stück Software heruntergeladen off des Internet und installiert sie auf Ihrem Computer, Sie haben sich zu einem bedeutenden Maß an Vertrauen engagiert, nicht wahr? Es ist nichts mit Skype oder Chrome, oder jedes Stück Software verhindert Sie haben auf Ihrem Computer installiert ist, vom einfachen Löschen Sie alle Dateien auf Ihrer Festplatte; das Hochladen aller Dateien auf Ihrer Festplatte, um einige schlechte Kerl Server; aus der Lektüre all Ihre E-Mails; abfangen alle Ihre Instant Messages. Denn die Realität ist heute mit den meisten modernen Betriebssystemen es ist wirklich nicht viel von einer Mauer zwischen Software-Programmen, die wir installieren, und Sie und ich sind ziemlich einfach irgendwie drücken die Daumen und unter dem Glauben dass diese app wir kostenlos heruntergeladen, oder dass, was 99 Cent ist, ist eigentlich ganz harmlos. Aber als wir durch C gesehen, und jetzt PHP und JavaScript mit dieser Fähigkeit, uns programmatisch zum Ausdruck bringen, Sie tun können, die meisten, was Sie wollen mit einem Programm, das ein Benutzer selbst tun konnte. So, heute haben wir über dieses Thema zu konzentrieren - nicht nur einige Bedrohungen, sondern auch Abwehrkräfte. In der Tat, in der Welt der Sicherheit im Allgemeinen es ist eine Art von diesem Katz-und-Maus-Spiel, und ich wage zu behaupten, die bösen Jungs haben fast immer ein Bein. Wenn es um die Nutzung von Hardware und Software auf unserem eigenen Personal Computer, Wir müssen erkennen, dass ein schlechter Kerl muss lediglich ein einfacher Fehler zu finden - ein zu nutzen, ein bug - in einem Stück Software, die wir geschrieben haben, oder laufen Um für ihn oder sie zu übernehmen unser ganzes System. Im Gegensatz dazu haben wir - müssen zu flicken und reparieren alle diese bugs - die guten Jungs und vermeiden Sie all diese Schwächen. Und ja, ich wage zu behaupten, im Großen und Ganzen haben die bösen Jungs im Vorteil. Welche Klassen wie diese und nachfolgende Klassen sind wirklich nicht über den Unterricht, wie man die Schlachten, die diese bösen Jungs zu tun zu führen, sondern darüber, wie Sie sich schützen können oder zumindest, wie man eine berechnete Entscheidung treffen , ja, ich weiß, das Stück Software könnte in der Tat zu lesen alle meine E-Mails, aber ich bin okay, dass aufgrund der Wert, den es bringt mich auf der anderen Seite. Ich bin sehr erfreut darüber, dass 2 der intelligentesten Menschen, die ich kenne verbunden werden - Rob Bowden und Nate Hardison. Rob ist im Begriff, uns für eine Tour durch die niedrigste Sicherheitsstufe Tags nehmen - dass der Compiler, der bis jetzt, wir alle gekommen sind, zu lieben und zu vertrauen. Rob Bowden. [Applaus] [Rob] Alles klar. David hat so ziemlich mein ganzes spiel genommen dass ich dabei war, mit vorstellen, aber - Vor einigen Wochen sah man das Beispiel eines Buffer Overflow-Angriff welches ein Beispiel eines hacker in irgendeine Stück Software dass sie eigentlich nicht in sein hacken. Die andere Seite dieses Manchmal ist man Software, die schädlich ist an und für sich. Es braucht nicht einmal gehackt werden. Die Person, die die Software schrieb möchte Sie hacken. Lasst uns genau richtig Sprung in Code, einen Blick auf "login.c". Hier ein dummes Programm, das einen Benutzernamen und ein Passwort Kombination überprüft. Hier sollten Sie auf jeden Fall, sich mit der C wieder für das Quiz. Zunächst werden wir die Verwendung zu erhalten Saiten, um den Benutzernamen zu beschreiben, dann sind wir mit get-String, um das Passwort zu packen, und dann werden wir einige triviale Kontrollen von nur haben, ist der Benutzername "rob"? Und ist das Passwort "thisiscs50"? Oder ist der Benutzername "tommy" und dem Passwort "i <3javascript"? Wenn einer von denjenigen der Fall ist,  dann sind wir gerade dabei, "Success" drucken, und dann haben wir Zugang. Sonst werden wir zu drucken "invalid login" und dann, natürlich,  Seit Skizze Saiten malloc Speicher, wir freien Benutzername und Passwort. Dies ist eine triviale Programm login, und wenn Sie denken, wenn Sie in das Gerät einloggen, es ist ziemlich ähnlich - oder sogar der Anmeldung in Ihrem Computer - es gibt nur einige Login-Programm, das Ihnen wird der Zugang. Hier passieren wir hartcodierte 'rob', 'thisiscs50', 'tommy', 'i <3javascript' haben, aber wahrscheinlich gibt es einige Datei irgendwo auf Ihrem Betriebssystem die eine Liste von Benutzernamen, die sich am System anmelden können und eine Liste von Passwörtern mit diesen Benutzernamen verknüpft. Normalerweise werden die Passwörter nicht nur im Klartext wie folgt gespeichert. Es ist eine Art von Verschlüsselung, aber dies wird für unser Beispiel zu tun. Kommend auf unsere Compiler - es wird sehr einfach. Wir brauchen mindestens eine Datei, die wir kompilieren wollen angeben, und dann hier - diese Zeilen gerade lesen ein A-Datei. Es liest die gesamte Datei in einen großen Puffer, und dann haben wir null-terminate unseren Buffer wie immer, und schließlich haben wir nur kompilieren Sie die Datei. Wir gehen nicht auf, wie compile tatsächlich umgesetzt zu sehen, sondern als Hinweis, es ruft nur Clang. Wir werden dieses Programm benutzen, um Dinge anstelle von Clang kompilieren. Ein Problem, das wir beginnen mit ist, dass wir sehen, wir wollen unsere Compiler zu kompilieren, aber wenn wir nicht zu Clang verwenden, ich weiß nicht, was ich mit kompilieren. Dies ist ein generelles Problem als Bootstrapping bekannt. Also, nur dieses eine Mal, ich werde Clang nutzen, um unsere Compiler zu kompilieren. Wenn Sie denken, der GCC und Clang - diese Programme werden diese Compilern ständig aktualisiert wird, und diese Compiler kompiliert mit GCC und Clang. Clang ist nur ein großes C oder C + +-Programm, so dass der Compiler sie verwenden zu kompilieren dh Clang. Hier, jetzt sind wir gerade dabei, mit Hilfe unseres Compiler unserem Compiler zu kompilieren, und wir können sogar sagen - '/ Compiler.', 'compiler.c', 'COMPILE.c', '-o-Compiler ". Achtung: Dies ist das genaue Befehl, den ich vor ran - ersetzen Sie einfach Clang mit '. / Compiler ". Und jetzt haben wir eine andere Compiler, aber es ist genau das gleiche. Es ruft einfach Clang. Wir werden unseren Compiler verwenden, um unsere Login-Programm zu kompilieren. Okay - ". / Compiler login.c-o login". Also, undefined reference to "GetString". Got a "-LCS50". Okay. So jetzt habe ich unseren Login-Programm. Läuft es - erhalten "Bitte geben Sie Ihren Benutzernamen". Ein Beispiel war rob. Bitte geben Sie Ihr Passwort - thisiscs50. Und Erfolg! Ich habe Zugang. Läuft es wieder und geben Sie etwas falsches Passwort - oder ungültige Benutzername und Passwort - ungültige Anmeldeversuche. Okay. Nichts Interessantes über dieses so weit. Aber lassen Sie uns einen Blick auf sich erneut anmelden - und dies wird zu einem etwas triviales Beispiel zu sein, aber wir fügen Sie ein anderes hier und sagen: else if ((strcmp (username, "Hacker") == 0 && strcmp (Kennwort "LOLihackyou") == 0)) so jetzt, printf ("Hacked Sie haben nun Zugriff \ n!."); okay. Kompilieren dies - Compiler login.c-o login-LCS50 - läuft jetzt anmelden - und wenn ich meinen Benutzernamen Hacker und Passwort LOLihackedyou - Habe ich geben es falsch dort vor? Am login.c--IHack - ich werde nicht gehackt, weil ich denke ich später. Okay. Neukompilierung. Re-Lauf - Hacker - LOLihackedyou - Hacked! Sie haben nun Zugriff. Es scheint nicht so viel von einer Differenz denn es ist exakt das gleiche Scheck, den ich für andere Benutzernamen und Passwörter tat. Plus, ist die große Sache, wenn andere Leute schauen auf diesem login.c-- sagen, wenn ich diese aus meinem Partner übergeben, und sie öffnen Sie diese Datei, und sie dies lesen, sehen sie - okay, warum haben Sie diese Codezeilen hier? Das ist natürlich nicht etwas, das Sie in Ihrem Programm sein sollte. In einigen Programmen - wie jede proprietäre Software, die nicht Open-Source - Sie können nie sehen diese Zeilen Code. Etwas wie Skype oder so etwas - für alles, was Sie wissen, Skype auf Ihrem Computer, und es gibt nur einige spezifische Benutzername-Passwort-Kombination das wird sich anmelden, um in besonderer Weise Skype. Wir wissen es nicht wissen, und die Leute wissen es nicht wissen, weil sie nicht bekommen, um den Quellcode zu lesen, um zu sehen, dass es dieses Loch. Was wir nennen dies - obwohl dies nicht eine sehr kluge Beispiel - dies ist eine Hintertür genannt. Wenn Sie denken, der hinteren Tür Ihres Hauses. Hier, wenn ich mit dem Benutzernamen 'rob' oder 'tommy,' validate Das wäre wie mit dem sein "vor der Tür." Das ist die Art, wie ich eigentlich sicher loggen bin. Aber wenn ich geben mit diesem Benutzernamen und Passwort - dann ist das mit der "Hintertür". Es war nicht das absichtliche Weg, um in das Programm zu bekommen, aber es funktioniert immer noch. Und die Menschen im Allgemeinen sollen nicht über diese Hintertür kennen. Wir werden dies zu verbessern. Lasst uns wieder diese zu unserer ursprünglichen login.c, und lassen Sie uns einen Blick auf unsere neuen Compiler. Okay. Alles hier ist genau das gleiche. Wir lesen die gesamte Datei in einen Puffer. Alles hier unten ist die gleiche. Wir haben gerade die Datei kompiliert. Aber jetzt habe ich dieses große, wenn hier das sagt, wenn die Datei, die ich zu kompilieren geschehen ist login.c, dann mache ich etwas Besonderes. Was ist das etwas Besonderes? Ich sehe hier eine Schnur als "hack", und schaut in diesen Zeilen Code - das sind die gleichen Zeilen Code - ich schätze, ich benutzt habe "IHack 'und nicht' ihacked 'vor - Blick auf diese Zeilen Code, sie sind die gleichen genauen Code-Zeilen, die ich in login.c zuvor. Aber jetzt, anstatt sie in login.c, Ich werde sie in mein Compiler setzen. Dies sind die Linien der Code, den ich gehen zu wollen, um in login.c legen werde. Diese Zeilen Code - der Puffer, der ursprünglich gehaltenen meiner login.c wird künftig nicht mehr groß genug sein, weil ich jetzt auch fügen Sie diesen hack möchten in der Mitte von meinem Programm. All dies tut, ist die Schaffung eines neuen Puffer, der groß genug ist - sowohl für die ursprüngliche Datei und die zusätzlichen Zeilen Code - der Hack - dass ich es einfügen möchten. Hier ist etwas zu bemerken - char * pattern = "/ / verweigern ihnen den Zugang!" Wenn wir blicken zurück auf login.c, sehen wir hier unten dieser Kommentar - deny darauf zugreifen! In login.c, sieht dieser Kommentar völlig harmlos, so würden Sie nicht vermuten einen Vorsatz mit nur diesem Kommentar. Aber in unserem Compiler, werden wir gezielt werde für diese Codezeile suchen, und dann, wenn wir es - diese Zeilen Code einfügen, unseren Hack in dieser Position. So sind wir über die gesamte login.c Iteration, wir Einlegen dass hack, wo genau sagt, es leugnen, ihnen den Zugang, und dann sind wir Kompilieren - nicht das Original login.c aber die neue login.c mit diesem hack rechts eingefügt 'leugnen sie zuzugreifen. " Jetzt möchte ich meine neue Compiler mit diesem Hack beteiligt kompilieren. Ich werde mich nicht Clang verwenden, also lasst kopieren den Compiler wir vorher benutzt und verwenden, die - so, Compiler compiler.c COMPILE.c-o evil_compiler. Jetzt ist unsere bösen Compiler - Wenn wir unsere bösen Compiler jede andere Datei zu kompilieren, Die Datei wird wie es sollte zu kompilieren. Es ist völlig normal. Aber wenn wir unsere bösen Compiler Login kompilieren - so, / evil_compiler login.c-o login-LCS50. - Blick auf login.c wieder gibt es absolut nichts hier. Es ist unser usual ', wenn es entweder rob oder tommy wir in ist, sonst sind wir raus. " Aber wenn wir unsere ausführbare Datei ausführen, wird dies wie gewohnt arbeiten. Läuft wieder - Hacker, LOLihackyou - Hacked! Sie haben nun Zugriff. Ein kurzer Blick auf login.c, würden Sie nicht, dass irgendetwas nicht stimmt. Aber der Compiler das ist verwendet zu kompilieren login.c wurde speziell für diesen Hack in das Programm einfügen. Wir haben nur unsere ursprüngliche Problem verschoben. Ursprünglich hatten wir diese Zeilen von Code in login.c, dass, wenn jemand auf sie schaute, sie würden aussehen wird, warum sind diese hier? Nun, wenn jemand zufällig in unserem Compiler aussehen, sie werden bei diesen Zeilen Code schauen und sagen: warum sind diese hier? So haben wir nicht ganz unser Problem gelöst. Aber wir können diese Idee wieder zu verwenden. Wirft man einen Blick auf unsere dritte Version des Compilers, es ist die gleiche Idee. Wir lesen die gesamte Datei in einen Puffer hier oben, erarbeiten wir die Datei hier unten, und ich habe eine Art von String-hack hier, aber beachten Sie die Datei, die ich bin eigentlich hacken jetzt. Ich bin Hacking compiler.c nicht login.c. Aber was soll ich Einsetzen in compiler.c? Ich bin das Einfügen dieses Codes, welche die genauen Code in unseren früheren Compiler, welche gemeint war, um Code in login.c einzufügen. Hier ist unser, wenn strcmp Datei login.c und dann in login.c unserer hack Zeug legen. Diese neuen Compiler soll einen Compiler erstellen dazu bestimmt ist, Login böswillig zu kompilieren. Wir werden sehen, warum das hilft uns. Alles andere ist gleich, so dass es funktioniert genau so, wie es mit unserer vorherigen Compiler gearbeitet. Wir sind gerade Iteration über unser gesamtes COMPILE.c. Aber jetzt statt der Suche nach 'verweigern ihnen den Zugriff' wir suchen "kompilieren Sie die Datei." Wo ist kompilieren Sie die Datei? Mit Blick auf unsere völlig unschuldig compiler.c, es ist richtig hier unten an der Unterseite. Dieser Kommentar - kompilieren Sie die Datei - wieder, das sieht ganz harmlos. Aber in unserem bösartige Version des Compilers, wir gehen - direkt vor diesem Kommentar - fügen Sie diesen Code dazu bestimmt ist, Code einfügen beim Kompilieren login.c. Es gibt eine Menge von Ebenen von Dereferenzierung hier. Lasst uns tatsächlich ausführen. Auch wir kopieren unsere ursprüngliche Compiler. Nun, compile - Compiler compiler.c COMPILE.c-o evilest_compiler - und jetzt evilest_compiler. Böseste Compiler - wenn wir das zu unserem Compiler zu kompilieren, wir tatsächlich aussehen. Evilest_compiler - bringt ihn um, den ganzen Weg zurück auf die Version 1 von unserem Compiler - Version 1 der Compiler, der nur in der Datei gelesen wurde und zu kompilieren. Hier wissen wir, dass evilest_compiler - wenn es diese Datei kompiliert - wird Code hier einfügen, bevor kompilieren Sie die Datei, und dieser Code wird genau wie der Code von der zweiten Version des Compilers aussehen was hat das getan. Dieser Code, der bestimmt, in Login zu brechen, wird in unsere Compiler Böseste Compiler eingesetzt werden. Lassen Sie uns evilest_compiler unseren Compiler zu kompilieren. Jetzt verwenden wir Compiler, kommen wieder über sich anzumelden, und denken Sie daran login.c hat absolut nichts Verdächtiges darin. Aber mit unserem Compiler zu kompilieren login.c, rob, thisiscs50, Erfolg. Let Login-Hacker, LOLihackyou, Hacked! Sie haben nun Zugriff. Erkennen, dass diese unterschiedlichen ab Version 2 unseres Compiler war. Der Compiler verwenden wir - wir bewegen back - Kopie von Login - wir bringen unsere Compiler wieder hier. Entfernen Böseste Compiler. Alles, was wir jetzt bleibt, ist Compiler. Wenn wir uns compiler.c, gibt es absolut nichts gibt, dass böswillige in irgendeiner Weise zu sein scheint. Wenn wir uns login.c, gibt es absolut nichts hier, die bösartige in irgendeiner Weise aussieht. Aber wenn wir unsere Compiler zu kompilieren login.c, bekommen wir die hackable Version login.c. Wenn wir unsere Compiler verwendet, um eine neue Version des Compilers kompilieren, bekommen wir die hackable Version des Compilers. Nun, wenn wir rausgehen und vertreiben unsere Compiler ausführbare, und niemand wird wissen, dass es etwas gibt, böswillige darüber. Das ist eigentlich so in - ich kann mich nicht erinnern, das Jahr - Ken Thompson, und er gewann den Turing Award - wenn Sie nicht mit dem Turing Award, ist es fast immer definiert als die Nobelpreis für Informatik, so das ist, wie ich es definieren. Ken Thompson hielt eine Rede, als er seine Turing Award namens "Reflections on Trusting Trust." Im Grunde war dies die Idee von seiner Rede. Außer statt unserer Compiler, wurde er von GCC reden - nur ein weiterer Compiler wie Clang - und was er sagen wird, wie unsere login.c scheint unser login.c relativ nutzlos aber er wurde über den aktuellen UNIX login.c reden. Wenn Sie Ihr Gerät anmelden, es gibt einige Login-Programm, das ausgeführt wird. Das war die Anmeldung, dass er redete. Dies war im Grunde seine Idee. Er sagte, dass in GCC er in der Theorie könnte ein Bug gepflanzt haben - kein Bug, sondern ein bösartiger Code - , dass bei der Erstellung des Login-Funktion - die Login-Datei - würde eine Hintertür einfügen, so dass er absolut jedem UNIX-System in der Welt gehen könnte und mit einigen speziellen Benutzernamen und Passwort anmelden. Zu der Zeit war GCC ziemlich der Compiler, dass jeder für alles verwendet. Wenn jemand zufällig GCC aktualisieren, dann würden sie neu kompilieren GCC GCC, und Sie würden immer noch eine schlechte Version von GCC weil es wurde speziell zusammengestellt, um zu erkennen, dass es die Kompilierung des Compilers. Und wenn Sie jemals verwenden GCC eine login.c Datei kompilieren, dann wäre es fügen Sie diese Hintertür, dass er nutzen, um beliebigen Computer anmelden können. Das war alles theoretisch, sondern - das besondere Umstand theoretische war, aber die Ideen sind sehr real ist. Im Jahr 2003 gab es ein ähnliches Beispiel, wo - nehmen wir einen Blick auf diese Datei, und es hat absolut nichts, um tatsächlich mit ihm zu tun, aber der Fehler ist ähnlich. Diese Datei definiert nur eine Funktion namens Kluft. Es dauert ein Argument a, ein Argument b, und die Absicht ist, do a durch b unterteilt. Aber es hat einige Fehlerkontrolle, so wissen wir Dinge sind seltsam, wenn b zufällig gleich Null. Wenn b Null ist, dann teilen wir dies in 2 Fällen. Man könnte schon den Bug. Der erste Fall - wenn ein Null ist, dann tun wir Null geteilt durch Null, und wir sagen, das ist nicht definiert. Der zweite Fall - wenn ein nicht Null ist, dann ist es so etwas wie 1 durch Null geteilt, und wir nennen das Unendliche. Else kehren wir die übliche a durch b unterteilt. Und hier, wir laufen diese 3 Fällen und wir tatsächlich ausgeführt Kluft - sie schreit es für mich - so, ignorieren Clang Warnungen - Ende der Nicht-void-Funktion - offenbar habe ich nicht kompilieren dies vorher. 0 zurück. Stellen teilen - alles in Ordnung. Mit. / Divide, sehen wir 3, Infinity, Infinity. Null geteilt durch Null nicht unendlich zurückgekehrt. Und wenn Sie nicht den Fehler noch dachte - oder nicht sehen, bevor - sehen wir, dass wir tun, a = 0 ist. Wahrscheinlich werden wir bedeutete == 0. Wahrscheinlich. Aber das war tatsächlich etwas, das wieder im Jahr 2003, der Linux-Kernel - so dass unser Gerät verwendet den Linux-Kernel - einem Linux-Betriebssystem verwendet den Linux-Kernel - so a bug sehr ähnlich zu dieser auftauchte. Die Idee hinter dieser Fehler war - wieder, es war nur eine Funktion, die aufgerufen wurde, und es hat ein bisschen Fehlerprüfung. Es gab einige spezifische Eingänge, dass dieser Fehler überprüfen - es aussehen sollte, alles in Ordnung gewesen sein, können Sie diese Funktion nicht aufrufen mit einem Divisor von 0. So, ich werde nur wieder einige Fehler. Außer, es war nicht so unschuldig wie nur Setzen eines gleich 0 ist. Stattdessen endete diese Codezeile bis etwas mehr wie user = Administrator. Oder user = Superuser. Es war ein unschuldig - auf den ersten Blick - Irrtum, wo es nur gewesen sein könnte sinnvoll dass ich wollte nur etwas Bestimmtes berichten wenn der Benutzer zufällig die Superuser-Administrator sein. Aber dann wieder darüber nachzudenken, wollte die Person, die er wie ein einfacher Tippfehler suchen, aber wenn dieser Code tatsächlich freigelassen worden, dann würden Sie in der Lage, in jedes System, indem ein bestimmtes Flag hacken - in diesem Fall b = 0 - und es würde automatisch die den Benutzer der Administrator, und dann hat er die volle Kontrolle. Dies geschah im Jahre 2003. Es ist einfach so passiert, dass der einzige Grund, warum er gefangen wurde war, weil es passiert, einige automatisierte System das bemerkte die Veränderung in dieser Datei die niemals von einem Menschen verändert worden sein. Die Datei sollte nur automatisch generiert haben. Es ist einfach so passiert, dass jemand berührt - gut, die Person, die zu hacken wollte diese Datei berührt, und der Computer gefangen, dass berühren. Also änderte sie dies und erst später realisiert, was eine Katastrophe wäre es gewesen wenn dies hatte in der realen Welt geworden. Sie können sich denken, dass - kommen zurück zu unserem Compiler Beispiel - obwohl wir nicht sehen können - Blick auf den Sourcecode - dass alles in allem ist falsch, wenn wir tatsächlich auf dem binären Code-Compiler aussehen, würden wir sehen, dass etwas falsch ist. Als ein Beispiel, wenn wir laufen die Saiten funktionieren - was ist nur los zu schauen über eine Datei und drucken Sie alle Strings die er finden kann - wenn wir laufen Saiten auf unserer Compiler, sehen wir, dass ein String, die es findet diese seltsame ist - else if (strcmp (username, "Hacker") - blah, blah, blah. Wenn jemand zufällig paranoid genug, um nicht vertrauen ihrem Compiler, sie laufen konnte Saiten und sehen dies, und dann würden sie wissen, dass es etwas falsch mit der aktuellen binär. Aber es war Saiten zwangsläufig etwas, das zusammengestellt wurde. Also, wer zu sagen, dass unsere Compiler nicht nur noch mehr speziellen Code das sagt, wenn Strings wird immer auf unserer Compiler laufen, nicht ausgeben dieser bösartigen Code. Die gleiche Idee mit, wenn wir wollen, zerlegen Sie die Datei - erfuhren wir, dass der Monteur bringt uns von Assembler-Code zu einer Maschine Code - können wir in die entgegengesetzte Richtung zu gehen - objdump-d-Compiler - wird uns die Montage unserer Code. Mit Blick auf diese, es ist ziemlich kryptisch, aber wenn wir wollten, könnten wir durch diese aussehen und Vernunft, zu warten, da ist etwas los hier nicht zu geht, und dann werden wir erkennen, dass der Compiler tut etwas bösartig. Aber, genau wie Strings, wer ist zu sagen objdump war nicht Spezial-verkleidet. Grundsätzlich kommt es auf Sie nicht vertrauen können nichts. Der Punkt des Papiers als "Trusting Trust" ist im Allgemeinen, wir vertrauen unseren Compiler. Sie kompilieren Sie Ihren Code und erwarten, dass zu tun, was Sie es tun zu fragen. Aber warum sollte man das Vertrauen der Compiler? Sie schrieb nicht den Compiler. Sie wissen nicht, was der Compiler notwendigerweise tatsächlich tun. Wer ist zu sagen, man kann ihm vertrauen? Aber selbst dann, na ja, vielleicht können wir das Vertrauen der Compiler. Es gibt Zehntausende von Menschen, die an dieser ausgesehen haben. Jemand muss etwas nicht stimmte mit dem Compiler erkannt haben. Was, wenn wir einfach gehen 1 Ebene tiefer? Es könnte sogar Ihren Prozessor. So lächerlich es vielleicht sein könnte, vielleicht gibt es einige Schurken Mitarbeiter bei Intel, die diese Prozessoren schafft dass, wenn der Prozessor bemerkt, dass Sie laufen einen Befehl Das ist gemeint mit dem Computer anmelden, der Prozessor akzeptieren einige spezifische Benutzernamen und Passwort-Kombination. Es wäre wild kompliziert sein, aber jemand könnte es tun. An diesem Punkt sind Sie wirklich zu öffnen Sie Ihren Computer, um den Prozessor zu sehen und mit einem Mikroskop zu erkennen, dass diese Schaltungen nicht auf, als sie sein sollte gefüttert? Niemand wird jemals diesen Fehler zu fangen. An einem gewissen Punkt müssen Sie nur noch aufgeben und vertrauen etwas. Die meisten Menschen wissen den Compiler an dieser Stelle zu vertrauen. Das ist nicht unbedingt, dass Sie sollten sagen. Mit Blick auf eine etwas berüchtigten video - [Dramatische Musik spielt] [Es ist ein UNIX-System. Das weiß ich.] [Es ist alle Dateien -] Sie sagte: "Es ist ein UNIX-System. Das weiß ich." Ersetzen UNIX mit dem, was Ihre Lieblings-Betriebssystem - konnte sie gesagt haben: "Es ist ein Windows-System. Das weiß ich." Es ist eine völlig sinnlose Aussage, aber für alles, was wir wissen, passiert sie eine Hintertür in das UNIX-System kennen. Sie weiß etwas Benutzername / Passwort-Kombination, die tatsächlich im Stich lässt ihren tun, was sie will. Gut. Die Moral von heute ist im Grunde kann man nicht vertrauen nichts. Selbst Dinge, die Sie schreiben - Sie nicht schreiben den Compiler. Der Compiler konnte schlecht sein. Selbst wenn Sie schreiben, dass der Compiler tat, konnte das Ding, das Starten des Compilers ist schlecht. (Lacht) Es gibt nicht viel Sie tun können. Die Welt ist dem Untergang geweiht. Zurück zu David! [Applaus] [David] Thanks. Das war wirklich deprimierend. Aber in der Tat, ist Rob richtig. Wir haben nicht wirklich eine Lösung, aber Sie sind dabei, einige Lösungen zu bekommen zu einigen häufiger Abwehrkräfte. In Erwartung dessen, was Nate und ich habe hinter den Kulissen gibt es zu tun ist zu wissen, dass es so viele Laptops in diesem Raum, wir haben Sniffing alle drahtlosen Datenverkehr durch diesen Raum in den letzten 20 Minuten während Rob Vortrag, so werden wir eine 2 minütige Pause hier stattfinden. Nate geht einzurichten, und dann werden wir über all das Zeug zu reden konnten wir gefunden haben. (Gelächter) So kann ich ein wenig, nur um des Dramas übertrieben haben, aber wir konnten wurden Sniffing alle Ihre drahtlosen Verkehr, weil in der Tat, es ist so einfach. Aber es gibt auch Möglichkeiten, dass Sie gegen diese verteidigen können, und so mit, dass Ich gebe Ihnen Nate Hardison. >> [Nate] Sweet. (Applaus) [Nate] Danke, Mann.. Ich schätze die shout out. All right! Es ist Spielwoche. Seid ihr aufgeregt? Hoffentlich, es wird ein großes Spiel am Samstag. Ich kann mir vorstellen euch an dieser Stelle - vorausgesetzt, dass Sie ein Quiz am Mittwoch haben alles über Code, und wir saßen in einem wunderbaren Vortrag von Rob mit einem ganzen Bündel von C-Code in ihr - sind vielleicht ein wenig Code müde. In diesem Teil sind wir eigentlich nicht, um beliebigen Code überhaupt zu berühren. Wir gehen nur um eine Technologie, die Sie jeden Tag reden, oft für viele, viele Stunden am Tag, und wir werden über die Auswirkungen mit Sicherheit, dass es zu sprechen. Wir haben eine Menge über die Sicherheit im Laufe des Semesters gesprochen, und wir begannen mit ein wenig crypto. [BDOH lv vwlqng!] Und während ihr seid wahrscheinlich super-begeistert, vorbei Notizen zu jeder anderen in der Klasse mit einem Caesar-Chiffre wie diese, in Wirklichkeit gibt es einige mehr Spaß zu haben, wenn Sie tatsächlich reden über Sicherheit und solche Sachen. Heute werden wir ein paar Technologien decken dass die Menschen tatsächlich in der realen Welt zu verwenden, um alle möglichen Dinge zu tun von Sniffing Menschen Pakete eigentlich los in und Einbruch in Menschen Bankkonten und alle davon. Dies sind legitime Instrumente, die wir reden mit der Ausnahme von möglicherweise einem Werkzeug. Und ich will einfach nur eine schnelle Haftungsausschluss machen. Wenn wir über diese Dinge zu sprechen, reden wir über sie reden, damit Sie wissen, was da draußen, und du bist bewusst, wie sicher zu sein, wenn Sie sich mit gerade Ihrem Computer. Aber wir wollen auf keinen Fall zu implizieren, dass Sie diese Tools verwenden in Ihrem Wohnheim oder Ihr Haus, weil Sie können in vielen großen Probleme laufen. Das ist ein Grund heute, dass wir tatsächlich nicht schnüffeln Sie Ihre Pakete. Gut. Am vergangenen Montag, sprachen wir über Cookies und HTTP, und Authentifizierung und wie Firesheep öffnet diese große Tür in Ihrem Facebook-Konto Ihrem Hotmail-Konto - wenn jemand immer noch mit Hotmail - und viele andere Konten. Eine Menge von diesem Zeug wird zu bauen off kommt, dass aber zuerst möchte ich einen kurzen Überblick darüber, wie das Internet hat im Laufe der Zeit zu nehmen. Zurück in den 90er Jahren, könnte euch erinnern tatsächlich Einstecken haben Ihren Computer mit einer von ihnen. Jetzt tun wir nicht, dass so viel mehr. Tatsächlich stellt sich heraus, dass, um ein Ethernet-Kabel in meinen Laptop anschließen, Ich habe jetzt einen dieser Adapter, welche Art von verrückt zu verwenden. Statt im Jahr 1997 hatten wir dieses neue, spannende Technologie kam heraus, dass als IEEE 802.11 bekannt, so ist dies der drahtlose Internet-Standard Das IEEE ist dies Gremium, das aus gibt alle Arten von - veröffentlicht alle Arten von Standards in Bezug auf Computer. Die 802-Standards sind alle über Internet-Technologien. So 802.3, ist beispielsweise der Ethernet-Standard, 802.15.1 ich glaube, ist der Bluetooth-Standard, und 802,11 ist alles über kabellosen Internetzugang. Im Jahr 1997 kam heraus. Es hat nicht ganz fangen auf Anhieb. Es war nicht bis 1999 und der 802.11b-Standard kam heraus, dass gerade sehr beliebt. Wie viele von euch erinnern, wann Computern gestartet herauskommen und immer wi-fi auf sie? Das war ziemlich cool, huh? Ich erinnere mich, mein erster Laptop in der Schule, und es hatte eine WLAN-Karte in ihr. Mein Vater gab es mir und sagte, dass ich es für meine College-Anwendungen und das alles zu verwenden, und ich hatte keine Ahnung, wie ich wollte schauen dieses Zeug online. Aber zum Glück hatte ich eine WLAN-Karte, das war ziemlich cool. Heute sehen Sie auch 802.11g was einer der anderen sehr beliebt Wireless-Standards, das ist da draußen. Sowohl b und g sind ziemlich an dieser Stelle überholt. Wer weiß, welche Version die meisten Menschen auf gerade sind wenn sie den Kauf neuer WLAN-Routern und solche Sachen? N. Genau. Bingo. Und es stellt sich heraus, dass der ac-Standard kommt gerade in einem Entwurf, und es gibt andere Versionen auf dem Weg. Mit jedem dieser Standards, was wir gewinnen ist mehr Bandbreite, mehr Daten mit einer schnelleren Rate. Diese Dinge ändern sich ständig ziemlich schnell. Es macht es auch so, dass wir mehr Router und alles, was fun stuff kaufen. Lassen Sie uns über das, was drahtlose Kommunikation ist eigentlich in seinem Kern zu sprechen. Mit Ethernet und den alten DFÜ-Modems, Sie hatte tatsächlich das Zeug, die Sie an Ihren Computer angeschlossen, und dann eingesteckt in ein Modem von Sorten, und dann steckte es in eine Buchse in der Wand. Sie hatte diese Kabelverbindung, nicht wahr? Der springende Punkt bei der drahtlosen wird loszuwerden von diesem Zeug. Um das zu tun, was wir haben, ist im Wesentlichen a Funkkommunikation, wo unsere Wireless Router - bezeichnet durch unser kleines Wireless-Symbol - ist mit dem Internet mit diesem durchgezogenen Pfeil anzeigt irgendeine drahtgebundene Verbindung verbunden ist, aber wenn Sie eine Verbindung zu Ihrem WLAN-Router Sie tatsächlich mit fast wie ein Walkie-Talkie zwischen Ihrem Computer und Ihrem Wireless-Router. Was ist wirklich cool daran ist, Sie können sich frei bewegen. Sie können Ihren Computer alle tragen über Sanders, gehen im Internet surfen, was Sie wollen, genau wie Sie alle kennen und lieben, und Sie müssen nie mehr in etwas gesteckt werden. Damit dies funktioniert, müssen wir beide diesen Empfang und Übertragung. Es ist wirklich wie diesem Walkie-Talkie. Dieser WLAN-Router - was in Sanders befindet sich unterhalb dieser Phase sitzen, genau hier - wird immer ausstrahlt und Empfangen, Senden und Empfangen, und ebenso sind Ihre Computer alle tun, dass dieselbe Art von Sache, auch. Wir können einfach nicht hören. Die andere Sache, die Sie tun können, ist, können Sie mehrere Computer haben Gespräch mit dem gleichen WLAN-Router. Je näher Sie sich an einen Router - und wieder ist dies eine Funkkommunikation - Je näher Sie sind, desto besser das Signal, desto besser ist Ihr Computer 'hört' der Router Sie kann mit dem Internet kommunizieren. Wenn Sie Jungs sind immer an Ihrer Wohnheim, in Ihrem Haus und Sie sich fragen, warum Ihr Signal ist schlecht, es ist wahrscheinlich, weil a). du bist nicht ganz in Ihrem Router zu schließen, oder b). es ist etwas zwischen Ihnen und Ihrem Router wie eine Betonwand oder etwas das nicht zulassen, dass diese Radiowellen durchlaufen. Lassen Sie uns ein wenig darüber, warum bösen Jungs wie Wi-Fi. Böse Jungs wi-fi für ein paar Gründe. Hier ist unsere fiesen Bösewicht recht. Ein Grund, warum diese schlechte Kerl liebt wi-fi Denn standardmäßig eine Menge von WLAN-Routern kommen und wenn Sie sie einrichten, sie unverschlüsselt. Dies ist ein Problem, und es gab Fälle - mehrere Instanzen, jetzt - wo Bösewicht auftaucht, um jemandes Haus, Hinweise, dass es eine unverschlüsselte wi-fi, auf die sie verbinden kann. Sie verbinden mit dem Wi-Fi, und dann fangen sie herunterladen allerlei lustige Sachen. Und sie nicht runterlädst Kätzchen, sind sie nicht heruntergeladen Welpen. Das ist wie BitTorrent. Dies ist die fiesen der übelsten. Es gab Fälle, in denen das FBI auch gewöhnt beteiligt denken, dass die Person, die das Haus gehört eigentlich das ein gehen da raus und Herunterladen Zeug, dass sie wirklich nicht sein sollte. Nachdem unverschlüsselte WLAN-Verbindung ist definitiv nicht etwas, was Sie tun wollen, wenn nur nicht das FBI gekommen klopfen an Ihre Tür. Ein weiterer Grund, warum schlechte Jungs lieben wi-fi ist der Grund, dass David über frühere sprach während der Pause. Weil es eine Funkkommunikation in ihrem Kern wenn Sie das Programm kennen, können Sie zu diesem Radiosender hören. Zum Beispiel, wenn es eine schlechte genau dort sitzt in der Mitte direkt neben dem Access Point, direkt neben dem WLAN-Router kann der Bösewicht hören auf alle drahtlosen Datenverkehr Das ist von allen diesen Computern kommen. In der Tat, diese Jungs - diese wenigen Glücklichen, die hier in der ersten Reihe - denn sie sind super-nah an all diese WLAN-Router das sitzt direkt unter der Bühne, sie wäre in der Lage, jeden der Verkehr in diesem ganzen Raum zu hören wenn Sie auf Wi-Fi verbunden und beginnen mit dem Surfen durch diese Access Points. Es ist nicht sehr schwer, sich in einer guten Position zu schnuppern sitzen und herausfinden, was andere Leute tun. Es ist etwas im Auge zu behalten, vor allem, wenn Sie nicht sicher sind, wo der Access Point, und du bist gerade sagen, in einem Starbucks. Es stellt sich heraus, dass Schnüffeln und all das ist gar nicht so schwer zu tun. Es gibt ein Programm namens tcpdump die Dumps alle Arten von TCP-Verkehr und man kann es ziemlich einfach laufen - genau wie ich an diesem Morgen tat. Hier ist ein wenig von einem dump, und hier ist ein Teil des Verkehrs, die in den kommenden wurde mein Netzwerk an der Zeit. Sie können sehen, - wenn man die Augen wirklich hart - es ist ein bisschen von Spotify drin. Am Anfang der tcpdump - denn dies ist eine Art Schmerz zu verwenden - gibt es ein Programm namens Wireshark bündelt das alles in einer schönen GUI. Wireshark ist super-handlich, so, wenn Sie auf die Vernetzung Klassen nehmen gehen, Dies ist ein Werkzeug, dass Sie zu lieben, da es Ihnen sezieren alle Pakete hilft das sind rund schweben da draußen. Aber es kann auch wegen schlechter verwendet werden. Es ist sehr einfach einfach herunterladen, um dieses Programm, starten Sie es, starten Sie eine Netzwerk-Sammlung, und alles sehen, was vor sich geht - und filtern und alle Arten von fun stuff mit ihm. Die andere Sache, die Sie bei der drahtlosen Kommunikation tun können wird Sie nicht nur abhören, sondern Sie können auch lernen, wie man mit dem Netzwerk schrauben und injizieren Sie Ihre eigenen Informationen, um die Erfahrung zu kontrollieren, dass andere Menschen auf der gleichen Wireless-Netzwerk bekommt. Werfen wir einen Blick auf, dass. Hier ist Firesheep - was wir kennen und lieben aus der letzten Woche - nämlich dass Abhören Technologie. Wenn zum Beispiel wollten wir aktiv unsere bad guy go und mess around mit einem dieser Computer, In diesem Szenario haben wir einen Computer versuchen, surfen Sie zu harvard.edu gehen. Was passiert, ist, der Computer zuerst sendet eine Nachricht an den Wireless Router und sagt: hey, ich möchte Besuch www.harvard.edu gehen. Sagen sie aus irgendeinem Grund versucht, Informationen über das Spiel zu bekommen an diesem Wochenende sind. Bad guy, da hat er Recht sitzt in der Mitte, direkt neben diesem Zugangspunkt kann sehen, dass die Kommunikation von dem Computer kommenden in den Router, und er weiß, "Aha! Jemand zu harvard.edu gehen." (Böse lacht) Es geht um diese Latenz, während der Kommunikation geht vom Router ins Internet zu gehen finden Sie die Webseite unter harvard.edu-- wie euch alle wissen, nachdem ich Ihre PHP pset - und so der Bösewicht hat ein bisschen Zeit, ein bisschen Fenster in denen er mit ein paar Sachen zu reagieren. Lassen Sie uns sagen, dass dieses Böse, natürlich, ist ein Yaley. Er antwortet mit harvardsucks.org. Boo! Bad, bad guy! Bad Yaley! Oder noch schlimmer, könnte er damit zu reagieren. [Http://youtu.be/ZSBq8geuJk0]. Ich lasse euch herauszufinden, was das ist. Dies ist tatsächlich eine Technologie namens Airpwn! das war bei debütierte einer der Sicherheits-Tagungen ein paar Jahre zurück. Mit Airpwn! Sie sind in der Lage, tatsächlich spritzen Verkehr wieder in das Netzwerk. Die Computer, die versuchen zu gehen, um das Internet wurden und versuchen zu erreichen Google.com, um Facebook.com, um harvard.edu siehe bösartige Reaktion kommen und sofort annehmen, okay, das ist die Antwort, die ich wartete und am Ende immer Inhalten aus harvardsucks.org oder nameyourfavoriteshocksite.com, und Sie können sehen, wie schnell sich die Dinge verschlechtern. Alle diese möglichen Dinge nicht getan werden kann mit diesen verdrahtete Verbindungen, weil mit einer Kabelverbindung es ist schwer zu schnüffeln auf den Verkehr. Wenn ich bin ein schlechter Kerl und an einem Ende ist Ihr Computer und am anderen Ende ist Ihr Router - Modem - der einzige Weg, ich bekomme in zwischen diesem Zusammenhang ist, um tatsächlich spleißen meinem Computer irgendwo in der Mitte oder etwas anderes tun mit dem Router, etwas stromabwärts. Aber mit WLAN, kann es so einfach sein wie das Sitzen in der ersten Reihe eines Klassenzimmers, und Sie können alle Arten von bösen Sachen zu den Leuten in den Rücken zu tun. Lasst uns darüber, wie Sie könnte gegen einige dieser Dinge zu verteidigen sprechen. Die Leute, die die Wireless-Standards entwickelt - das 802,11 - sie sind nicht dumm die Menschen von einer Strecke der Phantasie. Das ist cool Technologie und, wenn es debütierte im Jahr 1999, kamen sie mit dieser Norm als WEP. Hier können Sie sehen, wenn Sie versuchen, mit einem drahtlosen Netzwerk Sie haben alle Arten von verschiedenen Sicherheits-Optionen. Das ist eine Art Schmerz, weil es 6 alle zusammen sind und es nie wirklich Sinn macht, die 1 zu verbinden. Dieses 1 an der Spitze ist das erste, das sie kam mit als WEP. WEP steht für Wired Equivalent Privacy, glaube ich, nicht Wireless Encryption Protocol welche ein gemeinsames irreführend. Weil es versucht, Ihnen Privatsphäre gleichwertig und Sicherheitsschutz äquivalent zu der ein Kabelnetzwerk Mit WEP, was am Ende passiert ist, Sie haben einen einfachen, wenig vergessen, dass Sie eingeben, und das dient zum Verschlüsseln Ihre gesamte Kommunikation zwischen Ihrem Computer und Ihrem Router. Was ist das Problem mit WEP obwohl? Das Kennwort für WEP ist wirklich kurz, und auch jeder benutzt die gleiche genaue vergessen,  und so ist es einfach zu entschlüsseln. So sehr schnell Leute herausgefunden, dass WEP ein Problem war, und der einzige Grund, warum Sie sehen, es zeigen sich immer noch auf dieser kleine Kerl ist - gibt es einige ältere Systeme, die WEP verwenden - was sollte man stattdessen sind die WPA zu suchen und sogar WPA2 Standards Das waren später freigelassen. Diese Systeme sind eine viel bessere go auf den Schutz der drahtlosen Internet. Das heißt, dass sie immer noch eine gewisse hacken. Es gibt Werkzeuge gibt, gehen tun können. Eine Sache, insbesondere, dass böse sein kann ist, dass wenn Sie die Verbindung und Authentifizierung zu einem Wireless-Router und verwenden irgendeine Art von verschlüsselte Kommunikation, stellt sich heraus, dass ein Hacker kann leicht ein einziges Paket schicken Sie vom Router trennen, und einmal haben sie die Verbindung getrennt können sie dann in zuhören - sie schnüffeln die Pakete, wie Sie wieder die Verbindung mit Ihrem Router versuchen. Und mit diesen Informationen können sie dann in-und Entschlüsselung der Rest Ihrer Kommunikation zu gehen. Dies ist keineswegs jede Art von sicheren jenseits aller Vorstellungskraft. Die andere Sache, die Sie tun, wenn Sie einrichten möchten drahtlose Netzwerke oder du bist sie verbindenden ist - man merkt, dass hier, wenn ich Beitritt zu diesem Netzwerk, es fragt nach dem Namen meines Netzwerks. Dies wird auch als SSID bekannt. Und Sie sehen hier, dass auf der rechten Seite ich eine Schachtel, die mir zeigt die verfügbaren SSIDs haben. Es ist ein Harvard University, ein CS50 und CS50 ein Staff-Netzwerk. Nun, wie viele von euch wusste, dass es ein CS50 Staff Netzwerk rund um? Einige von euch. Nicht alle von Ihnen. Das Problem dabei ist natürlich, dass wir hatten nicht diese auf unserer Liste der SSIDs, niemand würde darüber bekannt höchstwahrscheinlich. Ich hoffe. Sofern euch alle versuchen, in unsere Wireless knacken. Aber das ist etwas, was Sie tun können, das ist wirklich wichtig, wenn Sie einrichten möchten ein Router zu Hause. Dies wird wahrscheinlich nicht für ein paar Jahren geschehen für viele von Ihnen, aber im Hinterkopf behalten, dass die Beibehaltung, dass die SSID von dort und nicht auch die Namensgebung etwas super-common helfen Ihnen, sicherer auf lange Sicht. Eine endgültige paar Dinge, die Sie tun können. Eines ist HTTPS. Wenn Sie in einem Starbucks, wenn Sie in einem öffentlichen Wi-Fi-Bereich sind und Sie müssen entscheiden, auf Ihr Bankkonto zuzugreifen, Zugriff auf Ihre Gmail, Facebook-, sicherstellen, dass diese Verbindungen über HTTPS gehen. Es ist eine zusätzliche Ebene der Sicherheit, eine zusätzliche Schicht der Verschlüsselung. Die eine Sache im Auge behalten werden, wie viele von euch schon einmal durch diese großen, roten Bildschirm, der sagt geklickt haben, "Diese Website könnte schlecht sein." Ich weiß, was ich habe. Es ist wahrscheinlich, wenn man alle Mitglieder zu gehen sehen Homeland oder so ähnlich, nicht wahr? Yeah. (Lachen im Publikum) Yeah. There you go. Wir wissen, wer gerade Homeland. Das große, rote Bildschirm genau dort Oft zeigt an, dass etwas funky los ist. Manchmal ist es einfach die Website selbst unsicher ist, aber das gleiche große, rote Bildschirm kommt, wenn Menschen versuchen, Mount Netzwerkangriffe auf Sie. Also, wenn Sie sehen, dass große, rote Bildschirm bis zu einem Starbucks kommen, nicht durch darauf klicken. Bad news. Bad News Bears. Die letzte Sache, die Sie sich anschauen kann ist eine Art von VPN. Dieses VPN ist über Harvard verfügbar - vpn.fas.harvard.edu-- und was dieser tut, ist es eigentlich eine sichere Verbindung zwischen Ihnen und Harvard, Trichter Ihren Traffic durch sie, und auf diese Weise, wenn Sie an einem Ort sitzen wie ein Starbucks Sie können an der Harvard verbinden, erhalten, dass ein gefahrloser Verkehr, und navigieren Sie dann aus Harvard. Auch nicht narrensicher. Man kann in der Mitte zu bekommen. Sie können beginnen, es zu brechen, aber das ist weitaus sicherer, als sich auf die Sicherheit der wi-fi allein. Gut. Zusammengefasst wenn Sie Einrichten von drahtlosen Netzwerken, wenn du gehst, um WLAN in den öffentlichen verwenden - ob es ein Starbucks, ob es Five Guys ist, ob es b.good ist, so etwas wie, dass - wo immer sie wi-fi - Achten Sie auf Ihre Umgebung. Seien Sie sich bewusst, was Menschen tun können. Und sicher sein. Greifen Sie nicht auf Ihr Bankkonto. Es könnte ein böses Erwachen, wenn jemand auftaucht mit Ihrem Passwort später. Damit gehen Crimson! Und ich werde die Dinge wieder umzudrehen, um David für ein letztes Wort. (Applaus) [David] Ich dachte, ich würde eine Sache aus eigener Erfahrung zu teilen. Ein Werkzeug, das Sie gerne spielen könnte - obwohl Apple hat vor allem dieses Problem beseitigt wenn Sie Ihre Software seit aktualisiert - aber auf dieses Ende nicht wirklich in der Lage, Software, die wir verwenden, vertrauen, und Nate Punkte, in der Lage, einiges von dem, was andere Leute tun schnuppern da draußen - das war ein Stück Software, die über ein Jahr-und-ein-halb Stunden kam jetzt. [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] Seit einiger Zeit, iTunes - vor iCloud, wenn Sie wurden Synchronisieren Ihres iPods oder Ihre iPhones oder oder Ihr iPad mit iTunes - im Interesse des Backups, was Ihr iPhone und die anderen Geräte wurden dabei für einige Zeit unter Verwendung von GPS-Daten. Sie alle wissen vielleicht, dass Ihre iPhones und Androids und Windows Handys und wie in diesen Tagen verfolgen können, wo man im Interesse der zeigt Ihnen Karten sind und dergleichen - auch, was Apple und diese anderen Unternehmen zu tun ist sie in der Regel fast überall verfolgen Sie tatsächlich im Interesse der seit Verbesserung der Servicequalität. Eins, können Sie mehr zielgerichtete Werbung und dergleichen, sondern zwei, sie können auch herausfinden, wo gibt es WLAN-Hotspots in der Welt, und dies kann mit Geo-Location zu helfen - eine Art Triangulation von Menschen Stellung. Lange Rede kurzer Sinn, hatte jeder von uns gegangen Antennen für eine gewisse Zeit. Leider hatte Apple das Design entschieden - oder deren Fehlen - nicht verschlüsseln diese Informationen, wenn er auch im gesicherten zu iTunes. Und was die Sicherheit Forscher fanden heraus, dass dies nur ein großer XML-Datei - eine riesige Textdatei - sitzen Leute iTunes-Software, und wenn man nur ein wenig neugierig, Sie gehen könnte stochern Ihres Ehepartners Geschichte, Ihre Mitbewohner Geschichte, Ihre Geschwister Geschichte und dergleichen, und dank einiger freier Software, können Sie zeichnen alle diese GPS-Koordinaten - Längen-und Breitengrade. So, habe ich eigentlich tat dies mit meinen eigenen Telefon. Ich steckte in meinem Handy, und sicher genug war meine Version von iTunes nicht zum Zeitpunkt verschlüsselt, und was ich konnte, um zu sehen waren meine eigenen Muster. Hier ist in den Vereinigten Staaten und jede dieser blaue Kreise stellt wo ich über den vorangegangenen Monaten Besitz dieser bestimmten Telefonnummer gewesen passiert.  Ich verbringe viel Zeit, natürlich, bis im Nordosten, ein wenig Zeit in Kalifornien, eine kurzlebige Reise nach Texas, und wenn man dann in auf diesem Zoom - Das ist alles irgendwie gut und interessant, aber ich wusste, dass dies. Die meisten meiner Freunde wusste, aber wenn man in tiefer tauchen, Sie sehen, wo ich den Großteil meiner Zeit im Nordosten zu verbringen. Wenn Sie klammern sich an einigen bekannten aussehende Städte - Diese große, blaue Tinte Fleck im Wesentlichen über Boston zentriert, und dann verbringe ich ein bisschen Zeit in den Vororten strahlt aus Boston. Aber ich war auch dabei einiges an Beratung in diesem Jahr. Und in diesem Jahr ist die Ostküste, und man kann tatsächlich sehen mich und mein iPhone in der Tasche hin und her reist zwischen Boston und New York und Philadelphia weiter nach unten, als auch die Ausgaben ein wenig Urlaub für die Zeit am Kap, die der kleine Arm ist da draußen. So stellt jeder dieser Punkte etwas Platz, den ich hatte, und völlig unbemerkt von mir, wurde diese ganze Geschichte nur da sitzen auf meinem Desktop-Computer. Wenn Sie zoomen - das war eigentlich ein wenig beunruhigend. Ich hatte keine Erinnerung, jemals in Pennsylvania gewesen, dass insbesondere Jahr. Aber ich aber ein wenig härter zu, und ich herausgefunden, oh, es war in der Tat diese Reise und sicher genug, hatte mein Handy mich erwischt. Apple hat seit diese Informationen verschlüsselt, aber auch dies ist nur Beweis dafür, wie viel Information wird über uns gesammelt, und wie leicht - zum Besseren oder zum Schlechteren - es ist akzeptabel. Einer der Take-aways hoffentlich von Rob Vortrag von Nate Vortrag und wenig Visuals heute so ist, nur um so mehr bewusst dies so dass, obwohl - im Gegensatz zu Robs Punkt - wir sind eine Art verschraubt, nicht wahr? Es gibt nicht viel was wir tun können, wenn es um einige dieser Bedrohungen kommt, aber am Ende des Tages müssen wir etwas oder jemanden vertrauen wenn wir tatsächlich nutzen diese Technologien wollen. Zumindest können wir werden fundierte Entscheidungen und berechnete Entscheidung, ob oder nicht sollten wir tatsächlich überprüft diesen besonders sensiblen Konto oder sollten wir tatsächlich sendet, dass etwas vermuten, Instant Message  in einem Wi-Fi-Umgebung wie dieser. Also, mit, der sagte nur ein Quiz bleibt, bleibt ein Vortrag. Wir werden Sie am Mittwoch dann Montag zu sehen. (Beifall und Ausrufe) [CS50TV]