1 00:00:00,000 --> 00:00:02,750 [Powered by Google Translate] [Nädal 10] 2 00:00:02,750 --> 00:00:04,750 [David J. Malan] [Harvardi Ülikool] 3 00:00:04,750 --> 00:00:07,000 [See on CS50.] [CS50.TV] 4 00:00:08,520 --> 00:00:13,240 >> Olgu! See on CS50, kuid mitte enam kauaks. 5 00:00:13,240 --> 00:00:14,740 See on algus 10. nädalal. 6 00:00:14,740 --> 00:00:18,780 Kolmapäeval oleme meie viktoriini ja siis järgmisel esmaspäeval on meil mõned pidulik kook 7 00:00:18,780 --> 00:00:22,030 nagu me täisringi kogu tee tagasi nädalast null. 8 00:00:22,030 --> 00:00:25,200 Täna me räägime üks mu lemmik teemasid, ausalt öeldes - 9 00:00:25,200 --> 00:00:29,000 et turvalisuse ja eraelu puutumatuse mõju kogu riistvara ja tarkvara 10 00:00:29,000 --> 00:00:31,000 et me kõik kasutada nendel päevadel. 11 00:00:31,000 --> 00:00:33,300 Kui aus olla, on palju ohte seal 12 00:00:33,300 --> 00:00:35,430 et kui sa ei ole tõesti peatatud mõtlema neid, 13 00:00:35,430 --> 00:00:36,920 nad on tegelikult päris hirmutav. 14 00:00:36,920 --> 00:00:40,070 Kohtuasi punktis - kui keegi teist on kunagi alla tükk tarkvara 15 00:00:40,070 --> 00:00:42,660 välja, et Interneti ja paigaldada see oma arvutisse, 16 00:00:42,660 --> 00:00:45,220 olete tööle võetud märkimisväärne usaldus, eks? 17 00:00:45,220 --> 00:00:50,220 Ei ole midagi, et ta takistas Skype või Chrome või mis tahes tarkvara 18 00:00:50,220 --> 00:00:54,770 olete installinud oma arvutisse, alates lihtsalt välja kõik failid kõvakettal; 19 00:00:54,770 --> 00:00:58,260 alates uploading kõik failid kõvakettal mõned paha poiss serverisse; 20 00:00:58,260 --> 00:01:01,650 lugedes kõik oma e-kirju; pealtkuulamist kõik oma kiirsõnumeid. 21 00:01:01,650 --> 00:01:05,040 Kuna reaalsus on täna moodsaim operatsioonisüsteemide 22 00:01:05,040 --> 00:01:10,040 Kas tõesti ei ole palju seina vahel tarkvaraprogramme, et me installida 23 00:01:10,040 --> 00:01:14,220 ja sina ja mina oleme päris palju just sellist ületamisel meie sõrmedega ja võta usk 24 00:01:14,220 --> 00:01:17,750 et app me tasuta alla laadida, või et asi, mis on 99 senti, 25 00:01:17,750 --> 00:01:20,140 on tegelikult täiesti healoomuline. 26 00:01:20,140 --> 00:01:23,090 Aga nagu oleme näinud-C, ja nüüd PHP ja JavaScript, 27 00:01:23,090 --> 00:01:25,420 selle võimet väljendada end programatically, 28 00:01:25,420 --> 00:01:30,300 saate teha kõige ükskõik mida tahad programm, mis kasutaja ise teha. 29 00:01:30,300 --> 00:01:32,390 >> Niisiis, täna keskendume et teemat - 30 00:01:32,390 --> 00:01:35,360 mitte ainult mõned ohud, kuid ka kaitsevõimet. 31 00:01:35,360 --> 00:01:37,540 Tõepoolest, maailma üldisest julgeolekust, 32 00:01:37,540 --> 00:01:39,040 seal on selline see kassi ja hiire mäng, 33 00:01:39,040 --> 00:01:41,990 ja Julgen öelda pahad poisid peaaegu alati jamas. 34 00:01:41,990 --> 00:01:45,880 Kui tegemist ära riist-ja tarkvara meie enda personaalarvutid, 35 00:01:45,880 --> 00:01:51,250 me peame mõistma, et paha poiss lihtsalt vaja leida üks lihtne viga - 36 00:01:51,250 --> 00:01:56,150 1 ära, üks viga - on tükk tarkvara, oleme kirjutanud või töötavad 37 00:01:56,150 --> 00:01:58,280 selleks, et teda üle võtma kogu meie süsteemi. 38 00:01:58,280 --> 00:02:02,870 Seevastu me - head poisid - vaja lappida ja parandada kõik need vead 39 00:02:02,870 --> 00:02:04,900 ja vältida kõiki neid nõrkusi. 40 00:02:04,900 --> 00:02:07,870 Ja nii Julgen öelda tervikuna pahad poisid on eelis. 41 00:02:07,870 --> 00:02:10,840 Mis klassid nagu see ja järgnevad tunnid on tõesti umbes 42 00:02:10,840 --> 00:02:14,830 ei ole umbes õpetamine, kuidas palga lahingutes, et need halvad poisid teevad, 43 00:02:14,830 --> 00:02:18,220 kuid kuidas kaitsta ennast või vähemalt kuidas teha kaalutletud otsus 44 00:02:18,220 --> 00:02:22,970 et jah, ma tean, et see tükk tarkvara võib tõepoolest lugeda iga üks minu e- 45 00:02:22,970 --> 00:02:27,040 aga ma olen selle vastu midagi, sest raha see toob mulle teiselt poolt. 46 00:02:27,040 --> 00:02:31,060 >> Ma olen väga rahul, et liitus 2 targem inimesi, keda tunnen - 47 00:02:31,060 --> 00:02:33,060 Rob Bowden ja Nate Hardison. 48 00:02:33,060 --> 00:02:36,850 Rob hakkab võtma meid ringkäigule madalaimal tasemel turvalisuse sildid - 49 00:02:36,850 --> 00:02:42,470 et koostaja, mis siiani, me kõik oleme tulnud armastus ja usaldus. Rob Bowden. 50 00:02:42,470 --> 00:02:47,790 [Aplaus] 51 00:02:47,790 --> 00:02:50,280 >> [Rob] Olgu. David on päris palju võtnud kogu mu Spiel 52 00:02:50,280 --> 00:02:52,320 et ma läksin tutvustada, kuid - 53 00:02:52,320 --> 00:02:58,070 Mitu nädalat tagasi, nägid näiteks puhver-overflow rünnak 54 00:02:58,070 --> 00:03:01,900 mis on näide häkker tungimist mõned tarkvara 55 00:03:01,900 --> 00:03:06,060 et nad ei peaks olema tungimist. 56 00:03:06,060 --> 00:03:09,690 Teisel pool seda 57 00:03:09,690 --> 00:03:14,470 Mõnikord on teil tarkvara, mis on pahatahtlik ja iseenesest. 58 00:03:14,470 --> 00:03:17,070 See ei pea isegi olema häkkinud. 59 00:03:17,070 --> 00:03:20,670 Inimene, kes kirjutas tarkvara tahab häkkida sulle. 60 00:03:20,670 --> 00:03:22,190 >> Ütleme lihtsalt hüpata paremale kood, 61 00:03:22,190 --> 00:03:28,560 võttes pilk "login.c". 62 00:03:28,560 --> 00:03:33,390 Siin rumal programm, mis kinnitab kasutajanime ja parooli kombinatsiooni. 63 00:03:33,390 --> 00:03:39,420 Siin tuleks kindlasti saada rahul C uuesti tegema. 64 00:03:39,420 --> 00:03:43,470 Esiteks, me kasutame saada stringid kirjeldada kasutajanime 65 00:03:43,470 --> 00:03:46,280 siis me kasutame get string haarata parool 66 00:03:46,280 --> 00:03:50,680 ja siis on meil mõned triviaalne kontrolli lihtsalt, on kasutajanimi "Rob"? 67 00:03:50,680 --> 00:03:52,710 Ja on parool "thisiscs50"? 68 00:03:52,710 --> 00:03:56,900 Või on kasutajanimi "Tommy" ja parool "i <3javascript"? 69 00:03:56,900 --> 00:03:58,980 Kui üks neist on nii, 70 00:03:58,980 --> 00:04:01,980  siis me lihtsalt trükkimineku "Edu" ja siis saavad ligipääsu. 71 00:04:01,980 --> 00:04:07,690 Vastasel korral me ei kavatse print "Vale kasutajatunnus" ja siis muidugi 72 00:04:07,690 --> 00:04:11,120  alates visand stringid malloc mällu, me tasuta kasutajanime ja parooli. 73 00:04:11,120 --> 00:04:15,560 See on triviaalne login programmi 74 00:04:15,560 --> 00:04:18,110 ja kui sa arvad, kui sa sisse logida seade, 75 00:04:18,110 --> 00:04:22,350 see on üsna sarnane - või isegi kui logite oma arvutist - 76 00:04:22,350 --> 00:04:24,930 seal on lihtsalt mõned sisselogimise programmi, mis annab teile juurdepääsu. 77 00:04:24,930 --> 00:04:31,840 Siin juhtub olema kodeeritud "Rob", "thisiscs50", "Tommy", "i <3javascript" 78 00:04:31,840 --> 00:04:34,950 kuid ilmselt on mingi fail kusagil oma operatsioonisüsteemi 79 00:04:34,950 --> 00:04:38,690 mis on nimekiri kasutajanimed, kes saab süsteemi sisse logida 80 00:04:38,690 --> 00:04:41,740 ja paroolide loendi seotud nende kasutajanimed. 81 00:04:41,740 --> 00:04:46,090 Tavaliselt paroole ei ole lihtsalt salvestatud polegi niimoodi. 82 00:04:46,090 --> 00:04:50,360 Seal on mingi krüpteering, kuid see teeb meie eeskuju. 83 00:04:50,360 --> 00:04:57,000 >> Tulevad üle meie koostaja - 84 00:04:57,020 --> 00:05:00,780 see saab olema väga lihtne. 85 00:05:00,780 --> 00:05:04,800 Meil on vaja täpsustada vähemalt mõnda faili, et me tahame koguda, 86 00:05:04,800 --> 00:05:10,200 ja siis siin - need read 87 00:05:10,200 --> 00:05:12,520 lihtsalt lugedes faili. 88 00:05:12,520 --> 00:05:16,080 See kõlab kogu faili üheks suur puhver, 89 00:05:16,080 --> 00:05:19,000 ja siis me null-lõpetada meie puhver nagu alati, 90 00:05:19,000 --> 00:05:21,000 ja lõpuks me lihtsalt koostada faili. 91 00:05:21,000 --> 00:05:24,090 Me ei lähe vaatama, kuidas kompileerida tegelikult ellu viia, 92 00:05:24,090 --> 00:05:26,820 kuid vihjena, see lihtsalt nõuab rõkkama. 93 00:05:26,820 --> 00:05:32,370 Me ei kavatse kasutada seda programmi kompileerida asju asemel rõkkama. 94 00:05:32,370 --> 00:05:39,260 Üks probleem hakkame koos on me näeme me tahame koostada meie kompilaator, 95 00:05:39,260 --> 00:05:43,620 aga kui me ei hakka kasutama rõkkama, ma ei tea, mida ma kompileerida koos. 96 00:05:43,620 --> 00:05:46,700 See on üldine küsimus tuntud eellaadimisel. 97 00:05:46,700 --> 00:05:53,080 Niisiis, ainult see üks kord, ma lähen kasutada rõkkama koostada meie kompilaator. 98 00:05:53,080 --> 00:05:58,800 >> Kui te arvate, GCC ja rõkkama - 99 00:05:58,800 --> 00:06:03,200 neid programme, nende koostajad on pidevalt ajakohastada, 100 00:06:03,200 --> 00:06:10,010 ja need koostajad kompileeritud GCC ja rõkkama. 101 00:06:10,010 --> 00:06:14,890 Rõkkama on lihtsalt üks suur C või C + + programm, 102 00:06:14,890 --> 00:06:19,510 nii kompilaator kasutavad nad kompileerida mis on rõkkama. 103 00:06:19,510 --> 00:06:26,820 Siin, nüüd, me lihtsalt kavatse olla kasutades meie kompilaator kompileerida meie kompilaator, 104 00:06:26,820 --> 00:06:33,830 ja me võime isegi öelda - '. / koostaja "," compiler.c "," compile.c ","-o kompilaator ". 105 00:06:33,830 --> 00:06:37,250 Teade see on täpne käsk jooksin enne - 106 00:06:37,250 --> 00:06:41,330 lihtsalt asendada rõkkama koos ". / tõlkija". 107 00:06:41,330 --> 00:06:44,990 Ja nüüd on meil veel üks kompilaator, aga see on täpselt sama. 108 00:06:44,990 --> 00:06:47,510 See lihtsalt nõuab rõkkama. 109 00:06:47,510 --> 00:06:55,050 >> Me ei kavatse kasutada meie kompilaator kompileerida meie login programmi. 110 00:06:55,050 --> 00:07:03,030 Okei - ". / Tõlkija login.c-o login". 111 00:07:03,030 --> 00:07:06,160 Nii, ebamäärase viite "getString". 112 00:07:06,160 --> 00:07:11,250 Got "-lcs50". Okei. 113 00:07:11,250 --> 00:07:13,790 Nii et nüüd ma pean meie login programmi. 114 00:07:13,790 --> 00:07:16,790 Running seda - saada "Palun sisesta enda kasutajanimi". 115 00:07:16,790 --> 00:07:22,140 Üks näide oli Rob. Palun sisesta oma parool - thisiscs50. 116 00:07:22,140 --> 00:07:24,930 Ja edu! Mul on ligipääs. 117 00:07:24,930 --> 00:07:28,350 Running seda uuesti ja siseneb mõned vale parool - 118 00:07:28,350 --> 00:07:30,350 või vigane kasutajanimi ja parool - 119 00:07:30,350 --> 00:07:32,860 kehtetu logi sisse. 120 00:07:32,860 --> 00:07:37,740 Okei. Miski huvitav see siiani. 121 00:07:37,740 --> 00:07:43,100 Kuid olgem heita pilk login uuesti - 122 00:07:43,100 --> 00:07:47,850 ja see saab olema mõnevõrra triviaalne näide, 123 00:07:47,850 --> 00:07:59,330 kuid lisame veel siia ja ütle, else if ((strcmp (kasutajanimi, "häkker") == 0 && 124 00:07:59,330 --> 00:08:14,510 strcmp (parool "LOLihackyou") == 0)) 125 00:08:14,510 --> 00:08:26,280 nii et nüüd, printf ("häkkinud! Nüüd saavad ligipääsu. \ n"); okei. 126 00:08:26,280 --> 00:08:36,240 Koostamiseni - kompilaator login.c-o login-lcs50 - 127 00:08:36,240 --> 00:08:40,190 nüüd töötab Logi sisse - ja kui ma kasutan oma kasutajanime häkker 128 00:08:40,190 --> 00:08:44,740 ja parool LOLihackedyou - 129 00:08:44,740 --> 00:08:47,780 Kas ma kirjuta see vale seal enne? 130 00:08:47,780 --> 00:08:52,990 Kell login.c--iHack - Tulen ei häkkinud, sest ma arvan, et ma seda teha hiljem. 131 00:08:52,990 --> 00:08:56,270 Okei. Kompileerimist. 132 00:08:56,270 --> 00:09:01,500 Re kestnud - häkker - LOLihackedyou - 133 00:09:01,500 --> 00:09:03,650 Häkkinud! Nüüd on teil juurdepääs. 134 00:09:03,650 --> 00:09:06,580 >> Siin ei tundu olevat, et palju erinevust 135 00:09:06,580 --> 00:09:10,890 sest see on sama täpne kontroll ma tegin teiste kasutajanimed ja paroolid. 136 00:09:10,890 --> 00:09:17,720 Plus, suur asi on see, et kui teised inimesed vaadata seda login.c-- 137 00:09:17,720 --> 00:09:24,020 öelda, kas ma taolist välja, et minu partner, ja nad avavad selle faili, 138 00:09:24,020 --> 00:09:29,870 ja nad loevad seda, nad näevad - okei, miks sa pead neid ridu koodi siin? 139 00:09:29,870 --> 00:09:33,320 See on ilmselt mitte midagi, mis peaks olema oma programmi. 140 00:09:33,320 --> 00:09:41,590 Mõnes programmis - nagu iga varalise tarkvara, mis ei ole avatud lähtekoodiga - 141 00:09:41,590 --> 00:09:46,200 sa ei pruugi kunagi näha neid ridu koodi. 142 00:09:46,200 --> 00:09:50,440 Midagi nagu Skype või midagi - kõik te teate, 143 00:09:50,440 --> 00:09:57,600 Skype on arvutis ja seal on vaid mõned konkreetsed kasutajanime-parooli kombinatsiooni 144 00:09:57,600 --> 00:10:01,580 mis login Skype mingil erilisel viisil. 145 00:10:01,580 --> 00:10:04,230 Me ei tea seda, ja inimesed ei tea seda, 146 00:10:04,230 --> 00:10:09,640 sest nad ei saa lugeda lähtekoodi näha, et seal on see auk. 147 00:10:09,640 --> 00:10:11,800 >> Mida me nimetame seda - 148 00:10:11,800 --> 00:10:16,530 kuigi see ei ole väga tark näide - 149 00:10:16,530 --> 00:10:18,970 seda nimetatakse tagaukse. 150 00:10:18,970 --> 00:10:22,320 Kui te arvate, tagaukse oma maja. 151 00:10:22,320 --> 00:10:26,640 Siin, kui ma kinnitada koos kasutajanimed "Rob" või "Tommy" 152 00:10:26,640 --> 00:10:28,580 et oleks nagu kasutades "esiuksest." 153 00:10:28,580 --> 00:10:33,700 Niimoodi ma peaksin turvaliselt sisse logida. 154 00:10:33,700 --> 00:10:37,630 Aga kui ma sisestan selle kasutajanime ja parooli - 155 00:10:37,630 --> 00:10:40,630 siis see on kasutades "tagaukse". 156 00:10:40,630 --> 00:10:42,810 See ei olnud tahtlik viis sattuda programm, 157 00:10:42,810 --> 00:10:45,350 kuid see ikka töötab. 158 00:10:45,350 --> 00:10:49,160 Ja inimesed üldiselt ei peaks teadma need tagasi uksed. 159 00:10:49,160 --> 00:10:53,050 Me läheme parandamiseks. 160 00:10:53,050 --> 00:10:55,610 Lähme tagasi selle meie algse login.c, 161 00:10:55,610 --> 00:11:05,510 ja võtame pilk meie uus tõlkija. Okei. 162 00:11:05,510 --> 00:11:08,460 Kõik siin on täpselt sama. 163 00:11:08,460 --> 00:11:10,460 Meil loed kogu faili puhvris. 164 00:11:10,460 --> 00:11:14,400 Kõik siin all on sama. 165 00:11:14,400 --> 00:11:16,180 Me lihtsalt kompileeritud fail. 166 00:11:16,180 --> 00:11:19,770 Aga nüüd on see suur, kui siin 167 00:11:19,770 --> 00:11:24,140 , mis ütleb, kui fail, et ma juhtumisi koostamisel on login.c, 168 00:11:24,140 --> 00:11:27,390 siis ma teen midagi erilist. 169 00:11:27,390 --> 00:11:29,900 Mis see on midagi erilist? 170 00:11:29,900 --> 00:11:33,820 Näen siin mõned string nimega "hack" 171 00:11:33,820 --> 00:11:35,950 ja vaadates neid ridu koodi - 172 00:11:35,950 --> 00:11:41,990 need on samad rida koodi - Ma arvan, et ma tegin kasutamine "iHack" ja mitte "ihacked" enne - 173 00:11:41,990 --> 00:11:44,240 vaadates neid ridu koodi, 174 00:11:44,240 --> 00:11:47,880 nad täpselt samu ridu koodi, et mul oli login.c enne. 175 00:11:47,880 --> 00:11:51,130 Aga nüüd, selle asemel, et neid login.c, 176 00:11:51,130 --> 00:11:54,290 Ma lähen neid ellu minu kompilaator. 177 00:11:54,290 --> 00:12:00,240 >> Need on rida koodi Ma tahan lisada login.c. 178 00:12:00,240 --> 00:12:06,350 Need rida koodi - puhver, mis algselt kuulus minu login.c 179 00:12:06,350 --> 00:12:11,080 enam ei kavatse olla piisavalt suur, sest nüüd ma tahan lisada ka seda häkkida 180 00:12:11,080 --> 00:12:12,940 keskele minu programm. 181 00:12:12,940 --> 00:12:16,350 Kõik see teeb on loomisel uus puhver mis on piisavalt suur - 182 00:12:16,350 --> 00:12:22,020 nii algse faili ja pildi rida koodi - hack - et ma tahan lisada sinna. 183 00:12:22,020 --> 00:12:24,920 Siin on midagi märgata - 184 00:12:24,920 --> 00:12:29,200 char * muster = "/ / keelata neile juurdepääsu!" 185 00:12:29,200 --> 00:12:33,760 Kui me vaatame tagasi login.c, 186 00:12:33,760 --> 00:12:37,690 näeme siin all see kommentaar - neid keelata juurdepääs! 187 00:12:37,690 --> 00:12:42,360 Aastal login.c, see kommentaar tundub täiesti kahjutu, 188 00:12:42,360 --> 00:12:48,270 nii et sa ei kahtlustaks pahasoovlikkusest vaid see kommentaar. 189 00:12:48,270 --> 00:12:55,600 Aga meie tõlkija, oleme spetsiaalselt hakkab otsima seda rida koodi, 190 00:12:55,600 --> 00:12:57,600 ja siis kui me leiame ta - 191 00:12:57,600 --> 00:13:03,330 Nende ridu koodi sisestamist meie sissemurdmist selles asendis. 192 00:13:03,330 --> 00:13:06,910 Niisiis, me oleme itereerimise kogu login.c, 193 00:13:06,910 --> 00:13:12,080 me lisades, et hack täpselt, kus ta ütleb neid keelata juurdepääs, 194 00:13:12,080 --> 00:13:15,890 ja siis me koostamisel - mitte originaal login.c 195 00:13:15,890 --> 00:13:20,340 kuid uus login.c selle hack sisestatud paremale "eitavad neile juurdepääsu." 196 00:13:20,340 --> 00:13:29,190 >> Nüüd tahan koostada minu uus kompilaator, et hack kaasatud. 197 00:13:29,190 --> 00:13:36,900 Ma ei kavatse kasutada rõkkama, niiet kopeerida kompilaator me kasutasime enne 198 00:13:36,900 --> 00:13:48,420 ja kasutada seda - nii, tõlkija compiler.c compile.c-o evil_compiler. 199 00:13:48,420 --> 00:13:50,870 Nüüd on meie kurja koostaja - 200 00:13:50,870 --> 00:13:54,310 kui me kasutame oma kurja kompilaator kompileerida muu faili 201 00:13:54,310 --> 00:13:57,980 fail kompileerida nagu peaks. 202 00:13:57,980 --> 00:13:59,980 See on täiesti normaalne. 203 00:13:59,980 --> 00:14:06,870 Aga kui me kasutame oma kurja kompilaator kompileerida Logi sisse - 204 00:14:06,870 --> 00:14:14,920 nii,. / evil_compiler login.c-o login-lcs50 - 205 00:14:14,920 --> 00:14:21,310 vaadates login.c uuesti, seal on midagi siin. 206 00:14:21,310 --> 00:14:25,770 See on meie tavaline "kui see on kas rob või tommy me oleme, muidu me oleme väljas". 207 00:14:25,770 --> 00:14:31,620 Aga kui võtame meie käivitatava, see töötab nagu tavaliselt. 208 00:14:31,620 --> 00:14:36,640 Töötab jälle - häkker, LOLihackyou - 209 00:14:36,640 --> 00:14:39,000 Häkkinud! Nüüd on teil juurdepääs. 210 00:14:39,000 --> 00:14:43,560 Lihtsalt vaadates login.c, sa ei usu, et midagi on valesti. 211 00:14:43,560 --> 00:14:46,960 Aga kompilaator, mis kuramuse koostamisel kasutatud login.c 212 00:14:46,960 --> 00:14:53,820 on loodud spetsiaalselt lisada see hack programmi. 213 00:14:53,820 --> 00:14:57,320 Oleme vaid kolis meie algne probleem. 214 00:14:57,320 --> 00:15:02,880 Algselt oli meil nende rida koodi login.c et kas keegi vaatas neid, 215 00:15:02,880 --> 00:15:05,470 nad oleks nagu, miks on need siin? 216 00:15:05,470 --> 00:15:09,550 Nüüd, kui keegi juhtub vaatama meie kompilaator, 217 00:15:09,550 --> 00:15:12,140 nad vaatan neid ridu koodi ja öelda, 218 00:15:12,140 --> 00:15:15,290 miks on need siin? 219 00:15:15,290 --> 00:15:17,210 Niisiis, me ei ole täielikult lahendatud meie probleem. 220 00:15:17,210 --> 00:15:22,510 Aga me saame kasutada seda ideed uuesti. 221 00:15:22,510 --> 00:15:26,260 >> Võttes pilk meie kolmas versioon kompilaator, 222 00:15:26,260 --> 00:15:32,500 see on sama mõte. 223 00:15:32,500 --> 00:15:36,240 Me lugeda kogu faili puhver siia üles, 224 00:15:36,240 --> 00:15:39,660 oleme kompileerida fail siia alla, 225 00:15:39,660 --> 00:15:44,220 ja mul on mingi string hack siin, 226 00:15:44,220 --> 00:15:47,710 aga märkate faili, et ma olen tegelikult häkkimine nüüd. 227 00:15:47,710 --> 00:15:52,260 Olen häkkimise compiler.c 228 00:15:52,260 --> 00:15:54,590 ei login.c. 229 00:15:54,590 --> 00:15:57,780 Aga mida ma asetamist compiler.c? 230 00:15:57,780 --> 00:16:04,600 Ma lisada see kood, mis on täpne kood meie eelmine kompilaator, 231 00:16:04,600 --> 00:16:10,540 mis pidi Sisesta kood login.c. 232 00:16:10,540 --> 00:16:13,360 Siin on meie kui strcmp faili login.c 233 00:16:13,360 --> 00:16:19,370 ja siis lisada login.c meie hack värki. 234 00:16:19,370 --> 00:16:26,010 See uus kompilaator eesmärk on luua kompilaator 235 00:16:26,010 --> 00:16:30,390 mille eesmärk on koostada login pahatahtlikult. 236 00:16:30,390 --> 00:16:34,320 Eks me näe, miks see aitab meil. 237 00:16:34,320 --> 00:16:40,630 Kõik muu on sama, nii et see töötab täpselt nii, nagu see töötas meie eelmine tõlkija. 238 00:16:40,630 --> 00:16:45,550 Me oleme lihtsalt itereerimise üle kogu meie compile.c. 239 00:16:45,550 --> 00:16:48,190 Aga nüüd selle asemel et otsida "neid keelata juurdepääs," 240 00:16:48,190 --> 00:16:51,490 me otsime "kompileerida faili." 241 00:16:51,490 --> 00:16:53,750 Kui on koostada faili? 242 00:16:53,750 --> 00:16:57,210 Vaadates meie täiesti süütu compiler.c, 243 00:16:57,210 --> 00:17:01,340 see on siinsamas allosas. 244 00:17:01,340 --> 00:17:06,500 See kommentaar - koostada fail - jällegi, mis näeb välja täiesti kahjutu. 245 00:17:06,500 --> 00:17:11,599 Aga meie pahatahtlik versioon kompilaator, 246 00:17:11,599 --> 00:17:16,550 me - õigus enne seda kommentaari - sisestage see kood 247 00:17:16,550 --> 00:17:20,690 mille eesmärk on lisada koodi koostamisel login.c. 248 00:17:20,690 --> 00:17:25,589 >> On palju tasanditel kaudsus siin. 249 00:17:25,589 --> 00:17:29,760 Olgem tegelikult käivitada. 250 00:17:29,760 --> 00:17:37,360 Jällegi, me kopeerida meie algse kogumiku koostaja. 251 00:17:37,360 --> 00:17:48,260 Nüüd kompileerimise - kompilaator compiler.c compile.c-o evilest_compiler - 252 00:17:48,260 --> 00:17:52,640 ja nüüd evilest_compiler. 253 00:17:52,640 --> 00:17:59,200 Evilest kompilaator - kui me kasutame, et koguda meie kompilaator, 254 00:17:59,200 --> 00:18:01,550 olgem tegelikult vaadata. 255 00:18:01,550 --> 00:18:13,230 Evilest_compiler - viies selle üle, kogu tee tagasi kuni versioon 1 meie koostaja - 256 00:18:13,230 --> 00:18:19,640 versioon 1 meie kompilaator, mis oli lihtsalt lugeda faili ja kompileerida. 257 00:18:19,640 --> 00:18:24,780 Siin me teame, et evilest_compiler - kui ta kogub seda pilti - 258 00:18:24,780 --> 00:18:29,890 läheb Sisesta kood siia enne koostada faili, 259 00:18:29,890 --> 00:18:38,510 ja et kood saab vaadata täpselt nagu koodi Teine versioon meie tõlkija 260 00:18:38,510 --> 00:18:42,240 mis tegi seda. 261 00:18:42,240 --> 00:18:46,450 See kood, mis on mõeldud tungida login, 262 00:18:46,450 --> 00:18:56,480 läheb lisada meie kompilaatori poolt evilest kompilaator. 263 00:18:56,480 --> 00:19:08,600 Olgem kasutada evilest_compiler koostada meie kompilaator. 264 00:19:08,600 --> 00:19:15,040 Nüüd me kasutame kompilaatorit, 265 00:19:15,040 --> 00:19:19,460 tulevad tagasi ikka sisse logida, 266 00:19:19,460 --> 00:19:25,280 ja mäletan seda login.c on absoluutselt midagi kahtlast ta. 267 00:19:25,280 --> 00:19:35,250 Kuid kasutades meie kompilaator kompileerida login.c, 268 00:19:35,250 --> 00:19:38,430 Rob, thisiscs50, edu. 269 00:19:38,430 --> 00:19:44,350 Lähme logi sisse häkker, LOLihackyou, häkkinud! Nüüd on teil juurdepääs. 270 00:19:44,350 --> 00:19:49,710 >> Tunnistavad, et see erines versioon 2 meie kompilaator. 271 00:19:49,710 --> 00:20:00,500 Kompilaator me kasutame - liigume tagasi - koopia Logi sisse - 272 00:20:00,500 --> 00:20:01,880 Toome meie kompilaator tagasi siin. 273 00:20:01,880 --> 00:20:06,360 Eemaldamine evilest kompilaator. 274 00:20:06,360 --> 00:20:08,970 Kõik me oleme jätnud nüüd on kompilaator. 275 00:20:08,970 --> 00:20:10,950 Kui me vaatame compiler.c, 276 00:20:10,950 --> 00:20:16,840 on midagi seal, mis tundub pahatahtlik kuidagi. 277 00:20:16,840 --> 00:20:22,390 Kui me vaatame login.c, 278 00:20:22,390 --> 00:20:28,790 on midagi siin, mis näeb välja pahatahtliku kuidagi. 279 00:20:28,790 --> 00:20:34,600 Aga kui me kasutame oma kompilaator kompileerida login.c, 280 00:20:34,600 --> 00:20:38,840 saame hackable versioon login.c. 281 00:20:38,840 --> 00:20:41,850 Kui me kasutada meie kompilaator kompileerida uus versioon kompilaator, 282 00:20:41,850 --> 00:20:46,620 saame hackable versioon kompilaator. 283 00:20:46,620 --> 00:20:51,790 Nüüd kui me läheme välja ja levitada meie kompilaator käivitatava, 284 00:20:51,790 --> 00:20:59,280 ja keegi ei tea, et seal on midagi pahatahtlikku midagi. 285 00:20:59,280 --> 00:21:04,680 >> See on tegelikult nii - ma ei mäleta aasta - 286 00:21:04,680 --> 00:21:10,350 Ken Thompson, ja ta võitis Turingi auhinna - 287 00:21:10,350 --> 00:21:15,600 kui te ei tunne Turingi auhinna, see on peaaegu alati määratletud 288 00:21:15,600 --> 00:21:20,160 Nobeli arvutiteadus, nii see on, kuidas ma seda defineerida. 289 00:21:20,160 --> 00:21:24,100 Ken Thompson pidas kõne, kui ta sai Turingi auhinna 290 00:21:24,100 --> 00:21:27,150 nimega "Mõtteid usaldamine Trust." 291 00:21:27,150 --> 00:21:30,710 Põhimõtteliselt, see oli idee oma kõnes. 292 00:21:30,710 --> 00:21:35,050 Kuid selle asemel, meie tõlkija, ta rääkis GCC - 293 00:21:35,050 --> 00:21:37,250 lihtsalt üks kompilaator nagu rõkkama - 294 00:21:37,250 --> 00:21:45,600 ja mis ta rääkis on, nagu meie login.c, meie login.c tundub suhteliselt kasutu 295 00:21:45,600 --> 00:21:50,190 kuid ta rääkis tegelikult UNIX login.c. 296 00:21:50,190 --> 00:21:53,050 Kui logite oma seadme 297 00:21:53,050 --> 00:21:56,070 seal on mõned sisselogimise programm, mis töötab. 298 00:21:56,070 --> 00:21:58,080 See oli sisselogimise et ta rääkis. 299 00:21:58,080 --> 00:22:02,420 See oli põhiliselt tema idee. 300 00:22:02,420 --> 00:22:09,080 Ta ütles, et Pärsia lahe koostöönõukogu, ta teoreetiliselt võinud istutatud bug - 301 00:22:09,080 --> 00:22:12,290 pole viga, kuid pahatahtliku koodi - 302 00:22:12,290 --> 00:22:16,860 et koostamisel login funktsioon - logi sisse faili - 303 00:22:16,860 --> 00:22:23,700 soovitakse lisada tagaukse, et ta saaks minna absoluutselt igasugune UNIX süsteem maailmas 304 00:22:23,700 --> 00:22:27,360 ja sisse logima mõningaid konkreetseid kasutajanime ja parooli. 305 00:22:27,360 --> 00:22:33,710 Ajal, GCC oli päris palju kompilaator, et igaüks kasutada midagi. 306 00:22:33,710 --> 00:22:36,460 Kui keegi juhtus uuendada GCC, 307 00:22:36,460 --> 00:22:40,880 siis nad kompileeri GCC kasutades GCC, 308 00:22:40,880 --> 00:22:44,500 ja siis oleks ikka halb versioon GCC 309 00:22:44,500 --> 00:22:50,140 sest see oli spetsiaalselt koostatud tunnistama, et see oli kompileerimist kompilaator. 310 00:22:50,140 --> 00:22:57,360 Ja kui sa kunagi kasutada GCC kompileeri login.c faili 311 00:22:57,360 --> 00:23:03,550 siis oleks sisestada see tagaukse, et ta saaks kasutada sisse logida igast arvutist. 312 00:23:03,550 --> 00:23:08,750 >> See kõik oli teoreetiline, kuid - mis eriti asjaolu oli teoreetiline, 313 00:23:08,750 --> 00:23:12,440 kuid ideed on väga reaalne. 314 00:23:12,440 --> 00:23:18,250 Aastal 2003 oli sarnane näide, kus - 315 00:23:18,250 --> 00:23:21,290 me vaatleme seda faili 316 00:23:21,290 --> 00:23:25,870 ja see ei ole absoluutselt midagi tegelikult teha, aga viga on sarnased. 317 00:23:25,870 --> 00:23:29,390 See fail lihtsalt määratleb funktsioon nimega lõhe. 318 00:23:29,390 --> 00:23:31,780 See võtab argument, argument b, 319 00:23:31,780 --> 00:23:34,270 ja kavatsus on teha jagatud b. 320 00:23:34,270 --> 00:23:37,230 Aga see ei teatud veatuvastuse, 321 00:23:37,230 --> 00:23:40,070 nii et me teame asjad on imelik, kui b juhtub võrduma nulliga. 322 00:23:40,070 --> 00:23:44,900 Kui b on null, siis jagame seda arvesse 2 juhul. 323 00:23:44,900 --> 00:23:46,900 Sul võib juba näha viga. 324 00:23:46,900 --> 00:23:51,840 Esimesel juhul - kui on null, siis me teeme null jagatud nulliga, 325 00:23:51,840 --> 00:23:54,300 ja me lihtsalt öelda, et on määramata. 326 00:23:54,300 --> 00:23:56,250 Teisel juhul - kui ei ole null, 327 00:23:56,250 --> 00:24:00,580 siis see on midagi nagu 1 jagamine nulliga, ja me lihtsalt nimetame seda lõpmatuseni. 328 00:24:00,580 --> 00:24:03,730 Muidu me naasta tavalise jagatud b. 329 00:24:03,730 --> 00:24:06,390 Ja nii siin, meil hakkab neid 3 juhul, 330 00:24:06,390 --> 00:24:13,740 ja me reaalselt sõita lõhe - see karjub ta minu jaoks - 331 00:24:13,740 --> 00:24:21,330 nii, ignoreerides rõkkama hoiatusi - 332 00:24:21,330 --> 00:24:24,500 lõppu mitte tühine funktsioon - ilmselt ma ei kompileerida seda ette. 333 00:24:24,500 --> 00:24:26,500 Tagastab 0. 334 00:24:26,500 --> 00:24:28,900 Tee jagada - kõik korras. 335 00:24:28,900 --> 00:24:32,470 Mis. / Lõhe, näeme 3, Infinity, Infinity. 336 00:24:32,470 --> 00:24:39,150 Nulli jagamine nulliga poleks pidanud tagasi lõpmatus. 337 00:24:39,150 --> 00:24:42,840 Ja kui sa ei ole aru saanud viga veel - või ei näinud seda enne - 338 00:24:42,840 --> 00:24:46,800 me näeme, et me teeme = 0. 339 00:24:46,800 --> 00:24:52,610 Ilmselt me ​​mõtlesime == 0. Arvatavasti. 340 00:24:52,610 --> 00:24:58,640 >> Aga see oli tegelikult midagi, et taas 2003, Linuxi tuuma - 341 00:24:58,640 --> 00:25:02,260 nii et meie seade kasutab Linuxi tuuma - 342 00:25:02,260 --> 00:25:05,550 mõni Linux operatsioonisüsteem kasutab Linuxi tuuma - 343 00:25:05,550 --> 00:25:11,610 nii bug väga sarnane sellele näitas üles. 344 00:25:11,610 --> 00:25:15,180 Mõte bug oli - 345 00:25:15,180 --> 00:25:18,820 uuesti, seal oli lihtsalt mingi funktsioon, mis kutsuti, ja see tegi natuke veatuvastuse. 346 00:25:18,820 --> 00:25:24,300 Seal olid mõned konkreetsed sisendite et see veakontroll - 347 00:25:24,300 --> 00:25:30,210 see oleks pidanud olema nagu, eks, sa ei saa nimetada seda funktsiooni jagaja on 0. 348 00:25:30,210 --> 00:25:35,070 Niisiis, ma lähen lihtsalt tagasi mõned viga. 349 00:25:35,070 --> 00:25:38,090 Välja arvatud, see ei olnud nii süütu kui lihtsalt millega võrdne 0-ga. 350 00:25:38,090 --> 00:25:46,920 Selle asemel koodirida lõpuks tegin midagi rohkem nagu kasutaja = administraator. 351 00:25:46,920 --> 00:25:50,500 Või user = root. 352 00:25:50,500 --> 00:25:59,170 See oli süütu - esimesel pilgul - viga, kui ta oleks võinud lihtsalt olnud mõistlik 353 00:25:59,170 --> 00:26:01,560 et ma tahtsin ainult aru midagi konkreetset 354 00:26:01,560 --> 00:26:05,150 kui kasutaja juhtus olema administraatorina administraatori poole. 355 00:26:05,150 --> 00:26:11,220 Aga siis uuesti mõtlema, kas inimene tahab seda nägema lihtne kirjaviga, 356 00:26:11,220 --> 00:26:14,330 aga kui see kood on tegelikult vabastatud, 357 00:26:14,330 --> 00:26:21,580 siis oleks võinud sissemurdmist tahes süsteemi poolt sooritab spetsiifilise lipp - 358 00:26:21,580 --> 00:26:25,200 antud juhul b = 0 - 359 00:26:25,200 --> 00:26:28,020 ja see oleks automaatselt teha kasutaja administraator, 360 00:26:28,020 --> 00:26:30,400 ja siis ta on täielik kontroll. 361 00:26:30,400 --> 00:26:32,540 See juhtus aastal 2003. 362 00:26:32,540 --> 00:26:35,700 >> See lihtsalt juhtus nii, et ainus põhjus, miks see püüti 363 00:26:35,700 --> 00:26:39,200 oli, sest seal juhtus olema mingi automaatne süsteem 364 00:26:39,200 --> 00:26:41,540 et märgata muutust seda pilti 365 00:26:41,540 --> 00:26:44,560 mis kunagi pidanud muuta inimese. 366 00:26:44,560 --> 00:26:47,580 Fail peaks ainult on automaatselt genereeritud. 367 00:26:47,580 --> 00:26:49,780 See lihtsalt juhtus nii, et keegi puudutanud - 368 00:26:49,780 --> 00:26:52,460 noh, inimene, kes tahtis häkkida liigutatud, et faili 369 00:26:52,460 --> 00:26:55,450 ja arvuti vahele, et liigutav. 370 00:26:55,450 --> 00:27:01,750 Niisiis, nad muutsid seda ja alles hiljem aru, milline katastroof see oleks olnud 371 00:27:01,750 --> 00:27:04,830 kui oli saanud läbi reaalses maailmas. 372 00:27:04,830 --> 00:27:08,220 >> Sul võib olla mõtteviis, et - tulevad tagasi meie kompilaator näiteks - 373 00:27:08,220 --> 00:27:14,290 kuigi me seda ei näe - vaadates lähtekoodi - 374 00:27:14,290 --> 00:27:17,490 et midagi eriti on vale, 375 00:27:17,490 --> 00:27:25,460 kui me tegelikult vaatate kahendkoodi koostaja, 376 00:27:25,460 --> 00:27:28,670 näeksime, et midagi on valesti. 377 00:27:28,670 --> 00:27:31,260 Näiteks kui võtame stringid funktsioon - 378 00:27:31,260 --> 00:27:34,930 mis lihtsalt läheb üle vaatama faili ja printida välja kõik stringid on võimalik leida - 379 00:27:34,930 --> 00:27:37,990 kui võtame stringid meie kompilaator, 380 00:27:37,990 --> 00:27:42,400 näeme, et üks string, mis ta teeb on see imelik - 381 00:27:42,400 --> 00:27:45,500 else if (strcmp (kasutajanimi, "häkker") - blaa, blaa, blaa. 382 00:27:45,500 --> 00:27:52,570 Kui keegi juhtus olema paranoiline piisavalt ei usalda oma kompilaator, 383 00:27:52,570 --> 00:27:56,690 nad võiksid minna stringid ja näha seda, 384 00:27:56,690 --> 00:28:00,430 ja siis nad teavad, et seal oli midagi valesti tegelik binaarne. 385 00:28:00,430 --> 00:28:07,250 Aga, stringid oli paratamatult midagi, mis oli koostatud. 386 00:28:07,250 --> 00:28:11,590 Niisiis, kes on öelda, et meie tõlkija ei ole lihtsalt rohkem erikoodi 387 00:28:11,590 --> 00:28:19,240 , mis ütleb, kui stringid on kunagi joosta meie kompilaator, ei väljasta kõik, et pahatahtlikku koodi. 388 00:28:19,240 --> 00:28:23,980 >> Sama idee, kui me tahame, et kuvada koguda faili - 389 00:28:23,980 --> 00:28:30,440 saime teada, et koostajale toob meid koost koodi masinkoodidena - 390 00:28:30,440 --> 00:28:36,010 saame minna vastupidises suunas - objdump-d koostaja - 391 00:28:36,010 --> 00:28:38,770 annab meile kokkupanemisel meie kood. 392 00:28:38,770 --> 00:28:41,730 Vaadates seda, 393 00:28:41,730 --> 00:28:47,480 see on üsna segasena, kuid kui me tahtsime, me võiks vaadata läbi käesoleva 394 00:28:47,480 --> 00:28:51,700 ja põhjus, oota, seal on midagi siin toimub, mida ei tohiks toimub, 395 00:28:51,700 --> 00:28:59,380 ja siis me mõistame, et tõlkija on midagi pahatahtlikku. 396 00:28:59,380 --> 00:29:03,950 Aga nagu stringid, kes on öelda, objdump ei olnud erilist-ääretule. 397 00:29:03,950 --> 00:29:11,380 Põhimõtteliselt taandub sa ei saa midagi usaldada. 398 00:29:11,380 --> 00:29:14,310 Punkti raamatut nimega "usaldamine Trust" on 399 00:29:14,310 --> 00:29:17,900 üldiselt me ​​usaldame oma kompilaator. 400 00:29:17,900 --> 00:29:21,700 Sa kompileerida koodi ja ootame seda teha mida te küsite seda teha. 401 00:29:21,700 --> 00:29:26,440 Aga miks sa usaldad kompilaator? 402 00:29:26,440 --> 00:29:32,120 Sa ei kirjuta kompilaator. Sa ei tea, mida kompilaator ei pruugi tegelikult teevad. 403 00:29:32,120 --> 00:29:36,870 Kes on öelda, et sa ei usalda teda? 404 00:29:36,870 --> 00:29:40,050 Aga isegi siis, noh, võibolla saame usaldada kompilaator. 405 00:29:40,050 --> 00:29:44,670 Seal on kümneid tuhandeid inimesi, kes on vaatasid seda. 406 00:29:44,670 --> 00:29:51,360 Keegi on tunnustatud midagi oli välja kompilaator. 407 00:29:51,360 --> 00:29:55,100 >> Mis siis, kui me lihtsalt minna 1. tasandil sügavam? 408 00:29:55,100 --> 00:29:59,450 Võib ka oma protsessor. 409 00:29:59,450 --> 00:30:01,250 Nagu naeruväärne kui see võiks olla, 410 00:30:01,250 --> 00:30:06,690 äkki seal on mõned petturitest töötaja Intel, kes loob need töötlejad 411 00:30:06,690 --> 00:30:12,400 et kui see protsessor märkab, et näed mingi käsu 412 00:30:12,400 --> 00:30:14,570 mis on mõeldud login arvuti, 413 00:30:14,570 --> 00:30:19,230 protsessor aktsepteerib teatud kasutajanime ja parooli kombinatsiooni. 414 00:30:19,230 --> 00:30:21,530 Oleks üpris keeruline, 415 00:30:21,530 --> 00:30:24,790 kuid keegi võiks seda teha. 416 00:30:24,790 --> 00:30:29,350 Sel hetkel sa tõesti avada oma arvuti vaadata protsessor 417 00:30:29,350 --> 00:30:35,970 ja kasutada mikroskoobi tunnistama, et need ahelad ei rivistatud nagu nad peaksid olema? 418 00:30:35,970 --> 00:30:39,730 Keegi ei ole kunagi jõuda, et viga. 419 00:30:39,730 --> 00:30:45,570 Mingil hetkel, sa lihtsalt pead loobuma ja usalda midagi. 420 00:30:45,570 --> 00:30:48,390 Enamik inimesi ei usalda kompilaator selles punktis. 421 00:30:48,390 --> 00:30:55,760 See tähendab mitte tingimata, et sa peaksid. 422 00:30:55,760 --> 00:30:59,350 Vaadates veidi kurikuulus video - 423 00:30:59,350 --> 00:31:09,280 [Dramaatiline muusika mängib] 424 00:31:09,280 --> 00:31:13,270 [See on UNIX süsteemi. Ma tean seda.] 425 00:31:13,270 --> 00:31:14,470 [See kõik failid -] 426 00:31:14,470 --> 00:31:18,950 Ta ütles: "See on UNIX süsteemi. Tean seda." 427 00:31:18,950 --> 00:31:21,760 Vahetage UNIX iganes teie lemmik operatsioonisüsteem on - 428 00:31:21,760 --> 00:31:25,230 ta oleks võinud öelda: "See on Windowsi süsteemi. Tean seda." 429 00:31:25,230 --> 00:31:29,710 See on täiesti mõttetu väide, 430 00:31:29,710 --> 00:31:34,450 kuid kõik me teame, et ta juhtub teadma tagaukse sisse UNIX süsteemi. 431 00:31:34,450 --> 00:31:38,840 Ta teab mõned kasutajanime / parooli kombinatsiooni, mis tegelikult lasksid 432 00:31:38,840 --> 00:31:41,540 mida iganes ta tahab. 433 00:31:41,540 --> 00:31:49,000 >> Hea küll. Moraal täna on põhimõtteliselt sa ei saa midagi usaldada. 434 00:31:49,000 --> 00:31:52,620 Isegi asjad, mida sa kirjutad - sa ei kirjuta kompilaator. 435 00:31:52,620 --> 00:31:53,870 Tõlkija võiks olla halb. 436 00:31:53,870 --> 00:31:59,140 Isegi kui sa ei kirjuta kompilaator, asi, mis töötab tõlkija võiks olla halb. 437 00:31:59,140 --> 00:32:05,210 (Naerab) Seal ei ole palju saate teha. 438 00:32:05,210 --> 00:32:09,050 Maailm on hukule määratud. 439 00:32:09,050 --> 00:32:11,570 Tagasi David! 440 00:32:11,570 --> 00:32:19,540 [Aplaus] 441 00:32:19,540 --> 00:32:21,340 >> [David] Aitäh. See oli tõesti masendav. 442 00:32:21,340 --> 00:32:23,910 Aga tõepoolest, Rob on õige. 443 00:32:23,910 --> 00:32:27,150 Me tõesti ei ole lahendus, kuid sa oled umbes saada mõned lahendused 444 00:32:27,150 --> 00:32:29,150 mõned sagedamini kaitsemehhanisme. 445 00:32:29,150 --> 00:32:31,170 Nähes seda, mida Nate ja olen teinud lavalt maha seal 446 00:32:31,170 --> 00:32:33,950 on teada, et seal on nii palju sülearvuteid, selles ruumis, 447 00:32:33,950 --> 00:32:37,020 oleme nuhkinud kõik traadita liiklus läheb läbi selle ruumi viimase 20 minuti 448 00:32:37,020 --> 00:32:39,260 ajal Rob rääkida, nii et me viime 2 minuti vaheaega siin. 449 00:32:39,260 --> 00:32:41,740 Nate läheb üles seada, ja siis me räägime kõik asjad 450 00:32:41,740 --> 00:32:46,380 oleksime võinud leida. (Naer) 451 00:32:46,380 --> 00:32:51,990 >> Niisiis, ma võib-olla liialdatud natuke lihtsalt huvides draamat, 452 00:32:51,990 --> 00:32:55,990 kuid oleksime võinud nuhkinud kõik teie traadita liiklus, sest tõepoolest, 453 00:32:55,990 --> 00:32:57,240 see on nii lihtne. 454 00:32:57,240 --> 00:32:59,790 Kuid on ka võimalusi, mida saab kaitsta selle vastu, ja nõnda, et 455 00:32:59,790 --> 00:33:03,160 Ma annan sulle Nate Hardison. >> [Nate] Sweet. 456 00:33:03,160 --> 00:33:06,300 (Aplaus) 457 00:33:06,300 --> 00:33:08,650 >> [Nate] Tänan, mees. Hindan Hüüab. 458 00:33:08,650 --> 00:33:12,790 Olgu! See on mäng nädalas. Olete te põnevil? 459 00:33:12,790 --> 00:33:16,670 Loodetavasti see saab olema suur mäng laupäeval. 460 00:33:16,670 --> 00:33:20,220 Ma kujutan ette, kutid sel hetkel - arvestades, et teil on viktoriin kolmapäeval 461 00:33:20,220 --> 00:33:24,430 Kõik kasutaja koodi, ja me lihtsalt istus kaudu imeline loeng Rob 462 00:33:24,430 --> 00:33:25,850 terve hunnik C koodi see - 463 00:33:25,850 --> 00:33:28,330 on võibolla natuke väsinud kood. 464 00:33:28,330 --> 00:33:32,180 Selles osas, et me tegelikult ei puutu mingi koodi üldse. 465 00:33:32,180 --> 00:33:36,960 Me lihtsalt räägime tehnoloogia, mida kasutavad iga päev, 466 00:33:36,960 --> 00:33:39,790 sageli palju, palju tundi päevas, 467 00:33:39,790 --> 00:33:46,220 ja me räägime mõju turvalisusele, et on olemas. 468 00:33:46,220 --> 00:33:48,960 >> Me oleme palju rääkinud julgeoleku jooksul semestri 469 00:33:48,960 --> 00:33:53,030 ja alustasime natuke krüpto. 470 00:33:53,030 --> 00:33:55,030 [Bdoh lv vwlqng!] 471 00:33:55,030 --> 00:33:57,890 Ja kui te olete ilmselt super põnevil, et möödaminnes märgib üksteisega 472 00:33:57,890 --> 00:33:59,890 klassi kasutades Caesar salakiri nagu see üks, 473 00:33:59,890 --> 00:34:03,870 tegelikult, seal on veel mõned lõbus olla oli kui sa tegelikult räägid turvalisus 474 00:34:03,870 --> 00:34:05,870 ja sellist kraami. 475 00:34:05,870 --> 00:34:09,090 Täna me ei kavatse katta mõned tehnoloogiad 476 00:34:09,090 --> 00:34:13,650 mida inimesed tegelikult kasutavad reaalses maailmas teha igasuguseid asju 477 00:34:13,650 --> 00:34:18,360 alates nuusutamisel inimeste paketid tegelikult läheb ja 478 00:34:18,360 --> 00:34:20,409 tungimise vastu inimeste pangaarveid ja kõik see. 479 00:34:20,409 --> 00:34:23,460 Need on õiguslikud vahendid, et me räägime 480 00:34:23,460 --> 00:34:26,320 välja arvatud võib-olla üks vahend. 481 00:34:26,320 --> 00:34:28,889 >> Ja ma tahan teha kiire vastutust. 482 00:34:28,889 --> 00:34:34,909 Kui me räägime nendest asjadest, me räägime neile, et sa tead, mis seal on, 483 00:34:34,909 --> 00:34:39,389 ja sa oled teadlik, kuidas olla ohutu kui sa oled kasutades arvuti. 484 00:34:39,389 --> 00:34:44,000 Aga me kindlasti ei taha vihjata, et sa peaksid kasutama neid vahendeid 485 00:34:44,000 --> 00:34:48,090 oma Dorm või maja, sest sa võid joosta palju suuri probleeme. 486 00:34:48,090 --> 00:34:52,760 See on üks põhjus, et me täna tegelikult ei nuusutamisel oma pakettides. 487 00:34:52,760 --> 00:35:01,300 >> Hea küll. Eelmisel esmaspäeval, me rääkisime küpsised ja HTTP ja autentimise, 488 00:35:01,300 --> 00:35:05,920 ja kuidas Firesheep avab see suur uks oma Facebooki konto, 489 00:35:05,920 --> 00:35:08,670 oma Hotmaili konto - kui keegi on ikka kasutad Hotmaili - 490 00:35:08,670 --> 00:35:12,360 ja paljud teised kontod. 491 00:35:12,360 --> 00:35:16,980 Palju see kraam läheb ehitada välja, et 492 00:35:16,980 --> 00:35:22,070 Aga kõigepealt ma tahan võtta kiire ringkäigu, kuidas internet on aja jooksul arenenud. 493 00:35:22,070 --> 00:35:27,490 Tagasi '90s, kutid võisid meenutada tegelikult kõrvaldamine 494 00:35:27,490 --> 00:35:29,880 arvutite üks neist. 495 00:35:29,880 --> 00:35:32,640 Nüüd me ei tee seda nii palju enam. 496 00:35:32,640 --> 00:35:37,230 See tegelikult välja, et selleks, et ühendada Etherneti kaabel oma sülearvuti, 497 00:35:37,230 --> 00:35:41,710 Mul on nüüd kasutada ühte neist adapterid, mis on tõesti hull. 498 00:35:41,710 --> 00:35:47,580 >> Selle asemel, aastal 1997 oli meil see uus, lõbus tehnoloogia 499 00:35:47,580 --> 00:35:54,960 tuli välja, et tuntakse IEEE 802.11, nii et see on traadita internet standard 500 00:35:54,960 --> 00:36:00,430 IEEE on see juhtorgan, mis annab välja igasuguseid - 501 00:36:00,430 --> 00:36:04,770 avaldab igasuguste standardite seoses arvutitega. 502 00:36:04,770 --> 00:36:08,780 802 standardid on kõik umbes Interneti-tehnoloogiaid. 503 00:36:08,780 --> 00:36:12,690 Nii 802.3, näiteks on Ethernet standardi, 504 00:36:12,690 --> 00:36:17,120 802.15.1 usun on Bluetoothi ​​standard, 505 00:36:17,120 --> 00:36:19,540 ja 802.11 on kõike traadita Interneti. 506 00:36:19,540 --> 00:36:24,150 Aastal 1997 see tuli välja. See ei ole päris saaki kohe. 507 00:36:24,150 --> 00:36:30,200 Alles 1999 ja 802.11b standard tuli välja, et just tõesti populaarne. 508 00:36:30,200 --> 00:36:36,330 >> Kui palju sa mäletad, kui arvutid hakkasid tulema välja ja saada wi-fi neid? 509 00:36:36,330 --> 00:36:38,330 See oli tõesti lahe, mis? 510 00:36:38,330 --> 00:36:41,260 Mäletan, kuidas mu esimene sülearvuti keskkoolis, 511 00:36:41,260 --> 00:36:44,250 ja see oli traadita kaardi sisestada. 512 00:36:44,250 --> 00:36:49,580 Mu isa andis selle mulle ja ütles, et ma peaks kasutama seda minu kolledži apps ja kõik see, 513 00:36:49,580 --> 00:36:53,030 ja mul polnud aimugi, kuidas ma läksin otsida seda kraami online. 514 00:36:53,030 --> 00:36:54,640 Aga õnneks oli mul traadita kaardi, nii et oli päris lahe. 515 00:36:54,640 --> 00:37:04,090 Tänapäeval näete ka 802.11g mis on üks teine ​​väga populaarne 516 00:37:04,090 --> 00:37:06,090 traadita standarditele, mis on seal. 517 00:37:06,090 --> 00:37:08,660 Mõlemad b ja g on päris vananenud selles punktis. 518 00:37:08,660 --> 00:37:12,580 Keegi teab mis versioon enamik inimesi on just nüüd 519 00:37:12,580 --> 00:37:15,110 kui nad ostavad uue traadita ruuterid ja sellist kraami? 520 00:37:15,110 --> 00:37:24,290 N. Täpselt. Bingo. Ja selgub, et AC standardit lihtsalt tulevad välja eelnõu, 521 00:37:24,290 --> 00:37:28,050 ja on ka teisi versioone teel. 522 00:37:28,050 --> 00:37:31,190 Iga nende standardite mida me üha enam ribalaius, 523 00:37:31,190 --> 00:37:33,900 rohkem andmeid kiiremini. 524 00:37:33,900 --> 00:37:36,260 Need asjad pidevalt muutub üsna kiiresti. 525 00:37:36,260 --> 00:37:39,880 Samuti muudab see, et me peame ostma rohkem ruuterid ja kõik, mis lõbusaid asju. 526 00:37:39,880 --> 00:37:48,160 >> Räägime mida traadita side tegelikult on selle keskmes. 527 00:37:48,160 --> 00:37:51,790 Ethernet ja need vanad dial-up modemid, 528 00:37:51,790 --> 00:37:55,780 kui tegelikult oli see värk, et sa arvutiga ühendatud, 529 00:37:55,780 --> 00:37:59,820 ja siis ühendatud modem kehvasti, ja siis ühendatud see pesa oma seina. 530 00:37:59,820 --> 00:38:01,820 Sul oli see traadiga ühendus, eks? 531 00:38:01,820 --> 00:38:06,030 Kogu mõte traadita on vabaneda seda kraami. 532 00:38:06,030 --> 00:38:10,300 Selleks, et mis meil on sisuliselt 533 00:38:10,300 --> 00:38:13,960 raadioside, kus meie traadita ruuter - 534 00:38:13,960 --> 00:38:16,230 määratud meie väike traadita ikoon - 535 00:38:16,230 --> 00:38:21,730 on ühendatud internetti koos selle tahke nool, mis näitab mingi traadiga ühendus, 536 00:38:21,730 --> 00:38:24,640 aga kui sa ühendada oma traadita ruuter 537 00:38:24,640 --> 00:38:29,190 sa oled tegelikult kasutades peaaegu nagu käsisaatjate vahel 538 00:38:29,190 --> 00:38:31,960 arvuti ja traadita ruuter. 539 00:38:31,960 --> 00:38:35,150 Mis on väga lahe on see, saate liikuda. 540 00:38:35,150 --> 00:38:40,900 Võite kanda arvutisse üle kogu Sanders, minna surfata veebis, mida iganes sa tahad, 541 00:38:40,900 --> 00:38:43,240 nagu te kõik teame ja armastust, 542 00:38:43,240 --> 00:38:46,030 ja sa ei kunagi olema ühendatud midagi. 543 00:38:46,030 --> 00:38:53,880 Et see toimiks, meil on nii selle vastuvõtmine ja edastamine. 544 00:38:53,880 --> 00:38:56,060 See on tõesti niimoodi käsisaatjate. 545 00:38:56,060 --> 00:39:03,800 >> See traadita ruuter - mis Sanders istub all praegu, just siin - 546 00:39:03,800 --> 00:39:06,590 alati ringhäälingu ja vastuvõtmise, edastamise ja vastuvõtmise, 547 00:39:06,590 --> 00:39:09,330 ja samamoodi arvutis kõik läheb sama asi ka. 548 00:39:09,330 --> 00:39:12,840 Me lihtsalt ei kuule seda. 549 00:39:12,840 --> 00:39:17,900 Teine asi, mida saate teha, on sul võib olla mitu arvutit 550 00:39:17,900 --> 00:39:22,200 räägin sama traadita ruuter. 551 00:39:22,200 --> 00:39:25,680 Lähemal viibite ruuter - ja jällegi, see on raadioside - 552 00:39:25,680 --> 00:39:30,320 Mida lähemal viibite, seda parem on teie signaal on, seda parem arvuti "kuuleb" ruuteri 553 00:39:30,320 --> 00:39:32,460 ja saab suhelda interneti kaudu. 554 00:39:32,460 --> 00:39:39,520 Kui te olete kunagi teie Dorm, sinu majas ja sa ei tea, miks teie signaal on halb, 555 00:39:39,520 --> 00:39:42,230 see on ilmselt seetõttu). sa ei ole väga lähedal oma ruuteri või 556 00:39:42,230 --> 00:39:46,930 b). seal on midagi sinu ja su ruuter nagu tsement seina või midagi 557 00:39:46,930 --> 00:39:50,720 et ei lase neid raadiolainete läbida. 558 00:39:50,720 --> 00:39:57,850 >> Räägime natuke sellest, miks halvad poisid nagu wi-fi. 559 00:39:57,850 --> 00:40:02,980 Halvad poisid armastavad wi-fi mõne põhjustel. 560 00:40:02,980 --> 00:40:06,670 Siin on meie vastik paha poiss seal. 561 00:40:06,670 --> 00:40:10,660 Üks põhjus, miks see paha poiss armastab wi-fi 562 00:40:10,660 --> 00:40:18,770 sellepärast, vaikimisi palju traadita ruuterid tulevad ja kui sa nende moodustamise, 563 00:40:18,770 --> 00:40:20,950 nad ebaturvaliseks. 564 00:40:20,950 --> 00:40:23,970 See on probleem, ja on olnud juhtumeid - 565 00:40:23,970 --> 00:40:28,210 Rohkete, nüüd - kui paha poiss näitab kuni kellegi maja, 566 00:40:28,210 --> 00:40:32,630 märkab, et seal on krüpteerimata WiFi-ühendus on neid võimalik ühendada. 567 00:40:32,630 --> 00:40:37,350 Nad ühendada Wi-Fi, ja siis nad alustada allalaadimist igasuguseid lõbusaid asju. 568 00:40:37,350 --> 00:40:40,890 Ja nad ei allalaadimine kassipojad, nad ei ole allalaadimiseks kutsikad. 569 00:40:40,890 --> 00:40:44,610 See on nagu BitTorrent. See on vastik ja vastik. 570 00:40:44,610 --> 00:40:48,740 On olnud juhtumeid, kus FBI on isegi saanud osaleda 571 00:40:48,740 --> 00:40:52,390 mõtlesin, et isik, kes omab maja on tegelikult üks 572 00:40:52,390 --> 00:40:56,090 lähe sinna ja allalaadimine värk, et nad tõesti ei tohiks olla. 573 00:40:56,090 --> 00:41:00,730 Olles krüpteerimata wi-fi ei ole kindlasti midagi, mida sa teha tahad, 574 00:41:00,730 --> 00:41:06,340 kui ainult pea FBI tulla koputama oma ukse. 575 00:41:06,340 --> 00:41:09,910 >> Teine põhjus, miks pahad poisid armastavad wi-fi 576 00:41:09,910 --> 00:41:13,870 on põhjus, et David rääkisime varem pausi ajal. 577 00:41:13,870 --> 00:41:17,240 Sest see on raadioside keskmes, 578 00:41:17,240 --> 00:41:22,460 kui tead kanali, saate kuulata, et raadiojaam. 579 00:41:22,460 --> 00:41:31,870 Näiteks kui seal on halb seal istub keskel paremal kõrval pöörduspunkti, 580 00:41:31,870 --> 00:41:36,830 kõrval, et traadita ruuter, paha poiss saab pealt kuulata kõik traadita liiklus 581 00:41:36,830 --> 00:41:40,240 mis on pärit kõik need arvutid. 582 00:41:40,240 --> 00:41:44,590 Tegelikult on need poisid - need õnnelik paar, kes on siin esireas - 583 00:41:44,590 --> 00:41:47,610 sest nad on super-peaaegu kõik need traadita ruuterid 584 00:41:47,610 --> 00:41:49,950 et istuda lihtsalt all etapis 585 00:41:49,950 --> 00:41:53,780 nad saaksid kuulda igaühe liiklus selles kogu ruumi 586 00:41:53,780 --> 00:41:59,480 kui olete ühendatud WiFi-ühendus ning alustada sirvides need pöörduspunktid. 587 00:41:59,480 --> 00:42:03,740 See ei ole väga raske istuda ise heal positsioonil, et nuusutada ja nuputada 588 00:42:03,740 --> 00:42:07,030 mida teised inimesed teevad. 589 00:42:07,030 --> 00:42:10,830 See on midagi, mida meeles pidada, eriti kui sa ei ole kindel, kui pöörduspunkt on 590 00:42:10,830 --> 00:42:15,010 ja te vaatate sõnaõigus, kell Starbucks. 591 00:42:15,010 --> 00:42:17,360 >> Selgub, et nuusutamisel ja kõik selle 592 00:42:17,360 --> 00:42:19,440 ei ole tõesti nii raske teha. 593 00:42:19,440 --> 00:42:25,430 Seal on programm nimega tcpdump mis puistab igasuguseid TCP liiklus 594 00:42:25,430 --> 00:42:29,910 ja saab selle käivitada üsna lihtsalt - just nagu mina tegin täna hommikul. 595 00:42:29,910 --> 00:42:32,810 Siin on natuke dump, ja siin on mõned liiklust, mis oli tulemas üle 596 00:42:32,810 --> 00:42:34,960 minu võrku ajal. 597 00:42:34,960 --> 00:42:41,500 Näete - kui teil kissitama tõesti raske - seal on natuke Spotify seal. 598 00:42:41,500 --> 00:42:44,050 Peal tcpdump - sest see on selline valu kasutada - 599 00:42:44,050 --> 00:42:48,860 seal on programm nimega Wireshark mis kimbud see kõik üles kena GUI. 600 00:42:48,860 --> 00:42:51,970 Wireshark on super-mugav nii et kui sa lähed võtma võrgustike klassid, 601 00:42:51,970 --> 00:42:56,780 see on vahend, et sa tuled armastada, sest see aitab teil lahkama kõik paketid 602 00:42:56,780 --> 00:42:59,400 mis on ujuvad ringi seal. 603 00:42:59,400 --> 00:43:01,810 Aga see võib olla ka kasutatud halb. 604 00:43:01,810 --> 00:43:05,810 See on väga lihtne lihtsalt alla laadida selle programmi boot it up, 605 00:43:05,810 --> 00:43:09,300 Võrguühenduse lüüa, ja vaata, kõik, mis siin toimub - 606 00:43:09,300 --> 00:43:14,130 ja filtreerida ja teha igasuguseid lõbusaid asju koos sellega. 607 00:43:14,130 --> 00:43:17,930 >> Teine asi, mida saate teha koos traadita side 608 00:43:17,930 --> 00:43:25,380 ei ole ainult võite salaja, kuid võite ka õppida, kuidas jamada võrgu 609 00:43:25,380 --> 00:43:31,020 ja süstida oma andmed, et kontrollida kogemus, et teised inimesed 610 00:43:31,020 --> 00:43:35,140 samas traadita võrgus saavad. 611 00:43:35,140 --> 00:43:37,140 Võtame pilk seda. 612 00:43:37,140 --> 00:43:40,700 Siin on Firesheep - mida me teame ja armastust eelmisel nädalal - 613 00:43:40,700 --> 00:43:43,590 mis on see, et pealtkuulamise tehnoloogia. 614 00:43:43,590 --> 00:43:50,360 Kui näiteks tahame aktiivselt on meie paha minna ja jändama 615 00:43:50,360 --> 00:43:52,690 üks neist arvutitest, 616 00:43:52,690 --> 00:43:58,380 Selle stsenaariumi meil arvuti püüab minna surfata harvard.edu. 617 00:43:58,380 --> 00:44:04,690 Mis juhtub on see, et arvuti saadab kõigepealt sõnum traadita ruuter ja ütleb, 618 00:44:04,690 --> 00:44:07,920 hei, ma tahan minna külastus www.harvard.edu. 619 00:44:07,920 --> 00:44:10,610 Ütle mingil põhjusel nad üritavad saada teavet mängu sel nädalavahetusel. 620 00:44:10,610 --> 00:44:14,940 Paha poiss, sest ta istub keset, 621 00:44:14,940 --> 00:44:18,730 kõrval, et pöörduspunkti, võib näha, et side tulevad arvuti 622 00:44:18,730 --> 00:44:26,170 ruuter, ja ta teab, "Ahhaa! Keegi läheb harvard.edu." (Halvasti naerab) 623 00:44:26,170 --> 00:44:33,870 Seal saab olema see latentsus kui suhtlemine läheb ruuteri 624 00:44:33,870 --> 00:44:37,780 välja Internetti minna leida veebilehelt aadressil harvard.edu-- 625 00:44:37,780 --> 00:44:42,020 nagu te kõik teate pärast teeme oma PHP psets - 626 00:44:42,020 --> 00:44:45,680 ja nii paha poiss on veidi aega, natuke aken, 627 00:44:45,680 --> 00:44:49,410 kus ta saab vastata mõned asjad. 628 00:44:49,410 --> 00:44:53,660 >> Oletame, et see paha poiss, on muidugi Yaley. 629 00:44:53,660 --> 00:44:59,990 Ta reageerib koos harvardsucks.org. Boo! 630 00:44:59,990 --> 00:45:02,300 Paha, paha poiss! Bad Yaley! 631 00:45:02,300 --> 00:45:06,020 Või veel hullem, ta võib vastata, et. [Http://youtu.be/ZSBq8geuJk0]. 632 00:45:06,020 --> 00:45:09,530 Ma lasen teil poisid aru saada, mis see on. 633 00:45:09,530 --> 00:45:14,840 See on tegelikult tehnoloogia nimega Airpwn! aastal debüteeris 634 00:45:14,840 --> 00:45:18,950 üks turvalisuse konverentside paar aastat tagasi. 635 00:45:18,950 --> 00:45:25,190 Mis Airpwn! sa oled võimeline tegelikult süstida liiklust tagasi võrku. 636 00:45:25,190 --> 00:45:30,060 Arvutid, mis üritasid minema Internet ja üritab pääseda 637 00:45:30,060 --> 00:45:33,090 Google.com, et Facebook.com, et harvard.edu 638 00:45:33,090 --> 00:45:39,190 vaata pahatahtliku vastuse tulla ja kohe eeldada, okei, 639 00:45:39,190 --> 00:45:43,550 See on vastus, mida ma ootasin ja lõpuks saada sisu 640 00:45:43,550 --> 00:45:48,860 harvardsucks.org või nameyourfavoriteshocksite.com, 641 00:45:48,860 --> 00:45:55,270 ja te näete, kui kiiresti asjad halveneb. 642 00:45:55,270 --> 00:46:00,190 >> Kõik need asjadele ei saa teha 643 00:46:00,190 --> 00:46:05,870 Nende traadiga ühendusi, sest koos traadiga ühendus 644 00:46:05,870 --> 00:46:08,710 see on raske Snoop liikluseks. 645 00:46:08,710 --> 00:46:13,020 Kui ma olen paha poiss ja ühes otsas on arvuti 646 00:46:13,020 --> 00:46:14,460 ja teises otsas on marsruuter - modemi - 647 00:46:14,460 --> 00:46:20,180 ainus viis võin saada vahel, et ühendus on tegelikult Liimida minu arvuti 648 00:46:20,180 --> 00:46:22,180 aastal kusagil keskel 649 00:46:22,180 --> 00:46:26,820 või tegema midagi muud ruuteris, midagi allavoolu. 650 00:46:26,820 --> 00:46:33,360 Kuid traadita, see võib olla nii lihtne kui istub esireas klassiruumis, 651 00:46:33,360 --> 00:46:38,200 ja mida saate teha igasuguseid vastikuid asju inimesed tagasi. 652 00:46:38,200 --> 00:46:41,570 >> Räägime, kuidas sa võiksid kaitsta vastu mõned neist asjadest. 653 00:46:41,570 --> 00:46:46,860 Inimesed, kellel tekkis traadita standarditele - 802,11 - 654 00:46:46,860 --> 00:46:50,820 nad ei ole rumalad inimesed mis tahes kujutlusvõime. 655 00:46:50,820 --> 00:46:56,110 See on lahe tehnoloogia ja kui ta debüteeris 1999 656 00:46:56,110 --> 00:47:00,780 nad tulid välja käesoleva standardi nimetatakse WEP. 657 00:47:00,780 --> 00:47:03,360 Näete siin, kui sa püüad ja liituda traadita võrgu, 658 00:47:03,360 --> 00:47:07,450 teil on igasuguseid erinevaid turvalisuse võimalusi. 659 00:47:07,450 --> 00:47:11,800 See on selline valu, sest seal on 6 kõik koos 660 00:47:11,800 --> 00:47:14,790 ja ta ei ole kunagi tõesti mõtet millest 1 ühinema. 661 00:47:14,790 --> 00:47:19,190 See 1 ülaosas on esimene, et nad tulid välja nn WEP. 662 00:47:19,190 --> 00:47:27,960 WEP tähistab Wired Equivalent Privacy, ma usun, 663 00:47:27,960 --> 00:47:31,730 ei Wireless Encryption protokolli, mis on levinud eksitav. 664 00:47:31,730 --> 00:47:36,170 Kuna ta püüab teile privaatsust samaväärne ja turvalisuse kaitse 665 00:47:36,170 --> 00:47:40,590 samaväärne traadiga võrgu 666 00:47:40,590 --> 00:47:46,710 WEP mis jõuab sündmused on 667 00:47:46,710 --> 00:47:52,300 sul on lihtne, vähe parool, et kirjutad ja mis teenindab varjata 668 00:47:52,300 --> 00:47:56,210 kõik oma side vahel teie arvuti ja ruuter. 669 00:47:56,210 --> 00:47:58,210 >> Milles probleem koos WEP küll? 670 00:47:58,210 --> 00:48:01,470 UUS koos WEP on tõesti lühike, 671 00:48:01,470 --> 00:48:04,900 ja ka kõik kasutab seda sama täpne parooli 672 00:48:04,900 --> 00:48:07,610  ja nii see on tõesti lihtne lahti. 673 00:48:07,610 --> 00:48:10,580 Nii et väga kiiresti inimesed arvasin, et WEP oli probleem, 674 00:48:10,580 --> 00:48:16,100 ja ainus põhjus näed seda näitab ikka see väikemees on - 675 00:48:16,100 --> 00:48:18,890 mõned vanemad süsteemid, mis ei kasuta WEP - 676 00:48:18,890 --> 00:48:25,710 mida sa peaksid selle asemel otsite on WPA ja isegi WPA2 standardid 677 00:48:25,710 --> 00:48:29,130 et vabastati hiljem. 678 00:48:29,130 --> 00:48:35,040 Need süsteemid on palju parem minna kell kaitset traadita Interneti. 679 00:48:35,040 --> 00:48:41,090 See ütles, on neil siiski ka mõned hackability. 680 00:48:41,090 --> 00:48:44,010 Seal on vahendeid seal, et võib minna seda teha. 681 00:48:44,010 --> 00:48:47,490 Üks asi, eriti, et saab vastik on see, et 682 00:48:47,490 --> 00:48:55,370 kui sa ühendada ja autenditakse traadita ruuter ja kasutavad mingisugune 683 00:48:55,370 --> 00:49:00,940 krüpteeritud andmeside, selgub, et häkker saab hõlpsalt saata ühe pakettaknad 684 00:49:00,940 --> 00:49:03,990 lahti sind ruuteri 685 00:49:03,990 --> 00:49:07,220 ja kui nad on lahti te neid saab siis kuulata - 686 00:49:07,220 --> 00:49:11,800 nad saavad nuusutada neid pakette nagu te üritate uuesti luua ühendus ruuteriga. 687 00:49:11,800 --> 00:49:16,800 Ja et teavet, mida nad saavad siis minna ja dekrüpteerimiseks oma ülejäänud suhtlemist. 688 00:49:16,800 --> 00:49:24,580 See ei ole mis tahes viisil mingit turvalise kaugemale kõik kujutlusvõime. 689 00:49:24,580 --> 00:49:30,060 >> Teine asi, mida saate teha siis, kui olete loomist traadita võrgud 690 00:49:30,060 --> 00:49:35,460 või olete neid ühendab, on - te märkate, et siin, kui ma ühineda selle võrgustiku 691 00:49:35,460 --> 00:49:37,640 ta küsib nime oma võrku. 692 00:49:37,640 --> 00:49:41,060 See on tuntud ka kui SSID. 693 00:49:41,060 --> 00:49:48,610 Ja te näete siin, et paremal on mul kast, mis näitab mulle saadaval SSID. 694 00:49:48,610 --> 00:49:52,690 Seal Harvardi Ülikool, CS50 ja CS50 personal võrku. 695 00:49:52,690 --> 00:49:59,180 Nüüd, kui paljud teist teadsid, oli CS50 personal võrgu ümber? 696 00:49:59,180 --> 00:50:01,910 Mõned teist. Mitte kõik sa. 697 00:50:01,910 --> 00:50:08,800 Probleem selles muidugi on, et kui me ei pane seda kuni meie nimekirja SSIDs, 698 00:50:08,800 --> 00:50:10,930 keegi poleks teadnud ta kõige tõenäolisem. 699 00:50:10,930 --> 00:50:16,090 Ma loodan. Kui te just kõik üritavad crack meie traadita. 700 00:50:16,090 --> 00:50:18,700 Aga see on midagi, mida saate teha, et on tõesti oluline, kui olete loomist 701 00:50:18,700 --> 00:50:20,280 ruuter kodus. 702 00:50:20,280 --> 00:50:22,820 See ilmselt ei juhtu mõne aasta jooksul palju teid, 703 00:50:22,820 --> 00:50:29,010 kuid pidage meeles, et hoida, et SSID sealt ja ei ka nimetades seda 704 00:50:29,010 --> 00:50:34,630 midagi super-ühine aitab teil turvalisemaks pikemas perspektiivis. 705 00:50:34,630 --> 00:50:38,070 >> Lõplik paar asja, mida saate teha. Üks on HTTPS. 706 00:50:38,070 --> 00:50:44,760 Kui teil on Starbucks, kui te olete avaliku WiFi leviala 707 00:50:44,760 --> 00:50:52,620 ja te otsustate juurdepääsu pangakontole, Gmaili, Facebooki, 708 00:50:52,620 --> 00:50:56,140 veenduge, et need ühendused lähevad üle HTTPS. 709 00:50:56,140 --> 00:50:59,800 See on lisandunud turvameede, lisatakse kiht krüpteerimist. 710 00:50:59,800 --> 00:51:01,520 Üks asi, mida meeles pidada on siin, 711 00:51:01,520 --> 00:51:04,740 Kui paljud teist on kunagi klõpsatud läbi, et suur, punane ekraan, mis ütleb, 712 00:51:04,740 --> 00:51:07,480 "See veebisait võib olla halb." 713 00:51:07,480 --> 00:51:09,710 Ma tean, et on. 714 00:51:09,710 --> 00:51:13,090 See on ilmselt, kui sa oled kõik lugemas vaatama minna Kodumaa või midagi sellist, eks? 715 00:51:13,090 --> 00:51:19,900 Jah. (Publiku naer) Jah. Seal sa lähed. Me teame, kes vaatab kodumaa. 716 00:51:19,900 --> 00:51:24,540 See suur, punane ekraan seal 717 00:51:24,540 --> 00:51:28,600 tihti näitab, et midagi funky toimub. 718 00:51:28,600 --> 00:51:32,530 Vahel on lihtsalt veebileht ise on ebakindel, 719 00:51:32,530 --> 00:51:35,520 kuid sama suur, punane ekraani kerkib, kui inimesed üritavad 720 00:51:35,520 --> 00:51:37,520 Mount võrgu rünnakud sind. 721 00:51:37,520 --> 00:51:40,220 Nii et kui sa näed, et suur, punane ekraan tulla kell Starbucks, 722 00:51:40,220 --> 00:51:42,440 ei klõpsa läbi. 723 00:51:42,440 --> 00:51:45,350 Halvad uudised. Halvad uudised kannab. 724 00:51:45,350 --> 00:51:51,490 >> Viimane asi, mida saab vaadata 725 00:51:51,490 --> 00:51:54,120 on mingi VPN. 726 00:51:54,120 --> 00:52:00,280 See VPN on saadaval läbi Harvardi - vpn.fas.harvard.edu-- 727 00:52:00,280 --> 00:52:03,260 ja mida see teeb, on see tegelikult luuakse turvaline ühendus 728 00:52:03,260 --> 00:52:06,460 ja sinu vahel Harvard, kanalid oma liiklus läbi, 729 00:52:06,460 --> 00:52:12,160 ja nii kui sa istud kohas nagu Starbucks 730 00:52:12,160 --> 00:52:19,030 saate ühendada Harvardi saada, et ohutu liikluse, ja siis sirvida Harvardi. 731 00:52:19,030 --> 00:52:21,950 Jällegi, ei ole lollikindel. Inimesed saavad keskel. 732 00:52:21,950 --> 00:52:25,850 Nad võivad alustada murda, kuid see on palju turvalisem kui tuginemine turvalisuse 733 00:52:25,850 --> 00:52:28,620 on wi-fi üksi. 734 00:52:28,620 --> 00:52:32,570 >> Hea küll. Kokkuvõttes 735 00:52:32,570 --> 00:52:34,580 kui häälestate traadita võrgud, 736 00:52:34,580 --> 00:52:37,250 kui sa lähed läbi kasutada traadita avalikus - 737 00:52:37,250 --> 00:52:43,430 kas see on Starbucks, kas see on viis meest, kas see on B.Good, 738 00:52:43,430 --> 00:52:46,440 midagi sellist - kus iganes nad on wi-fi - 739 00:52:46,440 --> 00:52:48,440 olla teadlik oma ümbrusest. 740 00:52:48,440 --> 00:52:50,440 Ole teadlik sellest, mida inimesed saavad teha. 741 00:52:50,440 --> 00:52:53,890 Ja karta. Ärge juurdepääsu pangakontole. 742 00:52:53,890 --> 00:52:58,740 See võiks olla ebaviisakas ärkamine, kui keegi näitab üles oma salasõna hiljem. 743 00:52:58,740 --> 00:53:05,480 Mis, et minna karmiinpunane! Ja ma lähen omakorda asju tagasi üle David lõpliku sõna. 744 00:53:05,480 --> 00:53:11,270 (Aplaus) 745 00:53:11,270 --> 00:53:14,360 >> [David] ma arvasin ma jagada üks asi isiklikust kogemusest. 746 00:53:14,360 --> 00:53:19,940 Vahend võite meeldib mängida - kuigi Apple on suuresti likvideeritud selles küsimuses 747 00:53:19,940 --> 00:53:22,710 kui olete uuendanud oma tarkvara, sest - 748 00:53:22,710 --> 00:53:26,670 kuid suunas selle lõpuks ei ole tõesti on võimalik usaldada tarkvara, et me kasutame, 749 00:53:26,670 --> 00:53:33,270 ja Nate võrra, on võimalik nuuskida üsna vähe sellest, mida teised inimesed teevad 750 00:53:33,270 --> 00:53:37,010 seal - see oli tükk tarkvara, mis tuli välja umbes aasta ja pool tagasi. 751 00:53:37,010 --> 00:53:39,010 [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] 752 00:53:39,010 --> 00:53:41,010 Juba mõnda aega, iTunes - enne iCloud, kui sa olid sünkroniseerida oma iPod või oma iPhone'i või 753 00:53:41,010 --> 00:53:45,570 või oma iPads iTunes - huvides varukoopiaid, 754 00:53:45,570 --> 00:53:48,340 mida teie iPhone ja need teised seadmed on teinud juba mõnda aega on 755 00:53:48,340 --> 00:53:50,340 kasutades GPS. 756 00:53:50,340 --> 00:53:52,710 >> Te kõik teate, võib-olla, et teie iPhone'i ja Androids ja Windows mobiiltelefonid 757 00:53:52,710 --> 00:53:55,410 ja nagu nendel päevadel on võimalik jälgida, kus sa oled huvides näidatakse teile kaardid 758 00:53:55,410 --> 00:53:59,440 jms - ning mida Apple ja need teised ettevõtted ei ole 759 00:53:59,440 --> 00:54:02,650 nad tavaliselt jälgida peaaegu kõikjal sa tegelikult olnud huvides 760 00:54:02,650 --> 00:54:05,380 teenuste kvaliteedi parandamisel. 761 00:54:05,380 --> 00:54:07,170 Üks, saad rohkem sihitud reklaami jms, 762 00:54:07,170 --> 00:54:10,740 kuid kaks, nad saavad ka aru saada, kus on olemas traadita internetiühendust maailmas, 763 00:54:10,740 --> 00:54:14,780 ja see võib aidata geograafilise asukoha - omamoodi triangulatsiooni inimeste seisukoht. 764 00:54:14,780 --> 00:54:18,520 >> Pikk lugu lühike, meile kõigile oli kõndimine antennid mõne aja jooksul. 765 00:54:18,520 --> 00:54:22,180 Kahjuks Apple tegi disain otsus - või selle puudumist - 766 00:54:22,180 --> 00:54:26,590 et ei varjata seda teavet, kui see oli kusjuures varundatud iTunes. 767 00:54:26,590 --> 00:54:30,330 Ja mida turvalisuse teadlane leidsin oli, et see oli lihtsalt suur XML-faili - 768 00:54:30,330 --> 00:54:33,810 suur tekstifail - istub inimeste iTunes tarkvara, 769 00:54:33,810 --> 00:54:35,400 ja kui sa olid lihtsalt natuke uudishimulik, 770 00:54:35,400 --> 00:54:38,990 võid minna poking ümber oma abikaasa ajalugu, oma toakaaslase ajalugu, 771 00:54:38,990 --> 00:54:41,050 teie vend ajalugu jms, 772 00:54:41,050 --> 00:54:44,590 ja tänu mõned vaba tarkvara, võid joonistada kõik need GPS-koordinaadid - 773 00:54:44,590 --> 00:54:46,590 laius-ja pikkuskraadid. 774 00:54:46,590 --> 00:54:48,590 >> Niisiis, ma tegelikult tegin seda minu enda telefon. 775 00:54:48,590 --> 00:54:51,210 I ühendatud minu telefoni, ja jumala eest, minu versiooni iTunes ei olnud krüpteeritud ajal, 776 00:54:51,210 --> 00:54:53,900 ja mida mul oli võimalus näha oli minu enda mustreid. 777 00:54:53,900 --> 00:54:56,970 Siin on Ameerika Ühendriigid ja kõik need sinised ringid esindab 778 00:54:56,970 --> 00:55:01,670 kus sattusin olnud üle need eelmise kuu omavad Teie telefoni. 779 00:55:01,670 --> 00:55:04,940  Ma veedan palju aega, muidugi üles Puhub vähe aega Californias, 780 00:55:04,940 --> 00:55:08,690 lühiajaline reis Texas, ja kui sa siis suumida see - 781 00:55:08,690 --> 00:55:11,120 see on kõik omamoodi tore ja huvitav, kuid ma teadsin seda. 782 00:55:11,120 --> 00:55:13,890 Enamik minu sõbrad teadsid seda, kuid kui te sukelduda sügavamale, 783 00:55:13,890 --> 00:55:17,090 sa näed kus ma veedavad suurema osa oma ajast kirdesse. 784 00:55:17,090 --> 00:55:20,330 Kui te riivi peale mõned tuttavad ilmega linnades - 785 00:55:20,330 --> 00:55:24,670 see suur, sinine tint Läiskä sisuliselt keskendus üle Boston, 786 00:55:24,670 --> 00:55:29,510 ja siis ma veedan natuke aega läbi äärelinnas kiirgava välja Boston. 787 00:55:29,510 --> 00:55:32,780 Aga ma olin ka teed üsna natuke nõu, et aasta. 788 00:55:32,780 --> 00:55:36,090 Ja sel aastal on idarannikult, ja tegelikult võite näha mind 789 00:55:36,090 --> 00:55:41,920 ja minu iPhone taskus reisides edasi-tagasi Bostonisse ja New Yorki 790 00:55:41,920 --> 00:55:47,510 ja Philadelphia veelgi alla, samuti veedetakse natuke puhkuse ajal 791 00:55:47,510 --> 00:55:50,340 Cabo, mis on vähe käsi seal. 792 00:55:50,340 --> 00:55:53,030 Niisiis, iga üks neist punktidest moodustab ligikaudu koht, kus ma olnud, 793 00:55:53,030 --> 00:55:56,970 ja täiesti teadmata mind, kogu see ajalugu lihtsalt istusin seal 794 00:55:56,970 --> 00:55:58,410 minu töölaual arvutit. 795 00:55:58,410 --> 00:56:00,470 Kui teil suumida - see tegelikult oli veidi murettekitav. 796 00:56:00,470 --> 00:56:04,190 Mul polnud mälestus kunagi olnud Pennsylvania kõnealusel aastal. 797 00:56:04,190 --> 00:56:07,840 Aga ma siiski natuke raskem midagi ja ma arvasin, oh, see oli tegelikult, et reis 798 00:56:07,840 --> 00:56:11,160 ja jumala eest, minu telefon oli püütud mind. 799 00:56:11,160 --> 00:56:14,180 >> Apple on alates krüpteeritud Selle teabe 800 00:56:14,180 --> 00:56:17,380 kuid ka see on lihtsalt märk sellest, kui palju andmeid kogutakse meist, 801 00:56:17,380 --> 00:56:20,850 ja kui kergesti - jaoks hea või halb - see on vastuvõetav. 802 00:56:20,850 --> 00:56:23,340 Üks söögikohti loodetavasti alates Rob rääkida, alates Nate arutelu 803 00:56:23,340 --> 00:56:27,370 ja vähe visuaalid nagu see täna on lihtsalt olla kõik rohkem teadlik sellest 804 00:56:27,370 --> 00:56:31,160 nii et isegi kui - nagu Rob seisukohast - Me oleme omamoodi kruvitud, eks? 805 00:56:31,160 --> 00:56:33,920 Seal ei ole palju me saame teha, kui tegemist on mõne nende ohtude 806 00:56:33,920 --> 00:56:37,130 kuid lõpus päev on meil usaldada kellegi või millegi 807 00:56:37,130 --> 00:56:38,510 kui me tahame tegelikult kasutavad neid tehnoloogiaid. 808 00:56:38,510 --> 00:56:43,150 Vähemalt meil on võimalik teha teadlikke otsuseid ja arvutatakse otsuse, kas 809 00:56:43,150 --> 00:56:46,390 me tuleks tegelikult kontrollida selle erakordselt tundliku konto 810 00:56:46,390 --> 00:56:49,330 või peaksime tegelikult saates, et veidi kahtlustan kiirsõnum 811 00:56:49,330 --> 00:56:52,180  aastal wi-fi keskkond niimoodi. 812 00:56:52,180 --> 00:56:54,990 >> Niisiis, mis ütles, ainult üks viktoriin jääb üks loeng jääb. 813 00:56:54,990 --> 00:56:57,740 Näeme kolmapäeval siis esmaspäeval. 814 00:56:57,740 --> 00:57:02,100 (Aplaus ja cheers) 815 00:57:02,100 --> 00:57:06,100 [CS50TV]