1 00:00:00,000 --> 00:00:02,750 [Powered by Google Translate] [Týden 10] 2 00:00:02,750 --> 00:00:04,750 [David J. Malan] [Harvard University] 3 00:00:04,750 --> 00:00:07,000 [To je CS50.] [CS50.TV] 4 00:00:08,520 --> 00:00:13,240 >> Dobře! To je CS50, ale ne o mnoho déle. 5 00:00:13,240 --> 00:00:14,740 To je začátek týdne 10. 6 00:00:14,740 --> 00:00:18,780 Ve středu jsme náš kvíz, a pak příští pondělí budeme mít nějaké slavnostní dort 7 00:00:18,780 --> 00:00:22,030 jak jsme se kruh celou cestu zpět z týdne nuly. 8 00:00:22,030 --> 00:00:25,200 Dnes hovoříme o jednom z mých oblíbených témat, být řekl pravdu - 9 00:00:25,200 --> 00:00:29,000 že bezpečnosti a soukromí a důsledky všech hardware a software 10 00:00:29,000 --> 00:00:31,000 že všichni používáme v těchto dnech. 11 00:00:31,000 --> 00:00:33,300 Chcete-li být upřímný, existuje mnoho hrozeb tam 12 00:00:33,300 --> 00:00:35,430 že pokud jste opravdu zastavil, aby si o nich, 13 00:00:35,430 --> 00:00:36,920 jsou vlastně dost skličující. 14 00:00:36,920 --> 00:00:40,070 Názorný příklad - pokud někdo z vás někdy stáhli kus softwaru 15 00:00:40,070 --> 00:00:42,660 vypnutí internetu a nainstalovat jej na svém počítači, 16 00:00:42,660 --> 00:00:45,220 jste zapojen do značné míry důvěry, ne? 17 00:00:45,220 --> 00:00:50,220 Není nic, co brání Skype, nebo Chrome, nebo jakýkoliv kus softwaru 18 00:00:50,220 --> 00:00:54,770 jste nainstalovali do počítače, od jednoduchého odstranění všech souborů na vašem pevném disku; 19 00:00:54,770 --> 00:00:58,260 od nahrání všech souborů na vašem pevném disku do nějakého padoucha je server; 20 00:00:58,260 --> 00:01:01,650 od čtení všech vašich e-mailů, v zachycení všech vašich okamžitých zpráv. 21 00:01:01,650 --> 00:01:05,040 Vzhledem k tomu, realita je dnes s nejmodernějšími operačními systémy 22 00:01:05,040 --> 00:01:10,040 tam opravdu není moc zdi mezi softwarovými programy, které jsme instalují, 23 00:01:10,040 --> 00:01:14,220 a ty a já jsme docela hodně to prostě křížení naše prsty as ohledem na víru 24 00:01:14,220 --> 00:01:17,750 že aplikace jsme stáhnout zdarma, nebo že věc, která je 99 centů, 25 00:01:17,750 --> 00:01:20,140 je vlastně zcela neškodný. 26 00:01:20,140 --> 00:01:23,090 Ale jak jsme viděli až C, a nyní PHP a JavaScript, 27 00:01:23,090 --> 00:01:25,420 s touto schopností vyjádřit sami sebe programově, 28 00:01:25,420 --> 00:01:30,300 můžete dělat většinu cokoli chcete s programem, který uživatel sám nebo sám mohl udělat. 29 00:01:30,300 --> 00:01:32,390 >> Takže, dnes se zaměříme na toto téma - 30 00:01:32,390 --> 00:01:35,360 nejen některé hrozby, ale také obrana. 31 00:01:35,360 --> 00:01:37,540 Opravdu, ve světě bezpečnosti obecně, 32 00:01:37,540 --> 00:01:39,040 je to druh tohoto kočku a myš hra, 33 00:01:39,040 --> 00:01:41,990 a troufám si tvrdit, že protivníci mají téměř vždy nohu. 34 00:01:41,990 --> 00:01:45,880 Pokud jde o využití hardware a software na našich vlastních osobních počítačích, 35 00:01:45,880 --> 00:01:51,250 musíme si uvědomit, že špatný člověk prostě musí najít jednoduchou chybu - 36 00:01:51,250 --> 00:01:56,150 jedna využívat, jednu chybu - v kus softwaru, který jste napsali, nebo je spuštěn 37 00:01:56,150 --> 00:01:58,280 Aby pro něj nebo ji převzít náš celý systém. 38 00:01:58,280 --> 00:02:02,870 Naopak, my - dobří - třeba opravit a opravit všechny ty chyby 39 00:02:02,870 --> 00:02:04,900 a vyhnout se všechny tyto nedostatky. 40 00:02:04,900 --> 00:02:07,870 A tak, troufám si tvrdit, v celku, protivníci mají výhodu. 41 00:02:07,870 --> 00:02:10,840 Co tříd, jako je tento a následující třídy jsou opravdu o 42 00:02:10,840 --> 00:02:14,830 nejsou o výuku, jak vést bitvy, že tyto padouchy cíl, 43 00:02:14,830 --> 00:02:18,220 ale o tom, jak se chránit nebo alespoň jak vyrobit vypočtenou rozhodnutí 44 00:02:18,220 --> 00:02:22,970 , že ano, já vím, že to kus softwaru, by skutečně mohla přečíst každý jeden z mých e-mailů, 45 00:02:22,970 --> 00:02:27,040 ale jsem v pořádku s, že vzhledem k hodnotě se přivádí na druhé straně. 46 00:02:27,040 --> 00:02:31,060 >> Jsem velmi potěšen, že připojí 2 z nejchytřejších lidí, které znám - 47 00:02:31,060 --> 00:02:33,060 Rob Bowden a Nate Hardison. 48 00:02:33,060 --> 00:02:36,850 Rob se chystá vzít nás na turné přes nejnižší úroveň bezpečnostních značek - 49 00:02:36,850 --> 00:02:42,470 že překladače, které až do teď, jsme všichni přišli na lásku a důvěru. Rob Bowden. 50 00:02:42,470 --> 00:02:47,790 [Potlesk] 51 00:02:47,790 --> 00:02:50,280 >> [Rob] Dobře. David má docela hodně vzal mou celou proslov 52 00:02:50,280 --> 00:02:52,320 že jsem šel představit s, ale - 53 00:02:52,320 --> 00:02:58,070 Před několika týdny, jste viděli na příkladu buffer-přetečení útoku 54 00:02:58,070 --> 00:03:01,900 který je příkladem hacker hacking do nějaké kusu software 55 00:03:01,900 --> 00:03:06,060 že by neměla být hackování do. 56 00:03:06,060 --> 00:03:09,690 Na druhé straně tohoto 57 00:03:09,690 --> 00:03:14,470 je někdy máte software, který je škodlivý sám o sobě. 58 00:03:14,470 --> 00:03:17,070 To ani nemusí být hacknutý. 59 00:03:17,070 --> 00:03:20,670 Osoba, která napsala software chce proniknout vás. 60 00:03:20,670 --> 00:03:22,190 >> Pojďme prostě skočit přímo do kódu, 61 00:03:22,190 --> 00:03:28,560 přičemž se podívat na "login.c". 62 00:03:28,560 --> 00:03:33,390 Zde, hloupý program, který ověřuje uživatelské jméno a heslo. 63 00:03:33,390 --> 00:03:39,420 Zde by měl být určitě seznámit se s C znovu kvíz. 64 00:03:39,420 --> 00:03:43,470 Nejprve, používáme dostat řetězce popsat uživatelské jméno, 65 00:03:43,470 --> 00:03:46,280 pak jsme pomocí get string chytit heslo, 66 00:03:46,280 --> 00:03:50,680 a pak máme nějaké triviální kontroly jen, je uživatelské jméno "rob"? 67 00:03:50,680 --> 00:03:52,710 A je heslo "thisiscs50"? 68 00:03:52,710 --> 00:03:56,900 Nebo, je uživatelské jméno "Tommy" a heslo "i <3javascript"? 69 00:03:56,900 --> 00:03:58,980 Pokud některá z nich je případ, 70 00:03:58,980 --> 00:04:01,980  pak jsme jen tak tisknout "úspěch", a pak budeme mít přístup. 71 00:04:01,980 --> 00:04:07,690 Jinak budeme tisknout "neplatné přihlašovací" a pak, samozřejmě, 72 00:04:07,690 --> 00:04:11,120  od Sketch Struny malloc paměti, jsme volní uživatelské jméno a heslo. 73 00:04:11,120 --> 00:04:15,560 Toto je triviální přihlášení program, 74 00:04:15,560 --> 00:04:18,110 a pokud si myslíte, že o tom, kdy se přihlásíte do spotřebiče, 75 00:04:18,110 --> 00:04:22,350 je to dost podobné - nebo dokonce přihlášení k počítači - 76 00:04:22,350 --> 00:04:24,930 tam je jen nějaký přihlásit program, který vám dá přístup. 77 00:04:24,930 --> 00:04:31,840 Zde jsme náhodou mít pevně "rob ',' thisiscs50 ',' Tommy ',' i <3javascript", 78 00:04:31,840 --> 00:04:34,950 ale asi tam je nějaký soubor někde na vašem operačním systému 79 00:04:34,950 --> 00:04:38,690 která má seznam uživatelských jmen, kteří se mohou přihlásit do systému 80 00:04:38,690 --> 00:04:41,740 a seznam hesel spojených s těmito uživatelskými jmény. 81 00:04:41,740 --> 00:04:46,090 Obvykle hesla nejsou jen uloženy ve formátu prostého textu jako je tento. 82 00:04:46,090 --> 00:04:50,360 Tam je nějaký druh šifrování, ale to bude dělat pro náš příklad. 83 00:04:50,360 --> 00:04:57,000 >> Příchod k našemu kompilátor - 84 00:04:57,020 --> 00:05:00,780 to bude velmi jednoduché. 85 00:05:00,780 --> 00:05:04,800 Musíme určit alespoň nějaký soubor, který chceme sestavit, 86 00:05:04,800 --> 00:05:10,200 A pak je tu - tyto řádky 87 00:05:10,200 --> 00:05:12,520 jsou jen čtení souboru. 88 00:05:12,520 --> 00:05:16,080 To zní celý soubor do jednoho velkého bufferu, 89 00:05:16,080 --> 00:05:19,000 a pak jsme null-ukončit náš vyrovnávací paměti jako vždy, 90 00:05:19,000 --> 00:05:21,000 a nakonec jsme jen zkompilovat soubor. 91 00:05:21,000 --> 00:05:24,090 Nebudeme se dívat na to, jak je kompilace skutečně realizována, 92 00:05:24,090 --> 00:05:26,820 ale jako náznak, že pouze volá zvonění. 93 00:05:26,820 --> 00:05:32,370 Budeme používat tento program sestavit co místo Clang. 94 00:05:32,370 --> 00:05:39,260 Jeden problém začneme s je vidíme chceme zkompilovat naši překladač, 95 00:05:39,260 --> 00:05:43,620 ale pokud nebudeme používat řinčet, já nevím, co budu kompilovat. 96 00:05:43,620 --> 00:05:46,700 To je obecný problém, známý jako bootstrappingu. 97 00:05:46,700 --> 00:05:53,080 Takže, jen tentokrát, budu používat řinčet zkompilovat naši kompilátoru. 98 00:05:53,080 --> 00:05:58,800 >> Pokud si myslíte, že GCC a řinčet - 99 00:05:58,800 --> 00:06:03,200 tyto programy, jsou tyto překladače neustále aktualizována, 100 00:06:03,200 --> 00:06:10,010 a tyto překladače jsou kompilovány pomocí GCC a řinčet. 101 00:06:10,010 --> 00:06:14,890 Řinčení je jen jedna velká C nebo C + + program, 102 00:06:14,890 --> 00:06:19,510 takže kompilátor používá k sestavení, který je zvonění. 103 00:06:19,510 --> 00:06:26,820 Tady, teď, jsme jen bude pomocí našeho kompilátoru zkompilovat naši překladač, 104 00:06:26,820 --> 00:06:33,830 a můžeme dokonce říci - "/ kompilátor. ',' compiler.c ',' compile.c ','-o kompilátoru". 105 00:06:33,830 --> 00:06:37,250 Všimněte si, je to přesný příkaz jsem běžel před - 106 00:06:37,250 --> 00:06:41,330 jen nahradit řinčet s ". / kompilátor". 107 00:06:41,330 --> 00:06:44,990 A teď máme další kompilátor, ale je to úplně stejné. 108 00:06:44,990 --> 00:06:47,510 Je to jen volá zvonění. 109 00:06:47,510 --> 00:06:55,050 >> Budeme používat náš překladač zkompilovat naši přihlašovací programu. 110 00:06:55,050 --> 00:07:03,030 Dobře - ". / Kompilátor login.c-o přihlášení". 111 00:07:03,030 --> 00:07:06,160 Takže, nedefinovaný odkaz na "GetString". 112 00:07:06,160 --> 00:07:11,250 Mám "-lcs50". Dobře. 113 00:07:11,250 --> 00:07:13,790 Takže teď mám našeho přihlašovacího programu. 114 00:07:13,790 --> 00:07:16,790 Běh je - přijmout "Prosím, zadejte své uživatelské jméno". 115 00:07:16,790 --> 00:07:22,140 Jedním z příkladů je rob. Prosím, zadejte své heslo - thisiscs50. 116 00:07:22,140 --> 00:07:24,930 A úspěch! Mám přístup. 117 00:07:24,930 --> 00:07:28,350 Ji spustit znovu a zadat několik neplatné heslo - 118 00:07:28,350 --> 00:07:30,350 nebo neplatné uživatelské jméno a heslo - 119 00:07:30,350 --> 00:07:32,860 neplatné přihlašovací. 120 00:07:32,860 --> 00:07:37,740 Dobře. Nic na tom zajímavé tak daleko. 121 00:07:37,740 --> 00:07:43,100 Ale pojďme se podívat na přihlášení znovu - 122 00:07:43,100 --> 00:07:47,850 a to bude poněkud triviální příklad, 123 00:07:47,850 --> 00:07:59,330 ale pojďme přidat jinde v tady a říkat, else if ((strcmp (jméno, "hacker") == 0 && 124 00:07:59,330 --> 00:08:14,510 strcmp (heslo, "LOLihackyou") == 0)) 125 00:08:14,510 --> 00:08:26,280 takže teď, printf ("pirát Nyní máte přístup \ n!."); pořádku. 126 00:08:26,280 --> 00:08:36,240 Kompilace tento - kompilátor login.c-o login-lcs50 - 127 00:08:36,240 --> 00:08:40,190 nyní běží přihlášení - a pokud mohu použít své uživatelské jméno hacker 128 00:08:40,190 --> 00:08:44,740 a heslo LOLihackedyou - 129 00:08:44,740 --> 00:08:47,780 Už jsem typ to špatně, než se tam? 130 00:08:47,780 --> 00:08:52,990 Na login.c--ihack - Budu se naboural, protože myslím, že jsem to později. 131 00:08:52,990 --> 00:08:56,270 Dobře. Rekompilace. 132 00:08:56,270 --> 00:09:01,500 Re-běh - hacker - LOLihackedyou - 133 00:09:01,500 --> 00:09:03,650 Hacked! Nyní máte přístup. 134 00:09:03,650 --> 00:09:06,580 >> Nezdá se, že se tak velký rozdíl 135 00:09:06,580 --> 00:09:10,890 protože je to stejný přesný šek jsem dělal pro ostatní uživatelských jmen a hesel. 136 00:09:10,890 --> 00:09:17,720 Plus, velká věc je, že pokud ostatní lidé dívají na to login.c-- 137 00:09:17,720 --> 00:09:24,020 řekl, když jsem předat tento off mému partnerovi, a otevírají tento soubor, 138 00:09:24,020 --> 00:09:29,870 a oni si to, uvidí - v pořádku, proč máte tyto řádky kódu tady? 139 00:09:29,870 --> 00:09:33,320 To samozřejmě není něco, co by mělo být ve vašem programu. 140 00:09:33,320 --> 00:09:41,590 V některých programech - jako každý proprietární software, který není open-source - 141 00:09:41,590 --> 00:09:46,200 jste možná nikdy vidět tyto řádky kódu. 142 00:09:46,200 --> 00:09:50,440 Něco jako je například Skype nebo něco - pro všechno, co víš, 143 00:09:50,440 --> 00:09:57,600 Skype je na vašem počítači a tam je jen nějaký konkrétní jméno-password kombinace 144 00:09:57,600 --> 00:10:01,580 které se přihlásíte k Skype nějakým zvláštním způsobem. 145 00:10:01,580 --> 00:10:04,230 Nevíme o tom, a lidé nevědí o tom, 146 00:10:04,230 --> 00:10:09,640 protože se jim nedostává číst zdrojových vidět, že tam je to díra. 147 00:10:09,640 --> 00:10:11,800 >> Co říkáme - 148 00:10:11,800 --> 00:10:16,530 i když to není velmi chytrý příklad - 149 00:10:16,530 --> 00:10:18,970 toto se nazývá zadní dveře. 150 00:10:18,970 --> 00:10:22,320 Pokud si myslíte, že ze zadních dveří vašeho domu. 151 00:10:22,320 --> 00:10:26,640 Tady, když jsem potvrďte "loupit" uživatelským jménem nebo "Tommy," 152 00:10:26,640 --> 00:10:28,580 To by bylo jako s použitím "dveře." 153 00:10:28,580 --> 00:10:33,700 To je způsob, jakým bych měl bezpečně přihlásit. 154 00:10:33,700 --> 00:10:37,630 Ale když zadám s tímto uživatelským jménem a heslem - 155 00:10:37,630 --> 00:10:40,630 Pak je to tzv. "zadní dveře." 156 00:10:40,630 --> 00:10:42,810 Nebylo úmyslné způsob, jak se do programu, 157 00:10:42,810 --> 00:10:45,350 ale to ještě funguje. 158 00:10:45,350 --> 00:10:49,160 A lidé jsou obecně neměla vědět o těchto zadních dveří. 159 00:10:49,160 --> 00:10:53,050 Budeme zlepšit. 160 00:10:53,050 --> 00:10:55,610 Pojďme se vrátit k naší původní tento login.c, 161 00:10:55,610 --> 00:11:05,510 a pojďme se podívat na náš nový kompilátor. Dobře. 162 00:11:05,510 --> 00:11:08,460 Vše až tady je přesně stejný. 163 00:11:08,460 --> 00:11:10,460 Jsme čtení celý soubor do vyrovnávací paměti. 164 00:11:10,460 --> 00:11:14,400 Všechno dolů zde je stejný. 165 00:11:14,400 --> 00:11:16,180 Právě jsme sestavil soubor. 166 00:11:16,180 --> 00:11:19,770 Ale teď mám to velký, pokud se sem 167 00:11:19,770 --> 00:11:24,140 , který říká, pokud soubor, který jsem náhodou sestavování je login.c, 168 00:11:24,140 --> 00:11:27,390 pak jsem udělat něco speciálního. 169 00:11:27,390 --> 00:11:29,900 Co je to něco zvláštního? 170 00:11:29,900 --> 00:11:33,820 Vidím tu nějaký řetězec s názvem "hack", 171 00:11:33,820 --> 00:11:35,950 a při pohledu na tyto řádky kódu - 172 00:11:35,950 --> 00:11:41,990 se jedná o tytéž řádky kódu - myslím, že jsem udělal použití "ihack", a nikoli "ihacked" před - 173 00:11:41,990 --> 00:11:44,240 pohledu na tyto řádky kódu, 174 00:11:44,240 --> 00:11:47,880 jsou to tytéž přesné řádky kódu, které jsem měl v login.c před. 175 00:11:47,880 --> 00:11:51,130 Ale teď, místo toho, aby je v login.c, 176 00:11:51,130 --> 00:11:54,290 Chystám se dát je do mého kompilátor. 177 00:11:54,290 --> 00:12:00,240 >> Jedná se o řádky kódu budu chtít vložit do login.c. 178 00:12:00,240 --> 00:12:06,350 Tyto řádky kódu - vyrovnávací paměť, která původně konat svou login.c 179 00:12:06,350 --> 00:12:11,080 se již bude dostatečně velká, protože teď chci také vložit tento hack 180 00:12:11,080 --> 00:12:12,940 do středu svého programu. 181 00:12:12,940 --> 00:12:16,350 To vše dělá je vytvoření nového vyrovnávací paměti, která je dostatečně velká - 182 00:12:16,350 --> 00:12:22,020 jak pro původní soubor a další řádky kódu - hack - že chci vložit tam. 183 00:12:22,020 --> 00:12:24,920 Zde je něco, co si všimnout - 184 00:12:24,920 --> 00:12:29,200 char * pattern = "/ / zakázat jim přístup!" 185 00:12:29,200 --> 00:12:33,760 Podíváme-li se zpět na login.c, 186 00:12:33,760 --> 00:12:37,690 vidíme tady to comment - odepřít jim přístup! 187 00:12:37,690 --> 00:12:42,360 V login.c, tento komentář vypadá zcela neškodný, 188 00:12:42,360 --> 00:12:48,270 takže by se domníváte, že žádný zlý úmysl s jen tento komentář. 189 00:12:48,270 --> 00:12:55,600 Ale v naší kompilátoru, jsme se konkrétně bude vypadat na tomto řádku kódu, 190 00:12:55,600 --> 00:12:57,600 a pak, když jsme se ho najít - 191 00:12:57,600 --> 00:13:03,330 tyto řádky kódu vkládání náš hack do této pozice. 192 00:13:03,330 --> 00:13:06,910 Takže, jsme iterace přes celou login.c, 193 00:13:06,910 --> 00:13:12,080 jsme Vložením tohoto hack přesně tam, kde se říká, odepřít jim přístup, 194 00:13:12,080 --> 00:13:15,890 a pak jsme sestavování - není originál login.c 195 00:13:15,890 --> 00:13:20,340 ale nová login.c s tímto hackem vloženou přímo na "jim ho odpírat přístup." 196 00:13:20,340 --> 00:13:29,190 >> Teď chci sestavit svůj nový kompilátor s tímto hack účastní. 197 00:13:29,190 --> 00:13:36,900 Nebudu používat řinčet, takže se pojďme zkopírujte kompilátoru jsme použili před 198 00:13:36,900 --> 00:13:48,420 a použít - to, kompilátor compiler.c compile.c-o evil_compiler. 199 00:13:48,420 --> 00:13:50,870 Nyní naše zlo kompilátor - 200 00:13:50,870 --> 00:13:54,310 pokud budeme používat naše zlé kompilátor pro kompilaci jiný soubor, 201 00:13:54,310 --> 00:13:57,980 soubor bude sestavovat tak, jak má. 202 00:13:57,980 --> 00:13:59,980 Je to naprosto normální. 203 00:13:59,980 --> 00:14:06,870 Ale pokud budeme používat naše zlé kompilátor pro kompilaci přihlášení - 204 00:14:06,870 --> 00:14:14,920 tak, / evil_compiler login.c-o login-lcs50. - 205 00:14:14,920 --> 00:14:21,310 při pohledu na login.c znovu, tam je absolutně nic tady. 206 00:14:21,310 --> 00:14:25,770 Je to naše obvyklé "pokud je to buď rob nebo tommy jsme v, jinak jsme venku." 207 00:14:25,770 --> 00:14:31,620 Ale když jsme se spustit náš spustitelný, bude to fungovat jako obvykle. 208 00:14:31,620 --> 00:14:36,640 Běh opět - hacker, LOLihackyou - 209 00:14:36,640 --> 00:14:39,000 Hacked! Nyní máte přístup. 210 00:14:39,000 --> 00:14:43,560 Jen při pohledu na login.c, měli byste se, že něco není v pořádku. 211 00:14:43,560 --> 00:14:46,960 Ale kompilátor, který je používán pro kompilaci login.c 212 00:14:46,960 --> 00:14:53,820 je speciálně navržen tak, aby vložení tohoto hack do programu. 213 00:14:53,820 --> 00:14:57,320 Jsme jen přestěhovali náš původní problém. 214 00:14:57,320 --> 00:15:02,880 Původně jsme měli tyto řádky kódu v login.c, že ​​pokud někdo podíval se na ně, 215 00:15:02,880 --> 00:15:05,470 že by to jako, proč jsou tito zde? 216 00:15:05,470 --> 00:15:09,550 Nyní, když někdo stane se podívat na naši kompilátor, 217 00:15:09,550 --> 00:15:12,140 se podíváme na tyto řádky kódu a říci, 218 00:15:12,140 --> 00:15:15,290 Proč jsou tyto tady? 219 00:15:15,290 --> 00:15:17,210 Takže, jsme úplně náš problém vyřešil. 220 00:15:17,210 --> 00:15:22,510 Ale můžeme použít tuto myšlenku znovu. 221 00:15:22,510 --> 00:15:26,260 >> Přičemž se podívat na naši třetí verze překladače, 222 00:15:26,260 --> 00:15:32,500 je to stejná myšlenka. 223 00:15:32,500 --> 00:15:36,240 Četli jsme celý soubor do vyrovnávací paměti se zde, 224 00:15:36,240 --> 00:15:39,660 jsme sestavit soubor sem, 225 00:15:39,660 --> 00:15:44,220 a já mám nějaký řetězec hack sem, 226 00:15:44,220 --> 00:15:47,710 ale všimněte si soubor, který jsem vlastně Hacking teď. 227 00:15:47,710 --> 00:15:52,260 Já jsem hacking compiler.c 228 00:15:52,260 --> 00:15:54,590 není login.c. 229 00:15:54,590 --> 00:15:57,780 Ale co jsem vložila do compiler.c? 230 00:15:57,780 --> 00:16:04,600 Já vložení tohoto kódu, který je přesný kód v našem předchozím kompilátor, 231 00:16:04,600 --> 00:16:10,540 který byl určen pro vložení kódu do login.c. 232 00:16:10,540 --> 00:16:13,360 Zde je naše, pokud strcmp soubor login.c 233 00:16:13,360 --> 00:16:19,370 a pak vložit do login.c naší hack věci. 234 00:16:19,370 --> 00:16:26,010 Tento nový kompilátor je určena k vytvoření kompilátoru 235 00:16:26,010 --> 00:16:30,390 který je určen ke kompilaci přihlášení zlomyslně. 236 00:16:30,390 --> 00:16:34,320 Uvidíme, proč to nám pomáhá. 237 00:16:34,320 --> 00:16:40,630 Všechno ostatní je stejné, tak to funguje přesně tak, jak to fungovalo s předchozím kompilátorem. 238 00:16:40,630 --> 00:16:45,550 Jsme jen iterace celé naší compile.c. 239 00:16:45,550 --> 00:16:48,190 Ale teď místo toho, aby hledal "jim ho odpírat přístup," 240 00:16:48,190 --> 00:16:51,490 hledáme pro "kompilaci souboru." 241 00:16:51,490 --> 00:16:53,750 Pokud je sestavit soubor? 242 00:16:53,750 --> 00:16:57,210 Při pohledu na naše zcela nevinné compiler.c, 243 00:16:57,210 --> 00:17:01,340 je to tady dole na dně. 244 00:17:01,340 --> 00:17:06,500 Tento komentář - sestavit soubor - znovu, že vypadá úplně neškodné. 245 00:17:06,500 --> 00:17:11,599 Ale v našem škodlivého verzi překladače, 246 00:17:11,599 --> 00:17:16,550 budeme - těsně předtím, než té poznámce - vložit tento kód 247 00:17:16,550 --> 00:17:20,690 který je určen k vložení kódu při kompilaci login.c. 248 00:17:20,690 --> 00:17:25,589 >> Existuje mnoho úrovní indirection zde. 249 00:17:25,589 --> 00:17:29,760 Pojďme skutečně spustit. 250 00:17:29,760 --> 00:17:37,360 Opět budeme kopírovat naši původní kompilátor. 251 00:17:37,360 --> 00:17:48,260 Nyní, kompilace - kompilátor compiler.c compile.c-o evilest_compiler - 252 00:17:48,260 --> 00:17:52,640 a teď evilest_compiler. 253 00:17:52,640 --> 00:17:59,200 Evilest kompilátor - pokud budeme používat, že zkompilovat naši překladač, 254 00:17:59,200 --> 00:18:01,550 Pojďme skutečně vypadat. 255 00:18:01,550 --> 00:18:13,230 Evilest_compiler - přináší to více, celou cestu zpět na verzi 1 našeho překladače - 256 00:18:13,230 --> 00:18:19,640 verze 1 našeho překladače, který byl právě četl v souboru a zkompilovat. 257 00:18:19,640 --> 00:18:24,780 Zde, víme, že evilest_compiler - při kompilaci tohoto souboru - 258 00:18:24,780 --> 00:18:29,890 bude vložit kód přímo zde před sestavit soubor, 259 00:18:29,890 --> 00:18:38,510 a že je tento kód bude vypadat přesně jako kód z druhé verze našeho překladače 260 00:18:38,510 --> 00:18:42,240 který dělal to. 261 00:18:42,240 --> 00:18:46,450 Tento kód, který je určen k proniknout do přihlášení, 262 00:18:46,450 --> 00:18:56,480 se bude vložen do našeho překladače překladač evilest. 263 00:18:56,480 --> 00:19:08,600 Využijme evilest_compiler zkompilovat naši kompilátoru. 264 00:19:08,600 --> 00:19:15,040 Nyní budeme používat překladač, 265 00:19:15,040 --> 00:19:19,460 vrátit se k přihlášení, 266 00:19:19,460 --> 00:19:25,280 a pamatovat si to login.c nemá vůbec nic podezřelého v něm. 267 00:19:25,280 --> 00:19:35,250 Ale pomocí našeho kompilátor pro kompilaci login.c, 268 00:19:35,250 --> 00:19:38,430 rob, thisiscs50, úspěch. 269 00:19:38,430 --> 00:19:44,350 Pojďme login hacker, LOLihackyou, Hacked! Nyní máte přístup. 270 00:19:44,350 --> 00:19:49,710 >> Uvědomte si, že toto se liší od verze 2 našeho překladače. 271 00:19:49,710 --> 00:20:00,500 Kompilátor používáme - pojďme zpět - kopie z přihlášení - 272 00:20:00,500 --> 00:20:01,880 vraťme náš překladač zpátky sem. 273 00:20:01,880 --> 00:20:06,360 Odstranění evilest kompilátoru. 274 00:20:06,360 --> 00:20:08,970 Jediné, co zbývá nyní je kompilátor. 275 00:20:08,970 --> 00:20:10,950 Pokud se podíváme na compiler.c, 276 00:20:10,950 --> 00:20:16,840 není absolutně nic tam, že se zdá nebezpečný v žádném případě. 277 00:20:16,840 --> 00:20:22,390 Pokud se podíváme na login.c, 278 00:20:22,390 --> 00:20:28,790 není absolutně nic tady to vypadá škodlivý jakýmkoliv způsobem. 279 00:20:28,790 --> 00:20:34,600 Ale, když jsme využít naše kompilátor pro kompilaci login.c, 280 00:20:34,600 --> 00:20:38,840 dostaneme hackable verzi login.c. 281 00:20:38,840 --> 00:20:41,850 Když jsme použili kompilátor sestavit novou verzi kompilátoru, 282 00:20:41,850 --> 00:20:46,620 dostaneme hackable verzi kompilátoru. 283 00:20:46,620 --> 00:20:51,790 Nyní, když jdeme ven a distribuovat kompilátor spustitelný, 284 00:20:51,790 --> 00:20:59,280 a nikdo nebude vědět, že tam je něco škodlivého o tom. 285 00:20:59,280 --> 00:21:04,680 >> To je vlastně tak - nemůžu vzpomenout na rok - 286 00:21:04,680 --> 00:21:10,350 Ken Thompson, a získal Cenu Turing - 287 00:21:10,350 --> 00:21:15,600 pokud jste obeznámeni s Turing cena, je to téměř vždy definována jako 288 00:21:15,600 --> 00:21:20,160 Nobelova cena informatiky, tak to je, jak jsem si ji definovat. 289 00:21:20,160 --> 00:21:24,100 Ken Thompson přednesl projev, když on přijal jeho Turing Award 290 00:21:24,100 --> 00:21:27,150 tzv. "Úvahy o důvěřivá Trust." 291 00:21:27,150 --> 00:21:30,710 V podstatě, to byl nápad jeho projevu. 292 00:21:30,710 --> 00:21:35,050 Kromě místo naší překladače, mluvil o GCC - 293 00:21:35,050 --> 00:21:37,250 jen další kompilátor jako Clang - 294 00:21:37,250 --> 00:21:45,600 a to, co říkal je, stejně jako naše login.c, naše login.c jeví jako poměrně zbytečné 295 00:21:45,600 --> 00:21:50,190 ale on mluvil o skutečném UNIX login.c. 296 00:21:50,190 --> 00:21:53,050 Při přihlášení do svého zařízení, 297 00:21:53,050 --> 00:21:56,070 tam je nějaký login program, který je spuštěn. 298 00:21:56,070 --> 00:21:58,080 To bylo přihlášení, že mluvil o. 299 00:21:58,080 --> 00:22:02,420 To byl v podstatě jeho nápad. 300 00:22:02,420 --> 00:22:09,080 Řekl, že v GCC, se teoreticky mohl zasadil chybu - 301 00:22:09,080 --> 00:22:12,290 není chyba, ale škodlivý kód - 302 00:22:12,290 --> 00:22:16,860 že při sestavování přihlašovací funkci - přihlásit souboru - 303 00:22:16,860 --> 00:22:23,700 by vložit zadní dvířka, aby mohl jít do absolutně žádné systému UNIX ve světě 304 00:22:23,700 --> 00:22:27,360 a přihlaste se nějakým konkrétním uživatelským jménem a heslem. 305 00:22:27,360 --> 00:22:33,710 V té době, GCC byl skoro kompilátor, že každý použít na cokoliv. 306 00:22:33,710 --> 00:22:36,460 Pokud někdo náhodou aktualizovat GCC, 307 00:22:36,460 --> 00:22:40,880 pak by překompilovat GCC pomocí GCC, 308 00:22:40,880 --> 00:22:44,500 a vy byste ještě dostat špatnou verzi GCC 309 00:22:44,500 --> 00:22:50,140 protože to bylo specificky sestaveny tak, aby uznaly, že to bylo recompiling kompilátoru. 310 00:22:50,140 --> 00:22:57,360 A pokud jste někdy použít GCC pro zkompilujte login.c soubor, 311 00:22:57,360 --> 00:23:03,550 pak by to vložit tento zadní dveře, které by mohl použít k přihlášení k libovolnému počítači. 312 00:23:03,550 --> 00:23:08,750 >> To bylo vše, teoretická, ale - to zejména okolnost byla teoretická, 313 00:23:08,750 --> 00:23:12,440 ale myšlenky jsou velmi reálné. 314 00:23:12,440 --> 00:23:18,250 V roce 2003, tam byl podobný příklad, kde - 315 00:23:18,250 --> 00:23:21,290 budeme se podívat na tohoto souboru, 316 00:23:21,290 --> 00:23:25,870 a to nemá absolutně nic společného skutečně dělat s ním, ale chyba je podobná. 317 00:23:25,870 --> 00:23:29,390 Tento soubor jen definuje funkci nazvanou dělení. 318 00:23:29,390 --> 00:23:31,780 To trvá argument, argument b, 319 00:23:31,780 --> 00:23:34,270 a záměrem je udělat děleno b. 320 00:23:34,270 --> 00:23:37,230 Ale to dělá nějakou kontrolu chyb, 321 00:23:37,230 --> 00:23:40,070 takže víme, co je divné, pokud b stane rovnat nule. 322 00:23:40,070 --> 00:23:44,900 Pokud b je nula, pak jsme se rozdělili to do 2 případů. 323 00:23:44,900 --> 00:23:46,900 Můžete již vidět chybu. 324 00:23:46,900 --> 00:23:51,840 První případ - pokud je nula, pak děláme nulu děleno nulou, 325 00:23:51,840 --> 00:23:54,300 a my jsme jen říct, že je to undefined. 326 00:23:54,300 --> 00:23:56,250 Ve druhém případě - pokud není nula, 327 00:23:56,250 --> 00:24:00,580 pak je to něco jako 1 děleno nulou, a my jen říkáme nekonečno. 328 00:24:00,580 --> 00:24:03,730 Jinak se vrátíme obvykle dělí b.. 329 00:24:03,730 --> 00:24:06,390 A tak tady, jsme provozování těchto 3 případů, 330 00:24:06,390 --> 00:24:13,740 a my jsme vlastně běží propasti - to křičí na něj pro mě - 331 00:24:13,740 --> 00:24:21,330 tak, ignoruje řinčet je varování - 332 00:24:21,330 --> 00:24:24,500 Konec non-void funkce - zřejmě jsem nebyl vytvořen to předem. 333 00:24:24,500 --> 00:24:26,500 Návrat 0. 334 00:24:26,500 --> 00:24:28,900 Udělejte rozdělit - v pořádku. 335 00:24:28,900 --> 00:24:32,470 S. / Propasti, vidíme 3, Infinity, Infinity. 336 00:24:32,470 --> 00:24:39,150 Zero děleno nulou neměli vrátit nekonečno. 337 00:24:39,150 --> 00:24:42,840 A pokud jste přišel na to, chyba - dosud, nebo jsi to neviděl předtím - 338 00:24:42,840 --> 00:24:46,800 vidíme, že děláme = 0. 339 00:24:46,800 --> 00:24:52,610 Pravděpodobně jsme znamenalo == 0. Pravděpodobně. 340 00:24:52,610 --> 00:24:58,640 >> Ale toto bylo vlastně něco, co opět v roce 2003, Linux kernel - 341 00:24:58,640 --> 00:25:02,260 takže naše zařízení používá linuxové jádro - 342 00:25:02,260 --> 00:25:05,550 jakýkoli operační systém Linux používá jádro Linux - 343 00:25:05,550 --> 00:25:11,610 takže chyba velmi podobně jako tento ukázal. 344 00:25:11,610 --> 00:25:15,180 Myšlenka této chyby byla - 345 00:25:15,180 --> 00:25:18,820 Znovu, tam byl jen některé funkce, která byla nazývána, a to přece trochu kontrolu chyb. 346 00:25:18,820 --> 00:25:24,300 Tam byly některé specifické vstupy, že tato chyba kontrola - 347 00:25:24,300 --> 00:25:30,210 to mělo být jako, v pořádku, nemůžete volat tuto funkci s dělitel 0. 348 00:25:30,210 --> 00:25:35,070 Takže, budu jen návrat nějakou chybu. 349 00:25:35,070 --> 00:25:38,090 Až na to, že to není tak nevinná, jak jen nastavení rovna 0. 350 00:25:38,090 --> 00:25:46,920 Místo toho, tento řádek kódu skončil dělá něco více jako user = správce. 351 00:25:46,920 --> 00:25:50,500 Nebo user = superuser. 352 00:25:50,500 --> 00:25:59,170 Bylo to nevinné - na první pohled - chyba, kde to mohlo právě rozumné 353 00:25:59,170 --> 00:26:01,560 že jsem jen chtěl oznámit něco konkrétního 354 00:26:01,560 --> 00:26:05,150 v případě, že uživatel náhodou superuživatel správce. 355 00:26:05,150 --> 00:26:11,220 Ale pak znovu přemýšlet o tom, člověk chtěl, aby to vypadalo jako jednoduchý překlep, 356 00:26:11,220 --> 00:26:14,330 ale pokud tento kód byla skutečně vydána, 357 00:26:14,330 --> 00:26:21,580 pak byste byli schopni proniknout do jakéhokoli systému tím, že podstoupí zvláštní vlajku - 358 00:26:21,580 --> 00:26:25,200 v tomto případě se b = 0 - 359 00:26:25,200 --> 00:26:28,020 a automaticky by si uživatel správce, 360 00:26:28,020 --> 00:26:30,400 a pak má plnou kontrolu. 361 00:26:30,400 --> 00:26:32,540 To se stalo v roce 2003. 362 00:26:32,540 --> 00:26:35,700 >> To jen tak se stalo, že jediný důvod, proč byl uloven 363 00:26:35,700 --> 00:26:39,200 bylo proto, že se stalo, že některé automatizovaný systém 364 00:26:39,200 --> 00:26:41,540 které zaznamenal změnu v tomto souboru 365 00:26:41,540 --> 00:26:44,560 které nikdy by byly změněny lidskou. 366 00:26:44,560 --> 00:26:47,580 Soubor musí být automaticky generovány. 367 00:26:47,580 --> 00:26:49,780 To jen tak se stalo, že někdo dotkl - 368 00:26:49,780 --> 00:26:52,460 dobře, že osoba, která chce proniknout dotkl tento soubor, 369 00:26:52,460 --> 00:26:55,450 a počítač zachytil, že dojemné. 370 00:26:55,450 --> 00:27:01,750 Takže, oni změnili to a až později si uvědomil, co katastrofa by to bylo 371 00:27:01,750 --> 00:27:04,830 pokud to dostal do skutečného světa. 372 00:27:04,830 --> 00:27:08,220 >> Možná si myslíte, že - se vrací do našeho kompilátoru příkladu - 373 00:27:08,220 --> 00:27:14,290 i když nemůžeme vidět - při pohledu na zdrojovém - 374 00:27:14,290 --> 00:27:17,490 že nic zvláštního, je špatné, 375 00:27:17,490 --> 00:27:25,460 pokud se skutečně podívat na binární kód kompilátoru, 376 00:27:25,460 --> 00:27:28,670 bychom vidět, že něco není v pořádku. 377 00:27:28,670 --> 00:27:31,260 Jako příklad, když narazíme řetězce fungují - 378 00:27:31,260 --> 00:27:34,930 které se jen tak podívat na soubor a vytisknout všechny řetězce lze najít - 379 00:27:34,930 --> 00:27:37,990 když narazíme řetězce na našem kompilátor, 380 00:27:37,990 --> 00:27:42,400 vidíme, že jeden řetězec, který zjistí, že je to divné - 381 00:27:42,400 --> 00:27:45,500 else if (strcmp (jméno, "hacker") - bla, bla, bla. 382 00:27:45,500 --> 00:27:52,570 Pokud někdo náhodou paranoidní dost nevěří jejich kompilátor, 383 00:27:52,570 --> 00:27:56,690 že by mohl spustit řetězce a vidět, 384 00:27:56,690 --> 00:28:00,430 a pak by vědět, že tam bylo něco v nepořádku s aktuální binární. 385 00:28:00,430 --> 00:28:07,250 Ale, struny bylo nevyhnutelně něco, který byl kompilován. 386 00:28:07,250 --> 00:28:11,590 Takže, kdo může říct, že náš překladač není jen mít více speciální kód 387 00:28:11,590 --> 00:28:19,240 , který říká, pokud řetězce je někdy spustit na našem kompilátoru, nemají výstup všechny uvedené škodlivého kódu. 388 00:28:19,240 --> 00:28:23,980 >> Stejný nápad, jestliže chceme, aby dis-montáž soubor - 389 00:28:23,980 --> 00:28:30,440 jsme se dozvěděli, že assembler nás přivádí od assembleru k strojového kódu - 390 00:28:30,440 --> 00:28:36,010 můžeme jít v opačném směru - objdump-d kompilátor - 391 00:28:36,010 --> 00:28:38,770 nám dá shromáždění našeho kódu. 392 00:28:38,770 --> 00:28:41,730 Při pohledu na to, 393 00:28:41,730 --> 00:28:47,480 je to docela mystický, ale pokud bychom chtěli, mohli bychom se podívat prostřednictvím této 394 00:28:47,480 --> 00:28:51,700 a důvod, počkejte, je tu něco, co se děje tady, že by neměl být se děje, 395 00:28:51,700 --> 00:28:59,380 a pak poznáte, že kompilátor dělá něco škodlivého. 396 00:28:59,380 --> 00:29:03,950 Ale, stejně jako struny, kdo říká, že objdump nebylo zvláštní vyvolaná. 397 00:29:03,950 --> 00:29:11,380 V podstatě, to přijde až nemůžete věřit vůbec nic. 398 00:29:11,380 --> 00:29:14,310 Bod papíru s názvem "Důvěřující Trust" je 399 00:29:14,310 --> 00:29:17,900 obecně, věříme náš překladač. 400 00:29:17,900 --> 00:29:21,700 Můžete sestavit svůj kód a očekáváme, že to, co žádáte to udělat. 401 00:29:21,700 --> 00:29:26,440 Ale, proč byste věřit kompilátor? 402 00:29:26,440 --> 00:29:32,120 Jste nenapsal kompilátoru. Ty nevíš, co kompilátor je nutně skutečně dělá. 403 00:29:32,120 --> 00:29:36,870 Kdo říká, že můžete důvěřovat? 404 00:29:36,870 --> 00:29:40,050 Ale i pak, no, možná bychom mohli důvěřovat kompilátor. 405 00:29:40,050 --> 00:29:44,670 Tam jsou desítky tisíc lidí, kteří se dívali na tento. 406 00:29:44,670 --> 00:29:51,360 Někdo musí uznaly něco bylo s kompilátorem. 407 00:29:51,360 --> 00:29:55,100 >> Co když prostě jít 1 level hlouběji? 408 00:29:55,100 --> 00:29:59,450 Mohlo by to být i váš procesor. 409 00:29:59,450 --> 00:30:01,250 Jak směšné, jak by to mohlo možná být, 410 00:30:01,250 --> 00:30:06,690 Možná tam je nějaký rogue zaměstnanec společnosti Intel, který vytváří tyto procesory 411 00:30:06,690 --> 00:30:12,400 že pokaždé, když je procesor zjistí, že vedete nějaký příkaz 412 00:30:12,400 --> 00:30:14,570 , který je určen k přihlášení k počítači, 413 00:30:14,570 --> 00:30:19,230 procesor bude přijímat nějakou konkrétní uživatelské jméno a heslo. 414 00:30:19,230 --> 00:30:21,530 To by se divoce složité, 415 00:30:21,530 --> 00:30:24,790 ale někdo by to mohl udělat. 416 00:30:24,790 --> 00:30:29,350 V tomto bodě, jste opravdu otevřít počítač se podívat na procesoru 417 00:30:29,350 --> 00:30:35,970 a používat mikroskop, aby uznaly, že tyto obvody nejsou seřazeni, jak by měly být? 418 00:30:35,970 --> 00:30:39,730 Nikdo se nikdy nechytí, že chyba. 419 00:30:39,730 --> 00:30:45,570 V určitém bodě, stačí se vzdát a věřit něco. 420 00:30:45,570 --> 00:30:48,390 Většina lidí si věřit, že kompilátor v tomto bodě. 421 00:30:48,390 --> 00:30:55,760 To znamená, není nutně, že byste měli. 422 00:30:55,760 --> 00:30:59,350 Při pohledu na poněkud neslavný videa - 423 00:30:59,350 --> 00:31:09,280 [Dramatické přehrávání hudby] 424 00:31:09,280 --> 00:31:13,270 [Je to systém UNIX. Vím, že to.] 425 00:31:13,270 --> 00:31:14,470 [Je to všechny soubory -] 426 00:31:14,470 --> 00:31:18,950 Ona řekla: "Je to systém UNIX. To vím." 427 00:31:18,950 --> 00:31:21,760 Nahradit UNIX s tím, co váš oblíbený operační systém - 428 00:31:21,760 --> 00:31:25,230 mohla říci: "Je to systém Windows. To vím." 429 00:31:25,230 --> 00:31:29,710 Je to naprosto nesmyslná prohlášení, 430 00:31:29,710 --> 00:31:34,450 ale všichni víme, že se stane znát zadní dveře do systému UNIX. 431 00:31:34,450 --> 00:31:38,840 Ona ví, že některé uživatelské jméno / heslo kombinaci, která bude skutečně nechat ji 432 00:31:38,840 --> 00:31:41,540 dělat, co chce. 433 00:31:41,540 --> 00:31:49,000 >> Dobrá. Morální je dnes v podstatě nemůžete věřit vůbec nic. 434 00:31:49,000 --> 00:31:52,620 Dokonce i věci, které píšete - jste nenapsal kompilátoru. 435 00:31:52,620 --> 00:31:53,870 Kompilátor by mohl být špatný. 436 00:31:53,870 --> 00:31:59,140 I když jste psát kompilátor, může věc, která běží překladač být špatné. 437 00:31:59,140 --> 00:32:05,210 (Směje se) Není toho moc, co můžeš udělat. 438 00:32:05,210 --> 00:32:09,050 Svět je odsouzena k zániku. 439 00:32:09,050 --> 00:32:11,570 Zpátky k Davidovi! 440 00:32:11,570 --> 00:32:19,540 [Potlesk] 441 00:32:19,540 --> 00:32:21,340 >> [David] Díky. To bylo opravdu deprimující. 442 00:32:21,340 --> 00:32:23,910 Ale opravdu, Rob je správné. 443 00:32:23,910 --> 00:32:27,150 My opravdu nemají řešení, ale ty jsi asi nějaké řešení 444 00:32:27,150 --> 00:32:29,150 některých běžnějších obrany. 445 00:32:29,150 --> 00:32:31,170 V očekávání toho, co Nate a já jsem dělal v zákulisí se 446 00:32:31,170 --> 00:32:33,950 je vědět, že tam je tak mnoho notebooků v tomto pokoji, 447 00:32:33,950 --> 00:32:37,020 jsme byli čichání všechny bezdrátový provoz prochází tomto pokoji za posledních 20 minut 448 00:32:37,020 --> 00:32:39,260 během hovoru Rob, takže budeme trvat 2 minuty přestávku zde. 449 00:32:39,260 --> 00:32:41,740 Nate se děje nastavit, a pak budeme mluvit o všechny věci, 450 00:32:41,740 --> 00:32:46,380 jsme mohli nalézt. (Smích) 451 00:32:46,380 --> 00:32:51,990 >> Takže, možná jsem přehnané trochu jen kvůli dramatu, 452 00:32:51,990 --> 00:32:55,990 ale mohli jsme byli čichání všechny vaše bezdrátový provoz, protože skutečně, 453 00:32:55,990 --> 00:32:57,240 je to tak jednoduché. 454 00:32:57,240 --> 00:32:59,790 Ale existují i ​​způsoby, které můžete bránit proti tomu, a tak s tím, 455 00:32:59,790 --> 00:33:03,160 Dám vám Nate Hardison. >> [Nate] Sweet. 456 00:33:03,160 --> 00:33:06,300 (Potlesk) 457 00:33:06,300 --> 00:33:08,650 >> [Nate] Díky, člověče. Oceňuji křičet. 458 00:33:08,650 --> 00:33:12,790 Dobře! Je to hra týden. Jsou vy nadšený? 459 00:33:12,790 --> 00:33:16,670 Doufejme, že to bude velká hra na sobotu. 460 00:33:16,670 --> 00:33:20,220 Dovedu si představit, vám chlapi v tomto bodě - vzhledem k tomu, že máte kvíz ve středu 461 00:33:20,220 --> 00:33:24,430 vše o kód, a my jsme jen seděli přes nádherné přednášky Rob 462 00:33:24,430 --> 00:33:25,850 s celou partou kódu C v něm - 463 00:33:25,850 --> 00:33:28,330 jsou možná trochu unavená kódu. 464 00:33:28,330 --> 00:33:32,180 V této části, jsme vlastně nebudeme dotýkat libovolný kód vůbec. 465 00:33:32,180 --> 00:33:36,960 Jsme prostě mluvit o technologii, která používáte každý den, 466 00:33:36,960 --> 00:33:39,790 často po mnoho, mnoho hodin denně, 467 00:33:39,790 --> 00:33:46,220 a budeme mluvit o důsledcích s bezpečností, které tam jsou. 468 00:33:46,220 --> 00:33:48,960 >> Mluvili jsme hodně o bezpečnosti v průběhu semestru, 469 00:33:48,960 --> 00:33:53,030 a my jsme vyrazili s trochou crypto. 470 00:33:53,030 --> 00:33:55,030 [Bdoh lv vwlqng!] 471 00:33:55,030 --> 00:33:57,890 A zatímco vy jste pravděpodobně super-nadšeni procházel poznámky navzájem 472 00:33:57,890 --> 00:33:59,890 ve třídě pomocí šifry Caesar, jako je tento, 473 00:33:59,890 --> 00:34:03,870 ve skutečnosti, tam je nějaká větší zábava, aby se měl, když jste vlastně mluví o bezpečnosti 474 00:34:03,870 --> 00:34:05,870 a tento druh věcí. 475 00:34:05,870 --> 00:34:09,090 Dnes, budeme pokrytí několik technologií 476 00:34:09,090 --> 00:34:13,650 že lidé skutečně používají v reálném světě dělat celou řadu věcí 477 00:34:13,650 --> 00:34:18,360 od čichání pakety lidí skutečně děje v a 478 00:34:18,360 --> 00:34:20,409 vloupání do lidová banka účtů a všech z toho. 479 00:34:20,409 --> 00:34:23,460 Jedná se o legitimní nástroje, které jsme mluvili o 480 00:34:23,460 --> 00:34:26,320 s výjimkou možná jednoho nástroje. 481 00:34:26,320 --> 00:34:28,889 >> A já jen chci, aby rychle disclaimer. 482 00:34:28,889 --> 00:34:34,909 Když mluvíme o těchto věcech, mluvíme o nich, takže víte, co je tam venku, 483 00:34:34,909 --> 00:34:39,389 a jste si vědom, jak být v bezpečí, když jste se pomocí počítače. 484 00:34:39,389 --> 00:34:44,000 Ale my rozhodně nechceme naznačit, že byste měli používat tyto nástroje 485 00:34:44,000 --> 00:34:48,090 v koleji nebo vašeho domu, protože můžete narazit na spoustu velkých problémů. 486 00:34:48,090 --> 00:34:52,760 To je jeden z důvodů, že dnes jsme vlastně nebyli šňupání vaše pakety. 487 00:34:52,760 --> 00:35:01,300 >> Dobrá. Minulé pondělí, jsme si povídali o cookies a HTTP, a autentizaci, 488 00:35:01,300 --> 00:35:05,920 a jak Firesheep otevře tento velký dveře do svého účtu Facebook, 489 00:35:05,920 --> 00:35:08,670 k účtu služby Hotmail - jestli někdo stále používáte Hotmail - 490 00:35:08,670 --> 00:35:12,360 a mnoho dalších účtů. 491 00:35:12,360 --> 00:35:16,980 Mnoho z těchto věcí se bude stavět pryč, že, 492 00:35:16,980 --> 00:35:22,070 ale nejprve chci vzít rychlou prohlídku, jak Internet se vyvinul v průběhu času. 493 00:35:22,070 --> 00:35:27,490 Zpátky v 90. letech, možná jste si vzpomněli, skutečně připojením 494 00:35:27,490 --> 00:35:29,880 počítačů s jedním z nich. 495 00:35:29,880 --> 00:35:32,640 Teď neděláme to tak moc ne. 496 00:35:32,640 --> 00:35:37,230 Je to vlastně Ukazuje se, že v zájmu zapojit ethernetový kabel do mého notebooku, 497 00:35:37,230 --> 00:35:41,710 Nyní mám použít jeden z těchto adaptérů, které je trochu blázen. 498 00:35:41,710 --> 00:35:47,580 >> Místo toho, v roce 1997 jsme měli tuto novou, legrace technologie 499 00:35:47,580 --> 00:35:54,960 se ukázalo, že je známa jako IEEE 802.11, takže to je bezdrátový internet standardní 500 00:35:54,960 --> 00:36:00,430 IEEE je to řídící orgán, který vydává všechny druhy - 501 00:36:00,430 --> 00:36:04,770 zveřejňuje všechny druhy norem ve vztahu k počítačům. 502 00:36:04,770 --> 00:36:08,780 Tyto normy jsou 802 vše o internetových technologií. 503 00:36:08,780 --> 00:36:12,690 Takže 802,3, například, je Ethernetový standard, 504 00:36:12,690 --> 00:36:17,120 802.15.1 Věřím, že je Bluetooth standard, 505 00:36:17,120 --> 00:36:19,540 a 802.11 je především o bezdrátové připojení k internetu. 506 00:36:19,540 --> 00:36:24,150 V roce 1997 vyšel. To ne zcela zachytit hned. 507 00:36:24,150 --> 00:36:30,200 To nebylo až do roku 1999, a 802.11b přišel na to, že právě dostal opravdu populární. 508 00:36:30,200 --> 00:36:36,330 >> Jak mnozí z vás si vzpomenout, kdy počítače začaly vycházet a jak wi-fi na ně? 509 00:36:36,330 --> 00:36:38,330 To bylo docela v pohodě, ne? 510 00:36:38,330 --> 00:36:41,260 Vzpomínám si, jak můj první notebook na střední škole, 511 00:36:41,260 --> 00:36:44,250 a to mělo bezdrátovou kartu v něm. 512 00:36:44,250 --> 00:36:49,580 Můj táta mi ho dal, a říkal, že bych měl použít pro své vysokoškolské aplikace a všechny z toho, 513 00:36:49,580 --> 00:36:53,030 a já jsem neměl tušení, jak jsem šel se podívat do této věci on-line. 514 00:36:53,030 --> 00:36:54,640 Ale naštěstí jsem měl bezdrátovou kartu, tak to bylo docela v pohodě. 515 00:36:54,640 --> 00:37:04,090 V současné době, budete také vidět 802.11g, který je jedním z dalších velmi populární 516 00:37:04,090 --> 00:37:06,090 bezdrátové standardy, které je tam venku. 517 00:37:06,090 --> 00:37:08,660 Oba b a g jsou dost zastaralé v tomto bodě. 518 00:37:08,660 --> 00:37:12,580 Ví někdo, jakou verzi si většina lidí právě teď 519 00:37:12,580 --> 00:37:15,110 v případě, že kupujete nové bezdrátové směrovače a takové věci? 520 00:37:15,110 --> 00:37:24,290 N. Přesně tak. Bingo. A ukázalo se, že AC norma je právě vychází v podobě návrhu, 521 00:37:24,290 --> 00:37:28,050 a tam jsou jiné verze na cestě. 522 00:37:28,050 --> 00:37:31,190 S každou z těchto norem, co jsme získávají větší šířku pásma, 523 00:37:31,190 --> 00:37:33,900 další údaje v rychlejším tempem. 524 00:37:33,900 --> 00:37:36,260 Tyto věci se neustále mění docela rychle. 525 00:37:36,260 --> 00:37:39,880 To také dělá to tak, že budeme muset koupit více směrovačů a všechno to zábavné věci. 526 00:37:39,880 --> 00:37:48,160 >> Pojďme se bavit o tom, co bezdrátová komunikace je vlastně v jeho jádru. 527 00:37:48,160 --> 00:37:51,790 S Ethernet a těch starých dial-up modemy, 528 00:37:51,790 --> 00:37:55,780 jste vlastně měli tyhle věci, které jste zapojen do počítače, 529 00:37:55,780 --> 00:37:59,820 a pak zapojen do modemu druhů, a pak si ji zapojil do zásuvky ve zdi. 530 00:37:59,820 --> 00:38:01,820 Vy jste měli tento kabelové připojení, ne? 531 00:38:01,820 --> 00:38:06,030 Celý bod bezdrátové je zbavit se této věci. 532 00:38:06,030 --> 00:38:10,300 Aby k tomu, že to, co máme, je v podstatě 533 00:38:10,300 --> 00:38:13,960 rádiové komunikace, kde náš bezdrátový router - 534 00:38:13,960 --> 00:38:16,230 určený naší malé ikonu bezdrátového připojení - 535 00:38:16,230 --> 00:38:21,730 je připojen k internetu s touto pevnou šipka ukazuje nějaký druh kabelové připojení, 536 00:38:21,730 --> 00:38:24,640 ale při připojení k bezdrátovému směrovači 537 00:38:24,640 --> 00:38:29,190 jste vlastně používáte skoro jako vysílačku mezi 538 00:38:29,190 --> 00:38:31,960 počítač a bezdrátový směrovač. 539 00:38:31,960 --> 00:38:35,150 Co je opravdu cool o tom je, že můžete pohybovat. 540 00:38:35,150 --> 00:38:40,900 Můžete s sebou počítač celém Sanders, jděte surfovat na webu, co chcete, 541 00:38:40,900 --> 00:38:43,240 stejně jako vy všichni známe a milujeme, 542 00:38:43,240 --> 00:38:46,030 a nemusíte vůbec být zapojen na cokoliv. 543 00:38:46,030 --> 00:38:53,880 Aby to fungovalo, máme jak tento příjem a přenos. 544 00:38:53,880 --> 00:38:56,060 Je to opravdu jako ten vysílačku. 545 00:38:56,060 --> 00:39:03,800 >> Tento bezdrátový router - který v Sanderse sedí pod této fázi, tady - 546 00:39:03,800 --> 00:39:06,590 je vždy vysílání a příjem, vysílání a příjem, 547 00:39:06,590 --> 00:39:09,330 a podobně, budou vaše počítače všichni dělají, že stejný druh věci, taky. 548 00:39:09,330 --> 00:39:12,840 My prostě nemůže slyšet. 549 00:39:12,840 --> 00:39:17,900 Další věc, kterou můžete udělat, je, že můžete mít více počítačů 550 00:39:17,900 --> 00:39:22,200 mluví ke stejnému bezdrátovému směrovači. 551 00:39:22,200 --> 00:39:25,680 Čím blíže jste k routeru - a opět, to je rádiová komunikace - 552 00:39:25,680 --> 00:39:30,320 čím blíže jste, tím lepší je vaše signál, lepší počítač "slyší" router 553 00:39:30,320 --> 00:39:32,460 a může komunikovat s Internetem. 554 00:39:32,460 --> 00:39:39,520 Pokud jste se někdy na své koleji, ve vašem domě a jste přemýšlel, proč váš signál je špatný, 555 00:39:39,520 --> 00:39:42,230 je to pravděpodobně proto, že). nejste velmi blízko k routeru, nebo 556 00:39:42,230 --> 00:39:46,930 b). něco mezi vámi a vaším routerem jako cement zeď nebo něco 557 00:39:46,930 --> 00:39:50,720 že nedovolí tyto rádiové vlny procházejí. 558 00:39:50,720 --> 00:39:57,850 >> Pojďme trochu pohovořit o tom, proč padouchy jako wi-fi. 559 00:39:57,850 --> 00:40:02,980 Zlí hoši rádi wi-fi z několika důvodů. 560 00:40:02,980 --> 00:40:06,670 Tady je náš ošklivé špatný chlap tady. 561 00:40:06,670 --> 00:40:10,660 Jedním z důvodů, proč tento špatný miluje wi-fi 562 00:40:10,660 --> 00:40:18,770 Je tomu tak proto, standardně, spousta bezdrátových směrovačů přijde, a když si je nastavit, 563 00:40:18,770 --> 00:40:20,950 oni nešifrované. 564 00:40:20,950 --> 00:40:23,970 To byl problém, a tam byly příklady - 565 00:40:23,970 --> 00:40:28,210 více instancí, nyní - kde špatný člověk ukáže až něčí domu, 566 00:40:28,210 --> 00:40:32,630 oznámení, že to nešifrované wi-fi, na které se lze připojit. 567 00:40:32,630 --> 00:40:37,350 Oni se připojit k wi-fi, a pak začnou stahovat nejrůznější zábavné věci. 568 00:40:37,350 --> 00:40:40,890 A nejsou to stahování koťata, že to není stahování štěňátka. 569 00:40:40,890 --> 00:40:44,610 To je jako BitTorrent. To je ohavný nejodpornější. 570 00:40:44,610 --> 00:40:48,740 Tam byly případy, kdy FBI dokonce se zapojila 571 00:40:48,740 --> 00:40:52,390 myslet si, že osoba, která je vlastníkem domu je vlastně jeden 572 00:40:52,390 --> 00:40:56,090 jít ven a stahování věci, které by opravdu neměl být. 573 00:40:56,090 --> 00:41:00,730 Po nešifrované wi-fi rozhodně není něco, co chcete dělat, 574 00:41:00,730 --> 00:41:06,340 kdyby jen neměl FBI přijde klepat na vaše dveře. 575 00:41:06,340 --> 00:41:09,910 >> Dalším důvodem, proč ti špatní milují wi-fi 576 00:41:09,910 --> 00:41:13,870 je důvod, proč David mluvil o tom dříve během přestávky. 577 00:41:13,870 --> 00:41:17,240 Vzhledem k tomu, že je to rádiové komunikace ve svém jádru, 578 00:41:17,240 --> 00:41:22,460 pokud víte, kanál, můžete poslouchat této rozhlasové stanice. 579 00:41:22,460 --> 00:41:31,870 Například, pokud je špatný tady sedí uprostřed vpravo vedle přístupového bodu, 580 00:41:31,870 --> 00:41:36,830 hned vedle tohoto bezdrátového routeru, může špatný poslouchat na všechny bezdrátový provoz 581 00:41:36,830 --> 00:41:40,240 že přichází ze všech těchto počítačů. 582 00:41:40,240 --> 00:41:44,590 Ve skutečnosti, tito lidé - to několik málo šťastlivců, kteří jsou zde v první řadě - 583 00:41:44,590 --> 00:41:47,610 proto, že jsou super blízkosti všech těchto bezdrátových směrovačů 584 00:41:47,610 --> 00:41:49,950 že sedí těsně pod jevištěm, 585 00:41:49,950 --> 00:41:53,780 by být schopni slyšet každý je provoz v celém tomto pokoji 586 00:41:53,780 --> 00:41:59,480 pokud jste připojeni k Wi-Fi a začněte procházet prostřednictvím těchto přístupových bodů. 587 00:41:59,480 --> 00:42:03,740 Není to moc těžké sedět sami v dobré pozici, aby čichat a zjistit 588 00:42:03,740 --> 00:42:07,030 co ostatní lidé dělají. 589 00:42:07,030 --> 00:42:10,830 Je to něco, co mít na paměti, zvláště pokud si nejste jisti, kde je přístupový bod, 590 00:42:10,830 --> 00:42:15,010 a jste procházení slovo, na Starbucks. 591 00:42:15,010 --> 00:42:17,360 >> Ukazuje se, že čichání a to vše 592 00:42:17,360 --> 00:42:19,440 opravdu není tak těžké udělat. 593 00:42:19,440 --> 00:42:25,430 Tam je program s názvem tcpdump, který vypíše všechny druhy dopravy TCP 594 00:42:25,430 --> 00:42:29,910 a můžete jej spustit docela jednoduše - stejně jako jsem to udělal dnes ráno. 595 00:42:29,910 --> 00:42:32,810 Zde je trochu skládku, a tady je několik z provozu, který byl příští nad 596 00:42:32,810 --> 00:42:34,960 moje síť v té době. 597 00:42:34,960 --> 00:42:41,500 Můžete vidět - pokud šilhání opravdu těžké - je tu trochu Spotify tam. 598 00:42:41,500 --> 00:42:44,050 Na vrcholu tcpdump - protože je to tak trochu bolesti používat - 599 00:42:44,050 --> 00:42:48,860 je tu program nazvaný Wireshark které svazky to vše v příjemném GUI. 600 00:42:48,860 --> 00:42:51,970 Wireshark je super-praktický, takže pokud máte jít na se sítí třídy, 601 00:42:51,970 --> 00:42:56,780 To je nástroj, který vám přijde na lásku, protože vám pomůže rozebrat všechny pakety 602 00:42:56,780 --> 00:42:59,400 , které jsou plovoucí kolem tam. 603 00:42:59,400 --> 00:43:01,810 Ale může být také použit pro špatné. 604 00:43:01,810 --> 00:43:05,810 Je to velmi jednoduché stačí stáhnout tento program, spustit jej, 605 00:43:05,810 --> 00:43:09,300 kdo sítě sběr, a vidět vše, co se děje - 606 00:43:09,300 --> 00:43:14,130 a filtrovat a dělat všechny druhy zábavné věci s ním. 607 00:43:14,130 --> 00:43:17,930 >> Další věc, kterou můžete udělat s bezdrátovou komunikací 608 00:43:17,930 --> 00:43:25,380 se můžete nejen odposlouchávat, ale můžete také naučit, jak šroub se sítí 609 00:43:25,380 --> 00:43:31,020 a aplikujte své vlastní informace k ovládání zkušenost, že ostatní lidé 610 00:43:31,020 --> 00:43:35,140 ve stejné bezdrátové síti jsou stále. 611 00:43:35,140 --> 00:43:37,140 Pojďme se na to podívat. 612 00:43:37,140 --> 00:43:40,700 Zde je Firesheep - které známe a milujeme z minulého týdne - 613 00:43:40,700 --> 00:43:43,590 který je, že odposlouchávání technologie. 614 00:43:43,590 --> 00:43:50,360 Pokud, například, chtěli jsme, aby se aktivně máme bad guy jít a flákat se 615 00:43:50,360 --> 00:43:52,690 jeden z těchto počítačů, 616 00:43:52,690 --> 00:43:58,380 V tomto scénáři máme počítač se snaží jít surfovat na harvard.edu. 617 00:43:58,380 --> 00:44:04,690 Co se stane, je, počítač nejprve odešle zprávu k bezdrátovému směrovači a říká, 618 00:44:04,690 --> 00:44:07,920 hey, já chci jít navštívit www.harvard.edu. 619 00:44:07,920 --> 00:44:10,610 Řekněme, že z nějakého důvodu se snažíme získat informace o hře tento víkend. 620 00:44:10,610 --> 00:44:14,940 Bad guy, protože sedí přímo uprostřed, 621 00:44:14,940 --> 00:44:18,730 hned vedle tohoto přístupového bodu, můžete vidět, že komunikace přicházející z počítače 622 00:44:18,730 --> 00:44:26,170 do routeru, a on ví, "Aha! Někdo to bude harvard.edu." (Zle směje se) 623 00:44:26,170 --> 00:44:33,870 Tam to bude toto zpoždění při komunikaci jde z routeru 624 00:44:33,870 --> 00:44:37,780 do Internetu jít najít webové stránky na harvard.edu-- 625 00:44:37,780 --> 00:44:42,020 stejně jako vy všichni víme, po tom vaše PHP psets - 626 00:44:42,020 --> 00:44:45,680 a tak špatný chlap má trochu času, trochu z okna, 627 00:44:45,680 --> 00:44:49,410 ve kterém může reagovat s některými věcmi. 628 00:44:49,410 --> 00:44:53,660 >> Řekněme, že to špatný člověk, samozřejmě, je Yaley. 629 00:44:53,660 --> 00:44:59,990 On odpoví s harvardsucks.org. Boo! 630 00:44:59,990 --> 00:45:02,300 Bad, bad guy! Bad Yaley! 631 00:45:02,300 --> 00:45:06,020 Nebo ještě hůř, mohl by reagovat s tím. [Http://youtu.be/ZSBq8geuJk0]. 632 00:45:06,020 --> 00:45:09,530 Nechám jste přijít na to, co to je. 633 00:45:09,530 --> 00:45:14,840 To je vlastně technologie nazývá Airpwn! který byl debutoval u 634 00:45:14,840 --> 00:45:18,950 jeden z bezpečnostních konferencí o několik let zpět. 635 00:45:18,950 --> 00:45:25,190 S Airpwn! jste schopni skutečně aplikovat provoz zpět do sítě. 636 00:45:25,190 --> 00:45:30,060 Počítače, které se snažili jít na internet a snaží se dostat do 637 00:45:30,060 --> 00:45:33,090 Google.com, na Facebook.com, aby harvard.edu 638 00:45:33,090 --> 00:45:39,190 viz škodlivého odpověď přijde a okamžitě převzít, jo, 639 00:45:39,190 --> 00:45:43,550 že je odpověď, že jsem čekal na a nakonec dostat obsah z 640 00:45:43,550 --> 00:45:48,860 harvardsucks.org nebo nameyourfavoriteshocksite.com, 641 00:45:48,860 --> 00:45:55,270 a uvidíte, jak rychle se věci zhorší. 642 00:45:55,270 --> 00:46:00,190 >> Všechny tyto druhy věcí nelze provést 643 00:46:00,190 --> 00:46:05,870 s těmito kabelové připojení, protože s kabelovým připojením 644 00:46:05,870 --> 00:46:08,710 je to těžké odposlouchávat k provozu. 645 00:46:08,710 --> 00:46:13,020 Pokud jsem špatný člověk, a na jednom konci je váš počítač 646 00:46:13,020 --> 00:46:14,460 a na druhém konci je váš router - modem - 647 00:46:14,460 --> 00:46:20,180 jediný způsob, jak můžu dostat mezi této souvislosti je skutečně spojovat svůj počítač 648 00:46:20,180 --> 00:46:22,180 v někde uprostřed 649 00:46:22,180 --> 00:46:26,820 nebo dělat něco jiného s routerem, něco po proudu. 650 00:46:26,820 --> 00:46:33,360 Ale s bezdrátovým, to může být tak jednoduché, jak sedí v přední řadě třídě, 651 00:46:33,360 --> 00:46:38,200 a můžete dělat všechny druhy ošklivé věci lidem v zádech. 652 00:46:38,200 --> 00:46:41,570 >> Pojďme se bavit o tom, jak by se Vám mohl bránit proti některé z těchto věcí. 653 00:46:41,570 --> 00:46:46,860 Lidé, kteří vyvinuli standardy bezdrátového připojení - 802,11 - 654 00:46:46,860 --> 00:46:50,820 nejsou hloupí lidé od žádným nejbujnější fantazii. 655 00:46:50,820 --> 00:46:56,110 To je v pohodě technologie a když debutoval v roce 1999, 656 00:46:56,110 --> 00:47:00,780 přišli s tímto standardem s názvem WEP. 657 00:47:00,780 --> 00:47:03,360 Zde vidíte, když se pokusíte a připojit se k bezdrátové síti, 658 00:47:03,360 --> 00:47:07,450 Máte všechny druhy různých možností zabezpečení. 659 00:47:07,450 --> 00:47:11,800 To je trochu bolesti, protože tam jsou 6 dohromady 660 00:47:11,800 --> 00:47:14,790 a to nikdy opravdu smysl toho 1 připojit. 661 00:47:14,790 --> 00:47:19,190 Tato 1 v horní části je první, který přišli s názvem WEP. 662 00:47:19,190 --> 00:47:27,960 WEP Wired Equivalent Privacy, věřím, 663 00:47:27,960 --> 00:47:31,730 ne Wireless Encryption Protocol, který je společný chybný. 664 00:47:31,730 --> 00:47:36,170 Vzhledem k tomu, že se snaží, aby vám soukromí ekvivalent a bezpečnostní ochrany 665 00:47:36,170 --> 00:47:40,590 ekvivalentní k tomu kabelové síti 666 00:47:40,590 --> 00:47:46,710 S WEP, co skončí děje je, 667 00:47:46,710 --> 00:47:52,300 máte jednoduchý, malý heslo, které zadáte a zda slouží k šifrování 668 00:47:52,300 --> 00:47:56,210 všechny vaše komunikace mezi počítačem a routerem. 669 00:47:56,210 --> 00:47:58,210 >> Co je problém s WEP i když? 670 00:47:58,210 --> 00:48:01,470 Heslo s WEP je opravdu krátká, 671 00:48:01,470 --> 00:48:04,900 a také každý používá stejný přesný heslo, 672 00:48:04,900 --> 00:48:07,610  a tak je to opravdu snadné dešifrovat. 673 00:48:07,610 --> 00:48:10,580 Takže velmi rychle lidé zjistili, že WEP je problém, 674 00:48:10,580 --> 00:48:16,100 a jediný důvod, proč to vidíte ukázat ještě na této malé chlap je - 675 00:48:16,100 --> 00:48:18,890 tam jsou některé starší systémy, které se používají WEP - 676 00:48:18,890 --> 00:48:25,710 co byste měli místo mít zájem o jsou WPA a WPA2 standardy dokonce 677 00:48:25,710 --> 00:48:29,130 které byly vydány později. 678 00:48:29,130 --> 00:48:35,040 Tyto systémy jsou mnohem lepší jít na ochranu na bezdrátové připojení k internetu. 679 00:48:35,040 --> 00:48:41,090 To znamená, že oni ještě mají určitou hackability. 680 00:48:41,090 --> 00:48:44,010 Existují nástroje, které tam může jít udělat. 681 00:48:44,010 --> 00:48:47,490 Jedna věc zejména to, že může být protivný je, že 682 00:48:47,490 --> 00:48:55,370 Pokud připojujete a ověřen k bezdrátovému směrovači a používáte nějaký 683 00:48:55,370 --> 00:49:00,940 šifrovaná komunikace, se ukazuje, že hacker může snadno odeslat jeden paket 684 00:49:00,940 --> 00:49:03,990 odpojit vás od routeru, 685 00:49:03,990 --> 00:49:07,220 a jakmile budou odpojeni ti pak mohou poslouchat v - 686 00:49:07,220 --> 00:49:11,800 mohou čichat ty pakety, pokud se pokusíte obnovit spojení s routerem. 687 00:49:11,800 --> 00:49:16,800 A s těmito informacemi, které pak mohou jít a dešifrování zbytku vaší komunikace. 688 00:49:16,800 --> 00:49:24,580 To je v žádném případě není nějaký druh zabezpečený nade vší představivosti. 689 00:49:24,580 --> 00:49:30,060 >> Další věc, kterou můžete udělat, když jste nastavení bezdrátové sítě 690 00:49:30,060 --> 00:49:35,460 nebo jste se k nim připojili, je - všimnete si, že tady, když jsem připojení k této síti, 691 00:49:35,460 --> 00:49:37,640 se zeptá na jméno mé síti. 692 00:49:37,640 --> 00:49:41,060 Toto je také známé jako SSID. 693 00:49:41,060 --> 00:49:48,610 A tady vidíte, že na pravé straně mám pole, které mi ukazuje dostupných SSID. 694 00:49:48,610 --> 00:49:52,690 Tam je Harvard University, CS50, CS50 a Staff sítě. 695 00:49:52,690 --> 00:49:59,180 Nyní, jak se mnozí z vás věděl, že tam byl CS50 Zaměstnanci síť po? 696 00:49:59,180 --> 00:50:01,910 Někteří z vás. Ne všechny z vás. 697 00:50:01,910 --> 00:50:08,800 Problém s tímto, samozřejmě, je to, že se nám neupravené to až na svém seznamu SSID, 698 00:50:08,800 --> 00:50:10,930 nikdo by věděl o tom s největší pravděpodobností. 699 00:50:10,930 --> 00:50:16,090 Doufám, že. Pokud vy se všichni snaží rozlousknout do našeho bezdrátové. 700 00:50:16,090 --> 00:50:18,700 Ale to je něco, co můžete udělat, že je to opravdu důležité, když jste nastavení 701 00:50:18,700 --> 00:50:20,280 router doma. 702 00:50:20,280 --> 00:50:22,820 To pravděpodobně nestane za pár let pro mnoho z vás, 703 00:50:22,820 --> 00:50:29,010 ale mějte na paměti, že vedení, které SSID ven a není také pojmenování 704 00:50:29,010 --> 00:50:34,630 něco super-společná vám pomůže udržet si jistější v dlouhodobém horizontu. 705 00:50:34,630 --> 00:50:38,070 >> Závěrečná pár věcí, které můžete udělat. Jedním z nich je HTTPS. 706 00:50:38,070 --> 00:50:44,760 Pokud jste na Starbucks, pokud jste ve veřejném wi-fi oblasti 707 00:50:44,760 --> 00:50:52,620 a vy se rozhodnete pro přístup k bankovnímu účtu, přístup k Gmail, váš Facebook, 708 00:50:52,620 --> 00:50:56,140 Ujistěte se, že tyto spoje budou přes HTTPS. 709 00:50:56,140 --> 00:50:59,800 Je to přidaná vrstva zabezpečení, přidal vrstvu šifrování. 710 00:50:59,800 --> 00:51:01,520 Jedna věc je mít na paměti, je zde, 711 00:51:01,520 --> 00:51:04,740 kolik z vás někdy klepli přes tuto velkou, červenou obrazovku, která říká, 712 00:51:04,740 --> 00:51:07,480 "Tato webová stránka může být špatná." 713 00:51:07,480 --> 00:51:09,710 Vím, že mám. 714 00:51:09,710 --> 00:51:13,090 Je to asi, když jste všichni procházení se jít podívat vlasti nebo něco takového, ne? 715 00:51:13,090 --> 00:51:19,900 Jo. (Smích z publika) Jo. Tam máš. Víme, kdo se dívá vlasti. 716 00:51:19,900 --> 00:51:24,540 To velké, červená obrazovka tady 717 00:51:24,540 --> 00:51:28,600 často ukáže, že se něco funky se děje. 718 00:51:28,600 --> 00:51:32,530 Někdy je to jen web sám o sobě je nejistý, 719 00:51:32,530 --> 00:51:35,520 ale že stejné velké, červená obrazovka přijde, když se lidé snaží 720 00:51:35,520 --> 00:51:37,520 mount síťových útoků na vás. 721 00:51:37,520 --> 00:51:40,220 Takže pokud uvidíte, že velké, červená obrazovka přijít na Starbucks, 722 00:51:40,220 --> 00:51:42,440 neklikejte přes to. 723 00:51:42,440 --> 00:51:45,350 Špatné zprávy. Špatné zprávy nese. 724 00:51:45,350 --> 00:51:51,490 >> Poslední věc, které se můžete podívat na 725 00:51:51,490 --> 00:51:54,120 je nějaký VPN. 726 00:51:54,120 --> 00:52:00,280 Tento VPN je k dispozici prostřednictvím Harvard - vpn.fas.harvard.edu-- 727 00:52:00,280 --> 00:52:03,260 a co to dělá, je to vlastně vytváří zabezpečené připojení 728 00:52:03,260 --> 00:52:06,460 mezi vámi a Harvardu, nálevky váš provoz přes to, 729 00:52:06,460 --> 00:52:12,160 a že způsobem, pokud sedíte na místě, jako Starbucks 730 00:52:12,160 --> 00:52:19,030 můžete se připojit k Harvardu, dostat, že bezpečný provoz, a pak procházet z Harvardu. 731 00:52:19,030 --> 00:52:21,950 Opět, není stoprocentní. Lidé se mohou dostat do středu. 732 00:52:21,950 --> 00:52:25,850 Mohou se začnou rozpadat, ale je to mnohem bezpečnější než se spoléhat na bezpečnost 733 00:52:25,850 --> 00:52:28,620 na wi-fi samotným. 734 00:52:28,620 --> 00:52:32,570 >> Dobrá. V součtu, 735 00:52:32,570 --> 00:52:34,580 když se nastavení bezdrátových sítí, 736 00:52:34,580 --> 00:52:37,250 když jdete ven používat bezdrátové veřejnosti - 737 00:52:37,250 --> 00:52:43,430 ať už je to Starbucks, ať už je to pět kluků, ať už je to B.Good, 738 00:52:43,430 --> 00:52:46,440 něco jako, že - ať mají wi-fi - 739 00:52:46,440 --> 00:52:48,440 být vědomi svého okolí. 740 00:52:48,440 --> 00:52:50,440 Buďte si vědomi toho, co lidé mohou dělat. 741 00:52:50,440 --> 00:52:53,890 A být v bezpečí. Nepoužívejte přístup k vašemu bankovní účet. 742 00:52:53,890 --> 00:52:58,740 Mohlo by to být drsné probuzení, pokud někdo objeví s Vaším heslem později. 743 00:52:58,740 --> 00:53:05,480 S tím, jít purpurový! A budu zase věci zpátky na Davidovi za poslední slovo. 744 00:53:05,480 --> 00:53:11,270 (Potlesk) 745 00:53:11,270 --> 00:53:14,360 >> [David] Myslel jsem, že sdílejí jednu věc z osobní zkušenosti. 746 00:53:14,360 --> 00:53:19,940 Nástroj by vás mohla hrát s - i když Apple do značné míry vymýtit tento problém 747 00:53:19,940 --> 00:53:22,710 Pokud jste aktualizovali software od - 748 00:53:22,710 --> 00:53:26,670 ale k tomuto konci není skutečně schopni věřit software, který používáme, 749 00:53:26,670 --> 00:53:33,270 a na body Nate, budou moci čichat trochu o tom, co dělají jiní 750 00:53:33,270 --> 00:53:37,010 tam - to kus softwaru, který vyšel o rok a půl před podnikem. 751 00:53:37,010 --> 00:53:39,010 [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] 752 00:53:39,010 --> 00:53:41,010 Na nějakou dobu, iTunes - před iCloud, když jsi synchronizaci své iPody nebo vaše iPhone nebo 753 00:53:41,010 --> 00:53:45,570 nebo vaše iPady s iTunes - v zájmu záloh, 754 00:53:45,570 --> 00:53:48,340 jaké jsou vaše iPhone a tato jiná zařízení dělali nějaký čas, je 755 00:53:48,340 --> 00:53:50,340 využití údajů GPS. 756 00:53:50,340 --> 00:53:52,710 >> Všichni víte, možná, že vaše iPhone a Androids a Windows Mobile telefony 757 00:53:52,710 --> 00:53:55,410 a jako v těchto dnech mohou sledovat, kde se v zájmu zobrazující map 758 00:53:55,410 --> 00:53:59,440 a podobné - dobře, co Apple a tyto dalších společností, je 759 00:53:59,440 --> 00:54:02,650 oni typicky sledovat téměř všude, kam jste skutečně v zájmu 760 00:54:02,650 --> 00:54:05,380 zvyšování kvality služeb. 761 00:54:05,380 --> 00:54:07,170 Jeden, můžete získat více cílené reklamy a podobně, 762 00:54:07,170 --> 00:54:10,740 ale dva, oni mohou také zjistit, kde existují hotspot pro bezdrátové připojení v celém světě, 763 00:54:10,740 --> 00:54:14,780 a to může pomoci s geo-umístění - druh triangulace polohy lidí. 764 00:54:14,780 --> 00:54:18,520 >> Dlouhý příběh krátký, každý z nás chodil tykadla na nějakou dobu. 765 00:54:18,520 --> 00:54:22,180 Bohužel, Apple udělal návrhu rozhodnutí - nebo nedostatek thereof - 766 00:54:22,180 --> 00:54:26,590 se nelze zašifrovat tuto informaci, když to bylo být zálohována do iTunes. 767 00:54:26,590 --> 00:54:30,330 A co bezpečnostní výzkumník bylo zjištěno, že to byl jen obrovský soubor XML - 768 00:54:30,330 --> 00:54:33,810 obrovský textový soubor - sedí v iTunes lidí softwaru, 769 00:54:33,810 --> 00:54:35,400 a pokud jste byli jen trochu zvědavý, 770 00:54:35,400 --> 00:54:38,990 můžete jít šťourat vašeho manžela historii, svého spolubydlícího historie, 771 00:54:38,990 --> 00:54:41,050 Váš sourozenec historie a podobně, 772 00:54:41,050 --> 00:54:44,590 a díky určitému svobodného softwaru, můžete vykreslit všechny tyto GPS souřadnic - 773 00:54:44,590 --> 00:54:46,590 zeměpisné šířky a délky. 774 00:54:46,590 --> 00:54:48,590 >> Takže jsem vlastně udělal s mým vlastním telefonu. 775 00:54:48,590 --> 00:54:51,210 Jsem zapojen v mém telefonu, a opravdu, moje verze iTunes nebyla šifrována v té době, 776 00:54:51,210 --> 00:54:53,900 a to, co jsem byl schopen vidět byli mými vlastními vzory. 777 00:54:53,900 --> 00:54:56,970 Zde je Spojené státy a každý z těchto modrých kruhů představuje 778 00:54:56,970 --> 00:55:01,670 kde jsem se stalo, že byl v průběhu těchto předchozích měsících vlastnit tento konkrétní telefon. 779 00:55:01,670 --> 00:55:04,940  Strávil jsem spoustu času, samozřejmě, až na severovýchodě, trochu času v Kalifornii, 780 00:55:04,940 --> 00:55:08,690 krátkotrvající výlet do Texasu, a pokud pak přiblížit na to - 781 00:55:08,690 --> 00:55:11,120 je to všechno trochu pokuty a zajímavé, ale já jsem to věděl. 782 00:55:11,120 --> 00:55:13,890 Většina mých přátel to věděl, ale pokud se ponořit hlouběji, 783 00:55:13,890 --> 00:55:17,090 vidíte, kde trávím většinu svého času na severovýchodě. 784 00:55:17,090 --> 00:55:20,330 Pokud západky na některých zná-vyhlížejících městech - 785 00:55:20,330 --> 00:55:24,670 tento velký, modrý inkoust skvrna je v podstatě koncentrovaný přes Boston, 786 00:55:24,670 --> 00:55:29,510 a pak jsem strávit trochu času v předměstí vyzařujících z Bostonu. 787 00:55:29,510 --> 00:55:32,780 Ale byl jsem také dělal docela dost konzultací ten rok. 788 00:55:32,780 --> 00:55:36,090 A v letošním roce je východní pobřeží, a můžete skutečně vidět mě 789 00:55:36,090 --> 00:55:41,920 a můj iPhone v kapse cestování tam a zpět mezi Bostonu a New Yorku 790 00:55:41,920 --> 00:55:47,510 a Philadelphia dále dolů, stejně jako strávit trochu dovolené 791 00:55:47,510 --> 00:55:50,340 na mysu, který je jen málo rameno tam. 792 00:55:50,340 --> 00:55:53,030 Takže, každý z těchto bodů představuje nějaké místo, kde jsem býval, 793 00:55:53,030 --> 00:55:56,970 a zcela bez vědomí mi, že celý tento historie byla jen tam sedí 794 00:55:56,970 --> 00:55:58,410 na mém stolním počítači. 795 00:55:58,410 --> 00:56:00,470 Pokud oddálit - to vlastně byl trochu znepokojující. 796 00:56:00,470 --> 00:56:04,190 Neměl jsem vzpomínku nikdy mít been v Pensylvánii, které daný rok. 797 00:56:04,190 --> 00:56:07,840 Ale já když něco těžší, o tom a já jsem přišel na to, oh, to bylo ve skutečnosti, že cesta 798 00:56:07,840 --> 00:56:11,160 a opravdu, můj telefon chytil mě. 799 00:56:11,160 --> 00:56:14,180 >> Apple od té doby šifrovány tuto informaci, 800 00:56:14,180 --> 00:56:17,380 ale i to je jen dokladem toho, kolik informací se shromažďují kolem nás, 801 00:56:17,380 --> 00:56:20,850 a jak snadno - k lepšímu nebo k horšímu - je to přijatelné. 802 00:56:20,850 --> 00:56:23,340 Jeden z rychlé občerstvení snad z diskuse Rob, z řeči Nate je 803 00:56:23,340 --> 00:56:27,370 a malé vizuální, jako to dnes je, jen aby se všechny více uvědomovali tohoto 804 00:56:27,370 --> 00:56:31,160 takže i když - jako bod Rob - Jsme trochu v prdeli, že jo? 805 00:56:31,160 --> 00:56:33,920 Není toho moc, co můžeme udělat, pokud jde o některé z těchto hrozeb, 806 00:56:33,920 --> 00:56:37,130 ale na konci dne musíme věřit něco nebo někoho 807 00:56:37,130 --> 00:56:38,510 Chceme-li skutečně používat tyto technologie. 808 00:56:38,510 --> 00:56:43,150 Alespoň můžeme být informovaná rozhodnutí a vypočtených rozhodnutí, zda 809 00:56:43,150 --> 00:56:46,390 bychom měli vlastně být kontrola tohoto mimořádně citlivého účet 810 00:56:46,390 --> 00:56:49,330 nebo bychom měli být skutečně posílat, že mírně podezření rychlé zprávy 811 00:56:49,330 --> 00:56:52,180  v wi-fi prostředí, jako je tento. 812 00:56:52,180 --> 00:56:54,990 >> Takže, s tím řekl, jen jeden kvíz zbytky, jedna přednáška zůstává. 813 00:56:54,990 --> 00:56:57,740 Uvidíme ve středu pak pondělí. 814 00:56:57,740 --> 00:57:02,100 (Potlesk a jásot) 815 00:57:02,100 --> 00:57:06,100 [CS50TV]