1 00:00:00,000 --> 00:00:02,750 [Powered by Google Translate] [Vika 10] 2 00:00:02,750 --> 00:00:04,750 [David J. Malan] [Harvard University] 3 00:00:04,750 --> 00:00:07,000 [Þetta er CS50.] [CS50.TV] 4 00:00:08,520 --> 00:00:13,240 >> Allt í lagi! Þetta er CS50, en ekki mikið lengur. 5 00:00:13,240 --> 00:00:14,740 Þetta er upphaf 10. viku. 6 00:00:14,740 --> 00:00:18,780 Á miðvikudag höfum quiz okkar og svo næsta mánudag höfum við nokkur celebratory köku 7 00:00:18,780 --> 00:00:22,030 Eins og við komum í hring alla leið aftur frá núlli viku. 8 00:00:22,030 --> 00:00:25,200 Í dag, við tölum um einn af uppáhalds umræðuefni, að sannleikur sagt - 9 00:00:25,200 --> 00:00:29,000 að öryggi og næði og afleiðingar öllum vélbúnaði og hugbúnaði 10 00:00:29,000 --> 00:00:31,000 að við notum öll þessa dagana. 11 00:00:31,000 --> 00:00:33,300 Til að vera heiðarlegur, there ert a einhver fjöldi af ógnum þarna úti 12 00:00:33,300 --> 00:00:35,430 að ef þú hefur í raun ekki hlé til að hugsa um þá, 13 00:00:35,430 --> 00:00:36,920 þeir eru í raun mjög erfitt. 14 00:00:36,920 --> 00:00:40,070 Tilfelli í benda - ef einhver ykkar hefur einhvern tíma sótt stykki af hugbúnaður 15 00:00:40,070 --> 00:00:42,660 burt af netinu og setja það upp á tölvunni þinni, 16 00:00:42,660 --> 00:00:45,220 þú hefur átt í verulegum mæli á trausti, ekki satt? 17 00:00:45,220 --> 00:00:50,220 Það er ekkert að hafa komið í veg fyrir Skype, eða Króm, eða stykki af hugbúnaður 18 00:00:50,220 --> 00:00:54,770 þú hefur sett upp á tölvunni þinni, allt frá einfaldlega að eyða öllum skrám á harða diskinum þínum; 19 00:00:54,770 --> 00:00:58,260 hlaða allar skrár á harða diskinum til miðlara slæmar strákur; 20 00:00:58,260 --> 00:01:01,650 að lesa allar tölvupóstinn þinn, frá stöðvun öllum augnablik skilaboð. 21 00:01:01,650 --> 00:01:05,040 Þar sem veruleikinn er í dag með flestum nútíma stýrikerfum 22 00:01:05,040 --> 00:01:10,040 Það raunverulega er ekki mikið af vegg milli hugbúnaður programs sem við setja í embætti, 23 00:01:10,040 --> 00:01:14,220 og þú og ég erum nánast bara svona yfir fingurna og taka á trú 24 00:01:14,220 --> 00:01:17,750 að þessi app við sækja ókeypis, eða hlutur sem er 99 sent, 25 00:01:17,750 --> 00:01:20,140 er í raun alveg góðkynja. 26 00:01:20,140 --> 00:01:23,090 En eins og við höfum séð í gegnum C og nú PHP og JavaScript, 27 00:01:23,090 --> 00:01:25,420 með þessa getu til að tjá okkur programatically, 28 00:01:25,420 --> 00:01:30,300 þú getur gert flest allt sem þú vilt með forriti sem notandinn sjálfur eða hún sjálf gæti gert. 29 00:01:30,300 --> 00:01:32,390 >> Svo, í dag við að leggja áherslu á þessi atriði - 30 00:01:32,390 --> 00:01:35,360 ekki bara nokkrar hættur en einnig varnir. 31 00:01:35,360 --> 00:01:37,540 Reyndar, í heimi öryggi almennt, 32 00:01:37,540 --> 00:01:39,040 það er góður af þessu köttur-og-mús leikur, 33 00:01:39,040 --> 00:01:41,990 og ég eflaust slæmur krakkar næstum alltaf hafa fótinn upp. 34 00:01:41,990 --> 00:01:45,880 Þegar það kemur að því að taka kostur af vél-og hugbúnaði á eigin okkar tölvum, 35 00:01:45,880 --> 00:01:51,250 við verðum að átta sig á því að slæmur strákur einfaldlega þarf að finna eina einfalda mistök - 36 00:01:51,250 --> 00:01:56,150 einn nýta, einn galla - í a stykki af hugbúnaður sem við höfum skrifað eða eru í gangi 37 00:01:56,150 --> 00:01:58,280 í röð fyrir hann eða hana til að taka yfir allt kerfið okkar. 38 00:01:58,280 --> 00:02:02,870 Með því móti, við - þarf að plástur og festa allar þessar galla - góða krakkar 39 00:02:02,870 --> 00:02:04,900 og koma í veg fyrir öllum þeim veikleika. 40 00:02:04,900 --> 00:02:07,870 Og svo eflaust allt á heildina er litið, hafa slæmur krakkar kostur. 41 00:02:07,870 --> 00:02:10,840 Hvaða flokkar eins og þetta og síðari flokkar eru í raun um 42 00:02:10,840 --> 00:02:14,830 er ekki um að kenna þér hvernig á að heyja bardaga að þessi slæmur krakkar gera, 43 00:02:14,830 --> 00:02:18,220 en eru um hvernig á að vernda þig eða að minnsta kosti hvernig á að gera reiknað ákvörðun 44 00:02:18,220 --> 00:02:22,970 að já, ég veit þetta stykki af hugbúnaður getur örugglega lesið allt eitt tölvupóstinn minn, 45 00:02:22,970 --> 00:02:27,040 en ég er allt í lagi með það vegna þess að gildi sem það kemur mér hins vegar. 46 00:02:27,040 --> 00:02:31,060 >> Ég er mjög ánægður með að gengið með 2 af smartest fólk sem ég þekki - 47 00:02:31,060 --> 00:02:33,060 Rob Bowden og Nate Hardison. 48 00:02:33,060 --> 00:02:36,850 Rob er að fara að taka okkur fyrir ferð í gegnum lægsta stigi tags öryggi - 49 00:02:36,850 --> 00:02:42,470 þessi af þýðanda sem allt þar til nú, við höfum komið öll að elska og treysta. Rob Bowden. 50 00:02:42,470 --> 00:02:47,790 [Lófaklapp] 51 00:02:47,790 --> 00:02:50,280 >> [Rob] Allt í lagi. David hefur nánast tekið allt spiel minn 52 00:02:50,280 --> 00:02:52,320 að ég var að fara að kynna með, en - 53 00:02:52,320 --> 00:02:58,070 Nokkrum vikum síðan, sá þú dæmi um biðminni-flæða árás 54 00:02:58,070 --> 00:03:01,900 sem er dæmi um spjallþráð reiðhestur inn í nokkur stykki af hugbúnaður 55 00:03:01,900 --> 00:03:06,060 að þeir séu ekki að vera reiðhestur inn. 56 00:03:06,060 --> 00:03:09,690 Hin hliðin á þessu 57 00:03:09,690 --> 00:03:14,470 er stundum að hafa hugbúnað sem er illgjarn í sjálfu sér. 58 00:03:14,470 --> 00:03:17,070 Það skiptir ekki einu sinni þurfa að vera tölvusnápur. 59 00:03:17,070 --> 00:03:20,670 Sá sem skrifaði hugbúnaðinn vill hakk þig. 60 00:03:20,670 --> 00:03:22,190 >> Við skulum hoppa bara beint í kóða, 61 00:03:22,190 --> 00:03:28,560 taka a líta á "login.c". 62 00:03:28,560 --> 00:03:33,390 Hér kjánalegt forrit sem staðfestir upp notandanafn og lykilorð samsetningu. 63 00:03:33,390 --> 00:03:39,420 Hér ættir þú ákveðið að fá sætt sig við C aftur fyrir próf. 64 00:03:39,420 --> 00:03:43,470 Í fyrsta lagi erum við að nota fá strengi til að lýsa the username, 65 00:03:43,470 --> 00:03:46,280 þá erum við að nota fá band að grípa lykilorð 66 00:03:46,280 --> 00:03:50,680 og þá höfum við nokkur léttvæg athugunum á bara, er username "Rob"? 67 00:03:50,680 --> 00:03:52,710 Og er lykilorðið "thisiscs50"? 68 00:03:52,710 --> 00:03:56,900 Eða, er það username "Tommy" og lykilorð "i <3javascript"? 69 00:03:56,900 --> 00:03:58,980 Ef annað hvort þeirra er að ræða, 70 00:03:58,980 --> 00:04:01,980  þá erum við bara að fara að prenta "velgengni", og þá höfum við aðgang. 71 00:04:01,980 --> 00:04:07,690 Annars erum við að fara að prenta "Ógilt notandanafn" og þá, að sjálfsögðu, 72 00:04:07,690 --> 00:04:11,120  því minni sketch strengi malloc er, frjáls við notandanafn og lykilorð. 73 00:04:11,120 --> 00:04:15,560 Þetta er smávægilegur innskráningu program, 74 00:04:15,560 --> 00:04:18,110 og ef þú hugsa um þegar þú skráir þig inn í tækið, 75 00:04:18,110 --> 00:04:22,350 það er mjög svipuð - eða jafnvel að skrá þig inn í tölvuna þína - 76 00:04:22,350 --> 00:04:24,930 það er bara einhver tenging forrit sem gefur þér aðgang. 77 00:04:24,930 --> 00:04:31,840 Hér gerast við að hafa harður-dulmáli "Rob ',' thisiscs50 ',' Tommy ',' i <3javascript ', 78 00:04:31,840 --> 00:04:34,950 en sennilega er einhver skrá einhvers staðar á stýrikerfi 79 00:04:34,950 --> 00:04:38,690 sem hefur a listi af notendanöfnum sem getur skráð þig inn í kerfið 80 00:04:38,690 --> 00:04:41,740 og lista yfir lykilorð sem tengjast þeim notendanöfn. 81 00:04:41,740 --> 00:04:46,090 Venjulega Lykilorðin eru ekki bara geymd í kæra svona. 82 00:04:46,090 --> 00:04:50,360 Það er einhvers konar dulkóðun, en það mun gera til dæmis okkar. 83 00:04:50,360 --> 00:04:57,000 >> Koma yfir til þýðanda okkar - 84 00:04:57,020 --> 00:05:00,780 það er að fara að vera mjög einfalt. 85 00:05:00,780 --> 00:05:04,800 Við þurfum að skilgreina að minnsta kosti sumir skrá sem við viljum að safna saman, 86 00:05:04,800 --> 00:05:10,200 og svo hér - þessar línur 87 00:05:10,200 --> 00:05:12,520 eru bara að lesa skrá. 88 00:05:12,520 --> 00:05:16,080 Það les allan skrá í eina stóra biðminni, 89 00:05:16,080 --> 00:05:19,000 og þá erum við null-sagt biðminni okkar eins og alltaf, 90 00:05:19,000 --> 00:05:21,000 og að lokum við saman bara skrána. 91 00:05:21,000 --> 00:05:24,090 Við erum ekki að fara að líta á hvernig þýða er í raun til framkvæmda, 92 00:05:24,090 --> 00:05:26,820 en eins vott, kalla það bara Clang. 93 00:05:26,820 --> 00:05:32,370 Við ætlum að nota þetta forrit til að taka saman hlutina í stað Clang. 94 00:05:32,370 --> 00:05:39,260 Eitt vandamál við að byrja með er sjáum við viljum safna saman þýðanda okkar, 95 00:05:39,260 --> 00:05:43,620 en ef við erum ekki að fara að nota Clang, ég veit ekki hvað ég ætla að taka saman við. 96 00:05:43,620 --> 00:05:46,700 Þetta er almennt vandamál þekktur sem bootstrapping. 97 00:05:46,700 --> 00:05:53,080 Svo bara þetta einu sinni, ætla ég að nota Clang að safna saman þýðanda okkar. 98 00:05:53,080 --> 00:05:58,800 >> Ef þú hugsa um GCC og Clang - 99 00:05:58,800 --> 00:06:03,200 þessi forrit eru þessir þýðendur stöðugt að uppfæra, 100 00:06:03,200 --> 00:06:10,010 og þessir þýðendur eru teknar saman með gcc og Clang. 101 00:06:10,010 --> 00:06:14,890 Clang er bara einn stór C eða C + + forrit, 102 00:06:14,890 --> 00:06:19,510 svo þýðanda sem þeir nota til að safna saman sem er Clang. 103 00:06:19,510 --> 00:06:26,820 Hér nú erum við bara að fara að vera með þýðanda okkar til að safna saman þýðanda okkar, 104 00:06:26,820 --> 00:06:33,830 og við getum jafnvel sagt - '/ þýðanda.', 'compiler.c', 'compile.c', '-o þýðanda'. 105 00:06:33,830 --> 00:06:37,250 Takið þetta er nákvæmlega skipa ég hljóp á undan - 106 00:06:37,250 --> 00:06:41,330 bara skipta Clang með '. / þýðanda ". 107 00:06:41,330 --> 00:06:44,990 Og nú höfum við annað þýðanda, en það er nákvæmlega það sama. 108 00:06:44,990 --> 00:06:47,510 Það kallar bara Clang. 109 00:06:47,510 --> 00:06:55,050 >> Við ætlum að nota þýðanda okkar að safna saman innskráningu kerfi okkar. 110 00:06:55,050 --> 00:07:03,030 Okay - ". / Þýðanda login.c-o Innskráning". 111 00:07:03,030 --> 00:07:06,160 Svo, undefined tilvísun til "GetString". 112 00:07:06,160 --> 00:07:11,250 Got "-lcs50". Allt í lagi. 113 00:07:11,250 --> 00:07:13,790 Svo nú hef ég innskráningu kerfi okkar. 114 00:07:13,790 --> 00:07:16,790 Running það - taka "Vinsamlegast sláðu inn notandanafn þitt". 115 00:07:16,790 --> 00:07:22,140 Eitt dæmi var Rob. Vinsamlega sláðu inn lykilorðið þitt - thisiscs50. 116 00:07:22,140 --> 00:07:24,930 Og árangur! Ég hef aðgang að. 117 00:07:24,930 --> 00:07:28,350 Running það aftur og slá sumir ógilt lykilorð - 118 00:07:28,350 --> 00:07:30,350 eða rangt notendanafn og lykilorð - 119 00:07:30,350 --> 00:07:32,860 ógild innskráningu. 120 00:07:32,860 --> 00:07:37,740 Allt í lagi. Ekkert áhugavert um þetta svo langt. 121 00:07:37,740 --> 00:07:43,100 En, við skulum taka a líta á innskráningu á ný - 122 00:07:43,100 --> 00:07:47,850 og þetta er að fara að vera nokkuð léttvæg dæmi, 123 00:07:47,850 --> 00:07:59,330 en við skulum bæta annað í hér og segja, annars ef ((strcmp (notendanafn, "tölvusnápur") == 0 && 124 00:07:59,330 --> 00:08:14,510 strcmp (lykilorð, "LOLihackyou") == 0)) 125 00:08:14,510 --> 00:08:26,280 svo nú, printf ("Tölvusnápur Þú hefur nú aðgang \ n!."); lagi. 126 00:08:26,280 --> 00:08:36,240 Að byggja þetta - þýðanda login.c-o tenging-lcs50 - 127 00:08:36,240 --> 00:08:40,190 nú í gangi innskráningu - og ef ég nota notandanafn spjallþráð minn 128 00:08:40,190 --> 00:08:44,740 og lykilorð LOLihackedyou - 129 00:08:44,740 --> 00:08:47,780 Sagði ég slá það rangt þar áður? 130 00:08:47,780 --> 00:08:52,990 Á login.c--ihack - Ég skal gera brotist vegna þess að ég held að ég geri það seinna. 131 00:08:52,990 --> 00:08:56,270 Allt í lagi. Recompiling. 132 00:08:56,270 --> 00:09:01,500 Re-gangi - spjallþráð - LOLihackedyou - 133 00:09:01,500 --> 00:09:03,650 Tölvusnápur! Þú hefur nú aðgang að. 134 00:09:03,650 --> 00:09:06,580 >> Það virðist ekki vera að mikið af a mismunur 135 00:09:06,580 --> 00:09:10,890 vegna þess að það er sama nákvæmlega athuga ég var að gera fyrir önnur notendanöfn og lykilorð. 136 00:09:10,890 --> 00:09:17,720 Auk þess er stór hlutur er að ef annað fólk lítur á þetta login.c-- 137 00:09:17,720 --> 00:09:24,020 segja, ef ég framhjá þessu burt til félagi minn, og þeir opna þessa skrá, 138 00:09:24,020 --> 00:09:29,870 og þeir lesa þetta, þeir sjá - allt í lagi, af hverju ertu með þessar línur af kóða hér? 139 00:09:29,870 --> 00:09:33,320 Það er augljóslega ekki eitthvað sem ætti að vera í forritinu. 140 00:09:33,320 --> 00:09:41,590 Í sumum forritum - eins og allir sér hugbúnað sem er ekki opinn-uppspretta - 141 00:09:41,590 --> 00:09:46,200 þú getur aldrei sjá þessar línur af kóða. 142 00:09:46,200 --> 00:09:50,440 Eitthvað eins og Skype eða eitthvað - fyrir allt sem þú veist, 143 00:09:50,440 --> 00:09:57,600 Skype er á tölvunni þinni og það er bara ákveðin notandanafn-lykilorð samsetning 144 00:09:57,600 --> 00:10:01,580 sem tenging við Skype á einhvern sérstakan hátt. 145 00:10:01,580 --> 00:10:04,230 Við vitum ekki um það, og fólk veit ekki um það, 146 00:10:04,230 --> 00:10:09,640 vegna þess að þeir fá ekki að lesa sourcecode að sjá að það er þetta gat. 147 00:10:09,640 --> 00:10:11,800 >> Það sem við köllum þetta - 148 00:10:11,800 --> 00:10:16,530 Þrátt fyrir að þetta er ekki mjög snjall dæmi - 149 00:10:16,530 --> 00:10:18,970 þetta er kallað bakdyramegin. 150 00:10:18,970 --> 00:10:22,320 Ef þú hugsa um bak dyrnar á húsi þínu. 151 00:10:22,320 --> 00:10:26,640 Hér, ef ég sannreyna með 'rob "notendanöfn eða" Tommy,' 152 00:10:26,640 --> 00:10:28,580 sem myndi vera eins og að nota "framan dyrnar." 153 00:10:28,580 --> 00:10:33,700 Þannig ég ætlast til öruggur inn. 154 00:10:33,700 --> 00:10:37,630 En ef ég slæ með þessu notendanafni og lykilorði - 155 00:10:37,630 --> 00:10:40,630 þá er að nota "bakdyramegin". 156 00:10:40,630 --> 00:10:42,810 Það var ekki viljandi leið til að komast inn í kerfið, 157 00:10:42,810 --> 00:10:45,350 en það virkar samt. 158 00:10:45,350 --> 00:10:49,160 Og fólk almennt er ekki að vita um þessi bak dyr. 159 00:10:49,160 --> 00:10:53,050 Við ætlum að bæta þetta. 160 00:10:53,050 --> 00:10:55,610 Við skulum snúa þessu í upprunalegt login.c okkar, 161 00:10:55,610 --> 00:11:05,510 og við skulum kíkja á nýja þýðanda okkar. Allt í lagi. 162 00:11:05,510 --> 00:11:08,460 Allt hérna er nákvæmlega það sama. 163 00:11:08,460 --> 00:11:10,460 Við erum að lesa allan skrá í biðminni. 164 00:11:10,460 --> 00:11:14,400 Allt niður er sú sama. 165 00:11:14,400 --> 00:11:16,180 Við saman bara skrána. 166 00:11:16,180 --> 00:11:19,770 En nú hef ég þetta stóra ef hér 167 00:11:19,770 --> 00:11:24,140 sem segir, ef skráin sem ég gerst að setja saman er login.c, 168 00:11:24,140 --> 00:11:27,390 þá er ég að gera eitthvað sérstakt. 169 00:11:27,390 --> 00:11:29,900 Hvað er það eitthvað sérstakt? 170 00:11:29,900 --> 00:11:33,820 Ég sé hér einhver strengur sem kallast 'reiðhestur', 171 00:11:33,820 --> 00:11:35,950 og horfa á þessar línur af kóða - 172 00:11:35,950 --> 00:11:41,990 Þetta eru sömu línur af kóða - ég held ég gerði nota 'ihack' og ekki 'ihacked' áður - 173 00:11:41,990 --> 00:11:44,240 líta á þessar línur af kóða, 174 00:11:44,240 --> 00:11:47,880 þeir sömu nákvæmlega línur af kóða sem ég hafði í login.c áður. 175 00:11:47,880 --> 00:11:51,130 En nú, í stað þess að hafa þá í login.c, 176 00:11:51,130 --> 00:11:54,290 Ég ætla að setja þær inn í þýðanda mínum. 177 00:11:54,290 --> 00:12:00,240 >> Þetta eru línur af kóða sem ég ætla að vilja setja inn login.c. 178 00:12:00,240 --> 00:12:06,350 Þessar línur af kóða - biðminni sem upphaflega hélt login.c minn 179 00:12:06,350 --> 00:12:11,080 er ekki lengur að fara að vera nógu stór því nú vil ég líka setja þetta hakk 180 00:12:11,080 --> 00:12:12,940 í the miðja af áætlun mína. 181 00:12:12,940 --> 00:12:16,350 Allt þetta er að gera er að búa til nýja biðminni sem er nógu stór - 182 00:12:16,350 --> 00:12:22,020 bæði fyrir upprunalegu skrá og auka línur af kóða - hakk - sem ég vil setja inn þar. 183 00:12:22,020 --> 00:12:24,920 Hér er eitthvað til að taka eftir - 184 00:12:24,920 --> 00:12:29,200 char * mynstur = "/ / neita þeim aðgang!" 185 00:12:29,200 --> 00:12:33,760 Ef við lítum til baka á login.c, 186 00:12:33,760 --> 00:12:37,690 sjáum við niður hér í athugasemd - neita þeim aðgang! 187 00:12:37,690 --> 00:12:42,360 Í login.c þetta athugasemd lítur alveg innocuous, 188 00:12:42,360 --> 00:12:48,270 svo þú myndir ekki gruna allir illgjarn ásetningi með bara þessa athugasemd. 189 00:12:48,270 --> 00:12:55,600 En þýðandi okkar, við erum sérstaklega að fara að leita að þessari línu af kóða, 190 00:12:55,600 --> 00:12:57,600 og svo þegar við finnum hana - 191 00:12:57,600 --> 00:13:03,330 þessar línur af kóða eru að setja hakk okkar í þeirri stöðu. 192 00:13:03,330 --> 00:13:06,910 Svo erum við iterating yfir öllu login.c, 193 00:13:06,910 --> 00:13:12,080 við erum að setja að reiðhestur nákvæmlega þar sem hún segir neita þeim aðgang, 194 00:13:12,080 --> 00:13:15,890 og þá erum við að setja saman - ekki upprunalega login.c 195 00:13:15,890 --> 00:13:20,340 en nýja login.c með því hakk sett rétt á 'neita þeim aðgang.' 196 00:13:20,340 --> 00:13:29,190 >> Nú vil ég að safna saman nýja þýðanda mitt með þeim reiðhestur ræða. 197 00:13:29,190 --> 00:13:36,900 Ég ætla ekki að nota Clang, þannig að við skulum afrita þýðanda við notuðum áður 198 00:13:36,900 --> 00:13:48,420 og nota það - svo, þýðandi compiler.c evil_compiler compile.c-o. 199 00:13:48,420 --> 00:13:50,870 Nú okkar illt þýðanda - 200 00:13:50,870 --> 00:13:54,310 Ef við notum illa þýðanda okkar að þýða aðra skrá, 201 00:13:54,310 --> 00:13:57,980 Skráin mun þýða eins og það ætti að gera. 202 00:13:57,980 --> 00:13:59,980 Það er alveg eðlilegt. 203 00:13:59,980 --> 00:14:06,870 En ef við notum illa þýðanda okkar til að safna saman innskráningu - 204 00:14:06,870 --> 00:14:14,920 svo, / evil_compiler login.c-o tenging-lcs50. - 205 00:14:14,920 --> 00:14:21,310 horfa á login.c aftur, það er nákvæmlega ekkert hér. 206 00:14:21,310 --> 00:14:25,770 Það er venjulega okkar ef það er annað hvort Rob eða Tommy við erum í, annars erum við úr ". 207 00:14:25,770 --> 00:14:31,620 En þegar við hlaupa executable okkar, þetta mun vinna eins og venjulega. 208 00:14:31,620 --> 00:14:36,640 Running aftur - tölvusnápur, LOLihackyou - 209 00:14:36,640 --> 00:14:39,000 Tölvusnápur! Þú hefur nú aðgang að. 210 00:14:39,000 --> 00:14:43,560 Bara horfa á login.c, myndir þú ekki hugsa eitthvað er rangt. 211 00:14:43,560 --> 00:14:46,960 En þýðandinn sem er verið að nota til að safna saman login.c 212 00:14:46,960 --> 00:14:53,820 er sérstaklega hönnuð til að setja þessa reiðhestur inn í kerfið. 213 00:14:53,820 --> 00:14:57,320 Við höfum bara flutt upprunalega vandamál okkar. 214 00:14:57,320 --> 00:15:02,880 Upphaflega áttum við þessar línur af kóða í login.c að ef einhver annar horfði á þá, 215 00:15:02,880 --> 00:15:05,470 þeir myndu vera eins, hvers vegna eru þessi hér? 216 00:15:05,470 --> 00:15:09,550 Nú gerist ef einhver að líta á þýðanda okkar, 217 00:15:09,550 --> 00:15:12,140 þeir líta á þessar línur af kóða og segja, 218 00:15:12,140 --> 00:15:15,290 Hvers vegna er þetta hér? 219 00:15:15,290 --> 00:15:17,210 Svo höfum við ekki alveg leyst vandamál okkar. 220 00:15:17,210 --> 00:15:22,510 En við getum notað þessa hugmynd aftur. 221 00:15:22,510 --> 00:15:26,260 >> Að taka a líta á þriðju útgáfu okkar af þýðanda, 222 00:15:26,260 --> 00:15:32,500 það er sama hugmynd. 223 00:15:32,500 --> 00:15:36,240 Við að lesa alla skrána í biðminni upp hér, 224 00:15:36,240 --> 00:15:39,660 Við þýða skrána hérna, 225 00:15:39,660 --> 00:15:44,220 og ég hef einhverskonar hakk band hér, 226 00:15:44,220 --> 00:15:47,710 en eftir að skrá að ég er í raun reiðhestur núna. 227 00:15:47,710 --> 00:15:52,260 Ég er reiðhestur compiler.c 228 00:15:52,260 --> 00:15:54,590 ekki login.c. 229 00:15:54,590 --> 00:15:57,780 En hvað er ég að setja inn compiler.c? 230 00:15:57,780 --> 00:16:04,600 Ég er að setja þennan kóða sem er nákvæmlega númerið á fyrri þýðanda okkar, 231 00:16:04,600 --> 00:16:10,540 sem var ætlað að setja kóðann inn login.c. 232 00:16:10,540 --> 00:16:13,360 Hér er ef strcmp okkar skrá login.c 233 00:16:13,360 --> 00:16:19,370 og þá setja inn login.c hakk efni okkar. 234 00:16:19,370 --> 00:16:26,010 Þessi nýja þýðanda er ætlað að búa til þýðanda 235 00:16:26,010 --> 00:16:30,390 sem er ætlað að safna saman innskráningu illgirni. 236 00:16:30,390 --> 00:16:34,320 Við munum sjá hvers vegna það hjálpar okkur. 237 00:16:34,320 --> 00:16:40,630 Allt annað er það sama, þannig að það virkar nákvæmlega eins og það vann með fyrra þýðanda okkar. 238 00:16:40,630 --> 00:16:45,550 Við erum bara iterating yfir allt compile.c okkar. 239 00:16:45,550 --> 00:16:48,190 En núna í stað þess að leita að "neita þeim aðgang, 240 00:16:48,190 --> 00:16:51,490 við erum að leita að 'þýða skrána. " 241 00:16:51,490 --> 00:16:53,750 Hvar er saman skrána? 242 00:16:53,750 --> 00:16:57,210 Þegar litið er á alveg saklaus compiler.c okkar, 243 00:16:57,210 --> 00:17:01,340 það er rétt hérna neðst. 244 00:17:01,340 --> 00:17:06,500 Þessi athugasemd - safna saman skrá - aftur, sem lítur alveg innocuous. 245 00:17:06,500 --> 00:17:11,599 En í illgjarn útgáfu okkar af þýðanda, 246 00:17:11,599 --> 00:17:16,550 við erum að fara til - rétt áður en þessi comment - setja þennan kóða 247 00:17:16,550 --> 00:17:20,690 sem er ætlað að setja inn númerið þegar söfnun login.c. 248 00:17:20,690 --> 00:17:25,589 >> There ert a einhver fjöldi af stigum indirection hér. 249 00:17:25,589 --> 00:17:29,760 Við skulum í raun að keyra það. 250 00:17:29,760 --> 00:17:37,360 Aftur, munum við afrita upprunalega þýðanda okkar. 251 00:17:37,360 --> 00:17:48,260 Nú, taka saman - þýðandi compiler.c evilest_compiler compile.c-o - 252 00:17:48,260 --> 00:17:52,640 og nú evilest_compiler. 253 00:17:52,640 --> 00:17:59,200 Evilest þýðanda - ef við notum það til að safna saman þýðanda okkar, 254 00:17:59,200 --> 00:18:01,550 skulum raunverulega líta. 255 00:18:01,550 --> 00:18:13,230 Evilest_compiler - færa það yfir, alla leið aftur til útgáfu 1 af þýðanda okkar - 256 00:18:13,230 --> 00:18:19,640 útgáfa 1 af þýðanda okkar sem var bara að lesa í skránni og þýða það. 257 00:18:19,640 --> 00:18:24,780 Hér vitum við að evilest_compiler - þegar það vinnur þessa skrá - 258 00:18:24,780 --> 00:18:29,890 er að fara að setja inn kóðann hér áður saman skrána, 259 00:18:29,890 --> 00:18:38,510 og númerið er að fara að líta nákvæmlega eins og kóða frá seinni útgáfu af þýðanda okkar 260 00:18:38,510 --> 00:18:42,240 sem gerði þetta. 261 00:18:42,240 --> 00:18:46,450 Þetta númer, sem er ætlað að brjótast inn í innskráningu 262 00:18:46,450 --> 00:18:56,480 er að fara að setja inn í þýðanda okkar með evilest þýðanda. 263 00:18:56,480 --> 00:19:08,600 Við skulum nota evilest_compiler að safna saman þýðanda okkar. 264 00:19:08,600 --> 00:19:15,040 Nú munum við nota þýðanda, 265 00:19:15,040 --> 00:19:19,460 koma aftur á að skrá, 266 00:19:19,460 --> 00:19:25,280 og muna þetta login.c hefur nákvæmlega ekkert grunsamlega í það. 267 00:19:25,280 --> 00:19:35,250 En nota þýðanda okkar að taka saman login.c, 268 00:19:35,250 --> 00:19:38,430 Rob, thisiscs50, velgengni. 269 00:19:38,430 --> 00:19:44,350 Innskráning spjallþráð skulum, LOLihackyou, Tölvusnápur! Þú hefur nú aðgang að. 270 00:19:44,350 --> 00:19:49,710 >> Grein fyrir því að þetta var öðruvísi útgáfu 2 af þýðanda okkar. 271 00:19:49,710 --> 00:20:00,500 The þýðanda við notum - við skulum fara aftur - afrit af innskráningu - 272 00:20:00,500 --> 00:20:01,880 skulum koma þýðanda okkar aftur hér. 273 00:20:01,880 --> 00:20:06,360 Fjarlægi evilest þýðanda. 274 00:20:06,360 --> 00:20:08,970 Allt sem við höfum skilið nú er þýðanda. 275 00:20:08,970 --> 00:20:10,950 Ef við skoðum compiler.c, 276 00:20:10,950 --> 00:20:16,840 Það er nákvæmlega ekkert þarna sem virðist illgjarn á nokkurn hátt. 277 00:20:16,840 --> 00:20:22,390 Ef við skoðum login.c, 278 00:20:22,390 --> 00:20:28,790 Það er nákvæmlega ekkert hér sem lítur illgjarn á nokkurn hátt. 279 00:20:28,790 --> 00:20:34,600 En þegar við notum þýðanda okkar að taka saman login.c, 280 00:20:34,600 --> 00:20:38,840 fáum við hackable útgáfu login.c. 281 00:20:38,840 --> 00:20:41,850 Þegar við notuðum þýðanda okkar að setja saman nýja útgáfu af þýðanda, 282 00:20:41,850 --> 00:20:46,620 fáum við hackable útgáfu af þýðanda. 283 00:20:46,620 --> 00:20:51,790 Nú ef við förum út og dreifa þýðanda executable okkar, 284 00:20:51,790 --> 00:20:59,280 og enginn mun vita að það er eitthvað illgjarn um það. 285 00:20:59,280 --> 00:21:04,680 >> Þetta er í raun svo á - ég man ekki ársins - 286 00:21:04,680 --> 00:21:10,350 Ken Thompson, og hann vann Turing Award - 287 00:21:10,350 --> 00:21:15,600 Ef þú ert ókunnur með the Turing verðlaunin, það er næstum alltaf skilgreint sem 288 00:21:15,600 --> 00:21:20,160 Nobel Prize í tölvunarfræði, svo það er hvernig ég skilgreina það. 289 00:21:20,160 --> 00:21:24,100 Ken Thompson flutti ræðu þegar hann fékk Turing verðlaunin hans 290 00:21:24,100 --> 00:21:27,150 kallað "Hugleiðingar um traust Trust." 291 00:21:27,150 --> 00:21:30,710 Í grundvallaratriðum, þetta var hugmynd um ræðu hans. 292 00:21:30,710 --> 00:21:35,050 Nema í stað þess að þýðandi okkar, var hann að tala um GCC - 293 00:21:35,050 --> 00:21:37,250 bara annað þýðanda eins Clang - 294 00:21:37,250 --> 00:21:45,600 og hvað hann var að segja er, eins login.c okkar login.c okkar virðist tiltölulega gagnslaus 295 00:21:45,600 --> 00:21:50,190 en hann var að tala um raunverulegt UNIX login.c. 296 00:21:50,190 --> 00:21:53,050 Þegar þú skráir þig í tæki þínu, 297 00:21:53,050 --> 00:21:56,070 það er einhver tenging forrit sem er í gangi. 298 00:21:56,070 --> 00:21:58,080 Það var tenging sem hann var að tala um. 299 00:21:58,080 --> 00:22:02,420 Þetta var í rauninni hugmynd hans. 300 00:22:02,420 --> 00:22:09,080 Hann sagði að í GCC, hann fræðilega gæti hafa gróðursett um galla - 301 00:22:09,080 --> 00:22:12,290 ekki galla en illgjarn merkjamál - 302 00:22:12,290 --> 00:22:16,860 að þegar setja saman innskráningu virka - tenging skrá - 303 00:22:16,860 --> 00:22:23,700 myndi setja inn bakdyramegin svo að hann gæti farið til algerlega hvaða UNIX kerfi í heimi 304 00:22:23,700 --> 00:22:27,360 og tenging við einhverjum sérstökum notandanafn og lykilorð. 305 00:22:27,360 --> 00:22:33,710 Á þeim tíma, GCC var ansi mikið þýðanda sem allir nota fyrir neitt. 306 00:22:33,710 --> 00:22:36,460 Ef einhver varð að uppfæra GCC, 307 00:22:36,460 --> 00:22:40,880 þá myndu laun GCC með GCC, 308 00:22:40,880 --> 00:22:44,500 og þú vildi samt fá slæm útgáfa af GCC 309 00:22:44,500 --> 00:22:50,140 vegna þess að það var sérstaklega saman til að viðurkenna að það var recompiling þýðanda. 310 00:22:50,140 --> 00:22:57,360 Og ef þú notar alltaf GCC að laun á login.c skrá, 311 00:22:57,360 --> 00:23:03,550 þá myndi það setja þetta bakdyramegin sem hann gæti notað til að skrá þig inn til allir tölva. 312 00:23:03,550 --> 00:23:08,750 >> Þetta var allt fræðilegt, en - það einkum aðstæður væri fræðilegt 313 00:23:08,750 --> 00:23:12,440 en hugmyndir eru mjög raunveruleg. 314 00:23:12,440 --> 00:23:18,250 Árið 2003, var svipað dæmi þar sem - 315 00:23:18,250 --> 00:23:21,290 við munum taka a líta á þessa skrá, 316 00:23:21,290 --> 00:23:25,870 og það hefur nákvæmlega ekkert að raunverulega gera með það, en villan er svipuð. 317 00:23:25,870 --> 00:23:29,390 Þessi skrá skilgreinir bara fall kallast gjá. 318 00:23:29,390 --> 00:23:31,780 Það tekur rök a, í rifrildi b, 319 00:23:31,780 --> 00:23:34,270 og ætlunin er að gera deilt með b. 320 00:23:34,270 --> 00:23:37,230 En það er smá villa stöðva, 321 00:23:37,230 --> 00:23:40,070 þannig að við vitum það er undarlegt ef b gerist að jafna núll. 322 00:23:40,070 --> 00:23:44,900 Ef b er núll, þá er við hættu á þessu í 2 tilvikum. 323 00:23:44,900 --> 00:23:46,900 Þú gætir nú þegar séð gallann. 324 00:23:46,900 --> 00:23:51,840 Fyrsta tilfelli - ef a er núll, þá erum við að gera núll deilt með núlli 325 00:23:51,840 --> 00:23:54,300 og við segjum bara það er óskilgreindur. 326 00:23:54,300 --> 00:23:56,250 Annað mál - ef ekki núll, 327 00:23:56,250 --> 00:24:00,580 þá það er eitthvað eins og 1 deilt með núlli, og við köllum bara að óendanleika. 328 00:24:00,580 --> 00:24:03,730 Else við aftur á venjulega a deilt með b. 329 00:24:03,730 --> 00:24:06,390 Og svo hér erum við að keyra þessi 3 mál, 330 00:24:06,390 --> 00:24:13,740 og hlaupum í raun skipta - það kallar á það fyrir mig - 331 00:24:13,740 --> 00:24:21,330 Svo, hunsa viðvaranir Clang er - 332 00:24:21,330 --> 00:24:24,500 enda ekki ógilt virka - virðist ég ekki þýða þetta fyrirfram. 333 00:24:24,500 --> 00:24:26,500 Return 0. 334 00:24:26,500 --> 00:24:28,900 Gera skipta - allt í lagi. 335 00:24:28,900 --> 00:24:32,470 Með. / Skipta, sjáum við 3, Infinity, Infinity. 336 00:24:32,470 --> 00:24:39,150 Núll deilt með núlli ætti ekki að hafa skilað óendanleika. 337 00:24:39,150 --> 00:24:42,840 Og ef þú hefur ekki mynstrağur út galla enn - eða gerði það ekki áður - 338 00:24:42,840 --> 00:24:46,800 sjáum við að við erum að gera a = 0. 339 00:24:46,800 --> 00:24:52,610 Sennilega við þýddi == 0. Sennilega. 340 00:24:52,610 --> 00:24:58,640 >> En þetta var í raun eitthvað sem, aftur, árið 2003, Linux kjarnanum - 341 00:24:58,640 --> 00:25:02,260 svo notar tæki okkar Linux kjarnanum - 342 00:25:02,260 --> 00:25:05,550 allir Linux stýrikerfi notar Linux kjarnanum - 343 00:25:05,550 --> 00:25:11,610 svo galla mjög svipuð þessu mætti. 344 00:25:11,610 --> 00:25:15,180 Hugmyndin á bak við þennan galla var - 345 00:25:15,180 --> 00:25:18,820 aftur, það var bara einhver virkni sem var kallað, og það gerði smá stöðva villa. 346 00:25:18,820 --> 00:25:24,300 Það voru nokkrar sérstakar inntak að þessi villa stöðva - 347 00:25:24,300 --> 00:25:30,210 það hefði verið eins og, allt í lagi, er ekki hægt að kalla þessa aðgerð með deilitöluna 0. 348 00:25:30,210 --> 00:25:35,070 Svo ætla ég bara að koma aftur smá villa. 349 00:25:35,070 --> 00:25:38,090 Nema, það var ekki eins saklaus og bara setja a jöfn 0. 350 00:25:38,090 --> 00:25:46,920 Þess í stað þessa línu af kóða á endanum að gera eitthvað meira eins og notandi = stjórnandi. 351 00:25:46,920 --> 00:25:50,500 Eða user = ofurpaurinn. 352 00:25:50,500 --> 00:25:59,170 Það var saklaus - við fyrstu sýn - mistök þar sem það hefði bara verið sanngjarnt 353 00:25:59,170 --> 00:26:01,560 að ég vildi bara að tilkynna eitthvað sérstakt 354 00:26:01,560 --> 00:26:05,150 ef notandinn gerðist að vera ofurpaurinn stjórnandi. 355 00:26:05,150 --> 00:26:11,220 En þá aftur að hugsa um það, sem maður vildi það til að líta eins einfalt prentvilla, 356 00:26:11,220 --> 00:26:14,330 en ef þetta númer hafði verið gefin út, 357 00:26:14,330 --> 00:26:21,580 þá hefði verið hægt að reiðhestur inn í hvaða kerfi við brottför ákveðna fána - 358 00:26:21,580 --> 00:26:25,200 í þessu tilfelli b = 0 - 359 00:26:25,200 --> 00:26:28,020 og það myndi sjálfkrafa gera notandi stjórnandi, 360 00:26:28,020 --> 00:26:30,400 og þá hefur hann fulla stjórn. 361 00:26:30,400 --> 00:26:32,540 Þetta gerðist árið 2003. 362 00:26:32,540 --> 00:26:35,700 >> Það bara svo gerðist að eina ástæðan að hún var gripin 363 00:26:35,700 --> 00:26:39,200 var vegna þess að það varð að vera einhver sjálfvirk kerfi 364 00:26:39,200 --> 00:26:41,540 að eftir breytingar á þessari skrá 365 00:26:41,540 --> 00:26:44,560 sem aldrei ætti að hafa verið breytt af mönnum. 366 00:26:44,560 --> 00:26:47,580 Skráin skal aðeins hafa verið sjálfkrafa mynda. 367 00:26:47,580 --> 00:26:49,780 Það bara svo gerðist að einhver snerti - 368 00:26:49,780 --> 00:26:52,460 Jæja, sá sem vildi hakk snert að skrá, 369 00:26:52,460 --> 00:26:55,450 og tölvan náði að snerta. 370 00:26:55,450 --> 00:27:01,750 Svo, breytt þeir þetta og aðeins seinna áttaði það hörmung hefði verið 371 00:27:01,750 --> 00:27:04,830 ef þetta hefði fengið út í hinum raunverulega heimi. 372 00:27:04,830 --> 00:27:08,220 >> Þú gætir verið að hugsa um að - koma aftur til þýðanda okkar dæmi - 373 00:27:08,220 --> 00:27:14,290 jafnvel þó við getum ekki séð - að horfa á sourcecode - 374 00:27:14,290 --> 00:27:17,490 að eitthvað í lagi er rangt, 375 00:27:17,490 --> 00:27:25,460 Ef við lítum í raun á the tvöfaldur kóða þýðanda, 376 00:27:25,460 --> 00:27:28,670 við viljum sjá að eitthvað sé rangt. 377 00:27:28,670 --> 00:27:31,260 Sem dæmi, ef við keyra strengir virka - 378 00:27:31,260 --> 00:27:34,930 sem er bara að fara að horfa á skrá og prenta út alla strengi það getur fundið - 379 00:27:34,930 --> 00:27:37,990 Ef við hlaupum strengi á þýðanda okkar, 380 00:27:37,990 --> 00:27:42,400 sjáum við að einn streng að það finnur er þetta skrítið - 381 00:27:42,400 --> 00:27:45,500 else if (strcmp (notandanafn, "tölvusnápur") - bla, bla, bla. 382 00:27:45,500 --> 00:27:52,570 Ef einhver varð að vera ofsóknaræði nóg til að ekki treysta þýðanda sinn, 383 00:27:52,570 --> 00:27:56,690 þeir gætu keyrt strengi og sjá þetta, 384 00:27:56,690 --> 00:28:00,430 og þá myndu þeir vita að það væri eitthvað athugavert við raunverulegan tvöfaldur. 385 00:28:00,430 --> 00:28:07,250 En strengir var óhjákvæmilega eitthvað sem var unnin. 386 00:28:07,250 --> 00:28:11,590 Svo, hver er að segja að þýðanda okkar ekki bara meira sérstakt númer 387 00:28:11,590 --> 00:28:19,240 sem segir, ef strengir er alltaf að keyra á þýðanda okkar, ekki framleiðsla ekki öll þessi illgjarn merkjamál. 388 00:28:19,240 --> 00:28:23,980 >> Sama hugmynd með ef við viljum dis-saman skrána - 389 00:28:23,980 --> 00:28:30,440 við lærðum að Assembler færir okkur frá kóða samkoma í vél númer - 390 00:28:30,440 --> 00:28:36,010 við getum farið í gagnstæða átt - objdump-D þýðanda - 391 00:28:36,010 --> 00:28:38,770 mun gefa okkur söfnuð kóða okkar. 392 00:28:38,770 --> 00:28:41,730 Þegar litið er á þetta, 393 00:28:41,730 --> 00:28:47,480 það er nokkuð dulinn, en ef við vildum, við gætum litið í gegnum þetta 394 00:28:47,480 --> 00:28:51,700 og ástæða, bíddu, það er eitthvað að gerast hér sem ætti ekki að gerast, 395 00:28:51,700 --> 00:28:59,380 og þá munum við þekkja að þýðandinn er að gera eitthvað illgjarn. 396 00:28:59,380 --> 00:29:03,950 En, rétt eins og strengi, sem er að segja objdump var ekki sérstök-cased. 397 00:29:03,950 --> 00:29:11,380 Í grundvallaratriðum kemur það niður að þú getur ekki treyst neitt. 398 00:29:11,380 --> 00:29:14,310 Tilgangur greinarinnar að vera kölluð "treysta Trust" er 399 00:29:14,310 --> 00:29:17,900 Almennt, treystum við þýðanda okkar. 400 00:29:17,900 --> 00:29:21,700 Þú þýða kóðann og búast við það til að gera það sem þér biðjið hann að gera. 401 00:29:21,700 --> 00:29:26,440 En, hvers vegna ættir þú að treysta þýðanda? 402 00:29:26,440 --> 00:29:32,120 Þú varst ekki að skrifa þýðanda. Þú veist ekki hvað þýðandinn er víst í raun að gera. 403 00:29:32,120 --> 00:29:36,870 Hver er að segja að þú getur treyst henni? 404 00:29:36,870 --> 00:29:40,050 En jafnvel þá, ja, kannski við getum treyst þýðanda. 405 00:29:40,050 --> 00:29:44,670 Það eru tugir þúsunda manna, sem hafa horft á þetta. 406 00:29:44,670 --> 00:29:51,360 Einhver hlýtur að hafa viðurkennt eitthvað var upp með þýðanda. 407 00:29:51,360 --> 00:29:55,100 >> Hvað ef við förum bara 1 stig dýpra? 408 00:29:55,100 --> 00:29:59,450 Það gæti jafnvel verið þinn gjörvi. 409 00:29:59,450 --> 00:30:01,250 Eins fáránlegt og það gæti mögulega verið, 410 00:30:01,250 --> 00:30:06,690 kannski er einhver fantur starfsmaður Intel sem skapar þessum örgjörvum 411 00:30:06,690 --> 00:30:12,400 að þegar að gjörvi tekur eftir að þú ert að keyra sumir stjórn 412 00:30:12,400 --> 00:30:14,570 sem er ætlað að skrá þig inn í tölvuna, 413 00:30:14,570 --> 00:30:19,230 örgjörva mun taka sumir sérstakur notandanafn og lykilorð samsetningu. 414 00:30:19,230 --> 00:30:21,530 Það væri stórlega flókið, 415 00:30:21,530 --> 00:30:24,790 en einhver gæti gert það. 416 00:30:24,790 --> 00:30:29,350 Á þeim tímapunkti, þú ert virkilega að fara að opna tölvuna til að horfa á örgjörva 417 00:30:29,350 --> 00:30:35,970 og nota smásjá til að viðurkenna að þessar brautir eru ekki raðað upp eins og þeir ættu að vera? 418 00:30:35,970 --> 00:30:39,730 Enginn er alltaf að fara að ná að villa. 419 00:30:39,730 --> 00:30:45,570 Á einhverjum tímapunkti, þú verður bara að gefast upp og treystir eitthvað. 420 00:30:45,570 --> 00:30:48,390 Flestir treysta þýðanda á þessum tímapunkti. 421 00:30:48,390 --> 00:30:55,760 Það er að segja ekki endilega að þú ættir. 422 00:30:55,760 --> 00:30:59,350 Þegar litið er á nokkuð frægi vídeó - 423 00:30:59,350 --> 00:31:09,280 [Dramatísk tónlist spila] 424 00:31:09,280 --> 00:31:13,270 [Það er UNIX kerfi. Ég veit þetta.] 425 00:31:13,270 --> 00:31:14,470 [Það er allar skrár -] 426 00:31:14,470 --> 00:31:18,950 Hún sagði: "Það er UNIX kerfi. Veit ég." 427 00:31:18,950 --> 00:31:21,760 Skipta UNIX með hvað uppáhalds stýrikerfið þitt er - 428 00:31:21,760 --> 00:31:25,230 hún gæti hafa sagt: "Það er Windows kerfi. veit ég." 429 00:31:25,230 --> 00:31:29,710 Það er alveg merkingarlaus staðhæfing, 430 00:31:29,710 --> 00:31:34,450 en allt sem við vitum, gerist hún að vita bakdyramegin inn UNIX kerfi. 431 00:31:34,450 --> 00:31:38,840 Hún veit sumir notandanafn / lykilorð samsetning sem mun í raun láta hana 432 00:31:38,840 --> 00:31:41,540 gera hvað sem hún vill. 433 00:31:41,540 --> 00:31:49,000 >> Allt í lagi. Boðskapur dag er í grundvallaratriðum að þú getur ekki treyst neitt. 434 00:31:49,000 --> 00:31:52,620 Jafnvel það sem þú skrifar - þú ekki skrifa þýðanda. 435 00:31:52,620 --> 00:31:53,870 The þýðanda gæti verið slæmt. 436 00:31:53,870 --> 00:31:59,140 Jafnvel ef þú gerðir skrifa þýðanda, það sem er í gangi á þýðanda gæti verið slæmt. 437 00:31:59,140 --> 00:32:05,210 (Hlæja) Það er ekki mikið sem þú getur gert. 438 00:32:05,210 --> 00:32:09,050 Heimurinn er dæmt. 439 00:32:09,050 --> 00:32:11,570 Baka til Davíðs! 440 00:32:11,570 --> 00:32:19,540 [Lófaklapp] 441 00:32:19,540 --> 00:32:21,340 >> [David] Takk. Það var mjög niðurdrepandi. 442 00:32:21,340 --> 00:32:23,910 En reyndar, Rob er rétt. 443 00:32:23,910 --> 00:32:27,150 Við gerum í raun ekki hafa a lausn þessi, en þú ert að fara að fá lausnir 444 00:32:27,150 --> 00:32:29,150 að sumir fleiri sameiginlegra varna. 445 00:32:29,150 --> 00:32:31,170 Í aðdraganda þessa, hvað Nate og ég hef verið að gera offstage þar 446 00:32:31,170 --> 00:32:33,950 er að vita að það eru svo margar fartölvur í þessu herbergi, 447 00:32:33,950 --> 00:32:37,020 við höfum verið að sjúga allt þráðlausa umferð fara í gegnum þetta herbergi á undanförnum 20 mínútum 448 00:32:37,020 --> 00:32:39,260 meðan tala Rob er, þannig að við erum að fara að taka 2 mínútna brot hér. 449 00:32:39,260 --> 00:32:41,740 Nate er að fara að setja upp, og svo erum við að fara að tala um allt efni 450 00:32:41,740 --> 00:32:46,380 við gætum fundið. (Hlátur) 451 00:32:46,380 --> 00:32:51,990 >> Svo kann ég ýkt svolítið bara fyrir sakir leiklist, 452 00:32:51,990 --> 00:32:55,990 en við hefðum getað verið að sjúga allt þráðlausa umferð því reyndar 453 00:32:55,990 --> 00:32:57,240 það er svona auðvelt. 454 00:32:57,240 --> 00:32:59,790 En það eru einnig leiðir sem hægt er að verja gegn þessu, og það með að 455 00:32:59,790 --> 00:33:03,160 Ég gef þér Nate Hardison. >> [Nate] Sweet. 456 00:33:03,160 --> 00:33:06,300 (Applause) 457 00:33:06,300 --> 00:33:08,650 >> [Nate] Takk, maður. Ég þakka Kveðja. 458 00:33:08,650 --> 00:33:12,790 Allt í lagi! Það er leikur vikunnar. Eruð þið spennt? 459 00:33:12,790 --> 00:33:16,670 Vonandi það er að fara til vera a stór leikur á laugardag. 460 00:33:16,670 --> 00:33:20,220 Ég ímynda mér ykkur á þessum tímapunkti - í ljósi þess að þú ert með próf á miðvikudag 461 00:33:20,220 --> 00:33:24,430 allt um kóða, og við sat bara með frábæra Fyrirlestur Rob 462 00:33:24,430 --> 00:33:25,850 með a heild búnt af C kóða í það - 463 00:33:25,850 --> 00:33:28,330 eru kannski svolítið þreyttur á kóða. 464 00:33:28,330 --> 00:33:32,180 Í þessum hluta, við erum í raun ekki að fara að snerta allir kóðann alls. 465 00:33:32,180 --> 00:33:36,960 Við erum bara að fara að tala um tækni sem þú notar á hverjum degi, 466 00:33:36,960 --> 00:33:39,790 oft fyrir marga, marga klukkutíma á dag, 467 00:33:39,790 --> 00:33:46,220 og við munum tala um afleiðingarnar með öryggi sem það eru. 468 00:33:46,220 --> 00:33:48,960 >> Við höfum talað mikið um öryggi á meðan á önn, 469 00:33:48,960 --> 00:33:53,030 og við byrjaði með smá dulritunarstjórneiningunni. 470 00:33:53,030 --> 00:33:55,030 [Bdoh LV vwlqng!] 471 00:33:55,030 --> 00:33:57,890 Og á meðan þið eru líklega frábær spenntur að brottför athugasemdum við hvert annað 472 00:33:57,890 --> 00:33:59,890 í flokki með Caesar dulmál eins og þessa, 473 00:33:59,890 --> 00:34:03,870 í raun, það er meira gaman að vera had þegar þú ert í raun að tala um öryggi 474 00:34:03,870 --> 00:34:05,870 og þannig dót. 475 00:34:05,870 --> 00:34:09,090 Í dag erum við að fara að ná í nokkrar tækni 476 00:34:09,090 --> 00:34:13,650 sem fólk notar í raun í hinum raunverulega heimi til að gera alls konar hluti 477 00:34:13,650 --> 00:34:18,360 frá sjúga pakka fólks í raun að fara í og 478 00:34:18,360 --> 00:34:20,409 brjóta í bankareikninga fólks og allt það. 479 00:34:20,409 --> 00:34:23,460 Þetta eru lögmæt verkfæri sem við erum að tala um 480 00:34:23,460 --> 00:34:26,320 að undanskildum hugsanlega eitt tól. 481 00:34:26,320 --> 00:34:28,889 >> Og ég vil bara að gera a fljótur höfnun. 482 00:34:28,889 --> 00:34:34,909 Þegar við tölum um þetta, erum við að tala um þá svo þú vitir hvað er í boði, 483 00:34:34,909 --> 00:34:39,389 og þú ert meðvituð um hvernig á að vera öruggur þegar þú ert út að nota tölvuna þína. 484 00:34:39,389 --> 00:34:44,000 En við ákveðið vil ekki að gefa í skyn að þú ættir að nota þessi verkfæri 485 00:34:44,000 --> 00:34:48,090 í dorm eða hús þitt vegna þess að þú getur keyrt inn í fullt af stórum málefnum. 486 00:34:48,090 --> 00:34:52,760 Það er ein ástæða í dag að við í raun voru ekki sjúga upp í nefið pakka þinn. 487 00:34:52,760 --> 00:35:01,300 >> Allt í lagi. Síðast Mánudagur, talaði við um kökur og HTTP, og staðfesting, 488 00:35:01,300 --> 00:35:05,920 og hvernig Firesheep opnar þetta stóra hurð inn á Facebook reikning þinn, 489 00:35:05,920 --> 00:35:08,670 á Hotmail reikninginn þinn - ef einhver er enn að nota Hotmail - 490 00:35:08,670 --> 00:35:12,360 og mörgum öðrum reikningum. 491 00:35:12,360 --> 00:35:16,980 A einhver fjöldi af þessu efni er að fara að byggja burt af því, 492 00:35:16,980 --> 00:35:22,070 en fyrst, ég vil taka fljótur skoðunarferð um hvernig internetið hefur þróast með tímanum. 493 00:35:22,070 --> 00:35:27,490 Til baka í '90s, þið gæti hafa minnst raun tengja í 494 00:35:27,490 --> 00:35:29,880 tölvur með einum þeirra. 495 00:35:29,880 --> 00:35:32,640 Nú erum við að gera það ekki svo mikið lengur. 496 00:35:32,640 --> 00:35:37,230 Það kemur reyndar fram að til að stinga Ethernet snúru í fartölvuna mína, 497 00:35:37,230 --> 00:35:41,710 Ég hef nú að nota eina af þessum millistykki sem er góður af brjálaður. 498 00:35:41,710 --> 00:35:47,580 >> Þess í stað á árinu 1997 við höfðum þetta nýja, gaman tækni 499 00:35:47,580 --> 00:35:54,960 kom út sem er þekktur eins og IEEE 802,11, þannig að þetta er þráðlaust Internet staðall 500 00:35:54,960 --> 00:36:00,430 The IEEE er þetta Yfirstjórn sem gefur út alls konar - 501 00:36:00,430 --> 00:36:04,770 birtir alls konar staðla með tilliti til tölvur. 502 00:36:04,770 --> 00:36:08,780 The 802 staðlar eru allt um tækni Internet. 503 00:36:08,780 --> 00:36:12,690 Svo 802,3, til dæmis, er Ethernet staðall, 504 00:36:12,690 --> 00:36:17,120 802.15.1 Ég tel er Bluetooth staðall, 505 00:36:17,120 --> 00:36:19,540 og 802,11 er allur óður í þráðlaust Internet. 506 00:36:19,540 --> 00:36:24,150 Árið 1997 það kom út. Það var ekki alveg grípa á strax. 507 00:36:24,150 --> 00:36:30,200 Það var ekki fyrr en 1999 og 802.11b staðall kom fram að bara mjög vinsæll. 508 00:36:30,200 --> 00:36:36,330 >> Hversu margir af þú manst þegar tölvur byrjaði að koma út og fá Wi-Fi á þeim? 509 00:36:36,330 --> 00:36:38,330 Það var góður af kaldur, ha? 510 00:36:38,330 --> 00:36:41,260 Ég man að fá fyrstu fartölvuna mína í menntaskóla, 511 00:36:41,260 --> 00:36:44,250 og það var þráðlausa kortið í það. 512 00:36:44,250 --> 00:36:49,580 Pabbi minn gaf mér hana og var að segja að ég ætti að nota það fyrir apps háskóli mína og allt það, 513 00:36:49,580 --> 00:36:53,030 og ég hafði ekki hugmynd um hvernig ég ætlaði að fletta upp í þessu efni á netinu. 514 00:36:53,030 --> 00:36:54,640 En sem betur fer hafði ég þráðlausa kortið, þannig að var frekar kaldur. 515 00:36:54,640 --> 00:37:04,090 Nú á dögum, munt þú einnig sjá 802.11g, sem er einn af hinum raunverulega vinsæll 516 00:37:04,090 --> 00:37:06,090 þráðlaus staðall sem er þarna úti. 517 00:37:06,090 --> 00:37:08,660 Bæði b og g eru nokkuð gamaldags á þessum tímapunkti. 518 00:37:08,660 --> 00:37:12,580 Hver veit hvaða útgáfa sem flestir eru á núna 519 00:37:12,580 --> 00:37:15,110 ef þeir eru að kaupa nýja þráðlausa leið og þannig dót? 520 00:37:15,110 --> 00:37:24,290 N. Einmitt. Bingo. Og það kemur í ljós að AC staðall er bara að koma út í drögum að formi, 521 00:37:24,290 --> 00:37:28,050 og það eru aðrar útgáfur á leiðinni. 522 00:37:28,050 --> 00:37:31,190 Með öllum þessum stöðlum sem við erum að öðlast er meira bandbreidd, 523 00:37:31,190 --> 00:37:33,900 fleiri gögn á hraðar. 524 00:37:33,900 --> 00:37:36,260 Þetta halda að breytast ansi hratt. 525 00:37:36,260 --> 00:37:39,880 Það gerir það líka þannig að við verðum að kaupa fleiri leið og allt það gaman efni. 526 00:37:39,880 --> 00:37:48,160 >> Við skulum tala um það sem þráðlaus samskipti í raun er í kjarna þess. 527 00:37:48,160 --> 00:37:51,790 Með Ethernet og þeim gamla upphringingu mótald, 528 00:37:51,790 --> 00:37:55,780 þú hefðir í raun þetta efni sem þú tengt inn í tölvuna þína, 529 00:37:55,780 --> 00:37:59,820 og þá tengt inn í mótald nokkurs konar, og þá tengt það inn í Jack í vegginn. 530 00:37:59,820 --> 00:38:01,820 Þú hafði þetta hlerunarbúnað tengingu, ekki satt? 531 00:38:01,820 --> 00:38:06,030 Í heild benda af þráðlausum er að fá losa af þessu efni. 532 00:38:06,030 --> 00:38:10,300 Til að gera það, það sem við höfum er í raun 533 00:38:10,300 --> 00:38:13,960 útvarp samskipti þar sem útvarpstæki leið okkar - 534 00:38:13,960 --> 00:38:16,230 tilnefndur af litla þráðlausa táknið okkar - 535 00:38:16,230 --> 00:38:21,730 er tengdur við internetið með þetta solid ör bendir einhvers konar hlerunarbúnað tengingu, 536 00:38:21,730 --> 00:38:24,640 En þegar þú tengir við þráðlaust leið þinni 537 00:38:24,640 --> 00:38:29,190 þú ert í raun að nota næstum eins walkie-talkie milli 538 00:38:29,190 --> 00:38:31,960 tölvuna og þráðlausa beininn. 539 00:38:31,960 --> 00:38:35,150 Hvað er raunverulega kaldur um þetta er hægt að færa sig til. 540 00:38:35,150 --> 00:38:40,900 Þú getur haft tölvuna allt Sanders, fara vafra á vefnum, hvað sem þú vilt, 541 00:38:40,900 --> 00:38:43,240 bara eins og þú veist allt og elska, 542 00:38:43,240 --> 00:38:46,030 og þú þarft ekki alltaf að vera tengt við eitthvað. 543 00:38:46,030 --> 00:38:53,880 Til þess að vinna, höfum við bæði þessa móttöku og miðlun. 544 00:38:53,880 --> 00:38:56,060 Það er í raun svona walkie-talkie. 545 00:38:56,060 --> 00:39:03,800 >> Þetta þráðlausa leið - sem Sanders situr undir þessu stigi, hérna - 546 00:39:03,800 --> 00:39:06,590 er alltaf útsendingar og móttöku, útsendingar og móttöku 547 00:39:06,590 --> 00:39:09,330 og sömuleiðis, eru tölvur allt að gera það sama svoleiðis líka. 548 00:39:09,330 --> 00:39:12,840 Við getum bara ekki heyra það. 549 00:39:12,840 --> 00:39:17,900 The annar hlutur sem þú getur gert er að þú getur haft margar tölvur 550 00:39:17,900 --> 00:39:22,200 að tala við sama þráðlausa leið. 551 00:39:22,200 --> 00:39:25,680 Því nær sem þú ert að leið - og aftur, þetta er útvarp samskipti - 552 00:39:25,680 --> 00:39:30,320 því nær sem þú ert, því betra merki er, því betra tölvunnar heyrir 'leið 553 00:39:30,320 --> 00:39:32,460 og má hafa samband við internetið. 554 00:39:32,460 --> 00:39:39,520 Ef þú krakkar ert alltaf á dorm þinn heima hjá þér og þú ert að velta fyrir mér hvers vegna merki þitt er slæmt, 555 00:39:39,520 --> 00:39:42,230 það er líklega vegna þess að a). þú ert ekki mjög nálægt leið, eða 556 00:39:42,230 --> 00:39:46,930 b). það er eitthvað á milli þín og þinn leið eins og sement vegg eða eitthvað 557 00:39:46,930 --> 00:39:50,720 að ekki láta þær útvarpsbylgjur fara í gegnum. 558 00:39:50,720 --> 00:39:57,850 >> Við skulum tala svolítið um það hvers vegna slæmur krakkar eins og Wi-Fi. 559 00:39:57,850 --> 00:40:02,980 Slæmur krakkar elska Wi-Fi fyrir nokkrum ástæðum. 560 00:40:02,980 --> 00:40:06,670 Hér er viðbjóðslegur slæmur strákur okkar rétt þar. 561 00:40:06,670 --> 00:40:10,660 Ein ástæðan fyrir því að slæmur strákur elskar Wi-Fi 562 00:40:10,660 --> 00:40:18,770 er vegna þess að við vanræksla, a einhver fjöldi af útvarpstæki leið koma og þegar þú setur þá upp, 563 00:40:18,770 --> 00:40:20,950 þeir unencrypted. 564 00:40:20,950 --> 00:40:23,970 Þetta hefur verið vandamál, og það hafa verið tilvik - 565 00:40:23,970 --> 00:40:28,210 síendurteknar, nú - þegar slæmur strákur sýnir sig í hús einhvern, 566 00:40:28,210 --> 00:40:32,630 tilkynningar að það er unencrypted Wi-Fi, sem þeir geta tengst. 567 00:40:32,630 --> 00:40:37,350 Þeir tengjast Wi-Fi, og þá byrja að hlaða niður alls konar skemmtilegt dót. 568 00:40:37,350 --> 00:40:40,890 Og þeir eru ekki að sækja kettlinga, eru þeir ekki að sækja hvolpana. 569 00:40:40,890 --> 00:40:44,610 Þetta er eins og BitTorrent. Þetta er viðbjóðslegur af viðbjóður. 570 00:40:44,610 --> 00:40:48,740 Það hafa verið tilfelli þar sem FBI hefur jafnvel fengið þátt 571 00:40:48,740 --> 00:40:52,390 hugsa að sá sem á húsið er í raun einn 572 00:40:52,390 --> 00:40:56,090 fara út og sækja efni sem þeir í raun ættu ekki að vera. 573 00:40:56,090 --> 00:41:00,730 Having unencrypted Wi-Fi er örugglega ekki eitthvað sem þú vilt gera, 574 00:41:00,730 --> 00:41:06,340 ef aðeins ekki FBI koma banka á hurðina þína. 575 00:41:06,340 --> 00:41:09,910 >> Önnur ástæða fyrir slæmur krakkar elska Wi-Fi 576 00:41:09,910 --> 00:41:13,870 er ástæðan fyrir því að Davíð talaði um áðan á brot. 577 00:41:13,870 --> 00:41:17,240 Vegna þess að það er útvarp samskipti algerlega þess, 578 00:41:17,240 --> 00:41:22,460 Ef þú veist um rás, getur þú hlustað á þá útvarpsstöð. 579 00:41:22,460 --> 00:41:31,870 Til dæmis, ef það er slæmt þarna situr í miðju hliðina á aðgangsstað 580 00:41:31,870 --> 00:41:36,830 við hliðina á að þráðlausa leið, slæmur strákur getur hlustað á á öllum þráðlausum umferð 581 00:41:36,830 --> 00:41:40,240 sem kemur frá öllum þessum tölvum. 582 00:41:40,240 --> 00:41:44,590 Í staðreynd, þessir gaurar - þetta heppinn fáir sem eru hér í fremstu röð - 583 00:41:44,590 --> 00:41:47,610 vegna þess að þeir eru frábær nálægt öllum þessum útvarpstæki leið 584 00:41:47,610 --> 00:41:49,950 að sitja bara undir sviðinu, 585 00:41:49,950 --> 00:41:53,780 þeir myndu vera fær um að heyra umferð allir í þetta allt herbergi 586 00:41:53,780 --> 00:41:59,480 Ef þú ert tengdur við Wi-Fi og að vafra í gegnum þessi aðgangsstaði. 587 00:41:59,480 --> 00:42:03,740 Það er ekki mjög erfitt að sitja sjálfur í góðri stöðu til að sjúga upp í nefið og reikna út 588 00:42:03,740 --> 00:42:07,030 hvað aðrir eru að gera. 589 00:42:07,030 --> 00:42:10,830 Það er eitthvað til að hafa í huga, sérstaklega ef þú ert ekki viss um hvar aðgangsstaður er 590 00:42:10,830 --> 00:42:15,010 og þú ert að vafra segja, á Starbucks. 591 00:42:15,010 --> 00:42:17,360 >> Það kemur í ljós að sjúga upp í nefið og allt það 592 00:42:17,360 --> 00:42:19,440 er í raun ekki allt sem erfitt er að gera. 593 00:42:19,440 --> 00:42:25,430 Það er forrit sem heitir tcpdump sem hugarangur alls konar TCP umferð 594 00:42:25,430 --> 00:42:29,910 og þú getur keyrt það nokkuð einfaldlega - bara eins og ég gerði í morgun. 595 00:42:29,910 --> 00:42:32,810 Hér er a lítill hluti af a sorphaugur, og hér er sumir af the umferð sem var að koma yfir 596 00:42:32,810 --> 00:42:34,960 netið mitt á þeim tíma. 597 00:42:34,960 --> 00:42:41,500 Þú getur séð - ef þú squint mjög erfitt - það er a lítill hluti af Spotify þar. 598 00:42:41,500 --> 00:42:44,050 Á toppur af tcpdump - vegna þess að þetta er góður af a sársauki til að nota - 599 00:42:44,050 --> 00:42:48,860 það er forrit sem heitir Wireshark sem knippi þetta allt upp í fallegu GUI. 600 00:42:48,860 --> 00:42:51,970 Wireshark er frábær-vel þannig að ef þú ferð á að taka net námskeið, 601 00:42:51,970 --> 00:42:56,780 Þetta er tól sem þú munt koma til að elska þar sem það hjálpar þér að kryfja alla pakka 602 00:42:56,780 --> 00:42:59,400 sem eru fljótandi um þarna úti. 603 00:42:59,400 --> 00:43:01,810 En það geta einnig vera notaður fyrir slæmt. 604 00:43:01,810 --> 00:43:05,810 Það er mjög einfalt að bara sækja þetta forrit, ræsa það upp, 605 00:43:05,810 --> 00:43:09,300 hefja net handtaka, og sjá allt sem er að gerast - 606 00:43:09,300 --> 00:43:14,130 og sía og gera alls konar skemmtilegt dót með það. 607 00:43:14,130 --> 00:43:17,930 >> The annar hlutur sem þú getur gert með þráðlaus samskipti 608 00:43:17,930 --> 00:43:25,380 er ekki bara hægt að eavesdrop en þú getur líka lært hvernig á að skrúfa við netið 609 00:43:25,380 --> 00:43:31,020 og sprauta eigin upplýsingar til að stjórna reynslu sem aðrir 610 00:43:31,020 --> 00:43:35,140 á sama þráðlausa neti eru að fá. 611 00:43:35,140 --> 00:43:37,140 Við skulum taka a líta á það. 612 00:43:37,140 --> 00:43:40,700 Hér er Firesheep - sem við þekkjum og elskum frá síðustu viku - 613 00:43:40,700 --> 00:43:43,590 sem er að hlusta tækni. 614 00:43:43,590 --> 00:43:50,360 Ef, til dæmis, vildum við virkan hafa slæmur strákur fara okkar og sóðaskapur í kring með 615 00:43:50,360 --> 00:43:52,690 einn af þessum tölvum, 616 00:43:52,690 --> 00:43:58,380 í þessari atburðarás sem við höfum fengið tölvu að reyna að fara í brim harvard.edu. 617 00:43:58,380 --> 00:44:04,690 Hvað gerist er að tölvan sendir fyrst skilaboð til útvarpstæki leið og segir, 618 00:44:04,690 --> 00:44:07,920 hey, ég vil fara heimsækja www.harvard.edu. 619 00:44:07,920 --> 00:44:10,610 Segja einhverjum ástæðum eru þeir að reyna að fá upplýsingar um leikinn um helgina. 620 00:44:10,610 --> 00:44:14,940 Slæmur strákur, þar sem hann situr rétt í miðju, 621 00:44:14,940 --> 00:44:18,730 við hliðina á því aðgangsstað getur séð að samskipti koma frá tölvunni 622 00:44:18,730 --> 00:44:26,170 inn á leið, og hann veit, "Hæ! Einhver er að fara að harvard.edu." (Evilly hlær) 623 00:44:26,170 --> 00:44:33,870 Það er að fara að vera svona leynd en samskipti fer af leið 624 00:44:33,870 --> 00:44:37,780 út á internetið til að fara að finna vefsíðu á harvard.edu-- 625 00:44:37,780 --> 00:44:42,020 bara eins og þú krakkar vita allt eftir að gera PHP psets þínum - 626 00:44:42,020 --> 00:44:45,680 og svo hefur slæmur strákur í smá tíma, a lítill hluti af glugganum, 627 00:44:45,680 --> 00:44:49,410 þar sem hann getur svarað með einhverju efni. 628 00:44:49,410 --> 00:44:53,660 >> Við skulum segja að þetta slæmur strákur, auðvitað, er Yaley. 629 00:44:53,660 --> 00:44:59,990 Hann svarar með harvardsucks.org. Boo! 630 00:44:59,990 --> 00:45:02,300 Bad, slæmur strákur! Bad Yaley! 631 00:45:02,300 --> 00:45:06,020 Eða jafnvel verra, gæti hann bregðast við því. [Http://youtu.be/ZSBq8geuJk0]. 632 00:45:06,020 --> 00:45:09,530 Ég læt ykkur reikna út hvað það er. 633 00:45:09,530 --> 00:45:14,840 Þetta er í raun tækni sem kallast Airpwn! sem var frumraun á 634 00:45:14,840 --> 00:45:18,950 einn af öryggi ráðstefnur fyrir nokkrum árum. 635 00:45:18,950 --> 00:45:25,190 Með Airpwn! þú ert fær um að í raun dæla umferð aftur í netið. 636 00:45:25,190 --> 00:45:30,060 Tölvur sem voru að reyna að fara út á internetið og reyna að komast að 637 00:45:30,060 --> 00:45:33,090 Google.com til Facebook.com að harvard.edu 638 00:45:33,090 --> 00:45:39,190 sjá illgjarn viðbrögð koma í og ​​strax gera ráð fyrir, allt í lagi, 639 00:45:39,190 --> 00:45:43,550 það er svar sem ég var að bíða eftir og á endanum fá efni frá 640 00:45:43,550 --> 00:45:48,860 harvardsucks.org eða nameyourfavoriteshocksite.com, 641 00:45:48,860 --> 00:45:55,270 og þú getur séð hversu fljótt það mun versna. 642 00:45:55,270 --> 00:46:00,190 >> Allar þessar tegundir af hlutum er ekki hægt að gera 643 00:46:00,190 --> 00:46:05,870 með þessum hlerunarbúnað tengsl þar með hlerunarbúnað tengingu 644 00:46:05,870 --> 00:46:08,710 það er erfitt að Snoop á umferð. 645 00:46:08,710 --> 00:46:13,020 Ef ég er slæmur strákur og á annan endann er tölva 646 00:46:13,020 --> 00:46:14,460 og á hinum endanum er leið þín - mótald - 647 00:46:14,460 --> 00:46:20,180 eina leiðin fyrir mig að fá inn á milli því sambandi er að í raun skeyta tölvuna mína 648 00:46:20,180 --> 00:46:22,180 í einhvers staðar í miðjunni 649 00:46:22,180 --> 00:46:26,820 eða gera eitthvað annað við leið, eitthvað downstream. 650 00:46:26,820 --> 00:46:33,360 En með þráðlaust, það geta vera eins og þægilegur eins og að sitja í fremstu röð á kennslustofu, 651 00:46:33,360 --> 00:46:38,200 og þú getur gert alls konar viðbjóðslegur efni til fólks í bak. 652 00:46:38,200 --> 00:46:41,570 >> Við skulum tala um hvernig þú getur varið gegn sumum af þessum hlutum. 653 00:46:41,570 --> 00:46:46,860 Fólkið sem þróað þráðlausa staðla - the 802,11 - 654 00:46:46,860 --> 00:46:50,820 þau eru ekki heimsk fólk því að allir teygja af the ímyndun. 655 00:46:50,820 --> 00:46:56,110 Þetta er flott tækni og þegar það frumraun í 1999, 656 00:46:56,110 --> 00:47:00,780 þeir komu út með þessum staðli sem kallast WEP. 657 00:47:00,780 --> 00:47:03,360 Þú getur séð hér þegar þú reynir að tengja þráðlaust net, 658 00:47:03,360 --> 00:47:07,450 þú hefur alls konar mismunandi valkosti í öryggismálum. 659 00:47:07,450 --> 00:47:11,800 Það er góður af a sársauki vegna þess að það eru 6 allt saman 660 00:47:11,800 --> 00:47:14,790 og það aldrei raunverulega vit sem 1 til að taka þátt. 661 00:47:14,790 --> 00:47:19,190 Þessi 1 efst er sá fyrsti sem þeir komu upp með heitir WEP. 662 00:47:19,190 --> 00:47:27,960 WEP stendur fyrir Wired Equivalent Privacy, tel ég, 663 00:47:27,960 --> 00:47:31,730 ekki Wireless Encryption Protocol sem er algengt misnomer. 664 00:47:31,730 --> 00:47:36,170 Vegna þess að það reynir að gefa þér næði samsvarandi og öryggi verndun 665 00:47:36,170 --> 00:47:40,590 jafngildir að hlerunarbúnað netið 666 00:47:40,590 --> 00:47:46,710 Með WEP það endar að gerast er, 667 00:47:46,710 --> 00:47:52,300 þú hafa a einfaldur, lítið lykilorð sem þú slærð í og ​​sem þjónar til að dulkóða 668 00:47:52,300 --> 00:47:56,210 öllum samskiptum þínum á milli tölvunnar og leið. 669 00:47:56,210 --> 00:47:58,210 >> Hvað er vandamálið með WEP þó? 670 00:47:58,210 --> 00:48:01,470 Lykilorðið með WEP er mjög stutt, 671 00:48:01,470 --> 00:48:04,900 og notar einnig allir að sama nákvæmlega lykilorð 672 00:48:04,900 --> 00:48:07,610  og svo er það mjög auðvelt að hallmæla. 673 00:48:07,610 --> 00:48:10,580 Svo mjög fljótt fólk mynstrağur út að WEP var vandamál, 674 00:48:10,580 --> 00:48:16,100 og eina ástæðan sem þú sérð það að sýna sig enn á þessum litla gaur er - 675 00:48:16,100 --> 00:48:18,890 Það eru nokkrar eldri kerfi sem ekki nota WEP - 676 00:48:18,890 --> 00:48:25,710 það sem þú ættir að í stað að leita að eru WPA og jafnvel WPA2 staðla 677 00:48:25,710 --> 00:48:29,130 sem voru gefin út síðar. 678 00:48:29,130 --> 00:48:35,040 Þessi kerfi eru miklu betur fara í vörn á þráðlausa netið. 679 00:48:35,040 --> 00:48:41,090 Það sagði, að þeir enn hafa sumir hackability. 680 00:48:41,090 --> 00:48:44,010 Það eru verkfæri þarna úti sem hægt er að fara að gera þetta. 681 00:48:44,010 --> 00:48:47,490 Eitt í lagi að geta verið viðbjóðslegur að 682 00:48:47,490 --> 00:48:55,370 ef þú tengir og staðfest við þráðlaust leið og eru að nota einhvers konar 683 00:48:55,370 --> 00:49:00,940 dulkóðuð samskipti, snýr það út að tölvusnápur getur auðveldlega senda einn pakka 684 00:49:00,940 --> 00:49:03,990 að aftengja þig frá leið, 685 00:49:03,990 --> 00:49:07,220 og þegar þeir hafa ótengdur þér að þeir geta þá hlustað á - 686 00:49:07,220 --> 00:49:11,800 þeir geta snökt þá pakka sem þú ert að reyna að koma aftur á tengingu við beininn. 687 00:49:11,800 --> 00:49:16,800 Og með því að upplýsingar sem þeir geta þá farið í og ​​hallmæla the hvíla af samskiptum þínum. 688 00:49:16,800 --> 00:49:24,580 Þetta er ekki með neinum hætti hvers konar örugg ofar öllu ímyndunarafl. 689 00:49:24,580 --> 00:49:30,060 >> The annar hlutur sem þú getur gert þegar þú ert að setja upp þráðlaust net 690 00:49:30,060 --> 00:49:35,460 eða þú ert að taka þátt þá er - þú tekur eftir því hérna þegar ég er að taka þátt þetta net 691 00:49:35,460 --> 00:49:37,640 það biður um nafn á minn net. 692 00:49:37,640 --> 00:49:41,060 Þetta er einnig þekkt sem SSID. 693 00:49:41,060 --> 00:49:48,610 Og þú sérð hér að á hægri ég kassa sem sýnir mér fyrirliggjandi SSIDs. 694 00:49:48,610 --> 00:49:52,690 There er a Harvard University, a CS50 og CS50 Staff net. 695 00:49:52,690 --> 00:49:59,180 Nú, hvernig margir af þú vissir það var CS50 Starfsfólk net í kring? 696 00:49:59,180 --> 00:50:01,910 Sumir af þú. Ekki ykkur. 697 00:50:01,910 --> 00:50:08,800 Vandinn við þetta er auðvitað, að við höfðum ekki sett þetta upp á lista okkar SSIDs, 698 00:50:08,800 --> 00:50:10,930 enginn hefði vitað um það líklegast. 699 00:50:10,930 --> 00:50:16,090 Ég vona. Nema þú krakkar eru allir að reyna að sprunga í útvarpstæki okkar. 700 00:50:16,090 --> 00:50:18,700 En þetta er eitthvað sem þú getur gert það er mjög mikilvægt þegar þú ert að setja upp 701 00:50:18,700 --> 00:50:20,280 leið heima. 702 00:50:20,280 --> 00:50:22,820 Þetta verður að öllum líkindum ekki gerast fyrir nokkrum árum fyrir a einhver fjöldi af þér, 703 00:50:22,820 --> 00:50:29,010 en ekki að hafa í huga að halda að SSID út þaðan og ekki líka nefna það 704 00:50:29,010 --> 00:50:34,630 eitthvað frábær sameiginlegt mun hjálpa halda þér öruggt meira í the langur hlaupa. 705 00:50:34,630 --> 00:50:38,070 >> Endanleg nokkrir hlutir sem þú getur gert. Eitt er HTTPS. 706 00:50:38,070 --> 00:50:44,760 Ef þú ert á Starbucks, ef þú ert á almannafæri Wi-Fi svæði 707 00:50:44,760 --> 00:50:52,620 og þú ákveður að opna bankareikning þinn, aðgang að Gmail, Facebook, 708 00:50:52,620 --> 00:50:56,140 ganga úr skugga um að þessi tengsl eru að fara yfir HTTPS. 709 00:50:56,140 --> 00:50:59,800 Það er óákveðinn greinir í ensku added lag af öryggi, bætt lag af dulkóðun. 710 00:50:59,800 --> 00:51:01,520 The einn hlutur að hafa í huga hér er að 711 00:51:01,520 --> 00:51:04,740 Hversu margir af þú hafa alltaf smellt í gegnum þessi stóru rauða skjár sem segir 712 00:51:04,740 --> 00:51:07,480 "Þessi vefsíða gæti verið slæmt." 713 00:51:07,480 --> 00:51:09,710 Ég veit að ég hef. 714 00:51:09,710 --> 00:51:13,090 Það er líklega þegar þú ert alla vafra til að fara að sjá föðurland eða eitthvað svoleiðis, ekki satt? 715 00:51:13,090 --> 00:51:19,900 Já. (Áhorfendur hlátur) Já. Þar sem þú ferð. Við vitum sem er að horfa á heimalandið. 716 00:51:19,900 --> 00:51:24,540 Það stór, rauður skjár þarna 717 00:51:24,540 --> 00:51:28,600 oft gefa til kynna að eitthvað angurvær er að fara á. 718 00:51:28,600 --> 00:51:32,530 Stundum er það bara the website sig er óörugg, 719 00:51:32,530 --> 00:51:35,520 en það sama stór, rauður skjár kemur upp þegar fólk er að reyna að 720 00:51:35,520 --> 00:51:37,520 fjall net árásir á þig. 721 00:51:37,520 --> 00:51:40,220 Svo ef þú sérð að stór, rauður skjár koma upp á Starbucks, 722 00:51:40,220 --> 00:51:42,440 ekki smella í gegnum það. 723 00:51:42,440 --> 00:51:45,350 Bad fréttir. Bad fréttir ber. 724 00:51:45,350 --> 00:51:51,490 >> Endanleg hlutur sem þú getur litið á 725 00:51:51,490 --> 00:51:54,120 er einhvers konar VPN. 726 00:51:54,120 --> 00:52:00,280 Þetta VPN er í boði í gegnum Harvard - vpn.fas.harvard.edu-- 727 00:52:00,280 --> 00:52:03,260 og hvað þetta gerir er að það setur í raun örugga tengingu 728 00:52:03,260 --> 00:52:06,460 milli þín og Harvard, funnels umferð í gegnum það, 729 00:52:06,460 --> 00:52:12,160 og þannig ef þú ætlar að sitja á stað eins og Starbucks 730 00:52:12,160 --> 00:52:19,030 er hægt að tengja við Harvard, að fá þessi örugga umferð, og þá beit frá Harvard. 731 00:52:19,030 --> 00:52:21,950 Aftur, ekki pottþéttur. Fólk getur fengið í miðjunni. 732 00:52:21,950 --> 00:52:25,850 Þeir geta byrjað að brjóta það, en þetta er langt öruggari en að treysta á öryggi 733 00:52:25,850 --> 00:52:28,620 á Wi-Fi eingöngu. 734 00:52:28,620 --> 00:52:32,570 >> Allt í lagi. Í stuttu máli, 735 00:52:32,570 --> 00:52:34,580 þegar þú ert að setja upp þráðlaust net, 736 00:52:34,580 --> 00:52:37,250 þegar þú ert að fara út til að nota þráðlaust á almannafæri - 737 00:52:37,250 --> 00:52:43,430 hvort sem það er Starbucks, hvort sem það er fimm Guys, hvort sem það er B.Good, 738 00:52:43,430 --> 00:52:46,440 eitthvað svoleiðis - hvar sem þeir hafa Wi-Fi - 739 00:52:46,440 --> 00:52:48,440 vera meðvitaður um umhverfi þitt. 740 00:52:48,440 --> 00:52:50,440 Vertu meðvituð um hvað fólk getur gert. 741 00:52:50,440 --> 00:52:53,890 Og vera öruggur. Ekki aðgang bankareikning þinn. 742 00:52:53,890 --> 00:52:58,740 Það gæti verið dónalegur vakning ef einhver sýnir sig með aðgangsorði síðar. 743 00:52:58,740 --> 00:53:05,480 Með því að fara Crimson! Og ég ætla að snúa dæminu aftur yfir til Davíðs í síðasta orð. 744 00:53:05,480 --> 00:53:11,270 (Applause) 745 00:53:11,270 --> 00:53:14,360 >> [David] Ég hélt að ég myndi deila eitt af persónulegri reynslu. 746 00:53:14,360 --> 00:53:19,940 A tól sem þú might eins og til að spila með - þó Apple hefur að mestu útrýmt á þessu máli 747 00:53:19,940 --> 00:53:22,710 Ef þú hefur uppfært hugbúnaðinn þar - 748 00:53:22,710 --> 00:53:26,670 en til þessa enda ekki í raun að vera fær um að treysta hugbúnað sem við notum, 749 00:53:26,670 --> 00:53:33,270 og stig nate er, að geta snökt töluvert af því sem aðrir eru að gera 750 00:53:33,270 --> 00:53:37,010 þarna úti - það var stykki af hugbúnaður sem kom út um ári-og-hálfs síðan núna. 751 00:53:37,010 --> 00:53:39,010 [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] 752 00:53:39,010 --> 00:53:41,010 Um nokkurt skeið, iTunes - fyrir iCloud, þegar þú varst syncing iPods þinn eða iPhones þinn eða 753 00:53:41,010 --> 00:53:45,570 eða iPads þinn með iTunes - í þágu afrit, 754 00:53:45,570 --> 00:53:48,340 hvað iPhone og þessi önnur tæki hafa verið að gera í nokkurn tíma er 755 00:53:48,340 --> 00:53:50,340 að nýta GPS-gögnum. 756 00:53:50,340 --> 00:53:52,710 >> Þú veist allt kannski að iPhone þín og Androids og Windows farsíma 757 00:53:52,710 --> 00:53:55,410 og þess háttar þessa dagana geta fylgst með hvar þú ert í þágu sýna þér kort 758 00:53:55,410 --> 00:53:59,440 og svipuð - vel hvað Apple og þessi önnur fyrirtæki gera er 759 00:53:59,440 --> 00:54:02,650 Þeir fylgjast oftast nánast alls staðar sem þú hefur í raun verið í þágu 760 00:54:02,650 --> 00:54:05,380 bæta gæði þjónustunnar. 761 00:54:05,380 --> 00:54:07,170 Eitt er hægt að fá fleiri miða auglýsingar og þess háttar, 762 00:54:07,170 --> 00:54:10,740 en tveir, þeir geta líka fundið út hvar eru þráðlausa hotspot í heimi, 763 00:54:10,740 --> 00:54:14,780 og það getur hjálpað við geo-staðsetning - konar triangulation stöðu fólks. 764 00:54:14,780 --> 00:54:18,520 >> Long saga stutt, allir af okkur hafði verið gangandi loftnet í nokkurn tíma. 765 00:54:18,520 --> 00:54:22,180 Því miður, Apple hafði hönnun ákvörðun - eða skortur þar - 766 00:54:22,180 --> 00:54:26,590 að ekki dulkóða þessar upplýsingar þegar það var verið backed upp við iTunes. 767 00:54:26,590 --> 00:54:30,330 Og hvað öryggi vísindamaður fann var að þetta var bara mikið XML skrá - 768 00:54:30,330 --> 00:54:33,810 a gríðarstór textaskrá - situr í iTunes hugbúnaðinn fólks, 769 00:54:33,810 --> 00:54:35,400 og ef þú varst bara svolítið forvitinn, 770 00:54:35,400 --> 00:54:38,990 þú gætir farið poking um sögu maka þíns, sögu félaga þíns, 771 00:54:38,990 --> 00:54:41,050 systkinis þíns sögu og þess háttar, 772 00:54:41,050 --> 00:54:44,590 og takk sumir frjáls hugbúnaður, getur þú samsæri öll þessi GPS hnit - 773 00:54:44,590 --> 00:54:46,590 breiddar og lengdar. 774 00:54:46,590 --> 00:54:48,590 >> Svo gerði ég reyndar með eigin símann minn. 775 00:54:48,590 --> 00:54:51,210 Ég tappi í símanum mínum, og viss nógur, útgáfa mín af iTunes var ekki dulkóðað á þeim tíma, 776 00:54:51,210 --> 00:54:53,900 og það sem ég var fær um að sjá voru eigin mynstur mína. 777 00:54:53,900 --> 00:54:56,970 Hér er United States og hver af þessum bláa hringi táknar 778 00:54:56,970 --> 00:55:01,670 þar sem ég varð að hafa verið yfir þeim fyrri mánuði eiga þessa tilteknu síma. 779 00:55:01,670 --> 00:55:04,940  Ég eyði miklum tíma, að sjálfsögðu, upp í Norðaustur, smá tíma í Kaliforníu, 780 00:55:04,940 --> 00:55:08,690 skammvinnt ferð til Texas, og ef þú zoom þá á þessu - 781 00:55:08,690 --> 00:55:11,120 þetta er allt svona fínt og áhugavert, en ég vissi þetta. 782 00:55:11,120 --> 00:55:13,890 Flestir vina minna vissi þetta, en ef þú kafa í dýpri 783 00:55:13,890 --> 00:55:17,090 þú sérð hvar ég eyða mestum tíma mínum í Norðaustur. 784 00:55:17,090 --> 00:55:20,330 Ef þú latch á sumum kunnugleg-útlit bæjum - 785 00:55:20,330 --> 00:55:24,670 þetta stóra, bláu bleki splotch er í raun miðju yfir Boston, 786 00:55:24,670 --> 00:55:29,510 og þá er ég að eyða smá tíma í úthverfum geislar út frá Boston. 787 00:55:29,510 --> 00:55:32,780 En ég var líka að gera töluvert af samráði því ári. 788 00:55:32,780 --> 00:55:36,090 Og á þessu ári er austur SEABOARD, og ​​þú getur raunverulega sjá mig 789 00:55:36,090 --> 00:55:41,920 og iPhone minn í vasa mínum ferðast fram og til baka á milli Boston og New York 790 00:55:41,920 --> 00:55:47,510 og Philadelphia neðar, og eyða smá tíma í frí 791 00:55:47,510 --> 00:55:50,340 á Cape, sem er litli armur þarna úti. 792 00:55:50,340 --> 00:55:53,030 Svo, hver þessara punkta er nokkur staður sem ég hafði verið, 793 00:55:53,030 --> 00:55:56,970 og alveg unbeknownst mér þetta allt saga var bara sat þarna 794 00:55:56,970 --> 00:55:58,410 á tölvunni minn skrifborð. 795 00:55:58,410 --> 00:56:00,470 Ef þú zoom út - þetta var reyndar svolítið áhyggjur. 796 00:56:00,470 --> 00:56:04,190 Ég hafði ekki recollection alltaf hafa verið í Pennsylvania viðkomandi ár. 797 00:56:04,190 --> 00:56:07,840 En ég þó svolítið erfiðara um það og ég mynstrağur út, ó, það var í raun að ferð 798 00:56:07,840 --> 00:56:11,160 og viss nógur, síminn minn hafði lent mig. 799 00:56:11,160 --> 00:56:14,180 >> Apple hefur síðan dulkóðuð þessar upplýsingar, 800 00:56:14,180 --> 00:56:17,380 en þetta er líka bara vitnisburður um hversu mikið af upplýsingum er safnað um okkur, 801 00:56:17,380 --> 00:56:20,850 og hversu auðvelt - fyrir betri eða verri - það er ásættanlegt. 802 00:56:20,850 --> 00:56:23,340 Einn af taka-burt vonandi úr ræðu Rob, frá tala nate er 803 00:56:23,340 --> 00:56:27,370 og litlu myndefni eins og þessi í dag er bara að vera allt meira meðvitaðir um þetta 804 00:56:27,370 --> 00:56:31,160 þannig að jafnvel þó - eins og til að benda Rob er - we're konar ruglaður, ekki satt? 805 00:56:31,160 --> 00:56:33,920 Það er ekki mikið sem við getum gert þegar það kemur að því að sum af þessum ógnum, 806 00:56:33,920 --> 00:56:37,130 en í lok dags að við þurfum að treysta einhverju eða einhverjum 807 00:56:37,130 --> 00:56:38,510 ef við viljum í raun og veru að nota þessa tækni. 808 00:56:38,510 --> 00:56:43,150 Að minnsta kosti getum við verið að gera upplýstar ákvarðanir og reiknað ákvarðanir hvort 809 00:56:43,150 --> 00:56:46,390 við ættum í raun að vera að skoða þetta sérstaklega viðkvæmar reikning 810 00:56:46,390 --> 00:56:49,330 eða við ættum í raun að vera að senda þessi örlítið grunar augnablik skilaboð 811 00:56:49,330 --> 00:56:52,180  á Wi-Fi umhverfi eins og þetta. 812 00:56:52,180 --> 00:56:54,990 >> Svo, með því að segja, bara einn quiz enn einn fyrirlestur eftir. 813 00:56:54,990 --> 00:56:57,740 Við munum sjá þig á miðvikudaginn þá mánudagur. 814 00:56:57,740 --> 00:57:02,100 (Lófaklapp og skál) 815 00:57:02,100 --> 00:57:06,100 [CS50TV]