[Powered by Google Translate] [Tydzień 10] [David J. Malan] [Harvard University] [To jest CS50.] [CS50.TV] Wszystko w porządku! To CS50, ale nie o wiele dłużej. To jest początek tygodnia 10. W środę mamy nasz quiz, a potem następny poniedziałek mamy jakiś uroczysty tort jak zatoczyła koło z powrotem całą drogę od zera tygodni. Dziś mówimy o jednym z moich ulubionych tematów, prawdę mówiąc - że z bezpieczeństwem i ochroną prywatności oraz implikacje wszystkich sprzętu i oprogramowania że wszyscy używamy tych dni. Szczerze mówiąc, istnieje wiele zagrożeń tam że jeśli naprawdę nie zatrzymał się, by myśleć o nich, są rzeczywiście bardzo trudne. Sprawa w punkcie - jeśli ktoś z was kiedykolwiek pobrać kawałek oprogramowania z internetu i zainstalować go na komputerze, pan zaangażowany w znacznym stopniu zaufania, prawda? Nie ma nic po zapobiec Skype, lub Chrome, czy każdy program zainstalowaniu na komputerze, od po prostu usunąć wszystkie pliki na dysku twardym; przesyłaj wszystkie pliki na dysku twardym, w pewnym złym serwerem; czytając wszystkie e-maile, przechwytywanie wszystkich wiadomości błyskawicznych. Ponieważ rzeczywistość jest dziś z najbardziej nowoczesnych systemów operacyjnych tak naprawdę nie ma wiele z ścianie między programów, które instalują, Ty i ja jesteśmy prawie prostu rodzaj kciuki i biorąc na wiarę że app możemy pobrać za darmo, lub, że rzeczą, która jest 99 centów, jest w rzeczywistości całkowicie niegroźne. Ale jak widzieliśmy do C, a teraz PHP i JavaScript, z tego zdolności do wyrażania siebie programowo, można zrobić prawie wszystko co chcesz z programu, który użytkownik sam lub sama może zrobić. Tak, dzisiaj skupimy się na tym temacie - nie tylko niektóre zagrożenia, ale również obrony. Rzeczywiście, w świecie bezpieczeństwa w ogóle, tam trochę tego kotka i myszkę, i śmiem twierdzić, że źli faceci prawie zawsze mają nogę. Jeśli chodzi o wykorzystanie sprzętu komputerowego i oprogramowania na własnych komputerach osobistych, Musimy uświadomić sobie, że zły facet po prostu musi znaleźć jeden prosty błąd - jeden wykorzystać, jeden błąd - w kawałku oprogramowania mamy pisemnej lub są uruchomione w porządku dla niego przejąć nasz cały system. Natomiast my - dobrzy - trzeba załatać i naprawić wszystkie te błędy i uniknąć tych wszystkich słabości. I tak, śmiem twierdzić na całość, źli mają przewagę. Jakie klasy jak ten i kolejnych klas są naprawdę o są nie na temat nauczania, jak toczyć bitwy, że źli zrobienia, ale o tym, jak chronić siebie lub przynajmniej, jak zrobić obliczoną decyzję że tak, wiem, że to oprogramowanie rzeczywiście może przeczytać każdy jeden z moich e-maili, ale ja jestem w porządku z tym ze względu na wartość przynosi mnie z drugiej strony. Jestem bardzo zadowolony, aby przyłączyli się do 2 z najinteligentniejszych ludzi, jakich znam - Rob Bowden i Nate Hardison. Rob ma się wziąć nas na wycieczkę po najniższym poziomie tagów bezpieczeństwa - że z kompilatorem, który aż do teraz, my wszyscy kochać i ufać. Rob Bowden. [Oklaski] [Rob] Dobrze. David prawie podjąć całe spiel że idę do zapoznania się z, ale - Kilka tygodni temu, widziałem przykład przepełnienie bufora ataku która jest przykładem włamaniem hakerów do jakiegoś elementu oprogramowania że nie mają być włamanie do. Z drugiej strony z tego Czasami masz oprogramowanie, które jest szkodliwe samo w sobie. To nawet nie musi być posiekany. Kto napisał oprogramowanie chce wykraść cię. Powiedzmy od razu wskoczyć do kodu, spojrzenia na "login.c". Tu głupi program, który sprawdza poprawność nazwy użytkownika i kombinacji haseł. Tutaj należy pewno przyzwyczajenie z C ponownie do quizu. Po pierwsze, używamy dostać sznurki do opisania nazwy użytkownika, następnie używamy get ciąg chwycić hasła a następnie mamy kilka trywialnych kontrole tylko jest username "rob"? I jest hasło "thisiscs50"? Czy jest nazwa użytkownika "tommy" i hasło "i <3javascript"? Jeśli jeden z tych, w przypadku,  to mamy po prostu będzie drukować "sukces", a następnie mamy dostęp. W przeciwnym razie będziemy drukować "nieprawidłowy login", a potem, oczywiście,  od szkicu Struny malloc pamięci, mamy wolne nazwę użytkownika i hasło. To jest banalne programu login, i jeśli myślisz o podczas logowania do urządzenia, to jest całkiem podobny - lub nawet logując się do komputera - tam tylko niektóre logowanie program, który daje Ci dostęp. Tutaj, zdarzy się, że zakodowane 'Rob', '', 'thisiscs50 Tommy', 'i <3javascript', ale chyba jest jakiś plik gdzieś w systemie operacyjnym który zawiera listę nazw użytkowników, którzy mogą zalogować się do systemu i lista haseł związanych z tych użytkowników. Zwykle hasła nie są po prostu przechowywane w postaci zwykłego tekstu jak ten. Jest jakiś szyfrowania, ale to będzie dla naszego przykładu. Jadąc do naszego kompilatora - to będzie bardzo proste. Musimy podać przynajmniej jakiś plik, który chcemy skompilować, a następnie tutaj - te linie są po prostu czytania pliku. Odczytuje cały plik w jeden duży bufor, a potem zakończyć nullem nasz bufor, jak zawsze, i wreszcie po prostu skompilować plik. Nie będziemy patrzeć jak kompilacji rzeczywiście realizowane, ale jako podpowiedź, to po prostu wywołuje Clang. Będziemy używać tego programu do kompilacji rzeczy zamiast Clang. Jeden problem, zaczynamy to widzimy, że chcemy skompilować kompilator, ale jeśli nie będziemy używać dzyń, ja nie wiem, co mam zamiar skompilować. Jest to ogólny problem zwany bootstrap. Tak, tylko ten jeden raz, mam zamiar używać Clang do kompilacji naszego kompilatora. Jeśli uważasz, że GCC i dzyń - te programy, te kompilatory są stale aktualizowane, a te są sporządzane przy użyciu kompilatorów GCC i brzękiem. Clang to tylko jeden wielki C lub C + + program, więc kompilator używają skompilować to Clang. Tu, teraz, jesteśmy tylko będzie poprzez nasz kompilator skompilować kompilator, i możemy nawet powiedzieć - '/ kompilatora.', '', 'compiler.c compile.c', '-o kompilator ". Zawiadomienie to jest dokładnie komenda Pobiegłem przed - wystarczy wymienić Clang z '. / kompilator ". A teraz mamy innego kompilatora, ale to dokładnie to samo. To właśnie nazywa Clang. Będziemy używać naszej kompilator skompilować nasz program logowania. Okay - ". / Kompilator login.c-o login". Więc, undefined reference to "getString". Masz "-lcs50". Okay. Mam więc teraz nasz program logowania. Bieganie to - przyjąć "Wpisz nazwę użytkownika." Przykładem był rob. Proszę wprowadzić swoje hasło - thisiscs50. I sukcesu! Mam dostęp. Uruchomić go ponownie i wprowadzając pewne nieprawidłowe hasło - lub nieprawidłowy login i hasło - nieprawidłowy login. Okay. Nic ciekawego na ten temat do tej pory. Ale rzućmy okiem na logowaniu ponownie - i to będzie nieco trywialny przykład, ale niech dodać indziej tutaj i powiedzieć, else if ((strcmp (nazwa, "hacker") == 0 && strcmp (hasło "LOLihackyou") == 0)) więc teraz, printf ("Hacked Masz teraz dostęp \ n!."); okay. Kompilacja ta - kompilator login.c-o login-lcs50 - teraz uruchamiając login - i jeśli mogę użyć hacker nazwa_użytkownika i hasło LOLihackedyou - Czy ja to źle wpisać tam wcześniej? Na login.c--ihack - ll nie włamał, bo myślę, że to zrobić później. Okay. Rekompilacji. Re-running - hacker - LOLihackedyou - Hacked! Teraz masz dostęp. Nie wydaje się, że wiele z różnicy ponieważ jest to dokładnie taki sam check robię dla innych użytkowników i haseł. Plus, wielką rzeczą jest to, że jeśli inni ludzie patrzą na to login.c-- powiedzieć, czy mogę przekazać ten off z moim partnerem, i otworzyć ten plik, i po przeczytaniu tego, zobaczy - okay, dlaczego masz te linie kodu tutaj? To oczywiście nie jest coś, co powinno być w programie. W niektórych programach - jak każdy własnościowego oprogramowania, które nie jest open-source - nigdy nie może zobaczyć te linie kodu. Coś jak Skype czy coś - dla wszystkich wiesz, Skype na komputerze i jest tylko pewne specyficzne username-hasła, który będzie zalogować się do Skype w jakiś szczególny sposób. Nie wiemy o tym, a ludzie nie wiedzą o tym, ponieważ nie dostać się do zapoznania się z kodu źródłowego, aby zobaczyć, że jest ta dziura. To, co nazywamy to - chociaż nie bardzo mądry przykład - To nazywa się tylnymi drzwiami. Jeśli uważasz, że do tylnych drzwi domu. Tutaj, jeśli zatwierdź Rob nazwy użytkowników lub "Tommy" że będzie jak za pomocą "drzwi". Tak to ja mam bezpiecznie zalogować. Ale jeśli mogę wejść z tym nazwę użytkownika i hasło - następnie, że używa "tylnymi drzwiami". To nie było celowe sposób, aby dostać się do programu, , ale nadal działa. I ludzie w ogóle nie powinni wiedzieć o tych tylnych drzwi. Mamy zamiar to poprawić. Niech powróci to do naszej pierwotnej login.c, i rzućmy okiem na naszego nowego kompilatora. Okay. Wszystko tu jest dokładnie tak samo. Jesteśmy czytania całego pliku do bufora. Wszystko tu jest takie samo. Właśnie skompilowany plik. Ale teraz mam to duży, jeśli się tutaj który mówi, czy plik, że zdarzyć się kompilacja jest login.c, następnie zrobić coś specjalnego. Co to jest, że coś specjalnego? Widzę tu jakiś ciąg o nazwie "Hack" i patrząc na tych linii kodu - są to te same linie kodu - Chyba nie użyć 'ihack ", a nie" ihacked "przed - patrząc na tych linii kodu, są to te same dokładne linie kodu, które miałem w login.c wcześniej. Ale teraz, zamiast je w login.c, Mam zamiar umieścić je w moim kompilatora. Są to linie kodu zamierzam chcesz wstawić do login.c. Te linie kodu - bufor, który pierwotnie trzymała moją login.c już nie będzie na tyle duże, ponieważ teraz chcę również wstawić ten siekać do środka mojego programu. Wszystko to robi tworzy nowy bufor, który jest wystarczająco duży - zarówno dla oryginalnego pliku oraz dodatkowych linii kodu - hack - że chcę wstawić tam. Tu jest coś zauważyć - char * pattern = "/ / zaprzeczyć im dostęp!" Jeśli spojrzymy na login.c, widzimy tu ten komentarz - odmawiają im dostępu! W login.c, ten komentarz wygląda zupełnie nieszkodliwe, więc nie podejrzewa, że ​​złych intencji z tylko tego komentarza. Ale w naszej kompilatora, jesteśmy specjalnie będzie szukać tej linii kodu, i wtedy, gdy go znajdziemy - te linie kodu wstawi naszą siekać w tej pozycji. Tak, jesteśmy iterowanie całego login.c, jesteśmy wstawiając tę ​​sztuczkę, gdzie dokładnie jest napisane odmówić im dostępu, a następnie mamy kompilacji - nie oryginalna login.c ale nowy login.c z tym hack, włożonej w prawo na 'deny im dostęp ". Teraz chcę skompilować mój nowy kompilator z tym hack, zaangażowana. Nie zamierzam korzystać dzyń, więc niech to skopiować kompilator użyliśmy przed i użyć - tak, kompilator compiler.c compile.c-o evil_compiler. Teraz nasz zły kompilator - jeśli używamy naszego złego kompilator do kompilacji każdy inny plik, plik zostanie skompilowany, jak powinien. To jest zupełnie normalne. Ale jeśli używamy naszego złego kompilator do kompilacji logowania - tak / evil_compiler login.c-o login-lcs50. - patrząc na login.c znowu, nie ma absolutnie nic tutaj. To jest nasz zwykły ", jeśli to albo rob lub tommy jesteśmy w, inaczej wyjdziemy". Ale kiedy prowadzimy wykonywalny, to będzie działać jak zwykle. Uruchomiony ponownie - haker, LOLihackyou - Hacked! Teraz masz dostęp. Po prostu patrząc na login.c, to nie sądzę, wszystko jest nie tak. Ale kompilator, który jest używany do kompilacji login.c jest specjalnie zaprojektowany, aby wstawić ten siekać do programu. Mamy tylko przeniosła pierwotnego problemu. Początkowo mieliśmy te linie kodu w login.c że jeśli ktoś spojrzał na nich, oni być jak, dlaczego są te tutaj? Teraz, jeśli ktoś stanie spojrzeć na nasz kompilator, oni spojrzeć na te linie kodu i powiedzieć, Dlaczego te tutaj? Tak więc, nie całkowicie rozwiązać nasz problem. Ale możemy wykorzystać ten pomysł jeszcze raz. Spojrzenia na naszej trzeciej wersji kompilatora, to jest ten sam pomysł. Czytamy cały plik do bufora się tutaj, możemy skompilować plik tu, a ja mam jakieś włamania smyczkową tu, ale zauważ, że plik rzeczywiście jestem hacking teraz. Jestem hacking compiler.c nie login.c. Ale co ja wstawienie do compiler.c? Jestem wstawiając ten kod, który jest dokładny kod w poprzednim kompilator, który miał wstawić kod do login.c. Oto nasza jeśli login.c plik strcmp a następnie wstawić do login.c naszych rzeczy hack. Ten nowy kompilator jest stworzenie kompilatora który jest przeznaczony do kompilacji logowania złośliwie. Zobaczymy, dlaczego tak nam pomaga. Wszystko jest takie same, więc to działa dokładnie tak, jak pracował z naszego poprzedniego kompilatora. Jesteśmy po prostu iteracja całej naszej compile.c. Ale teraz zamiast szukać 'deny im dostęp " szukamy "skompilować plik." Gdzie się skompilować plik? Patrząc na compiler.c całkowicie niewinny, to prawo tu na dole. Ten komentarz - skompilować plik - ponownie, że wygląda zupełnie nieszkodliwe. Ale w naszej złośliwego wersji kompilatora, będziemy - tuż przed tym komentarzem - wstaw ten kod który jest przeznaczony do wstawienia kodu podczas kompilacji login.c. Istnieje wiele poziomów zadnie tutaj. Miejmy faktycznie go uruchomić. Znowu będziemy kopiować nasz oryginalny kompilator. Teraz kompilacja - kompilator compiler.c compile.c-o evilest_compiler - i teraz evilest_compiler. Evilest kompilator - jeśli używać, aby skompilować kompilator, niech spojrzy. Evilest_compiler - doprowadzenia go, całą drogę z powrotem do wersji 1 naszego kompilatora - wersja 1 naszego kompilatora, który po prostu przeczytać w pliku i je skompilować. Tutaj wiemy, że evilest_compiler - kiedy kompiluje plik - będzie wstawić kod tutaj przed skompilować plik, oraz, że kod będzie wyglądać dokładnie tak, jak w kodzie z drugiej wersji naszego kompilatora który to zrobił. Kod ten, który ma włamać się do logowania, zostanie wprowadzony do naszego kompilatora przez kompilator evilest. Użyjmy evilest_compiler skompilować nasz kompilator. Teraz użyjemy kompilatora, wrócić na się zalogować, i pamiętaj login.c ma nic podejrzanego w nim. Ale korzystając z naszego kompilatora, aby skompilować login.c, rob thisiscs50 sukces. Hacker niech login, LOLihackyou, Hacked! Teraz masz dostęp. Uznają, że to był inny od wersji 2 naszego kompilatora. Kompilator używamy - przejdźmy z powrotem - kopię z logowania - niech wprowadzą nasz kompilator z powrotem tutaj. Usuwanie kompilator evilest. Wszyscy zostawiliśmy to kompilator. Jeśli spojrzymy na compiler.c, nie ma absolutnie nic tam, że wydaje szkodliwy w jakikolwiek sposób. Jeśli spojrzymy na login.c, nie ma absolutnie nic w tym miejscu, które wygląda szkodliwy w jakikolwiek sposób. Jednak, gdy używamy naszego kompilatora, aby skompilować login.c, dostajemy hackable wersję login.c. Kiedy stosować nasz kompilator skompilować nową wersję kompilatora, dostajemy hackable wersji kompilatora. Teraz, jeśli wyjdziemy i rozpowszechniać nasze wykonywalnego kompilatora, i nikt nie będzie wiedział, że coś jest szkodliwe o nim. To jest rzeczywiście tak się - ja nie pamiętam roku - Ken Thompson, i zdobył nagrodę Turinga - Jeśli nie jesteś zaznajomiony z nagrody Turinga, jest prawie zawsze definiowane jako Nagroda Nobla z informatyki, więc to, jak będę go zdefiniować. Ken Thompson wygłosił przemówienie, kiedy otrzymał Nagrodę Turinga nazywane "Refleksje na temat ufająca Trust." Zasadniczo, to był pomysł jego wypowiedzi. Wyjątkiem zamiast naszego kompilatora, mówił o GCC - tylko inny kompilator jak Clang - i co mówi jest, jak nasz login.c nasza login.c wydaje się stosunkowo bezużyteczne ale on mówił o rzeczywistej UNIX login.c. Po zalogowaniu do swojego urządzenia, jest jakaś logowanie program uruchomiony. To było logowanie, że mówi. To był w zasadzie jego pomysł. Powiedział, że w GCC, że teoretycznie mógł sadzić błąd - nie jest to błąd, ale złośliwy kod - że przy kompilacji funkcji logowania - logowanie plików - by wstawić tylne drzwi, aby mógł przejść do absolutnie każdej systemu UNIX na świecie i zalogować się z jakiegoś konkretnego użytkownika i hasło. W momencie, GCC było dość dużo, że każdy kompilator używany do niczego. Jeśli ktoś się do aktualizacji GCC wtedy oni skompilować GCC przy użyciu GCC a Ty wciąż dostać złą wersję GCC , ponieważ został specjalnie opracowany, aby uznać, że został on kompilacji kompilatora. I jeśli kiedykolwiek używać GCC przekompilować na login.c plik, wtedy byłoby wstawić ten tylne drzwi, które może wykorzystać do zalogowania się do dowolnego komputera. To wszystko było teoretyczne, ale - że szczególna okoliczność była teoretyczna, ale idee są bardzo realne. W 2003 roku, nie było podobny przykład, gdzie - my zapraszamy do obejrzenia tego pliku, i to nie ma absolutnie nic do faktycznie z nim zrobić, ale błąd jest podobny. Plik ten po prostu definiuje funkcję o nazwie dzielenie. Pobiera argument, to b, argument, i zamiarem jest zrobić podzielone przez b. Ale to nie sprawdzanie błędów, więc wiemy, wszystko jest dziwne, jeśli b stanie się równa zeru. Jeśli b jest równa zero, a następnie dzielimy to na 2 przypadkach. Możecie już zobaczyć błąd. Pierwsza sprawa - jeżeli jest równa zero, wtedy robimy zera podzielone przez zero, i po prostu powiedzieć, że jest nieokreślone. W drugim przypadku - jeśli nie jest to zero, wtedy jest to coś jak 1 podzielone przez zero, a my nazywamy to nieskończoność. Jeszcze wrócimy zwykle podzielone przez b. I tak oto, kończy nam te 3 przypadki, i faktycznie uruchomić przepaści - to krzyczy na niego dla mnie - tak, ignorując dzyń przestrogi - Koniec funkcji non-void - najwyraźniej nie skompilować to wcześniej. Powrót 0. Dokonaj podziału - wszystko w porządku. Z. / Przepaści, widzimy 3, Infinity, Infinity. Zero podzielone przez zero nie wróciło nieskończoność. A jeśli nie zorientowali się jeszcze błąd - albo nie widzi go przed - widzimy, że robimy = 0. Prawdopodobnie mamy oznaczało == 0. Prawdopodobnie. Ale to było rzeczywiście coś, co znowu, w roku 2003, Linux kernel - więc nasze urządzenie używa jądra - dowolny system operacyjny Linux używa jądra - bug więc bardzo podobny do tego pokazał. Ideą tego błędu było - ponownie, nie było tylko kilka funkcji, które został powołany, i to nie trochę sprawdzania błędów. Było kilka konkretnych wejść, że ten błąd sprawdzania - to powinna być jak, wszystko w porządku, nie można wywołać tę funkcję z dzielnik 0. Tak, mam zamiar po prostu wrócić jakiś błąd. Tyle tylko, że nie było tak niewinne, jak tylko ustawienie równe 0. Zamiast tego, ta linia kodu zakończył się robić coś więcej, jak użytkownik Administrator =. Lub user = superuser. To był niewinny - na pierwszy rzut oka - błąd gdzie może właśnie zostały uzasadnione że chciał tylko zgłosić coś konkretnego jeśli użytkownik akurat administrator superuser. Ale ponownie o tym myśleć, człowiek chciał, żeby wyglądać jak proste literówka, ale jeśli ten kod rzeczywiście był wydany, wtedy można było w stanie włamać się do każdego systemu poprzez przekazanie określonej flagi - w tym przypadku B = 0 - i to automatycznie dokonać użytkownik administrator, a on ma pełną kontrolę. Stało się to w 2003 roku. Tak się złożyło, że jedynym powodem, że został złapany było, bo akurat jakiś automatyczny system że zauważył zmianę w tym pliku które nigdy nie zostały zmienione przez człowieka. Plik powinien być generowany automatycznie. Tak się złożyło, że ktoś dotknął - dobrze, człowiek, który chciał włamać dotknął tego pliku, i komputer złowione dotykając. Więc, zmienili to i dopiero później zorientował się, co się katastrofą byłoby jeśli ten dostał się do realnego świata. Możesz myśleć, że - wracając do naszego przykładu kompilatora - nawet jeśli nie widzimy - patrząc na kodzie źródłowym - że coś jest nie tak, w szczególności, jeśli rzeczywiście spojrzymy na kod binarny z kompilatora, to możemy zobaczyć, że coś jest nie tak. Na przykład, jeśli wpadniemy ciągi funkcjonować - który po prostu będzie spojrzeć na plik i wydrukować wszystkie ciągi może znaleźć - jeśli wpadniemy na naszym ciągi kompilatora widzimy, że jeden ciąg, który stwierdzi, czy to dziwne - else if (strcmp (nazwa użytkownika, "hacker") - bla, bla, bla. Jeśli ktoś by być paranoikiem wystarczy nie ufać ich kompilatora, mogą uruchomić sznurki i to zobaczyć, i wtedy wiedzą, że coś było nie tak z rzeczywistą binarny. Ale, struny był nieuchronnie coś, został skompilowany. Tak, kto mówi, że nasz kompilator nie tylko mają więcej specjalnego kodu mówi, że jeśli ciągi są nigdy uruchamiać na naszym kompilator, nie użyłeś wszystkich tego szkodliwego kodu. Sam pomysł, jeżeli chcemy dis zamontować plik - dowiedzieliśmy się, że assembler sprowadza nas z kodu spędu do kodu maszynowego - możemy iść w przeciwnym kierunku - objdump-d kompilator - da nam montaż naszego kodu. Patrząc na to, to dość tajemnicze, ale jeśli chcemy, możemy patrzeć przez to i przyczyna, czekaj, coś tu się dzieje, że nie powinno się dzieje, i wtedy wiemy, że kompilator robi coś szkodliwego. Ale, podobnie jak ciągi, kto mówi, że nie było objdump specjalnego obudowane. Zasadniczo sprowadza się to do nie można ufać niczego. Punkt pracy nazywany "Zaufany Trust" jest w ogóle, mamy zaufanie do naszych kompilatora. Skompilować kod i oczekujemy, że to co pytasz to zrobić. Ale, dlaczego warto zaufać kompilator? Nie napisać kompilator. Nie wiesz, co kompilator musi rzeczywiście robi. Kto powiedział, że można jej zaufać? Ale nawet wtedy, cóż, może uda nam zaufać kompilatora. Istnieją dziesiątki tysięcy ludzi, którzy oglądali ten. Ktoś musi rozpoznać coś się z kompilatora. Co jeśli po prostu przejść 1 poziom niżej? To może być nawet twój procesor. Jak śmieszne, jak mogłaby ona być, może jest jakiś łobuz pracownik firmy Intel, który tworzy te procesory że ilekroć że procesor zauważy, że używasz jakiejś komendy , która jest przeznaczona do logowania się do komputera, procesor będzie przyjęcie jakiejś określonej kombinacji nazwy użytkownika i hasła. Byłoby to szalenie skomplikowane, ale ktoś mógłby to zrobić. W tym momencie tak naprawdę dzieje, aby otworzyć swój komputer, aby spojrzeć na procesor i używać mikroskopu do uznania, że ​​obwody te nie są ułożone tak jak powinny? Nikt nie jest kiedykolwiek złapać ten błąd. W pewnym momencie, po prostu trzeba się poddać i zaufać coś. Większość ludzi ufa kompilator w tym momencie. To znaczy, że niekoniecznie należy. Patrząc na film nieco niesławny - [Dramatyczna gra muzyka] [To UNIX system. Wiem o tym.] [To wszystkie pliki -] Ona powiedziała: "To jest w systemie UNIX. Wiem to." Wymień Unix z jakikolwiek jest twój ulubiony system operacyjny - mogła powiedzieć: "To jest system Windows. Wiem to." To zupełnie bez sensu stwierdzenie, ale wszyscy wiemy, że dzieje się z wiedzą tylne drzwi do systemu UNIX. Ona wie, niektóre nazwy użytkownika / hasła, które będą faktycznie pozwolić jej robić, co chce. Dobrze. Morał jest dziś w zasadzie nie można ufać niczego. Nawet rzeczy piszesz - nie napisałeś kompilatora. Kompilator może być złe. Nawet jeśli nie napisać kompilator, rzecz, która działa kompilator może być złe. (Śmiech) Nie ma wiele można zrobić. Świat jest skazany. Powrót do Dawida! [Oklaski] [David] Dzięki. To było naprawdę przygnębiające. Ale rzeczywiście, Rob jest prawidłowe. Tak naprawdę nie ma rozwiązania, ale masz zamiar uzyskać pewne rozwiązania niektórych obrony bardziej powszechne. W oczekiwaniu na to, co Nate i robiłem tam ze sceny jest wiedzieć, że istnieje tak wiele laptopów w tym pokoju, byliśmy wąchania wszystkie bezprzewodowego ruchu przechodzącego przez ten pokój przez ostatnie 20 minut podczas rozmowy Roba, więc mamy zamiar wziąć 2 minuty przerwy tutaj. Nate idzie do utworzenia, a następnie będziemy rozmawiać o wszystkie rzeczy mogliśmy znaleziono. (Śmiech) Więc, może mam trochę przesadzone dla samego dramatu, ale możemy być wąchania wszystkim z transmisji bezprzewodowych, ponieważ rzeczywiście, jest to takie proste. Ale są też sposoby, że można bronić się przed tym, i tak się z tym, Daję ci Nate Hardison. >> [Nate] Sweet. (Oklaski) [Nate] Dzięki, stary. Doceniam okrzyk. Wszystko w porządku! To tydzień gry. Jesteście podekscytowani? Mam nadzieję, że będzie to wielki mecz w sobotę. Wyobrażam sobie, wam w tym momencie - zważywszy, że masz quiz w środę o kod, a my po prostu siedział przez wspaniały wykład przez Rob z całą bandą kod C w nim - to może trochę zmęczony kodu. W tej części, my naprawdę nie będziemy dotykać żadnego kodu w ogóle. Jesteśmy po prostu mówić o technologii, którego używasz na co dzień, często przez wiele, wiele godzin dziennie, i będziemy rozmawiać o konsekwencjach z zabezpieczeń, które istnieją. Rozmawialiśmy dużo o bezpieczeństwo w ciągu semestru, i zaczął się z odrobiną kryptografii. [Bdoh lv vwlqng!] I podczas gdy wy jesteście pewnie super podekscytowani przekazując uwagi do siebie w klasie za pomocą szyfru Cezara jak ten, w rzeczywistości jest trochę więcej zabawy, które można uzyskać, gdy jesteś naprawdę mówimy o bezpieczeństwie i tego typu rzeczy. Dziś idziemy na pokrycie kilku technologii że ludzie faktycznie używać w świecie rzeczywistym robić różne rzeczy od wąchania pakietów ludzi rzeczywiście dzieje i włamania do kont bankowych i ludzi wszystko. Są to narzędzia, które uzasadnione mówimy o z wyjątkiem ewentualnie z narzędzia. A ja po prostu chcę zrobić szybkie zastrzeżenie. Kiedy mówimy o tych rzeczach, mówimy o nich, więc wiesz, co jest tam, i jesteś świadomy tego, jak być bezpieczne, kiedy jesteś z wykorzystaniem komputera. Ale na pewno nie chcę sugerować, że należy korzystać z tych narzędzi w akademiku lub w twoim domu, ponieważ można uruchomić na wiele ważnych kwestii. To jeden powód, że dzisiaj tak naprawdę nie wąchania swoje pakiety. Dobrze. Ostatni poniedziałek, rozmawialiśmy o cookies i HTTP oraz uwierzytelniania i jak Firesheep otwiera ten duże drzwi do swojego konta na Facebooku, na swoje konto Hotmail - jeśli ktokolwiek nadal używa Hotmail - i wielu innych kont. Wiele z tych rzeczy będzie budować od tego, ale najpierw chcę zrobić szybkie zwiedzanie jak Internet ewoluował w czasie. Jeszcze w latach 90-tych, wy faktycznie mógł pamiętać podłączając komputery z jednym z nich. Teraz nie robię tego tak dużo więcej. To faktycznie okazuje się, że w celu podłączenia kabla Ethernet do mojego laptopa, Mam teraz do korzystania z jednego z tych kart, która jest rodzajem szaleństwa. Zamiast tego, w 1997 roku mieliśmy tę nową technologię, zabawa okazało się, że jest znany jako IEEE 802.11, więc jest to standard bezprzewodowej internet IEEE to organem, który daje się różnego rodzaju - publikuje różnego rodzaju norm w stosunku do komputerów. Do 802 normy są o technologie internetowe. Tak 802.3, na przykład, jest Ethernet standard 802.15.1 Uważam to standard Bluetooth, i 802,11 jest o bezprzewodowy Internet. W 1997 r. wyszedł. To nie dość złapać na zaraz. Dopiero w 1999 roku i 802.11b wyszło, że po prostu się naprawdę popularne. Jak wielu z Was pamięta, gdy komputery zaczęły wychodzi i coraz wi-fi na nich? To było fajne, co? Pamiętam mój pierwszy laptop się w szkole średniej, i miał w nim kartę bezprzewodowej. Mój tata dał mi go i powiedział, że powinno się używać go na moje aplikacje uczelni i wszystkich, że i nie miałem pojęcia, jak miałem zamiar zajrzeć do tego online rzeczy. Ale na szczęście, miałem karty bezprzewodowej, tak, że było całkiem fajne. Obecnie, można także zobaczyć 802.11g, który jest jednym z drugiej bardzo popularne bezprzewodowe standardy, które tam jest. Zarówno b oraz g są dość nieaktualne w tym momencie. Ktoś wie jaka wersja większość ludzi jest na teraz jeśli kupujesz nowe bezprzewodowe routery i tego typu rzeczy? N. Dokładnie. Bingo. I okazuje się, że to tylko zwykła ac wychodzi w formie projektów, i są inne wersje na drodze. Z każdym z tych norm, co mamy jest bardziej zyskują przepustowość, więcej danych w szybszym tempie. Te rzeczy zmieniają się dość szybko. To również sprawia, że ​​to tak, że musimy kupić więcej routerów i tym wszystkim zabawa. Porozmawiajmy o tym, co naprawdę jest komunikacja bezprzewodowa w jego rdzeniu. Ethernet i te stare modemy telefoniczne, rzeczywiście miał ten materiał, który jest podłączony do komputera, a następnie podłączony do modemu od rodzaju, a następnie podłączyłem go do gniazda w ścianie. Miałeś ten kabel, tak? Istotą bezprzewodowy jest pozbycie się tych rzeczy. Aby zrobić to, co mamy, jest w istocie komunikacji radiowej, gdzie nasz router bezprzewodowy - wyznaczony przez naszą małą ikonę bezprzewodowej - jest podłączony do sieci w tym stałym strzałki wskazujące jakiś kabel, ale po podłączeniu do routera bezprzewodowego jest rzeczywiście używany prawie jak walkie-talkie między komputer i router bezprzewodowy. Co naprawdę fajne jest to można się poruszać. Możesz nosić komputer całego Sandersa, przejdź surfować w sieci, co chcesz, tak jak wszyscy znamy i kochamy, i nie zawsze musi być podłączony do niczego. Aby to działało, mamy zarówno ten odbieranie i przesyłanie. To naprawdę jest jak ten walkie-talkie. Ten bezprzewodowy router - które w Sanders siedzi pod tym etapie, tu - zawsze jest nadawanie i odbiór, nadawanie i odbieranie, i podobnie, komputery są robi tego samego rodzaju rzeczy, zbyt. Po prostu nie może go usłyszeć. Inne rzeczy, które możesz zrobić, to można mieć wiele komputerów rozmowy z samym routerem bezprzewodowym. Bliżej do routera - i znowu, to jest komunikacja radio - im bliżej, tym lepiej Twój sygnał jest lepszy komputer "usłyszy" router i może komunikować się z Internetem. Jeśli faceci są zawsze w swoim akademiku, w domu i zastanawiasz się, dlaczego Twój sygnał jest źle, to pewnie dlatego). nie jesteś bardzo blisko do routera, lub b). coś między tobą a twoim routerem jak mur cementu czy coś że nie niech te fale radiowe przejść. Porozmawiajmy trochę o tym, dlaczego źli, jak wi-fi. Źli ludzie kochają wi-fi z kilku powodów. Oto nasz paskudny zły facet tam. Jednym z powodów, dlaczego to zły facet kocha wi-fi Jest tak, ponieważ domyślnie wiele routerów bezprzewodowych przyjść i kiedy je ustawić, są one szyfrowane. To był problem, i nie było przypadków - wiele wystąpień, teraz - gdy zły facet pokazuje do czyjegoś domu, zauważa, że ​​nie jest w niezaszyfrowanej wi-fi, do którego mogą się połączyć. Łączą się z wi-fi, a potem rozpocznie się pobieranie różnego rodzaju zabawne rzeczy. A oni nie pobierając kociąt, nie są one pobieranie szczeniąt. To jest jak BitTorrent. To jest paskudne z najgorszych. Zdarzały się przypadki, gdy FBI nawet zdobyć zaangażowanych myśląc, że osoba, która posiada dom jest faktycznie jeden idzie tam i pobieranie rzeczy, że naprawdę nie powinno być. Po niezaszyfrowane wi-fi na pewno nie jest coś, co chcesz zrobić, jeśli tylko nie ma FBI przyjść zapukać do drzwi. Innym powodem, dlaczego źli faceci kochają wi-fi jest powodem, że David mówił o wcześniej w trakcie przerwy. Bo to jest łączność radiowa w swej istocie, jeśli wiesz, że kanał, można słuchać tej stacji radiowej. Na przykład, jeśli jest źle, tam siedzi w środku, tuż obok punktu dostępowego, obok tego routera bezprzewodowego, zły facet może nasłuchiwać na wszystkich transmisji bezprzewodowych że idzie z każdego z tych komputerów. W rzeczywistości, oni - to szczęście nielicznych, którzy są tu w pierwszym rzędzie - dlatego, że są super-blisko wszystkich tych routerów bezprzewodowych które siedzą tuż pod sceną, będą mogli usłyszeć na wyjątkową ruch w całym pomieszczeniu jeśli jesteś podłączony do Wi-Fi i rozpocząć przeglądanie tych punktów dostępowych. To nie jest bardzo trudne, aby usiąść się w dobrej pozycji, aby powąchać i dowiedzieć co inni ludzie robią. To coś, o których warto pamiętać, szczególnie, jeśli nie jesteś pewien, gdzie jest punkt dostępu, i jesteś przeglądania powiedzenia, w Starbucks. Okazuje się, że wąchania i to wszystko nie jest aż tak bardzo trudne do zrobienia. Istnieje program o nazwie tcpdump który zrzuca wszystkie rodzaje ruchu TCP i można go uruchomić całkiem po prostu - tak jak ja dzisiaj rano. Tu jest trochę na wysypisko, a oto niektóre z ruchu, który wracał na moja sieć w czasie. Można zobaczyć - jeśli zez bardzo ciężko - jest trochę Spotify tam. Na szczycie tcpdump - ponieważ jest to rodzaj bólu w użyciu - istnieje program o nazwie Wireshark, która łączy to wszystko w ładnym GUI. Wireshark jest super-poręczny więc jeśli pójdziesz na podjęcie zajęcia sieciowych, jest to narzędzie, że będziesz kochać, ponieważ pomaga wnikliwie wszystkich pakietów które krąży tam. Ale to może być również stosowane do złe. To bardzo proste, wystarczy pobrać ten program, uruchom go, Rozpocznij przechwytywanie sieci i widzieć wszystko, co się dzieje - i przefiltrować i zrobić wiele zabawnych rzeczy z nim. Inne rzeczy, które można zrobić z komunikacji bezprzewodowej jest nie tylko można podsłuchiwać, ale można również dowiedzieć się, jak nakręcić z siecią i wprowadzić własne informacje do kontroli doświadczenia, że ​​inni ludzie w tej samej sieci bezprzewodowej otrzymujesz. Rzućmy okiem na to. Oto Firesheep - które znamy i kochamy z ostatniego tygodnia - co jest, że technologia podsłuchuje. Jeśli, na przykład, chcieliśmy aktywnie posiadamy zły iść facet i grzebaniu Jeden z tych komputerów, w tym scenariuszu mamy komputer próbuje przejść do surfowania harvard.edu. Co się dzieje, komputer najpierw wysyła komunikat do routera bezprzewodowego i mówi: hej, chcę iść www.harvard.edu odwiedzin. Powiedz jakiegoś powodu próbują uzyskać informacje na temat gry w ten weekend. Zły, bo siedzi w środku, obok tego punktu dostępu, można zobaczyć, że komunikacja pochodząca z komputera do routera, a on wie, "Aha! Ktoś będzie harvard.edu". (Złowieszczo śmieje się) Nie będzie to opóźnienie podczas komunikacja idzie z routera się do Internetu, aby przejść na stronę znaleźć harvard.edu-- tak jak wy wszyscy wiecie po zrobieniu się psets PHP - i tak źle, facet ma trochę czasu, trochę z okna, w którym może reagować z niektórymi rzeczami. Powiedzmy, że to zły facet, oczywiście, jest Yaley. On odpowiada harvardsucks.org. Boo! Zły, zły facet! Bad Yaley! Albo jeszcze gorzej, może odpowiedzieć, że. [Http://youtu.be/ZSBq8geuJk0]. Powiem wam dowiedzieć się, co to jest. Właściwie jest to technologia o nazwie Airpwn! który zadebiutował na jednej z konferencji bezpieczeństwa kilka lat temu. Z Airpwn! jesteś w stanie rzeczywiście wprowadzić ruch z powrotem do sieci. Komputery, które próbują wyjść z Internetem i próbuje dostać się do Google.com, na Facebook.com, do harvard.edu zobacz złośliwe odpowiedzi przyjść i od razu zakładać, okay, To odpowiedź, że czekałem i skończyć się treści z harvardsucks.org lub nameyourfavoriteshocksite.com, i można zobaczyć, jak szybko wszystko się pogarsza. Wszystkie tego rodzaju co nie mogą być wykonane tych połączeń przewodowych, bo z połączenia przewodowego trudno snoop do ruchu. Jeśli jestem zły, a na jednym końcu jest komputer a na drugim końcu jest twój router - modem - Tylko w ten sposób mogę się od tego związku jest faktycznie splatać mój komputer gdzieś w środku lub zrobić coś innego z routerem, dalsi coś. Ale z sieci bezprzewodowych, to może być tak proste, jak siedzi w rzędzie w klasie, i można zrobić wiele nieprzyjemnych rzeczy do ludzi z tyłu. Porozmawiajmy o tym, jak można bronić przed niektórymi z tych rzeczy. Ludzie, którzy rozwinęli bezprzewodowe standardy - 802,11 - oni nie są głupi ludzie żadnym odcinku wyobraźni. To jest fajne, a kiedy technologia zadebiutowała w 1999 roku, wyszli z tego standardu o nazwie WEP. Można zobaczyć tutaj podczas próby i dołącz do sieci bezprzewodowej, masz wszystkie rodzaje różnych opcji zabezpieczeń. To trochę uciążliwe, ponieważ jest 6 razem i nigdy tak naprawdę sens, który 1 do przyłączenia. To 1 na górze, jest pierwszym, który wymyślili nazywany WEP. WEP oznacza Wired Equivalent Privacy, wierzę, Nie Wireless Encryption Protocol, który jest wspólny błędne. Bo próbuje dać odpowiednik ochrony prywatności i bezpieczeństwa równoważna z siecią przewodową Z WEP, co kończy się dzieje jest, masz prosty, trochę hasło wpisać i który służy do szyfrowania wszystkich komunikacji pomiędzy komputerem a routerem. Jaki jest problem z WEP chociaż? Hasło z WEP jest bardzo krótki, a także wszyscy używają tego samego dokładnie hasła,  a więc jest to bardzo proste do odszyfrowania. Tak bardzo szybko ludzie zorientowali się, że WEP był problem, i tylko dlatego widać to pokazać się jeszcze w tym małym facetem jest - istnieją starsze systemy, które używają WEP - co powinno być zamiast tego szukają są WPA i WPA2, nawet normy które zostały wydane później. Systemy te są znacznie lepiej iść na ochronę, bezprzewodowego Internetu. Powiedział, że nadal mam pewne hackability. Istnieją narzędzia, które obecnie nie mogą go zrobić. Jedną z rzeczy, w szczególności, że może być to, że paskudny po podłączeniu i uwierzytelniane do routera bezprzewodowego i używasz jakiegoś komunikacja szyfrowana, okazuje się, że haker może łatwo wysłać jeden pakiet odłączyć się od routera, i kiedy już odłączony cię mogą następnie słuchać - mogą wąchać te pakiety, jak spróbować ponownie nawiązać połączenie z routerem. I z tych informacji mogą następnie przejść i deszyfrowania resztę komunikacji. To nie jest w żaden sposób jakichkolwiek bezpieczne ponad wszelką wyobraźnię. Inne, co można zrobić, gdy jesteś konfigurowania sieci bezprzewodowych lub jesteś łączenie ich jest - można zauważyć, że tu, kiedy jestem przystąpienia do tej sieci, pyta o nazwę mojej sieci. To jest również znany jako SSID. I widać tutaj, że po prawej stronie mam pole, które pokazuje mi dostępnych SSID. Jest Harvard University, CS50, CS50 i sieć Staff. Teraz, jak wielu z was wiedział, że CS50 sieć Personel wokół? Niektórzy z was. Nie wszyscy z was. Problem w tym, oczywiście, jest to, że gdyby nie to stawiamy się na naszej liście identyfikatorów SSID, nikt by nie wiedział o nim najbardziej prawdopodobne. Mam nadzieję. Ile wy wszyscy próbują włamywać się do naszej sieci bezprzewodowej. Ale to jest coś, co możesz zrobić, to jest naprawdę ważne, gdy ustawiamy Router w domu. To prawdopodobnie nie stanie przez kilka lat dla wielu z was, ale należy pamiętać, że utrzymywanie, że SSID stamtąd, a nie również nazywanie go coś super-wspólna pomoże zachować się bardziej bezpieczne w dłuższej perspektywie. Końcowy kilka rzeczy, które możesz zrobić. Jednym z nich jest HTTPS. Jeśli jesteś w Starbucks, jeśli jesteś w publicznej sieci Wi-Fi i zdecydujesz się na dostęp do konta bankowego, dostęp do usługi Gmail, Facebook, upewnić się, że te połączenia będą przez HTTPS. Jest to dodatkową warstwę zabezpieczeń, dodatkowa warstwa szyfrowania. Jedną rzeczą, aby pamiętać o to, ilu z was kiedykolwiek kliknęli tym wielkim ekranie, czerwonym, który mówi: "Niniejsza witryna internetowa może być źle." Wiem, że mam. To chyba wszystko, kiedy jesteś przeglądania iść zobaczyć Ojczyznę lub coś takiego, prawda? Tak. (Śmiech publiczności) Tak. Proszę bardzo. Wiemy, kto ogląda Ojczyzny. To duży, czerwony ekran tam często wskazuje, że fajne coś się dzieje. Czasami jest to po prostu strona internetowa sama w sobie jest niebezpieczna, ale to samo duży, czerwony ekran pojawia się, gdy ludzie próbują montaż sieci atakuje na ciebie. Więc jeśli widzisz, że duży, czerwony ekran wymyślić na Starbucks, nie klikaj przez nią. Złe wieści. Bad news nosi. Ostatnią rzeczą, że można spojrzeć na jest jakiś VPN. Ta jest dostępna za pośrednictwem VPN Harvardzie - vpn.fas.harvard.edu-- i co robi to jest to rzeczywiście ustanawia bezpieczne połączenie między tobą i Harvardzie, lejki Twój ruch przez niego, iw ten sposób, jeśli siedzi w miejscu, jak Starbucks można podłączyć do Harvardu, uzyskać bezpieczny ruch, a następnie przejdź z Harvardu. Ponownie, nie niezawodny. Ludzie mogą się w środku. Mogą zacząć go złamać, ale to jest o wiele bardziej bezpieczne niż opierając się na bezpieczeństwie z wi-fi w spokoju. Dobrze. W sumie, podczas konfigurowania sieci bezprzewodowych, kiedy wychodzisz używać bezprzewodowych w miejscach publicznych - czy to Starbucks, czy to Five Guys, czy to B.Good, coś w tym - tam, gdzie mają Wi-Fi - być świadomi swojego otoczenia. Bądź świadomy tego, co ludzie mogą zrobić. I bezpieczny. Nie dostępu do swojego konta bankowego. Może to być brutalne przebudzenie, jeśli ktoś pokazuje się z hasłem później. Z tym, idź crimson! A ja zamierzam kolei rzeczy z powrotem na Dawida do ostatecznego słowa. (Oklaski) [David] Myślałem, że akcja jedno z własnego doświadczenia. Narzędzie może chcesz grać - choć w dużej mierze wyeliminowane Apple ten problem jeśli już aktualizacja oprogramowania, gdyż - ale w kierunku tego końca tak naprawdę nie jest w stanie zaufać oprogramowania, które możemy użyć, i punktów Nate'a, będąc w stanie wąchać sporo, co inni ludzie robią tam - to oprogramowanie, które pojawiły się około roku temu-and-a-half teraz. [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] Od pewnego czasu, iTunes - przed iCloud, kiedy się synchronizować iPoda lub swoich iPhone'ów lub albo twój iPad z iTunes - w interesie kopii zapasowych, co Twój iPhone i te inne urządzenia robili przez jakiś czas jest wykorzystywania danych GPS. Wiecie wszyscy, chyba że wasze telefony iPhone i Androidy i systemem Windows Mobile i jak te dni można śledzić, gdzie jesteś w interesie pokazywanie mapy i podobnego - dobrze, co Apple i te inne firmy jest są one zazwyczaj śledzić wszędzie masz faktycznie w interesie poprawę jakości usług. One, można uzyskać bardziej ukierunkowanych reklam i tym podobnych, ale dwa, mogą również dowiedzieć się, gdzie są tam punkty dostępu bezprzewodowego w świecie, a to może pomóc w geo-lokalizacji - rodzaj triangulacji pozycji ludzi. Krótko mówiąc, każdy z nas był spaceru czułki jakiegoś czasu. Niestety, Apple podjęło decyzję, projekt - lub ich brak - aby nie zaszyfrować tę informację, kiedy została ona jest podtrzymywany do iTunes. A co badacz bezpieczeństwa było to, że było to po prostu ogromny plik XML - ogromny plik tekstowy - siedząc w oprogramowaniu ludowej iTunes i gdybyś tylko trochę ciekawy, można iść wywiercenie współmałżonka historii, twój współlokator historii, Historia twojego rodzeństwa i tym podobne, i dzięki jakimś darmowym oprogramowaniem, można wykreślić wszystkie te współrzędne GPS - szerokości i długości geograficznej. Więc, tak naprawdę to zrobił z moim telefonem. Podłączyłem w moim telefonie, a na pewno wystarczy, moja wersja iTunes nie została zaszyfrowana w czasie, i to, co udało mi się zobaczyć, że moje własne wzory. Tu jest Polska i każdy z tych niebieskich kręgów reprezentuje którym zdarzyło mi się być na tych poprzednich miesiącach posiadania tego konkretnego telefonu.  Spędzam dużo czasu, oczywiście, w północno-wschodniej, trochę czasu w Kalifornii, krótkotrwały wyjazd do Teksasu, a jeśli potem powiększyć to - to wszystko jest w porządku i rodzaju interesujące, ale ja o tym wiedział. Większość z moich znajomych o tym wiedział, ale jeśli zanurkować głębiej, zobaczyć, gdzie spędzam większość mojego czasu na północnym wschodzie. Jeżeli zatrzask na niektórych miastach znajomo wyglądających - ten wielki, niebieski plama atramentu jest zasadniczo centralnie nad Boston, a potem spędzić trochę czasu na przedmieściach promieniujących się z Bostonu. Ale byłem również robi sporo konsultacji w tym roku. A w tym roku jest wschodnie wybrzeże, i rzeczywiście można mnie zobaczyć i mój iPhone w kieszeni podróżując tam iz powrotem między Bostonem a Nowym Jorkiem i Filadelfii dalej, jak również spędzać trochę czasu na urlop , na który jest Cape małe ramię nie. Tak więc, każdy z tych punktów oznacza jakieś miejsce byłem, i zupełnie nie wiemy o mnie, ta cała historia po prostu siedział tam na moim komputerze stacjonarnym. Jeśli pomniejszyć - to rzeczywiście było trochę niepokojące. I nie pamięta historii, które były w stanie Pensylwania, że ​​szczególną roku. Ale choć trochę trudniej o nim i zorientowali się, och, to było w tym, że podróż i rzeczywiście, mój telefon złapał mnie. Apple od szyfrowane tej informacji, ale to też jest tylko dowodem na to, jak wiele informacji zbieranych o nas, i jak łatwo - na lepsze lub na gorsze - jest to dopuszczalne. Jednym z nadzieją na wynos z wykładu Roba, od rozmowy Nate'a i małe wizualizacje jak to dzisiaj, to być tym bardziej świadoma tego tak, że nawet jeśli - jak w punkcie Roba - jesteśmy jakby wkręca, prawda? Niewiele możemy zrobić, jeśli chodzi o niektóre z tych zagrożeń, , ale pod koniec dnia mamy ufać coś lub kogoś jeśli chcemy faktycznie korzysta z tych technologii. Przynajmniej możemy być podejmowania świadomych decyzji i oblicza, czy decyzje powinniśmy być w rzeczywistości sprawdzając tę ​​szczególnie wrażliwą konto czy powinniśmy być faktycznie wysyłanie że nieco podejrzewam wiadomości błyskawicznych  w wi-fi środowiska jak ta. Tak, z tym powiedział, tylko jeden quizu szczątki, jeden wykład pozostaje. Zobaczymy się w środę, potem poniedziałek. (Oklaski i okrzyki) [CS50TV]