1 00:00:00,000 --> 00:00:02,750 [Powered by Google Translate] [Hét 10] 2 00:00:02,750 --> 00:00:04,750 [David J. Malan] [Harvard Egyetem] 3 00:00:04,750 --> 00:00:07,000 [Ez a CS50.] [CS50.TV] 4 00:00:08,520 --> 00:00:13,240 >> Rendben! Ez CS50, de nem sokáig. 5 00:00:13,240 --> 00:00:14,740 Ez a kezdete a 10. hétre. 6 00:00:14,740 --> 00:00:18,780 Szerdán már a quiz, majd a következő hétfőn van néhány ünnepi torta 7 00:00:18,780 --> 00:00:22,030 ahogy teljes kört egészen vissza hét nulla. 8 00:00:22,030 --> 00:00:25,200 Ma beszélünk az egyik kedvenc téma, igazat kell mondani - 9 00:00:25,200 --> 00:00:29,000 hogy a biztonság és a magánélet és a következményeit az összes hardver és szoftver 10 00:00:29,000 --> 00:00:31,000 hogy mindannyian használják ezekben a napokban. 11 00:00:31,000 --> 00:00:33,300 Hogy őszinte legyek, sok a fenyegetések odakinn 12 00:00:33,300 --> 00:00:35,430 hogy ha nem igazán megállt gondolni róluk, 13 00:00:35,430 --> 00:00:36,920 ők valóban nagyon ijesztő. 14 00:00:36,920 --> 00:00:40,070 Case pont - ha bármelyik valaha letöltött egy szoftver 15 00:00:40,070 --> 00:00:42,660 le az internet és telepítettem a számítógépre, 16 00:00:42,660 --> 00:00:45,220 már folytat jelentős fokú bizalom, ugye? 17 00:00:45,220 --> 00:00:50,220 Nincs semmi, amiért megakadályozta a Skype, vagy a Chrome, vagy bármilyen szoftver 18 00:00:50,220 --> 00:00:54,770 már telepítette a számítógépre, az egyszerűen törli az összes fájlt a merevlemezen; 19 00:00:54,770 --> 00:00:58,260 honnan feltölteni az összes fájlt a merevlemezen néhány rosszfiú szerver; 20 00:00:58,260 --> 00:01:01,650 olvasva az összes e-mailt, honnan lehallgató összes azonnali üzeneteket. 21 00:01:01,650 --> 00:01:05,040 Mert a valóság ma a legtöbb modern operációs rendszerek 22 00:01:05,040 --> 00:01:10,040 tényleg nem sok a fal közötti programok, hogy mi telepíthető, 23 00:01:10,040 --> 00:01:14,220 és te és én elég sok csak egyfajta kereszteződés ujjainkat, és figyelembe a hit 24 00:01:14,220 --> 00:01:17,750 hogy mi app ingyenesen letölthető, vagy az a dolog, ami 99 cent, 25 00:01:17,750 --> 00:01:20,140 valójában teljesen jóindulatú. 26 00:01:20,140 --> 00:01:23,090 De mint láttuk-C, és most a PHP és a JavaScript, 27 00:01:23,090 --> 00:01:25,420 ezzel képes kifejezni magunkat programatically, 28 00:01:25,420 --> 00:01:30,300 meg tudod csinálni a legtöbb, amit akarsz egy programot, amely a felhasználó magát tehet. 29 00:01:30,300 --> 00:01:32,390 >> Szóval, ma arra összpontosítunk, hogy a témában - 30 00:01:32,390 --> 00:01:35,360 Nem csak egy fenyegetés, hanem a védelmet. 31 00:01:35,360 --> 00:01:37,540 Sőt, a világban a biztonság általában, 32 00:01:37,540 --> 00:01:39,040 van ilyen ez a macska-egér játék, 33 00:01:39,040 --> 00:01:41,990 és merem állítani a rossz fiúk, szinte mindig van egy lábát. 34 00:01:41,990 --> 00:01:45,880 Amikor kihasználva a hardver és a szoftver a saját személyi számítógépek, 35 00:01:45,880 --> 00:01:51,250 meg kell ismernünk, hogy a rosszfiú csak meg kell találni egy egyszerű hibát - 36 00:01:51,250 --> 00:01:56,150 1 kihasználni, egy hiba - egy szoftver általunk írt vagy fut 37 00:01:56,150 --> 00:01:58,280 annak érdekében, hogy neki, hogy vegye át az egész rendszert. 38 00:01:58,280 --> 00:02:02,870 Ezzel szemben, mi - a jó fiúk - be kell foltozni, és meghatározza az összes ilyen hiba 39 00:02:02,870 --> 00:02:04,900 és kerülje az összes ilyen hiányosságok. 40 00:02:04,900 --> 00:02:07,870 És így, merem állítani az egész, a rossz fiúk előnye. 41 00:02:07,870 --> 00:02:10,840 Milyen osztályok, mint ez, és az azt követő órák valóban mintegy 42 00:02:10,840 --> 00:02:14,830 nem a tanítás, hogyan, hogy a bérek a csatákat, hogy ezek a rossz fiúk nem, 43 00:02:14,830 --> 00:02:18,220 hanem arról, hogyan védheti meg magát, vagy legalább hogyan lehet a számított döntést 44 00:02:18,220 --> 00:02:22,970 hogy igen, tudom, hogy ez a szoftver valóban képes olvasni minden az egyik e-maileket, 45 00:02:22,970 --> 00:02:27,040 de nem vagyok rendben, mert az értéket hoz nekem a másik kezét. 46 00:02:27,040 --> 00:02:31,060 >> Nagyon örülök, hogy csatlakozott 2 a legokosabb ember, akit ismerek - 47 00:02:31,060 --> 00:02:33,060 Rob Bowden és Nate Hardison. 48 00:02:33,060 --> 00:02:36,850 Rob arról, hogy nekünk egy túra a legalacsonyabb szintű biztonsági címkék - 49 00:02:36,850 --> 00:02:42,470 hogy a fordító, amely eddig, most már minden jön a szeretet és a bizalom. Rob Bowden. 50 00:02:42,470 --> 00:02:47,790 [Taps] 51 00:02:47,790 --> 00:02:50,280 >> [Rob] Rendben. David nagyon sokat tett az egész duma 52 00:02:50,280 --> 00:02:52,320 azt akartam bemutatni, azonban - 53 00:02:52,320 --> 00:02:58,070 Néhány héttel ezelőtt, akkor látta, hogy a példa a puffer-túlcsordulás támadás 54 00:02:58,070 --> 00:03:01,900 amely példa egy hacker betörés néhány szoftver 55 00:03:01,900 --> 00:03:06,060 hogy nem kellene a hackelés. 56 00:03:06,060 --> 00:03:09,690 A másik oldala az, 57 00:03:09,690 --> 00:03:14,470 Néha van, szoftver, amely rosszindulatú önmagában. 58 00:03:14,470 --> 00:03:17,070 Ez még csak nem is kell feltörni. 59 00:03:17,070 --> 00:03:20,670 Az a személy, aki írta a szoftvert akar csapkod téged. 60 00:03:20,670 --> 00:03:22,190 >> Nézzük csak ugrani kódot, 61 00:03:22,190 --> 00:03:28,560 vesz egy pillantást a "login.c". 62 00:03:28,560 --> 00:03:33,390 Itt egy buta program, amely ellenőrzi a felhasználónév és jelszó kombinációt. 63 00:03:33,390 --> 00:03:39,420 Itt feltétlenül kell egyre kényelmesebb C újra a teszt. 64 00:03:39,420 --> 00:03:43,470 Először is, mi használ kap strings leírni a felhasználónevet, 65 00:03:43,470 --> 00:03:46,280 akkor mi a get string megragad a jelszót, 66 00:03:46,280 --> 00:03:50,680 aztán van néhány triviális ellenőrzéseket csak, a felhasználónév "rob"? 67 00:03:50,680 --> 00:03:52,710 És a jelszó: "thisiscs50"? 68 00:03:52,710 --> 00:03:56,900 Vagy, a felhasználónév "Tommy" és a jelszó "i <3javascript"? 69 00:03:56,900 --> 00:03:58,980 Ha e a helyzet, 70 00:03:58,980 --> 00:04:01,980  akkor mi csak nyomdába "siker", és akkor rendelkezik hozzáféréssel. 71 00:04:01,980 --> 00:04:07,690 Máskülönben fogunk nyomtatni "érvénytelen login", majd, persze, 72 00:04:07,690 --> 00:04:11,120  mivel a vázlat strings malloc memóriájába, akkor ingyenes felhasználónevet és jelszót. 73 00:04:11,120 --> 00:04:15,560 Ez egy triviális login program, 74 00:04:15,560 --> 00:04:18,110 és ha jól meggondoljuk, amikor belép a készülékbe, 75 00:04:18,110 --> 00:04:22,350 ez elég hasonló - vagy még bejelentkezik a számítógépre - 76 00:04:22,350 --> 00:04:24,930 ott csak néhány login programot, amely így hozzáférést. 77 00:04:24,930 --> 00:04:31,840 Itt történik, hogy kódolt "rabolni", "thisiscs50", "Tommy", "i <3javascript" 78 00:04:31,840 --> 00:04:34,950 de valószínűleg van néhány fájlt valahol az operációs rendszer 79 00:04:34,950 --> 00:04:38,690 amely egy listát a felhasználónevek, akik jelentkezni a rendszerbe 80 00:04:38,690 --> 00:04:41,740 és egy listát a jelszavakat társított e felhasználóneveket. 81 00:04:41,740 --> 00:04:46,090 Általában a jelszavak nem csak tárolja szövegként, mint ez. 82 00:04:46,090 --> 00:04:50,360 Van valamiféle titkosítás, de ez nem a mi például. 83 00:04:50,360 --> 00:04:57,000 >> Érkezőben át a fordító - 84 00:04:57,020 --> 00:05:00,780 ez lesz nagyon egyszerű. 85 00:05:00,780 --> 00:05:04,800 Meg kell adni legalább néhány fájlt akarunk fordítani, 86 00:05:04,800 --> 00:05:10,200 majd itt - ezeken a vonalakon 87 00:05:10,200 --> 00:05:12,520 is csak olvas egy fájlt. 88 00:05:12,520 --> 00:05:16,080 Így szól az egész fájlt egy nagy puffer, 89 00:05:16,080 --> 00:05:19,000 és akkor null megszűnik a puffer, mint mindig, 90 00:05:19,000 --> 00:05:21,000 és végül mi csak összeállítani a fájlt. 91 00:05:21,000 --> 00:05:24,090 Nem fogunk nézni, hogyan fordításkor ténylegesen végrehajtják, 92 00:05:24,090 --> 00:05:26,820 hanem egy tippet, csak hívja csenget. 93 00:05:26,820 --> 00:05:32,370 Fogjuk használni ezt a programot összeállítani dolgok helyett csenget. 94 00:05:32,370 --> 00:05:39,260 Az egyik probléma kezdjük is látunk szeretnénk fordítani a fordító, 95 00:05:39,260 --> 00:05:43,620 de ha nem fogunk használni csenget, nem tudom, mit fogok fordítani be. 96 00:05:43,620 --> 00:05:46,700 Ez egy általános probléma ismert bootstrapping. 97 00:05:46,700 --> 00:05:53,080 Szóval, most az egyszer, fogom használni csenget összeállításához a fordító. 98 00:05:53,080 --> 00:05:58,800 >> Ha úgy gondolja, a GCC és csenget - 99 00:05:58,800 --> 00:06:03,200 a programok, azok összeállítói folyamatosan frissítik, 100 00:06:03,200 --> 00:06:10,010 és a fordítóprogramok összeállítani GCC és csenget. 101 00:06:10,010 --> 00:06:14,890 Csengés csak egy nagy, C vagy C + + programot, 102 00:06:14,890 --> 00:06:19,510 így a fordító az általuk használt összeállítani, ami csenget. 103 00:06:19,510 --> 00:06:26,820 Itt most mi csak lesz a mi compiler a fordító, 104 00:06:26,820 --> 00:06:33,830 és azt is mondják - ". / fordító ',' compiler.c", "compile.c", "-o fordító". 105 00:06:33,830 --> 00:06:37,250 Figyeljük meg ez a pontos parancs futottam előtt - 106 00:06:37,250 --> 00:06:41,330 csak cseréld csenget a ". / fordító". 107 00:06:41,330 --> 00:06:44,990 És most van egy másik fordító, de ez pontosan ugyanaz. 108 00:06:44,990 --> 00:06:47,510 Csak felhívja csenget. 109 00:06:47,510 --> 00:06:55,050 >> Fogunk igénybe compiler a login program. 110 00:06:55,050 --> 00:07:03,030 Oké - ". / Compiler login.c-o login". 111 00:07:03,030 --> 00:07:06,160 Szóval, undefined reference to "getString". 112 00:07:06,160 --> 00:07:11,250 Van egy "-lcs50". Oké. 113 00:07:11,250 --> 00:07:13,790 Így most már a login program. 114 00:07:13,790 --> 00:07:16,790 Running it - kap "Kérjük, adja meg a felhasználónevét." 115 00:07:16,790 --> 00:07:22,140 Erre volt példa rabolni. Kérjük, írja be a jelszót - thisiscs50. 116 00:07:22,140 --> 00:07:24,930 És a siker! Van hozzáférést. 117 00:07:24,930 --> 00:07:28,350 Futás újra és néhány érvénytelen jelszó megadása - 118 00:07:28,350 --> 00:07:30,350 vagy érvénytelen felhasználónév és a jelszó - 119 00:07:30,350 --> 00:07:32,860 érvénytelen belépés. 120 00:07:32,860 --> 00:07:37,740 Oké. Semmi érdekes, erről eddig. 121 00:07:37,740 --> 00:07:43,100 De vessünk egy pillantást a login újra - 122 00:07:43,100 --> 00:07:47,850 és ez lesz egy kissé triviális példát, 123 00:07:47,850 --> 00:07:59,330 de tegyük hozzá egy még itt, és azt mondják, else if ((strcmp (username, "hacker") == 0 && 124 00:07:59,330 --> 00:08:14,510 strcmp (jelszó, "LOLihackyou") == 0)) 125 00:08:14,510 --> 00:08:26,280 így most, printf ("Hacked! Mostantól hozzáféréssel. \ n"); rendben. 126 00:08:26,280 --> 00:08:36,240 Fordítása ez - fordító login.c-o login-lcs50 - 127 00:08:36,240 --> 00:08:40,190 most fut login - és ha tudom használni username hacker 128 00:08:40,190 --> 00:08:44,740 és jelszó LOLihackedyou - 129 00:08:44,740 --> 00:08:47,780 Mondtam írja rosszul ott korábban? 130 00:08:47,780 --> 00:08:52,990 At login.c--ihack - I'll nem csapkodott, mert azt hiszem, tudom, hogy később. 131 00:08:52,990 --> 00:08:56,270 Oké. Újrafordítás. 132 00:08:56,270 --> 00:09:01,500 Re-futás - hacker - LOLihackedyou - 133 00:09:01,500 --> 00:09:03,650 Hacked! Most már hozzáférést. 134 00:09:03,650 --> 00:09:06,580 >> Nem úgy tűnik, nem lehet, hogy nagy a különbség 135 00:09:06,580 --> 00:09:10,890 mert ez pontosan ugyanolyan ellenőrzést teszek más felhasználóneveket és jelszavakat. 136 00:09:10,890 --> 00:09:17,720 Plusz, a nagy dolog az, hogy ha az emberek ezt nézd login.c-- 137 00:09:17,720 --> 00:09:24,020 azt mondják, ha át ezt ki, hogy a társam, és megnyitni ezt a fájlt, 138 00:09:24,020 --> 00:09:29,870 és olvasd el ezt, akkor találkozunk - Oké, miért kell ezeket a sorokat kódot itt? 139 00:09:29,870 --> 00:09:33,320 Ez nyilvánvalóan nem olyan dolog, hogy kell a programban. 140 00:09:33,320 --> 00:09:41,590 Egyes programok - mint minden védett szoftver, amely nem nyílt forráskódú - 141 00:09:41,590 --> 00:09:46,200 akkor soha többé nem látom ezeket a sorokat a kódot. 142 00:09:46,200 --> 00:09:50,440 Olyasmi, mint a Skype vagy ilyesmi - minden tudod, 143 00:09:50,440 --> 00:09:57,600 A Skype a számítógépen, és ott is csak néhány speciális felhasználónév-jelszó kombináció 144 00:09:57,600 --> 00:10:01,580 amely jelentkezni Skype valamilyen különleges módon. 145 00:10:01,580 --> 00:10:04,230 Nem tudjuk róla, és az emberek nem tudnak róla, 146 00:10:04,230 --> 00:10:09,640 azért, mert nem értem, hogy olvassa el a forráskód, és nézze meg, hogy van ez a lyuk. 147 00:10:09,640 --> 00:10:11,800 >> Amit mi hívjuk ezt - 148 00:10:11,800 --> 00:10:16,530 bár ez nem egy nagyon okos példa - 149 00:10:16,530 --> 00:10:18,970 ezt nevezik a hátsó ajtón. 150 00:10:18,970 --> 00:10:22,320 Ha úgy gondolja, a hátsó ajtó a ház. 151 00:10:22,320 --> 00:10:26,640 Itt, ha érvényesíti a felhasználónevek "rob" vagy "Tommy" 152 00:10:26,640 --> 00:10:28,580 hogy az olyan lenne, mint a "bejárati ajtón". 153 00:10:28,580 --> 00:10:33,700 Ez az út kéne, hogy biztonságosan be. 154 00:10:33,700 --> 00:10:37,630 De ha be ezzel a felhasználónévvel és jelszóval - 155 00:10:37,630 --> 00:10:40,630 akkor ez a "hátsó ajtón". 156 00:10:40,630 --> 00:10:42,810 Nem volt szándékos módja annak, hogy a program, 157 00:10:42,810 --> 00:10:45,350 de még mindig működik. 158 00:10:45,350 --> 00:10:49,160 És az emberek általában nem kellene tudni ezekről a hátsó ajtó. 159 00:10:49,160 --> 00:10:53,050 Megyünk javítani ezen. 160 00:10:53,050 --> 00:10:55,610 Nézzük visszatér, hogy ez az eredeti login.c, 161 00:10:55,610 --> 00:11:05,510 és vessünk egy pillantást az új fordító. Oké. 162 00:11:05,510 --> 00:11:08,460 Minden ide pontosan ugyanaz. 163 00:11:08,460 --> 00:11:10,460 Mi olvasod az egész fájlt egy puffer. 164 00:11:10,460 --> 00:11:14,400 Minden itt lent ugyanaz. 165 00:11:14,400 --> 00:11:16,180 Csak össze a fájlt. 166 00:11:16,180 --> 00:11:19,770 De most van ez a nagy, ha itt 167 00:11:19,770 --> 00:11:24,140 azt mondja, ha a fájl, amit történetesen összeállítására is login.c, 168 00:11:24,140 --> 00:11:27,390 akkor csinálok valami különlegeset. 169 00:11:27,390 --> 00:11:29,900 Mi az, hogy valami különleges? 170 00:11:29,900 --> 00:11:33,820 Látom itt néhány húr úgynevezett "hack", 171 00:11:33,820 --> 00:11:35,950 és nézi ezeket a sorokat a kód - 172 00:11:35,950 --> 00:11:41,990 ezek ugyanolyan sornyi kódot - Azt hiszem, tettem használat "ihack" és nem "ihacked" előtt - 173 00:11:41,990 --> 00:11:44,240 nézi most ezeket a sorokat a kódot, 174 00:11:44,240 --> 00:11:47,880 ők pontosan ugyanolyan sornyi kódot, hogy volt a login.c előtt. 175 00:11:47,880 --> 00:11:51,130 De most, ahelyett, hogy őket login.c, 176 00:11:51,130 --> 00:11:54,290 Fogom őket az én fordító. 177 00:11:54,290 --> 00:12:00,240 >> Ezek az sornyi kódot fogok szeretné illeszteni login.c. 178 00:12:00,240 --> 00:12:06,350 Ezek a vonalak kódot - a puffer, hogy eredetileg én tartott login.c 179 00:12:06,350 --> 00:12:11,080 már nem lesz elég nagy, mert most szeretnék is beilleszteni ezt a hack 180 00:12:11,080 --> 00:12:12,940 a közepén a program. 181 00:12:12,940 --> 00:12:16,350 Mindez mialatt egy új puffer, ami elég nagy - 182 00:12:16,350 --> 00:12:22,020 mind az eredeti fájlt, és az extra sornyi kódot - a hack -, hogy szeretnék beszúrni ott. 183 00:12:22,020 --> 00:12:24,920 Itt van valami észrevenni - 184 00:12:24,920 --> 00:12:29,200 char * pattern = "/ / deny számukra!" 185 00:12:29,200 --> 00:12:33,760 Ha megnézzük vissza login.c, 186 00:12:33,760 --> 00:12:37,690 látjuk itt lent ezt a megjegyzést - tagadja hozzáférést! 187 00:12:37,690 --> 00:12:42,360 Ebben login.c, erre a hozzászólásra néz ki teljesen ártalmatlan, 188 00:12:42,360 --> 00:12:48,270 így nem gondolja, hogy bármilyen rossz szándékú és csak erre a hozzászólásra. 189 00:12:48,270 --> 00:12:55,600 De a fordító, mi kifejezetten fog keresni ezt a kódsort, 190 00:12:55,600 --> 00:12:57,600 és amikor azt látjuk, hogy - 191 00:12:57,600 --> 00:13:03,330 ezek a sorok a kód beillesztésével a hack abba a helyzetbe. 192 00:13:03,330 --> 00:13:06,910 Szóval, mi iterációjával az egész login.c, 193 00:13:06,910 --> 00:13:12,080 vagyunk behelyezése hogy hack, hol azt mondja, tagadja hozzáférést, 194 00:13:12,080 --> 00:13:15,890 aztán mi összeállításában - nem az eredeti login.c 195 00:13:15,890 --> 00:13:20,340 de az új login.c azzal hack ki jobbra "megtagadja a hozzáférést." 196 00:13:20,340 --> 00:13:29,190 >> Most azt akarom fordítani az új fordító azzal hack részt. 197 00:13:29,190 --> 00:13:36,900 Nem fogom használni csenget, úgyhogy másolja a fordítót használtunk előtt 198 00:13:36,900 --> 00:13:48,420 és használni, hogy - úgy, fordító compiler.c compile.c-o evil_compiler. 199 00:13:48,420 --> 00:13:50,870 Most a gonosz fordító - 200 00:13:50,870 --> 00:13:54,310 ha használja a gonosz compiler bármilyen más fájlt, 201 00:13:54,310 --> 00:13:57,980 a fájlt fog készíteni, ahogy kellene. 202 00:13:57,980 --> 00:13:59,980 Ez teljesen normális. 203 00:13:59,980 --> 00:14:06,870 De ha használja a gonosz compiler login - 204 00:14:06,870 --> 00:14:14,920 így. / evil_compiler login.c-o login-lcs50 - 205 00:14:14,920 --> 00:14:21,310 nézi most login.c újra, ott semmi itt. 206 00:14:21,310 --> 00:14:25,770 Ez a szokásos "ha ez sem rob vagy tommy vagyunk, különben kifogytunk." 207 00:14:25,770 --> 00:14:31,620 De amikor fut a végrehajtható, ez működni fog, mint rendesen. 208 00:14:31,620 --> 00:14:36,640 Futás újra - hacker, LOLihackyou - 209 00:14:36,640 --> 00:14:39,000 Hacked! Most már hozzáférést. 210 00:14:39,000 --> 00:14:43,560 Csak néztem login.c, akkor nem hiszem, semmi rossz. 211 00:14:43,560 --> 00:14:46,960 De a fordító, ami használt összeállításához login.c 212 00:14:46,960 --> 00:14:53,820 kifejezetten beilleszteni ezt a hack a programba. 213 00:14:53,820 --> 00:14:57,320 Már csak át az eredeti probléma. 214 00:14:57,320 --> 00:15:02,880 Eredetileg volt ezeket a sorokat a kódot a login.c, hogy ha bárki rájuk nézett, 215 00:15:02,880 --> 00:15:05,470 úgy lenne, mint, hogy miért vannak ezek itt? 216 00:15:05,470 --> 00:15:09,550 Most, ha valaki történetesen nézd meg a fordító, 217 00:15:09,550 --> 00:15:12,140 fognak nézd meg ezeket sornyi kódot, és azt mondják, 218 00:15:12,140 --> 00:15:15,290 miért vannak ezek itt? 219 00:15:15,290 --> 00:15:17,210 Szóval, még nem teljesen megoldott a problémát. 220 00:15:17,210 --> 00:15:22,510 De tudjuk használni ezt az ötletet újra. 221 00:15:22,510 --> 00:15:26,260 >> A kezelés ideje alatt egy pillantást a harmadik változata a fordító, 222 00:15:26,260 --> 00:15:32,500 ez ugyanaz a gondolat. 223 00:15:32,500 --> 00:15:36,240 Azt olvassuk az egész fájlt egy puffer itt, 224 00:15:36,240 --> 00:15:39,660 állítjuk össze a fájlt le ide, 225 00:15:39,660 --> 00:15:44,220 és van valami sztring hack itt, 226 00:15:44,220 --> 00:15:47,710 de észre a fájlt, hogy én tényleg hackelés most. 227 00:15:47,710 --> 00:15:52,260 Én hacking compiler.c 228 00:15:52,260 --> 00:15:54,590 Nem login.c. 229 00:15:54,590 --> 00:15:57,780 De mi vagyok én illesztették compiler.c? 230 00:15:57,780 --> 00:16:04,600 Én behelyezésekor ezt a kódot, amely a pontos kódot a korábbi fordító, 231 00:16:04,600 --> 00:16:10,540 amelynek célja az volt, hogy be kódot login.c. 232 00:16:10,540 --> 00:16:13,360 Itt a mi ha strcmp fájl login.c 233 00:16:13,360 --> 00:16:19,370 majd helyezze be login.c a hack cucc. 234 00:16:19,370 --> 00:16:26,010 Ez az új fordító célja, hogy hozzon létre egy fordító 235 00:16:26,010 --> 00:16:30,390 amelynek célja összeállításához login rosszindulatú. 236 00:16:30,390 --> 00:16:34,320 Majd meglátjuk, hogy miért segít. 237 00:16:34,320 --> 00:16:40,630 Minden más ugyanaz, így működik, pontosan úgy, ahogy dolgozott a korábbi fordító. 238 00:16:40,630 --> 00:16:45,550 Mi csak iterációjával át az egész compile.c. 239 00:16:45,550 --> 00:16:48,190 De most ahelyett, hogy "tagadja hozzáférést" 240 00:16:48,190 --> 00:16:51,490 keresünk "összeállítja a fájlt." 241 00:16:51,490 --> 00:16:53,750 Hol van összeállítja a fájlt? 242 00:16:53,750 --> 00:16:57,210 Keresi a mi teljesen ártatlan compiler.c, 243 00:16:57,210 --> 00:17:01,340 ez itt lent az alján. 244 00:17:01,340 --> 00:17:06,500 Ez a megjegyzés - összeállítja a fájlt - megint úgy néz ki, teljesen ártalmatlan. 245 00:17:06,500 --> 00:17:11,599 De a mi rosszindulatú változata a fordító, 246 00:17:11,599 --> 00:17:16,550 fogjuk - közvetlenül azelőtt, hogy a hozzászólás - be ezt a kódot 247 00:17:16,550 --> 00:17:20,690 amelynek célja, hogy be-kód összeállításakor login.c. 248 00:17:20,690 --> 00:17:25,589 >> Van egy csomó szintek Indirekció itt. 249 00:17:25,589 --> 00:17:29,760 Nézzük a ténylegesen futtatni. 250 00:17:29,760 --> 00:17:37,360 Ismét fogjuk másolni az eredeti fordító. 251 00:17:37,360 --> 00:17:48,260 Most, fordítás - fordító compiler.c compile.c-o evilest_compiler - 252 00:17:48,260 --> 00:17:52,640 és most evilest_compiler. 253 00:17:52,640 --> 00:17:59,200 Evilest fordító -, ha használni, hogy tudja lefordítani a fordító, 254 00:17:59,200 --> 00:18:01,550 nézzük ténylegesen nézni. 255 00:18:01,550 --> 00:18:13,230 Evilest_compiler - hozza át, egészen vissza az 1-es verzióját a mi fordító - 256 00:18:13,230 --> 00:18:19,640 1-es verzióját a mi fordító amelyet éppen olvasni a fájlt, és fordítsuk le. 257 00:18:19,640 --> 00:18:24,780 Itt tudjuk, hogy evilest_compiler - ha lefordul a fájl - 258 00:18:24,780 --> 00:18:29,890 megy be kódot itt, mielőtt összeállítja a fájlt, 259 00:18:29,890 --> 00:18:38,510 és hogy a kód fog kinézni pontosan olyan, mint a kódot a második változata a fordító 260 00:18:38,510 --> 00:18:42,240 ami ezt tette. 261 00:18:42,240 --> 00:18:46,450 Ez a kód, amelynek célja, hogy megtörje a login, 262 00:18:46,450 --> 00:18:56,480 fog be kell illeszteni a fordító által evilest fordító. 263 00:18:56,480 --> 00:19:08,600 Nézzünk evilest_compiler összeállításához a fordító. 264 00:19:08,600 --> 00:19:15,040 Most fogjuk használni fordító, 265 00:19:15,040 --> 00:19:19,460 gyere vissza a bejelentkezéshez, 266 00:19:19,460 --> 00:19:25,280 és ne feledje, ez login.c már semmi gyanús benne. 267 00:19:25,280 --> 00:19:35,250 De a mi compiler login.c, 268 00:19:35,250 --> 00:19:38,430 rabolni, thisiscs50, siker. 269 00:19:38,430 --> 00:19:44,350 Nézzük login hacker, LOLihackyou, Hacked! Most már hozzáférést. 270 00:19:44,350 --> 00:19:49,710 >> Elismerik, hogy ez eltér a 2-es verzióját a mi fordító. 271 00:19:49,710 --> 00:20:00,500 A fordító használjuk - menjünk vissza - másolatot login - 272 00:20:00,500 --> 00:20:01,880 hadd hozzuk compiler vissza ide. 273 00:20:01,880 --> 00:20:06,360 Eltávolítása evilest fordító. 274 00:20:06,360 --> 00:20:08,970 Minden mi maradt most fordító. 275 00:20:08,970 --> 00:20:10,950 Ha megnézzük compiler.c, 276 00:20:10,950 --> 00:20:16,840 nincs semmi ott úgy tűnik, rosszindulatú semmilyen módon. 277 00:20:16,840 --> 00:20:22,390 Ha megnézzük login.c, 278 00:20:22,390 --> 00:20:28,790 nincs semmi itt úgy néz ki, a rosszindulatú semmilyen módon. 279 00:20:28,790 --> 00:20:34,600 De, ha használja a compiler login.c, 280 00:20:34,600 --> 00:20:38,840 megkapjuk a hackable verzió login.c. 281 00:20:38,840 --> 00:20:41,850 Amikor használják a compiler egy új változata a fordító, 282 00:20:41,850 --> 00:20:46,620 megkapjuk a hackable változata a fordító. 283 00:20:46,620 --> 00:20:51,790 Most, ha elmegyünk és forgalmazza compiler végrehajtható, 284 00:20:51,790 --> 00:20:59,280 és senki sem fogja tudni, hogy van-e valami rosszindulatú róla. 285 00:20:59,280 --> 00:21:04,680 >> Ez valójában így van - nem emlékszem az év - 286 00:21:04,680 --> 00:21:10,350 Ken Thompson, és megnyerte a Turing-díj - 287 00:21:10,350 --> 00:21:15,600 ha nem ismerik a Turing-díj, szinte mindig meghatározása szerint a 288 00:21:15,600 --> 00:21:20,160 Nobel-díj a számítógép-tudomány, hogy ez hogyan fog meghatározni. 289 00:21:20,160 --> 00:21:24,100 Ken Thompson beszédet mondott, amikor megkapta a Turing-díjat 290 00:21:24,100 --> 00:21:27,150 úgynevezett "Gondolatok Bízva Trust". 291 00:21:27,150 --> 00:21:30,710 Alapvetően ez volt az ötlet az ő beszédét. 292 00:21:30,710 --> 00:21:35,050 Kivéve helyett a fordító, aki beszélt GCC - 293 00:21:35,050 --> 00:21:37,250 csak egy fordító, mint a zengés - 294 00:21:37,250 --> 00:21:45,600 és mit mondott az, mint a mi login.c, a login.c tűnik viszonylag haszontalan 295 00:21:45,600 --> 00:21:50,190 de ő beszélt az aktuális UNIX login.c. 296 00:21:50,190 --> 00:21:53,050 Amikor be, hogy a készülék, 297 00:21:53,050 --> 00:21:56,070 van valami login program fut. 298 00:21:56,070 --> 00:21:58,080 Ez volt a belépés, hogy ő beszélt. 299 00:21:58,080 --> 00:22:02,420 Ez volt tulajdonképpen az ő ötlete volt. 300 00:22:02,420 --> 00:22:09,080 Azt mondta, hogy az ÁSZF-ben, akkor az elmélet volna ültetni a bug - 301 00:22:09,080 --> 00:22:12,290 nem hiba, hanem a rosszindulatú kódot - 302 00:22:12,290 --> 00:22:16,860 hogy összeállításakor a bejelentkezési funkció - a bejelentkezési file - 303 00:22:16,860 --> 00:22:23,700 volna be egy hátsó ajtót, hogy tudott menni teljesen olyan UNIX rendszer a világon 304 00:22:23,700 --> 00:22:27,360 és lépjen be bizonyos felhasználónevével és jelszavával. 305 00:22:27,360 --> 00:22:33,710 Abban az időben, GCC elég sok a fordítónak, hogy mindenki használt semmit. 306 00:22:33,710 --> 00:22:36,460 Ha valaki történetesen frissíteni GCC, 307 00:22:36,460 --> 00:22:40,880 akkor lenne újrafordítani GCC GCC, 308 00:22:40,880 --> 00:22:44,500 és akkor még mindig rossz verzió GCC 309 00:22:44,500 --> 00:22:50,140 mert pontosan összeállítani, hogy elismerik, hogy azt újrafordítása a fordító. 310 00:22:50,140 --> 00:22:57,360 És ha valaha is használni GCC újrafordítani a login.c fájlt, 311 00:22:57,360 --> 00:23:03,550 akkor ez be a hátsó ajtót, hogy ő jönne be, hogy bármely számítógépről. 312 00:23:03,550 --> 00:23:08,750 >> Ez mind az elméleti, hanem - az adott körülmény elméleti, 313 00:23:08,750 --> 00:23:12,440 de az ötletek nagyon is valós. 314 00:23:12,440 --> 00:23:18,250 2003-ban volt egy hasonló példa, ahol - 315 00:23:18,250 --> 00:23:21,290 akkor vess egy pillantást erre a fájlra, 316 00:23:21,290 --> 00:23:25,870 és azt, hogy valóban semmi köze, de a hiba hasonló. 317 00:23:25,870 --> 00:23:29,390 Ez a fájl csak definiál egy függvényt nevű szakadék. 318 00:23:29,390 --> 00:23:31,780 Beletelik egy érv a, b érv, 319 00:23:31,780 --> 00:23:34,270 és az a célja, hogy csinál egy osztva b. 320 00:23:34,270 --> 00:23:37,230 De ez nem valami hibaellenőrzés, 321 00:23:37,230 --> 00:23:40,070 így tudjuk, a dolgok furcsa, ha b nem egyenlő nulla. 322 00:23:40,070 --> 00:23:44,900 Ha a b nulla, akkor szét ezt figyelembe 2 esetben. 323 00:23:44,900 --> 00:23:46,900 Lehet, hogy már látni a hibát. 324 00:23:46,900 --> 00:23:51,840 Az első esetben - ha a nulla, akkor csinálunk nulla osztva nulla, 325 00:23:51,840 --> 00:23:54,300 és azt mondjuk, hogy ez nem definiált. 326 00:23:54,300 --> 00:23:56,250 A második esetben - ha nem nulla, 327 00:23:56,250 --> 00:24:00,580 akkor ez olyasmi, mint 1 osztva nulla, és hívjuk, hogy végtelen. 328 00:24:00,580 --> 00:24:03,730 Különben visszatérünk a szokásos egy osztva b. 329 00:24:03,730 --> 00:24:06,390 És így van, mi fut a 3 esetben, 330 00:24:06,390 --> 00:24:13,740 és mi a ténylegesen megtett megosztottság - ez kiabál nekem - 331 00:24:13,740 --> 00:24:21,330 így van, figyelmen kívül hagyva a csengés figyelmeztetések - 332 00:24:21,330 --> 00:24:24,500 end of non-void funkció - nyilván én nem fordítani ezt előre. 333 00:24:24,500 --> 00:24:26,500 Vissza 0. 334 00:24:26,500 --> 00:24:28,900 Győződjön osztják - rendben. 335 00:24:28,900 --> 00:24:32,470 A. / Megosztottság, látjuk, 3, Infinity, Infinity. 336 00:24:32,470 --> 00:24:39,150 Zero osztva nullával nem kellett volna vissza végtelen. 337 00:24:39,150 --> 00:24:42,840 És ha még nem alakított ki a hibát még nem - vagy nem lát ilyet - 338 00:24:42,840 --> 00:24:46,800 azt látjuk, hogy csinálunk a = 0. 339 00:24:46,800 --> 00:24:52,610 Valószínűleg mi jelentette a == 0. Valószínűleg. 340 00:24:52,610 --> 00:24:58,640 >> De ez valójában valami, ami ismét 2003-ban, a Linux kernel - 341 00:24:58,640 --> 00:25:02,260 így a készüléket használja a Linux kernel - 342 00:25:02,260 --> 00:25:05,550 bármely Linux operációs rendszert használ a Linux kernel - 343 00:25:05,550 --> 00:25:11,610 így a bug nagyon hasonló ehhez mutatott fel. 344 00:25:11,610 --> 00:25:15,180 Az ötlet mögött a bug volt - 345 00:25:15,180 --> 00:25:18,820 Ismét volt csak néhány funkció hívták, és ez nem egy kis hiba ellenőrzése. 346 00:25:18,820 --> 00:25:24,300 Voltak bizonyos bemenetek ezt a hibaellenőrzést - 347 00:25:24,300 --> 00:25:30,210 kellett volna lennie, mint, rendben, akkor nem hívja ezt a funkciót egy osztója 0-ra. 348 00:25:30,210 --> 00:25:35,070 Szóval, én megyek, hogy csak vissza néhány hiba. 349 00:25:35,070 --> 00:25:38,090 Kivéve, hogy nem volt olyan ártatlan, mint csak beállít egy 0-val egyenlő. 350 00:25:38,090 --> 00:25:46,920 Ehelyett ezt a kódsort végül csinál valami több hasonlót user = rendszergazda. 351 00:25:46,920 --> 00:25:50,500 Vagy user = superuser. 352 00:25:50,500 --> 00:25:59,170 Ez egy ártatlan - első ránézésre - hiba, ha lehetett volna éppen elfogadható 353 00:25:59,170 --> 00:26:01,560 Csak azt akartam, hogy a jelentést valami különleges 354 00:26:01,560 --> 00:26:05,150 ha a felhasználó véletlenül a rendszergazda rendszergazda. 355 00:26:05,150 --> 00:26:11,220 De aztán újra gondolkodtam rajta, az a személy, szerette volna, hogy néz ki, mint egy egyszerű elírás, 356 00:26:11,220 --> 00:26:14,330 de ha ez a kód ténylegesen megjelent, 357 00:26:14,330 --> 00:26:21,580 akkor tudta volna, hogy törjenek be minden olyan rendszer átadásával külön zászló - 358 00:26:21,580 --> 00:26:25,200 Ebben az esetben a b = 0 - 359 00:26:25,200 --> 00:26:28,020 és ez automatikusan, hogy a felhasználó a rendszergazda, 360 00:26:28,020 --> 00:26:30,400 és akkor teljes hozzáféréssel rendelkezik. 361 00:26:30,400 --> 00:26:32,540 Ez történt 2003-ban. 362 00:26:32,540 --> 00:26:35,700 >> Ez csak azért történt, hogy az egyetlen ok fogták 363 00:26:35,700 --> 00:26:39,200 volt, mert ott történt, hogy néhány automatizált rendszer 364 00:26:39,200 --> 00:26:41,540 hogy észrevette a változást ebben a fájlban 365 00:26:41,540 --> 00:26:44,560 amely soha nem kellett volna megváltoztatni egy ember. 366 00:26:44,560 --> 00:26:47,580 A fájl csak akkor volna automatikusan generált. 367 00:26:47,580 --> 00:26:49,780 Ez csak azért történt, hogy valaki megérintette - 368 00:26:49,780 --> 00:26:52,460 Nos, az a személy, aki akart feltörni megérintette a fájlt, 369 00:26:52,460 --> 00:26:55,450 és a számítógép között, hogy a kifogott megható. 370 00:26:55,450 --> 00:27:01,750 Szóval, megváltoztatták ezt, és csak később rájött, micsoda katasztrófa lett volna 371 00:27:01,750 --> 00:27:04,830 ha ez ütött ki a valós világban. 372 00:27:04,830 --> 00:27:08,220 >> Lehet, hogy arra gondolt, hogy - jön vissza a fordító példa - 373 00:27:08,220 --> 00:27:14,290 még ha nem látjuk - nézett a forráskód - 374 00:27:14,290 --> 00:27:17,490 hogy valami különösen rossz, 375 00:27:17,490 --> 00:27:25,460 ha tényleg nézd meg a bináris kód fordító, 376 00:27:25,460 --> 00:27:28,670 szeretnénk látni, hogy valami nincs rendben. 377 00:27:28,670 --> 00:27:31,260 Például, ha fut a húrok működnek - 378 00:27:31,260 --> 00:27:34,930 amely csak megy, hogy nézd át a fájlt, és nyomtassa ki az összes húrt, hogy megtalálja - 379 00:27:34,930 --> 00:27:37,990 ha fut húrok a mi fordító, 380 00:27:37,990 --> 00:27:42,400 azt látjuk, hogy egy string, amely úgy találja, ez furcsa - 381 00:27:42,400 --> 00:27:45,500 else if (strcmp (username, "hacker") - bla, bla, bla. 382 00:27:45,500 --> 00:27:52,570 Ha valaki történetesen paranoiás ahhoz, hogy nem bízik a fordító, 383 00:27:52,570 --> 00:27:56,690 tudtak futni vonósok és látja ezt, 384 00:27:56,690 --> 00:28:00,430 és akkor tudni fogja, hogy valami baj van a tényleges bináris. 385 00:28:00,430 --> 00:28:07,250 De, vonósok volt valami, ami elkerülhetetlenül állítottak össze. 386 00:28:07,250 --> 00:28:11,590 Szóval, ki kell mondanom, hogy a fordító nem csak több speciális kódot 387 00:28:11,590 --> 00:28:19,240 azt mondja, ha a húrok valaha is fut a fordító, nem kapcsoló minden e rosszindulatú kódot. 388 00:28:19,240 --> 00:28:23,980 >> Ugyanez a gondolat az, ha azt akarjuk, hogy kijelzőn összerakni a file - 389 00:28:23,980 --> 00:28:30,440 megtudtuk, hogy az assembler hoz minket assembly kódot a gépi kód - 390 00:28:30,440 --> 00:28:36,010 mehetünk az ellenkező irányba - objdump-d fordító - 391 00:28:36,010 --> 00:28:38,770 megadja nekünk a közgyűlés a mi kódot. 392 00:28:38,770 --> 00:28:41,730 Nézi most ezt, 393 00:28:41,730 --> 00:28:47,480 ez elég rejtélyes, de ha volna, tudtuk nézni ezen keresztül 394 00:28:47,480 --> 00:28:51,700 és az értelem, várj, van valami folyik itt, amelyeket nem szabad folyik, 395 00:28:51,700 --> 00:28:59,380 és aztán elismeri, hogy a fordító csinál valamit rosszindulatú. 396 00:28:59,380 --> 00:29:03,950 De, mint vonósok, ki mondta objdump nem volt különleges tokozású. 397 00:29:03,950 --> 00:29:11,380 Alapvetően ez jön le, hogy nem lehet bízni semmit. 398 00:29:11,380 --> 00:29:14,310 A lényeg a papír úgynevezett "Bízva Trust" a 399 00:29:14,310 --> 00:29:17,900 általában, bízunk a fordító. 400 00:29:17,900 --> 00:29:21,700 Te fordítsd a kódot, és elvárják, hogy amit kérsz tőle. 401 00:29:21,700 --> 00:29:26,440 De miért, ha megbízik a fordító? 402 00:29:26,440 --> 00:29:32,120 Nem írja a fordító. Te nem tudod, mi a fordító szükségképpen ténylegesen csinál. 403 00:29:32,120 --> 00:29:36,870 Ki mondta, hogy bízhatsz meg? 404 00:29:36,870 --> 00:29:40,050 De még akkor is, nos, talán bízhatunk a fordító. 405 00:29:40,050 --> 00:29:44,670 Vannak több tízezer ember, akik megnézték ezt. 406 00:29:44,670 --> 00:29:51,360 Valaki felismerte, valami fel a fordító. 407 00:29:51,360 --> 00:29:55,100 >> Mi lenne, ha csak megy 1 szinttel mélyebbre? 408 00:29:55,100 --> 00:29:59,450 Még az is a processzor. 409 00:29:59,450 --> 00:30:01,250 A nevetséges, mert esetleg lehet, 410 00:30:01,250 --> 00:30:06,690 talán van valami gazember munkavállaló az Intelnél, aki létrehoz ilyen processzorokkal 411 00:30:06,690 --> 00:30:12,400 hogy ha a processzor észleli, hogy futsz néhány parancs 412 00:30:12,400 --> 00:30:14,570 ami azt jelentette, hogy jelentkezzen be a számítógépre, 413 00:30:14,570 --> 00:30:19,230 a processzor is elfogadja bizonyos felhasználónév és jelszó kombinációt. 414 00:30:19,230 --> 00:30:21,530 Lenne vadul bonyolult, 415 00:30:21,530 --> 00:30:24,790 de valaki csinálni. 416 00:30:24,790 --> 00:30:29,350 Ezen a ponton, te tényleg lesz, hogy nyissa meg a számítógépet, hogy nézd meg a processzor 417 00:30:29,350 --> 00:30:35,970 és használja a mikroszkóp, hogy ismerje el, hogy ezek a körök nem sorakoznak fel, mint ahogy kellene? 418 00:30:35,970 --> 00:30:39,730 Senki sem fog elkapni, hogy hiba. 419 00:30:39,730 --> 00:30:45,570 Egy bizonyos ponton, akkor csak meg kell adnia, és bíznak valamit. 420 00:30:45,570 --> 00:30:48,390 A legtöbb ember nem bízik a fordító ezen a ponton. 421 00:30:48,390 --> 00:30:55,760 Ez azt jelenti, hogy nem feltétlenül kellene. 422 00:30:55,760 --> 00:30:59,350 Keresek egy némileg hírhedt videó - 423 00:30:59,350 --> 00:31:09,280 [Drámai zene] 424 00:31:09,280 --> 00:31:13,270 [Ez egy UNIX rendszer. Tudom, hogy ez.] 425 00:31:13,270 --> 00:31:14,470 [Ez az összes fájlt -] 426 00:31:14,470 --> 00:31:18,950 Azt mondta: "Ez egy UNIX rendszer. Ismerem ezt." 427 00:31:18,950 --> 00:31:21,760 Cserélje UNIX, bármilyen kedvenc operációs rendszer - 428 00:31:21,760 --> 00:31:25,230 tudta azt mondta: "Ez a Windows rendszerrel. Ismerem ezt." 429 00:31:25,230 --> 00:31:29,710 Ez egy teljesen értelmetlen állítás, 430 00:31:29,710 --> 00:31:34,450 de mi tudjuk, ő lesz tudni, hogy a hátsó ajtón a UNIX rendszer. 431 00:31:34,450 --> 00:31:38,840 Tudja, néhány felhasználónév / jelszó párost, hogy valóban engedte 432 00:31:38,840 --> 00:31:41,540 csinál, amit akar. 433 00:31:41,540 --> 00:31:49,000 >> Rendben van. Az erkölcsi mai alapvetően nem bízhatsz semmit. 434 00:31:49,000 --> 00:31:52,620 Még dolgokat írsz -, hogy nem írja a fordító. 435 00:31:52,620 --> 00:31:53,870 A fordító lehet rossz. 436 00:31:53,870 --> 00:31:59,140 Még ha meg is írtam a fordító, a dolog, hogy fut a fordító lehet rossz. 437 00:31:59,140 --> 00:32:05,210 (Nevet) Nem sokat tehetünk. 438 00:32:05,210 --> 00:32:09,050 A világ halálra van ítélve. 439 00:32:09,050 --> 00:32:11,570 Vissza a David! 440 00:32:11,570 --> 00:32:19,540 [Taps] 441 00:32:19,540 --> 00:32:21,340 >> [David] Köszönöm. Ez nagyon lehangoló. 442 00:32:21,340 --> 00:32:23,910 De valóban, Rob helyes. 443 00:32:23,910 --> 00:32:27,150 Nem igazán van megoldás, de te arról, hogy néhány megoldást 444 00:32:27,150 --> 00:32:29,150 néhány gyakrabban védelmet. 445 00:32:29,150 --> 00:32:31,170 A felkészülés ezen, amit Nate és én már ennek színpadról ott 446 00:32:31,170 --> 00:32:33,950 az tudja, hogy olyan sok laptop ebben a szobában, 447 00:32:33,950 --> 00:32:37,020 mi már szippantás az összes vezeték nélküli forgalom megy keresztül ez a szoba az elmúlt 20 perc 448 00:32:37,020 --> 00:32:39,260 alatt Rob beszéde, így megyünk, hogy egy 2 perces szünet van. 449 00:32:39,260 --> 00:32:41,740 Nate fog létrehozni, majd fogunk beszélni az összes cucc 450 00:32:41,740 --> 00:32:46,380 tudtuk volna találni. (Nevetés) 451 00:32:46,380 --> 00:32:51,990 >> Szóval, lehet, hogy túlzó egy kicsit csak a kedvéért dráma, 452 00:32:51,990 --> 00:32:55,990 de lehetett volna szippantás az összes vezeték nélküli forgalom, mert valóban, 453 00:32:55,990 --> 00:32:57,240 ez ilyen egyszerű. 454 00:32:57,240 --> 00:32:59,790 De vannak még módon lehet védekezni ez ellen, és így azzal, 455 00:32:59,790 --> 00:33:03,160 Adok Nate Hardison. >> [Nate] Sweet. 456 00:33:03,160 --> 00:33:06,300 (Taps) 457 00:33:06,300 --> 00:33:08,650 >> [Nate] Kösz, haver. Nagyra értékelem a shout ki. 458 00:33:08,650 --> 00:33:12,790 Rendben! Ez a játék a héten. Vagytok izgatott? 459 00:33:12,790 --> 00:33:16,670 Remélhetőleg ez lesz a nagy meccs szombaton. 460 00:33:16,670 --> 00:33:20,220 El tudom képzelni, srácok ezen a ponton - tekintettel arra, hogy van egy kvíz szerdán 461 00:33:20,220 --> 00:33:24,430 minden a kódot, és csak ültünk egy csodálatos előadása Rob 462 00:33:24,430 --> 00:33:25,850 egy csomó C kód, hogy - 463 00:33:25,850 --> 00:33:28,330 az talán egy kicsit belefáradt a kódot. 464 00:33:28,330 --> 00:33:32,180 Ebben a részben, mi valójában nem fog érjen kód nélkül. 465 00:33:32,180 --> 00:33:36,960 Mi csak úgy beszélni egy olyan technológia, hogy használja minden nap, 466 00:33:36,960 --> 00:33:39,790 gyakran sok-sok órát egy nap, 467 00:33:39,790 --> 00:33:46,220 és mi beszélni következményeiről biztonsági, hogy vannak. 468 00:33:46,220 --> 00:33:48,960 >> Már sokat beszéltünk biztonsági során a félév, 469 00:33:48,960 --> 00:33:53,030 és mi indult egy kis crypto. 470 00:33:53,030 --> 00:33:55,030 [Bdoh lv vwlqng!] 471 00:33:55,030 --> 00:33:57,890 És amíg ti valószínűleg szuper izgatott, hogy halad megjegyzések egymással 472 00:33:57,890 --> 00:33:59,890 osztályban egy Caesar titkosírás, mint ez, 473 00:33:59,890 --> 00:34:03,870 a valóságban, van még egy kis móka volt, amikor ténylegesen beszélsz biztonság 474 00:34:03,870 --> 00:34:05,870 és ez a fajta dolog. 475 00:34:05,870 --> 00:34:09,090 Ma megyünk, hogy fedezze egy pár technológiák 476 00:34:09,090 --> 00:34:13,650 hogy az emberek ténylegesen használni a valós világban, hogy minden dolgot 477 00:34:13,650 --> 00:34:18,360 származó szippantás emberek csomagokat ténylegesen megy, és 478 00:34:18,360 --> 00:34:20,409 betörni az emberek bankszámlák és minden adott. 479 00:34:20,409 --> 00:34:23,460 Ezek jogos eszközök beszélünk 480 00:34:23,460 --> 00:34:26,320 kivéve esetleg egy szerszám. 481 00:34:26,320 --> 00:34:28,889 >> És én csak azt szeretném, hogy egy gyors nyilatkozatot. 482 00:34:28,889 --> 00:34:34,909 Amikor beszélünk ezekről a dolgokról, beszélünk róluk, hogy tudd, mi van odakint, 483 00:34:34,909 --> 00:34:39,389 és te tisztában, hogyan lehet biztonságban, ha éppen ki használja a számítógépet. 484 00:34:39,389 --> 00:34:44,000 De biztosan nem akarjuk azt sugallni, hogy kell használni ezeket az eszközöket 485 00:34:44,000 --> 00:34:48,090 a kollégiumi vagy a házat, mert akkor befut sok nagy kérdés. 486 00:34:48,090 --> 00:34:52,760 Ez az egyik oka, hogy ma már tulajdonképpen nem szippantás a csomagokat. 487 00:34:52,760 --> 00:35:01,300 >> Rendben van. Múlt hétfő, beszélgettünk cookie-kat, és a HTTP, és a hitelesítés, 488 00:35:01,300 --> 00:35:05,920 és hogyan Firesheep megnyitja ezt a nagy ajtó be Facebook számla, 489 00:35:05,920 --> 00:35:08,670 a Hotmail-fiók - ha valaki még mindig a Hotmail - 490 00:35:08,670 --> 00:35:12,360 és sok más számlák. 491 00:35:12,360 --> 00:35:16,980 Sok ez a cucc fog építeni le, hogy a 492 00:35:16,980 --> 00:35:22,070 de először azt akarom, hogy egy gyors túra, hogyan fejlődött az internet idővel. 493 00:35:22,070 --> 00:35:27,490 Vissza a 90-es években, ti talán emlékeznek ténylegesen csatlakoztatása 494 00:35:27,490 --> 00:35:29,880 számítógépek egy ilyen. 495 00:35:29,880 --> 00:35:32,640 Most már ezt nem tesszük, hogy annyira már. 496 00:35:32,640 --> 00:35:37,230 Ez ténylegesen kiderül, hogy annak érdekében, hogy csatlakoztassa az Ethernet kábelt a laptop, 497 00:35:37,230 --> 00:35:41,710 Most kell használni egy ilyen adapterek ami elég őrült. 498 00:35:41,710 --> 00:35:47,580 >> Ehelyett 1997-ben volt az új, szórakoztató technológia 499 00:35:47,580 --> 00:35:54,960 kiderült, hogy az úgynevezett IEEE 802.11, így ez a vezeték nélküli internet-szabvány 500 00:35:54,960 --> 00:36:00,430 Az IEEE ez az irányító testület ad ki mindenféle - 501 00:36:00,430 --> 00:36:04,770 közzéteszi mindenféle szabványok kapcsolatos számítógépek. 502 00:36:04,770 --> 00:36:08,780 A 802 szabványok szólnak internetes technológiák. 503 00:36:08,780 --> 00:36:12,690 Így 802.3, például, az Ethernet szabvány, 504 00:36:12,690 --> 00:36:17,120 802.15.1 Úgy vélem, az a Bluetooth szabvány, 505 00:36:17,120 --> 00:36:19,540 és 802,11 szól vezeték nélküli internet. 506 00:36:19,540 --> 00:36:24,150 1997-ben ez jött ki. Nem egészen fogás azonnal. 507 00:36:24,150 --> 00:36:30,200 Nem volt 1999-ig, és a 802.11b szabvány jött ki, hogy csak most nagyon népszerű. 508 00:36:30,200 --> 00:36:36,330 >> Hányan emlékeznek, amikor a számítógépek jöttek ki, és egyre wi-fi rájuk? 509 00:36:36,330 --> 00:36:38,330 Ez volt az a fajta jó, mi? 510 00:36:38,330 --> 00:36:41,260 Emlékszem, kapok az első laptop a középiskolában, 511 00:36:41,260 --> 00:36:44,250 és volt egy vezeték nélküli kártyát. 512 00:36:44,250 --> 00:36:49,580 Az apám adta nekem, és azt mondta, hogy nekem kell használni az én főiskolai alkalmazások és az összes, hogy a 513 00:36:49,580 --> 00:36:53,030 , és fogalmam sem volt, hogyan fogok nézni ezt a cuccot online. 514 00:36:53,030 --> 00:36:54,640 De szerencsére volt egy vezeték nélküli kártya, így volt elég jó. 515 00:36:54,640 --> 00:37:04,090 Manapság, akkor is látni 802.11g, amely egy másik nagyon népszerű 516 00:37:04,090 --> 00:37:06,090 vezeték nélküli szabványok van odakint. 517 00:37:06,090 --> 00:37:08,660 Mind a b és g nagyon elavultak ezen a ponton. 518 00:37:08,660 --> 00:37:12,580 Tudja valaki, hogy milyen verziójú a legtöbb ember a most 519 00:37:12,580 --> 00:37:15,110 ha veszel új vezeték nélküli routerek és ilyesmi? 520 00:37:15,110 --> 00:37:24,290 N. Pontosan. Bingo. És kiderül, hogy a hálózati szabvány, csak jön ki a tervezet, 521 00:37:24,290 --> 00:37:28,050 és vannak egyéb verziói az úton. 522 00:37:28,050 --> 00:37:31,190 Ezekkel szabványok mi vagyunk egyre több sávszélesség, 523 00:37:31,190 --> 00:37:33,900 több adat gyorsabb ütemben. 524 00:37:33,900 --> 00:37:36,260 Ezek a dolgok folyamatosan változnak elég gyorsan. 525 00:37:36,260 --> 00:37:39,880 Teszi továbbá, hogy meg kell vásárolni több útvonal, és minden ami szórakoztató dolgokat. 526 00:37:39,880 --> 00:37:48,160 >> Beszéljünk arról, hogy mi a vezeték nélküli kommunikáció valójában saját mag. 527 00:37:48,160 --> 00:37:51,790 Az Ethernet és a régi betárcsázós modemek, 528 00:37:51,790 --> 00:37:55,780 valóban volt ez a dolog, hogy csatlakozik a számítógéphez, 529 00:37:55,780 --> 00:37:59,820 és akkor csatlakozik a modem a fajta, és akkor csatlakozik be a jack a falon. 530 00:37:59,820 --> 00:38:01,820 Nem volt ez a vezetékes kapcsolat, ugye? 531 00:38:01,820 --> 00:38:06,030 Az egész pont nélküli egyre eltűnjön ez a cucc. 532 00:38:06,030 --> 00:38:10,300 Ahhoz, hogy ezt megtehessük, amink van alapvetően 533 00:38:10,300 --> 00:38:13,960 a rádió kommunikációs, ahol a vezeték nélküli router - 534 00:38:13,960 --> 00:38:16,230 által kijelölt, a mi kis nélküli ikon - 535 00:38:16,230 --> 00:38:21,730 csatlakozik az Internet e szilárd nyíl valamiféle vezetékes kapcsolat, 536 00:38:21,730 --> 00:38:24,640 de amikor csatlakozni a vezeték nélküli router 537 00:38:24,640 --> 00:38:29,190 Ön ténylegesen használt majdnem olyan, mint egy walkie-talkie között 538 00:38:29,190 --> 00:38:31,960 A számítógép és a vezeték nélküli router. 539 00:38:31,960 --> 00:38:35,150 Mi nagyon klassz erről, lehet mozogni. 540 00:38:35,150 --> 00:38:40,900 Ön el tudja látni a számítógép egész Sanders, menj szörfözhet az interneten, amit csak akarsz, 541 00:38:40,900 --> 00:38:43,240 akárcsak mindannyian ismerünk és szeretünk, 542 00:38:43,240 --> 00:38:46,030 és soha ne kell dugva semmit. 543 00:38:46,030 --> 00:38:53,880 Ahhoz, hogy ez működjön, mi mind e fogadása és továbbítása. 544 00:38:53,880 --> 00:38:56,060 Ez tényleg olyan, mint, hogy a walkie-talkie. 545 00:38:56,060 --> 00:39:03,800 >> Ez a vezeték nélküli router - ami Sanders ül alatt ebben a szakaszban, itt - 546 00:39:03,800 --> 00:39:06,590 mindig sugározza és fogadása, műsorszóró és fogadása, 547 00:39:06,590 --> 00:39:09,330 és hasonlóképpen, a számítógépek mind csinál, hogy ugyanaz a fajta dolog is. 548 00:39:09,330 --> 00:39:12,840 Csak nem hallja meg. 549 00:39:12,840 --> 00:39:17,900 A másik dolog, amit tehetünk, akkor több számítógép 550 00:39:17,900 --> 00:39:22,200 beszél ugyanahhoz a vezeték nélküli router. 551 00:39:22,200 --> 00:39:25,680 Minél közelebb van a router - és újra, ez egy rádió kommunikációs - 552 00:39:25,680 --> 00:39:30,320 minél közelebb van, annál jobb a jel, annál jobb a számítógép "hallja" a router 553 00:39:30,320 --> 00:39:32,460 és képes kommunikálni az interneten. 554 00:39:32,460 --> 00:39:39,520 Ha a srácok valaha az a kollégiumi, a házad, és kíváncsi, hogy miért a jel rossz, 555 00:39:39,520 --> 00:39:42,230 ez valószínűleg azért, mert a.) te nem nagyon közel van a router, vagy 556 00:39:42,230 --> 00:39:46,930 b). van valami közted és a router, mint a cement fal vagy valami 557 00:39:46,930 --> 00:39:50,720 amely nem engedi a rádióhullámok megy keresztül. 558 00:39:50,720 --> 00:39:57,850 >> Beszéljünk egy kicsit arról, hogy miért rossz fiúk, mint a wi-fi. 559 00:39:57,850 --> 00:40:02,980 Rossz fiúk szeretik wi-fi, néhány okból. 560 00:40:02,980 --> 00:40:06,670 Itt a csúnya rossz fiú ott. 561 00:40:06,670 --> 00:40:10,660 Az egyik oka annak, hogy ez a rossz fiú szereti a wi-fi 562 00:40:10,660 --> 00:40:18,770 azért van, mert alapértelmezés szerint egy csomó vezeték nélküli router jöjjön, és ha beállította őket, 563 00:40:18,770 --> 00:40:20,950 ők nem titkosított. 564 00:40:20,950 --> 00:40:23,970 Ez volt a probléma, és volt példa - 565 00:40:23,970 --> 00:40:28,210 Több esetben, most - ha rosszfiú felbukkan valaki házába, 566 00:40:28,210 --> 00:40:32,630 észreveszi, hogy van egy nem titkosított Wi-Fi, amelyekhez csatlakozni tudnak. 567 00:40:32,630 --> 00:40:37,350 Ezek csatlakozni a wi-fi, és akkor elkezd letöltő mindenféle szórakoztató dolgokat. 568 00:40:37,350 --> 00:40:40,890 És ők nem letöltésben kiscicák, ők nem letöltésben kölykök. 569 00:40:40,890 --> 00:40:44,610 Ez olyan, mint a BitTorrent. Ez a csúnya a legcsúnyább. 570 00:40:44,610 --> 00:40:48,740 Vannak olyan esetek, amikor az FBI még ütött érintett 571 00:40:48,740 --> 00:40:52,390 arra gondoltam, hogy az a személy, aki rendelkezik a ház valójában az egyik 572 00:40:52,390 --> 00:40:56,090 megy ki és letöltésben dolgokat, hogy tényleg nem kell. 573 00:40:56,090 --> 00:41:00,730 Miután nem titkosított Wi-Fi biztosan nem az, amit akarok, 574 00:41:00,730 --> 00:41:06,340 ha csak nem az FBI jön kopogtat az ajtón. 575 00:41:06,340 --> 00:41:09,910 >> A másik ok, amiért a rosszfiúkat szeretik wi-fi 576 00:41:09,910 --> 00:41:13,870 az oka, hogy David beszélt korábban a szünetben. 577 00:41:13,870 --> 00:41:17,240 Mert ez egy rádió-kommunikáció fő, 578 00:41:17,240 --> 00:41:22,460 Ha ismeri a csatorna, akkor figyelj arra a rádióállomást. 579 00:41:22,460 --> 00:41:31,870 Például, ha van egy rossz ott ül a közepén közvetlenül a hozzáférési pont, 580 00:41:31,870 --> 00:41:36,830 közvetlenül, hogy a vezeték nélküli router, a rosszfiút is hallgat az összes vezeték nélküli forgalom 581 00:41:36,830 --> 00:41:40,240 ami jön az összes ilyen számítógépek. 582 00:41:40,240 --> 00:41:44,590 Tény, hogy ezek a srácok - ezek a szerencsés kevesek, akik itt az első sorban - 583 00:41:44,590 --> 00:41:47,610 mert szuper közel az összes ilyen vezeték nélküli router 584 00:41:47,610 --> 00:41:49,950 hogy üljön csak alatta a színpadon, 585 00:41:49,950 --> 00:41:53,780 képesek lennének hallani mindenki a forgalom az egész szobában 586 00:41:53,780 --> 00:41:59,480 ha csatlakozik a Wi-Fi és kezdje meg a böngészést ezen keresztül hozzáférési pontokat. 587 00:41:59,480 --> 00:42:03,740 Ez nem túl nehéz, hogy üljön magát jó helyzetben, hogy szippantás és kitalálni 588 00:42:03,740 --> 00:42:07,030 , hogy mások mit csinálnak. 589 00:42:07,030 --> 00:42:10,830 Ez valami olyasmi, hogy tartsa szem előtt, különösen, ha nem biztos benne, ha a hozzáférési pont, 590 00:42:10,830 --> 00:42:15,010 és te böngészést mondjuk, egy Starbucks. 591 00:42:15,010 --> 00:42:17,360 >> Kiderült, hogy szippantás és minden adott 592 00:42:17,360 --> 00:42:19,440 valójában nem olyan nehéz megtenni. 593 00:42:19,440 --> 00:42:25,430 Van egy program neve tcpdump amely guba mindenféle TCP forgalom 594 00:42:25,430 --> 00:42:29,910 és tudod futtatni elég egyszerűen és - csakúgy, mint én tettem ma reggel. 595 00:42:29,910 --> 00:42:32,810 Itt egy kicsit a lerakó, és itt van néhány a forgalom jött át 596 00:42:32,810 --> 00:42:34,960 a hálózat abban az időben. 597 00:42:34,960 --> 00:42:41,500 Láthatjuk - ha kancsal nagyon nehéz - van egy kis Spotify ott. 598 00:42:41,500 --> 00:42:44,050 A tetején tcpdump -, mert ez egyfajta fájdalom használni - 599 00:42:44,050 --> 00:42:48,860 Van egy program neve Wireshark amely összefogja ezt az egészet egy szép GUI. 600 00:42:48,860 --> 00:42:51,970 Wireshark szuper-praktikus, így ha elmész, hogy hálózati osztályok, 601 00:42:51,970 --> 00:42:56,780 ez egy olyan eszköz, amely akkor jön szeretni, mert segít boncolgatni az összes csomagot 602 00:42:56,780 --> 00:42:59,400 amelyek lebeg odakint. 603 00:42:59,400 --> 00:43:01,810 De ez is használható rossz. 604 00:43:01,810 --> 00:43:05,810 Ez nagyon egyszerű, csak le kell tölteni ezt a programot, indítsa fel, 605 00:43:05,810 --> 00:43:09,300 elindításához hálózat befogás, és nézd meg mindent, ami folyik - 606 00:43:09,300 --> 00:43:14,130 , és szűrjük le, és nem mindenféle szórakoztató dolgokat vele. 607 00:43:14,130 --> 00:43:17,930 >> A másik dolog, amit tehetünk, a vezeték nélküli kommunikáció 608 00:43:17,930 --> 00:43:25,380 nem csak tudja kihallgatni, de akkor is megtanulják, hogyan csavarja a hálózati 609 00:43:25,380 --> 00:43:31,020 és fecskendezze Saját adatok ellenőrzésére a tapasztalat, hogy más emberek 610 00:43:31,020 --> 00:43:35,140 ugyanazon a vezeték nélküli hálózat egyre. 611 00:43:35,140 --> 00:43:37,140 Vessünk egy pillantást. 612 00:43:37,140 --> 00:43:40,700 Itt Firesheep - amelyet ismerünk és szeretünk a múlt héten - 613 00:43:40,700 --> 00:43:43,590 amely szerint lehallgatás technológia. 614 00:43:43,590 --> 00:43:50,360 Ha például, azt akartuk, hogy aktívan megvan a rossz fiú tovább és rendetlenség körül 615 00:43:50,360 --> 00:43:52,690 az egyik ilyen számítógép, 616 00:43:52,690 --> 00:43:58,380 ebben az esetben megvan a számítógép próbál menni surf a harvard.edu. 617 00:43:58,380 --> 00:44:04,690 Mi történik, a számítógép első üzenetet küld a vezeték nélküli router, és azt mondja, 618 00:44:04,690 --> 00:44:07,920 hé, akarok menni látogatásra www.harvard.edu. 619 00:44:07,920 --> 00:44:10,610 Mondjuk valamilyen okból akarnak információt szerezni a játék a hétvégén. 620 00:44:10,610 --> 00:44:14,940 Bad fickó, mert ő ül a közepén, 621 00:44:14,940 --> 00:44:18,730 közvetlenül az említett hozzáférési ponthoz, láthatjuk, hogy a kommunikáció a számítógépből érkező 622 00:44:18,730 --> 00:44:26,170 a router, és ő tudja, hogy "Aha! Valaki megy harvard.edu." (Gonoszul nevet) 623 00:44:26,170 --> 00:44:33,870 Ott lesz a várakozási idő, míg a kommunikáció megy a router 624 00:44:33,870 --> 00:44:37,780 ki az interneten, hogy menjen, és keresse a weboldal at harvard.edu-- 625 00:44:37,780 --> 00:44:42,020 mint ti mindannyian tudjuk, miután ezt a PHP psets - 626 00:44:42,020 --> 00:44:45,680 és így a rossz fiú van egy kis idő, egy kis ablak, 627 00:44:45,680 --> 00:44:49,410 amely tud válaszolni néhány dolgot. 628 00:44:49,410 --> 00:44:53,660 >> Tegyük fel, hogy ez a rossz fiú, természetesen, egy Yaley. 629 00:44:53,660 --> 00:44:59,990 Ő válaszol harvardsucks.org. Boo! 630 00:44:59,990 --> 00:45:02,300 Rossz, rossz fiú! Bad Yaley! 631 00:45:02,300 --> 00:45:06,020 Vagy ami még rosszabb, talán válaszolni ezt. [Http://youtu.be/ZSBq8geuJk0]. 632 00:45:06,020 --> 00:45:09,530 Szólok srácok kitalálni, hogy mi ez. 633 00:45:09,530 --> 00:45:14,840 Ez valójában egy technológia az úgynevezett Airpwn! amely debütált 634 00:45:14,840 --> 00:45:18,950 az egyik biztonsági konferenciák néhány évvel ezelőtt. 635 00:45:18,950 --> 00:45:25,190 A Airpwn! Ön tudja, hogy ténylegesen beadni forgalmat vissza a hálózatba. 636 00:45:25,190 --> 00:45:30,060 A számítógépek próbált kimenni az internetre, és próbál a 637 00:45:30,060 --> 00:45:33,090 Google.com, a Facebook.com, hogy harvard.edu 638 00:45:33,090 --> 00:45:39,190 lásd a rosszindulatú válasz jön, és azonnal feltételezik, oké, 639 00:45:39,190 --> 00:45:43,550 ez az a válasz, hogy vártam, és a végén egyre tartalom 640 00:45:43,550 --> 00:45:48,860 harvardsucks.org vagy nameyourfavoriteshocksite.com, 641 00:45:48,860 --> 00:45:55,270 és láthatjuk, hogy milyen gyorsan a dolgok romlani fog. 642 00:45:55,270 --> 00:46:00,190 >> Mindezek a dolgok nem hajtható végre 643 00:46:00,190 --> 00:46:05,870 ezekkel a vezetékes kapcsolat, mivel a vezetékes kapcsolat 644 00:46:05,870 --> 00:46:08,710 nehéz szaglászni a forgalom. 645 00:46:08,710 --> 00:46:13,020 Ha én vagyok a rossz fiú, és az egyik vége a számítógép 646 00:46:13,020 --> 00:46:14,460 és a másik végén van a router - modem - 647 00:46:14,460 --> 00:46:20,180 csak így tudok a kettő között, hogy a kapcsolat, hogy ténylegesen splice számítógép 648 00:46:20,180 --> 00:46:22,180 ben valahol középen 649 00:46:22,180 --> 00:46:26,820 vagy valami mást csinálni a router, valami után. 650 00:46:26,820 --> 00:46:33,360 De a vezeték nélküli, lehet olyan egyszerű, mint ül az első sorban egy osztályterem, 651 00:46:33,360 --> 00:46:38,200 és meg tudod csinálni mindenféle csúnya dolog, hogy az emberek a hátsó. 652 00:46:38,200 --> 00:46:41,570 >> Beszéljünk arról, hogy hogyan lehet megvédeni ezeket a dolgokat. 653 00:46:41,570 --> 00:46:46,860 Az emberek, akik kifejlesztették a vezeték nélküli szabványok - a 802,11 - 654 00:46:46,860 --> 00:46:50,820 ezek nem buta emberek bármely szakaszán a képzelet. 655 00:46:50,820 --> 00:46:56,110 Ez jó a technológia, és amikor debütált 1999-ben, 656 00:46:56,110 --> 00:47:00,780 hogy jött ki ez a standard nevű WEP. 657 00:47:00,780 --> 00:47:03,360 Itt látható, amikor megpróbál és csatlakozzon a vezeték nélküli hálózathoz, 658 00:47:03,360 --> 00:47:07,450 Van mindenféle különböző biztonsági beállításokat. 659 00:47:07,450 --> 00:47:11,800 Ez egyfajta fájdalom, mert a 6 együtt 660 00:47:11,800 --> 00:47:14,790 és ez nem igazán van értelme, amely 1-től csatlakozhat. 661 00:47:14,790 --> 00:47:19,190 Ez az 1 a tetején az első, hogy jött az úgynevezett WEP. 662 00:47:19,190 --> 00:47:27,960 WEP jelentése Wired Equivalent Privacy, azt hiszem, 663 00:47:27,960 --> 00:47:31,730 Nem Wireless Encryption Protocol, amely a közös helytelen elnevezés. 664 00:47:31,730 --> 00:47:36,170 Mert próbál adni magánélet egyenértékű és védelem 665 00:47:36,170 --> 00:47:40,590 megegyezik a vezetékes hálózathoz 666 00:47:40,590 --> 00:47:46,710 A WEP, mi történik, végül fel, 667 00:47:46,710 --> 00:47:52,300 van egy egyszerű, kis jelszót gépel, és arra szolgál, hogy titkosítani 668 00:47:52,300 --> 00:47:56,210 az összes kommunikációt a számítógép és az útválasztó. 669 00:47:56,210 --> 00:47:58,210 >> Mi a probléma a WEP igaz? 670 00:47:58,210 --> 00:48:01,470 A jelszó a WEP nagyon rövid, 671 00:48:01,470 --> 00:48:04,900 és mindenki használ, hogy pontosan ugyanazt a jelszót, 672 00:48:04,900 --> 00:48:07,610  és így igazán könnyű dekódolni. 673 00:48:07,610 --> 00:48:10,580 Szóval nagyon gyorsan az emberek rájöttek, hogy a WEP probléma volt, 674 00:48:10,580 --> 00:48:16,100 és az egyetlen ok, látod megjelenik még ez a kis fickó - 675 00:48:16,100 --> 00:48:18,890 vannak olyan régebbi rendszerek, amelyek nem használják WEP - 676 00:48:18,890 --> 00:48:25,710 mit kell helyette keresni a WPA és WPA2 szabványok még 677 00:48:25,710 --> 00:48:29,130 kiadott később. 678 00:48:29,130 --> 00:48:35,040 Ezek a rendszerek sokkal jobban megy a védelmet a vezeték nélküli internet. 679 00:48:35,040 --> 00:48:41,090 Igaz, akkor még mindig van néhány hackability. 680 00:48:41,090 --> 00:48:44,010 Vannak olyan eszközök, hogy ott mehet erre. 681 00:48:44,010 --> 00:48:47,490 Egy dolog, különösen azt, hogy lehet, hogy csúnya 682 00:48:47,490 --> 00:48:55,370 Ha csatlakozni és hitelesítette egy vezeték nélküli router, és használja valamilyen 683 00:48:55,370 --> 00:49:00,940 titkosított kommunikáció, kiderül, hogy egy hacker könnyen küldeni egy csomagot 684 00:49:00,940 --> 00:49:03,990 húzza ki Önt a router, 685 00:49:03,990 --> 00:49:07,220 és egyszer már le akkor tudnak majd hallgatni in - 686 00:49:07,220 --> 00:49:11,800 tudják szippantás azokat a csomagokat, ahogy próbálja meg újra létrehozni a kapcsolatot a router. 687 00:49:11,800 --> 00:49:16,800 És ezt az információt tudnak majd menni, és dekódolja a többi a kommunikáció. 688 00:49:16,800 --> 00:49:24,580 Ez nem minden eszközzel, bármilyen biztonságos túl minden képzeletet. 689 00:49:24,580 --> 00:49:30,060 >> A másik dolog, amit tehetünk, ha éppen létrehozása vezeték nélküli hálózatok 690 00:49:30,060 --> 00:49:35,460 vagy te egyesíti őket is - úgy látja, hogy itt, amikor én csatlakozott ehhez a hálózathoz, 691 00:49:35,460 --> 00:49:37,640 azt kéri, hogy a nevét a hálózaton. 692 00:49:37,640 --> 00:49:41,060 Ez is ismert, mint a SSID. 693 00:49:41,060 --> 00:49:48,610 És látod, hogy itt a jobb oldalon van egy doboz, amely megmutatja nekem a rendelkezésre álló SSID. 694 00:49:48,610 --> 00:49:52,690 Van egy Harvard Egyetem, a CS50 és CS50 Staff hálózat. 695 00:49:52,690 --> 00:49:59,180 Most, hogy sokan közületek tudta, hogy volt egy CS50 személyzeti hálózatot körül? 696 00:49:59,180 --> 00:50:01,910 Néhányan közületek. Nem minden tőled. 697 00:50:01,910 --> 00:50:08,800 A probléma ezzel természetesen az, hogy még mi sem, hogy ezt ki a listán az SSID, 698 00:50:08,800 --> 00:50:10,930 senki sem tudta volna róla a legvalószínűbb. 699 00:50:10,930 --> 00:50:16,090 Remélem. Hacsak ti mindannyian próbálják feltörni a mi vezeték nélküli. 700 00:50:16,090 --> 00:50:18,700 De ez valami, amit tehetünk, hogy az igazán fontos, ha éppen létrehozása 701 00:50:18,700 --> 00:50:20,280 a router otthon. 702 00:50:20,280 --> 00:50:22,820 Ez valószínűleg nem fog megtörténni, néhány évig a sok neked, 703 00:50:22,820 --> 00:50:29,010 de ne feledje, hogy tartani, hogy az SSID-onnan, és nem is az elnevezési 704 00:50:29,010 --> 00:50:34,630 valami szuper-common segít megőrizni Ön nagyobb biztonságban hosszú távon. 705 00:50:34,630 --> 00:50:38,070 >> Az utolsó pár dolog, amit tehetünk. Az egyik HTTPS. 706 00:50:38,070 --> 00:50:44,760 Ha egy Starbucks, ha egy nyilvános wi-fi terület 707 00:50:44,760 --> 00:50:52,620 , és úgy dönt, hogy hozzáférjen a bankszámlájára, elérheti a Gmail, a Facebook, 708 00:50:52,620 --> 00:50:56,140 győződjön meg arról, hogy ezek a kapcsolatok megy HTTPS protokollon keresztül. 709 00:50:56,140 --> 00:50:59,800 Ez egy hozzáadott biztonsági réteget, a hozzáadott réteg titkosítást. 710 00:50:59,800 --> 00:51:01,520 Az egy dolog, hogy tartsa szem előtt itt, 711 00:51:01,520 --> 00:51:04,740 hány valaha kattintott át, hogy a nagy, piros kijelző, amely azt mondja, 712 00:51:04,740 --> 00:51:07,480 "Ez az oldal lehet rossz." 713 00:51:07,480 --> 00:51:09,710 Tudom, hogy van. 714 00:51:09,710 --> 00:51:13,090 Talán, amikor az összes böngészés nézd Homeland vagy ilyesmi, ugye? 715 00:51:13,090 --> 00:51:19,900 Igen. (A közönség nevet) Igen. Tessék. Tudjuk, hogy ki figyeli Homeland. 716 00:51:19,900 --> 00:51:24,540 Ez a nagy, piros kijelző ott 717 00:51:24,540 --> 00:51:28,600 gyakran azt jelzi, hogy valami funky folyik. 718 00:51:28,600 --> 00:51:32,530 Néha ez csak a honlap maga is bizonytalan, 719 00:51:32,530 --> 00:51:35,520 de ugyanazt a nagy, vörös képernyő jön fel, amikor az emberek megpróbálják 720 00:51:35,520 --> 00:51:37,520 szerelt hálózati támadások rád. 721 00:51:37,520 --> 00:51:40,220 Tehát, ha azt látja, hogy nagy, vörös képernyő jön fel a Starbucks, 722 00:51:40,220 --> 00:51:42,440 ne kattintson rajta. 723 00:51:42,440 --> 00:51:45,350 Rossz hír. Rossz hír viseli. 724 00:51:45,350 --> 00:51:51,490 >> Az utolsó dolog, akkor nézd meg 725 00:51:51,490 --> 00:51:54,120 valamiféle VPN. 726 00:51:54,120 --> 00:52:00,280 Ez a VPN keresztül érhető Harvard - vpn.fas.harvard.edu-- 727 00:52:00,280 --> 00:52:03,260 és hogy ez mit jelent ez valójában létrehozza a biztonságos kapcsolat 728 00:52:03,260 --> 00:52:06,460 közted és a Harvard, csatornák a forgalom rajta, 729 00:52:06,460 --> 00:52:12,160 és így ha ül a helyén, mint a Starbucks 730 00:52:12,160 --> 00:52:19,030 tudsz kapcsolódni a Harvard, kap, hogy a biztonságos közlekedés, majd keresse a Harvardon. 731 00:52:19,030 --> 00:52:21,950 Ismét nem üzembiztos. Az emberek lehet kapni a közepén. 732 00:52:21,950 --> 00:52:25,850 Ezek elkezd törni, de ez sokkal biztonságosabb, mint támaszkodva a biztonsági 733 00:52:25,850 --> 00:52:28,620 A wi-fi egyedül. 734 00:52:28,620 --> 00:52:32,570 >> Rendben van. Összefoglalva, 735 00:52:32,570 --> 00:52:34,580 ha létrehozása vezeték nélküli hálózatok, 736 00:52:34,580 --> 00:52:37,250 ha elmegy a vezeték nélküli nyilvános - 737 00:52:37,250 --> 00:52:43,430 hogy ez egy Starbucks, hogy ez Five Guys, hogy ez B.Good, 738 00:52:43,430 --> 00:52:46,440 valami ilyesmi, hogy - függetlenül attól, hogy wi-fi - 739 00:52:46,440 --> 00:52:48,440 tudatában kell lennie a környéken. 740 00:52:48,440 --> 00:52:50,440 Légy tudatában annak, amit az emberek tehetnek. 741 00:52:50,440 --> 00:52:53,890 És biztonságos. Ne hozzáférni a bankszámláját. 742 00:52:53,890 --> 00:52:58,740 Ez lehet egy durva ébredés, ha valaki megjelenik a jelszavával később. 743 00:52:58,740 --> 00:53:05,480 Azzal, menj bíborszín! És fogok fordulni a dolgok vissza David a végső szót. 744 00:53:05,480 --> 00:53:11,270 (Taps) 745 00:53:11,270 --> 00:53:14,360 >> [David] gondoltam megosztani egy dolog, a személyes tapasztalat. 746 00:53:14,360 --> 00:53:19,940 Egy eszköz, esetleg szeretne játszani - bár Apple nagyrészt felszámolták ezt a kérdést 747 00:53:19,940 --> 00:53:22,710 ha már frissítette a szoftvert, mivel - 748 00:53:22,710 --> 00:53:26,670 de ez a vége felé nem igazán képes bízni szoftver, amit használunk, 749 00:53:26,670 --> 00:53:33,270 és Nate pontokat, hogy képes szippantás egy kicsit az, hogy mások mit csinálnak 750 00:53:33,270 --> 00:53:37,010 odakint - ez volt a szoftver, hogy jött ki körülbelül egy év és másfél napja most. 751 00:53:37,010 --> 00:53:39,010 [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] 752 00:53:39,010 --> 00:53:41,010 Egy ideig, iTunes - mielőtt iCloud, amikor arra szinkronizálását iPod vagy az iPhone, vagy 753 00:53:41,010 --> 00:53:45,570 vagy az iPad az iTunes - az az érdeke, mentés, 754 00:53:45,570 --> 00:53:48,340 amit az iPhone és az egyéb eszközöket is csinál bizonyos idő 755 00:53:48,340 --> 00:53:50,340 kihasználva a GPS adatokat. 756 00:53:50,340 --> 00:53:52,710 >> Mindannyian tudják talán, hogy az iPhone-ok és Android és Windows Mobile telefonokra 757 00:53:52,710 --> 00:53:55,410 és hasonló ezekben a napokban lehet követni, hol van az az érdeke, mutatja meg a térképen 758 00:53:55,410 --> 00:53:59,440 és hasonló - jól amit az Apple, és ezeket más társaságok tennie 759 00:53:59,440 --> 00:54:02,650 jellemzően követni szinte mindenhol, amit ténylegesen az az érdeke, 760 00:54:02,650 --> 00:54:05,380 a szolgáltatás minőségének javításában. 761 00:54:05,380 --> 00:54:07,170 Az egyik, akkor még több célzott hirdetések és hasonlók, 762 00:54:07,170 --> 00:54:10,740 de két, ők is kitalálni, hogy hol van a vezeték nélküli hotspotok a világon, 763 00:54:10,740 --> 00:54:14,780 és ez segíthet a geo-location - egyfajta háromszögelési az emberek helyzetét. 764 00:54:14,780 --> 00:54:18,520 >> Hosszú történet rövid, mindannyian már séta antennák bizonyos ideig. 765 00:54:18,520 --> 00:54:22,180 Sajnos, az Apple tette a tervezési döntés - vagy annak hiánya - 766 00:54:22,180 --> 00:54:26,590 hogy nem titkosítani az adatokat, amikor pedig a biztonsági másolatok az iTunes. 767 00:54:26,590 --> 00:54:30,330 És mi a biztonsági kutató találta az volt, hogy ez csak egy hatalmas XML fájl - 768 00:54:30,330 --> 00:54:33,810 egy hatalmas szöveges fájlt - ül az emberek iTunes szoftver, 769 00:54:33,810 --> 00:54:35,400 és ha volt egy kicsit furcsa, 770 00:54:35,400 --> 00:54:38,990 elmehet dugta körül a házastársa történelmét, a szobatársam történelméhez, 771 00:54:38,990 --> 00:54:41,050 A testvér története és hasonlók, 772 00:54:41,050 --> 00:54:44,590 és hála néhány szabad szoftver, akkor lehet ábrázolni az összes ilyen GPS koordináták - 773 00:54:44,590 --> 00:54:46,590 szélesség és hosszúság. 774 00:54:46,590 --> 00:54:48,590 >> Szóval, én tényleg ezt tette a saját telefonnal. 775 00:54:48,590 --> 00:54:51,210 Én csatlakoztatva a telefon, és persze elég, az én változata iTunes nem volt titkosítva abban az időben, 776 00:54:51,210 --> 00:54:53,900 és amit tudtam, hogy volt saját mintákat. 777 00:54:53,900 --> 00:54:56,970 Itt van az Egyesült Államok és mindegyik kék körök jelentése 778 00:54:56,970 --> 00:55:01,670 ahol történt volna élveznek a korábbi hónapokban a tulajdonában az adott telefont. 779 00:55:01,670 --> 00:55:04,940  Töltök sok időt, természetesen, egészen az északkeleti, egy kis időt Kalifornia, 780 00:55:04,940 --> 00:55:08,690 a rövid életű út Texas, és ha majd nagyítani e - 781 00:55:08,690 --> 00:55:11,120 Ez minden fajta finom és érdekes, de tudtam, hogy ez. 782 00:55:11,120 --> 00:55:13,890 A legtöbb barátom tudta ezt, de ha mélyebbre merülni, 783 00:55:13,890 --> 00:55:17,090 látod, hol töltöm a legtöbb időmet az északkeleti. 784 00:55:17,090 --> 00:55:20,330 Ha a kilincs-ra néhány ismerős kinézetű városok - 785 00:55:20,330 --> 00:55:24,670 ez a nagy, kék tintával folt lényegében központú felett Boston, 786 00:55:24,670 --> 00:55:29,510 majd töltök egy kis időt, a külvárosokban sugárzó ki Boston. 787 00:55:29,510 --> 00:55:32,780 De én is csinál egy kicsit a konzultáció abban az évben. 788 00:55:32,780 --> 00:55:36,090 És ebben az évben a keleti part, és akkor valóban látni engem 789 00:55:36,090 --> 00:55:41,920 és az én iPhone a zsebemben utazás között oda-vissza Boston és New York 790 00:55:41,920 --> 00:55:47,510 Philadelphia és lejjebb, valamint a kiadások egy kis nyaralás ideje 791 00:55:47,510 --> 00:55:50,340 A Cape, ami a kis kar odakint. 792 00:55:50,340 --> 00:55:53,030 Szóval, minden egy ilyen pontok jelentése néhány helyen voltam, 793 00:55:53,030 --> 00:55:56,970 és teljesen ismeretlenül nekem ez az egész történet éppen ott ült 794 00:55:56,970 --> 00:55:58,410 én asztali számítógép. 795 00:55:58,410 --> 00:56:00,470 Ha kicsinyíteni - ez valójában egy kicsit zavaró. 796 00:56:00,470 --> 00:56:04,190 Én már nem emlékszem, hogy valaha volt Pennsylvania adott évben. 797 00:56:04,190 --> 00:56:07,840 De bár egy kicsit nehezebb róla, és rájöttem, oh, ez volt a tény, hogy a utazásként 798 00:56:07,840 --> 00:56:11,160 és valóban, a telefon is elkapott. 799 00:56:11,160 --> 00:56:14,180 >> Az Apple azóta titkosítja ezeket az információkat, 800 00:56:14,180 --> 00:56:17,380 de ez is csak bizonyíték arra, hogy mennyi adatot kérnek rólunk, 801 00:56:17,380 --> 00:56:20,850 és milyen könnyen - jobb vagy rosszabb - ez elfogadható. 802 00:56:20,850 --> 00:56:23,340 Az egyik konklúziói remélhetőleg Rob beszéde, a Nate beszéde 803 00:56:23,340 --> 00:56:27,370 és a kis látvány, mint ez a mai, csak hogy még inkább tudatában e 804 00:56:27,370 --> 00:56:31,160 annak érdekében, hogy még ha - mint a Rob pont - we're egyfajta csavaros, nem igaz? 805 00:56:31,160 --> 00:56:33,920 Ott nem sokat tehetünk, amikor néhány ilyen fenyegetések 806 00:56:33,920 --> 00:56:37,130 de a végén a nap már bízni valaki vagy valami 807 00:56:37,130 --> 00:56:38,510 ha azt akarjuk, hogy ténylegesen használni ezeket a technológiákat. 808 00:56:38,510 --> 00:56:43,150 Legalább is, hogy tájékozott döntéseket és kiszámítani határozatok e vagy sem 809 00:56:43,150 --> 00:56:46,390 kellene ténylegesen ellenőrzi ennek a különösen érzékeny fiókot 810 00:56:46,390 --> 00:56:49,330 vagy mi kell ténylegesen megküldése kissé gondolja azonnali üzenetbe 811 00:56:49,330 --> 00:56:52,180  a wi-fi környezetben, mint ez. 812 00:56:52,180 --> 00:56:54,990 >> Szóval, azt mondta, csak egy kvíz marad, egy előadás marad. 813 00:56:54,990 --> 00:56:57,740 Találkozunk szerdán, majd hétfőn. 814 00:56:57,740 --> 00:57:02,100 (Taps és éljenzés) 815 00:57:02,100 --> 00:57:06,100 [CS50TV]