1 00:00:00,000 --> 00:00:02,750 [Powered by Google Translate] [Semajno 10] 2 00:00:02,750 --> 00:00:04,750 [Davido J. Malan] [Universitato Harvard] 3 00:00:04,750 --> 00:00:07,000 [Jen CS50.] [CS50.TV] 4 00:00:08,520 --> 00:00:13,240 >> Bone! Ĉi tiu estas CS50 sed ne por multe pli longe. 5 00:00:13,240 --> 00:00:14,740 Ĉi tiu estas la komenco de la semajno 10. 6 00:00:14,740 --> 00:00:18,780 Merkredon ni niajn kvizon, kaj tiam venonta lundo ni havas iujn okazigo kuko 7 00:00:18,780 --> 00:00:22,030 kiel ni venis plena cirklo tuta vojo reen de semajno nulo. 8 00:00:22,030 --> 00:00:25,200 Hodiaŭ, ni parolas pri unu el miaj preferataj temoj, vero povis nombri - 9 00:00:25,200 --> 00:00:29,000 tiu de sekureco kaj privateco kaj la implikaĵojn de ĉiuj de la aparataro kaj programaro 10 00:00:29,000 --> 00:00:31,000 ke ni ĉiuj uzu tiujn tagojn. 11 00:00:31,000 --> 00:00:33,300 Por esti honesta, ekzistas multe da minacoj tie 12 00:00:33,300 --> 00:00:35,430 ke se vi ne vere paŭzis por pensi pri ili, 13 00:00:35,430 --> 00:00:36,920 ili estas vere belaj fortimiga. 14 00:00:36,920 --> 00:00:40,070 Kazo en punkto - se iu el vi iam elŝutis peco de programaro 15 00:00:40,070 --> 00:00:42,660 for de la interreto kaj instalis ĝin en via komputilo, 16 00:00:42,660 --> 00:00:45,220 vi dediĉis al signifa grado de konfido, ĉu ne? 17 00:00:45,220 --> 00:00:50,220 Estas nenio esti malhelpita Skype, aŭ Chrome, nek peco de programaro 18 00:00:50,220 --> 00:00:54,770 vi instalis sur via komputilo, de simple forigi ĉiujn dosierojn en via malmola disko; 19 00:00:54,770 --> 00:00:58,260 el alŝuti ĉiujn dosierojn en via malmola disko al iu malbona ulo La servilo; 20 00:00:58,260 --> 00:01:01,650 el legi ĉiujn de viaj retmesaĝoj; de interkapti ĉiuj viaj tujmesaĝojn. 21 00:01:01,650 --> 00:01:05,040 Ĉar la realaĵo estas hodiaŭ kun plej modernaj mastrumaj sistemoj 22 00:01:05,040 --> 00:01:10,040 Ĉu vere ne estas parto de muro inter programaro programoj kiuj ni instali, 23 00:01:10,040 --> 00:01:14,220 kaj vi kaj mi estas preskaux nur ia kruciĝo niaj fingroj kaj prenante sur fido 24 00:01:14,220 --> 00:01:17,750 ke tiu programo ni elŝutebla senpage, aŭ tiun aĵon jen 99 cendoj, 25 00:01:17,750 --> 00:01:20,140 estas fakte tute benigna. 26 00:01:20,140 --> 00:01:23,090 Sed kiel ni vidis tra C, kaj nun PHP kaj Javascript, 27 00:01:23,090 --> 00:01:25,420 kun tiu kapablo esprimi nin programatically, 28 00:01:25,420 --> 00:01:30,300 vi povas fari preskaŭ kion ajn vi volas kun programo kiu uzanto mem aŭ si povus fari. 29 00:01:30,300 --> 00:01:32,390 >> Do, hodiaŭ ni enfokusigas sur tiu temo - 30 00:01:32,390 --> 00:01:35,360 ne nur iuj minacoj sed ankaŭ arieruloj. 31 00:01:35,360 --> 00:01:37,540 Efektive, en la mondo de sekureco ĝenerale, 32 00:01:37,540 --> 00:01:39,040 ekzistas ia ĉi kato-kaj-muso ludo, 33 00:01:39,040 --> 00:01:41,990 kaj mi daresay la maliculojn preskaŭ ĉiam havas kruron supren. 34 00:01:41,990 --> 00:01:45,880 Kiam temas pri utiligante aparataro kaj programaro en niaj propraj personaj komputiloj, 35 00:01:45,880 --> 00:01:51,250 ni devas realigi tiun malbonan ulo simple bezonas trovi unu simplan eraron - 36 00:01:51,250 --> 00:01:56,150 unu ekspluatas, unu cimon - en peco de programaro ni skribas aŭ estas kurante 37 00:01:56,150 --> 00:01:58,280 en ordo por li aŭ ŝi transpreni nian tutan sistemon. 38 00:01:58,280 --> 00:02:02,870 Kontraŭe, ni - la bonuloj - bezonas repaciĝi kaj ripari ĉiujn el tiuj eraroj 39 00:02:02,870 --> 00:02:04,900 kaj eviti ĉiun el tiuj malfortojn. 40 00:02:04,900 --> 00:02:07,870 Kaj tiel, mi daresay sur la aro, la malbonaj infanoj havas la avantaĝon. 41 00:02:07,870 --> 00:02:10,840 Kio klasoj kiel ĉi tiu kaj postaj klasoj estas vere pri 42 00:02:10,840 --> 00:02:14,830 ne pri instruado al vi kiel fari la batalojn, ke tiuj malbonaj fari, 43 00:02:14,830 --> 00:02:18,220 sed pri tio, kiel por protekti vin aŭ almenaŭ kiel fari kalkulita decido 44 00:02:18,220 --> 00:02:22,970 ke jes, mi scias ĉi tiu peco de programaro povus ja legis cxiun el miaj retmesaĝoj, 45 00:02:22,970 --> 00:02:27,040 sed mi estas bone kun tio pro la valoro ĝi alportas al mi aliflanke. 46 00:02:27,040 --> 00:02:31,060 >> Mi tre ĝojas aligxu por 2 de la plej saĝaj homoj mi scias - 47 00:02:31,060 --> 00:02:33,060 Rob Bowden kaj Nate Hardison. 48 00:02:33,060 --> 00:02:36,850 Rob estas por faru nin oni ĝiras tra la plej malalta nivelo de sekureco etikedoj - 49 00:02:36,850 --> 00:02:42,470 tiu de la tradukilo kiu, ĝis nun, ni ĉiuj venas por ami kaj fidas. Rob Bowden. 50 00:02:42,470 --> 00:02:47,790 [Aplaŭdo] 51 00:02:47,790 --> 00:02:50,280 >> [Rob] Bone. David preskaux prenita mian tutan Spiel 52 00:02:50,280 --> 00:02:52,320 ke mi tuj enkonduki kun, sed - 53 00:02:52,320 --> 00:02:58,070 Pluraj semajnoj, vi vidis la ekzemplo de bufro-superflui atako 54 00:02:58,070 --> 00:03:01,900 kiu estas ekzemplo de hacker hacking en iu peco de programaro 55 00:03:01,900 --> 00:03:06,060 ke ili ne devus esti hacking en. 56 00:03:06,060 --> 00:03:09,690 La alia flanko de ĉi tiu 57 00:03:09,690 --> 00:03:14,470 estas kelkfoje vi havas programaron kiu estas malica en kaj de sin. 58 00:03:14,470 --> 00:03:17,070 Ĝi eĉ ne bezonas esti tiras. 59 00:03:17,070 --> 00:03:20,670 La persono kiu skribis la programaro volas pirati vi. 60 00:03:20,670 --> 00:03:22,190 >> Ni nur salti rekte en kodo, 61 00:03:22,190 --> 00:03:28,560 prenante rigardu "login.c". 62 00:03:28,560 --> 00:03:33,390 Ĉi tie, stulta programo kiu validigas salutnomon kaj pasvorton kombino. 63 00:03:33,390 --> 00:03:39,420 Ĉi tie vi devus definitive estos atingi komforta kun C denove por la kvizo. 64 00:03:39,420 --> 00:03:43,470 Unue, ni uzas get kordoj por priskribi la uzantnomo, 65 00:03:43,470 --> 00:03:46,280 tiam ni uzas get string kapti la pasvorto, 66 00:03:46,280 --> 00:03:50,680 kaj poste ni havas iom bagatela ĉekojn de justa, estas la kromnomo "ŝteli"? 67 00:03:50,680 --> 00:03:52,710 Kaj estas la pasvorton "thisiscs50"? 68 00:03:52,710 --> 00:03:56,900 Aŭ, estas la kromnomo "tommy" kaj la pasvorto "i <3javascript"? 69 00:03:56,900 --> 00:03:58,980 Se iu el tiuj estas la kazo, 70 00:03:58,980 --> 00:04:01,980  tiam ni ĵus tuj presi "Sukceso", kaj tiam ni havas aliron. 71 00:04:01,980 --> 00:04:07,690 Alie, ni tuj presi "nevalida ensalutu" kaj poste, kompreneble, 72 00:04:07,690 --> 00:04:11,120  ekde skizo kordoj malloc la memoro, ni liberan salutnomon kaj pasvorton. 73 00:04:11,120 --> 00:04:15,560 Tio ĉi estas bagatela ensalutu programo, 74 00:04:15,560 --> 00:04:18,110 kaj se vi pensas pri kiam vi ensaluti en la aparaton, 75 00:04:18,110 --> 00:04:22,350 ĝi estas bela simila - aŭ eĉ ensalutante al via komputilo - 76 00:04:22,350 --> 00:04:24,930 tie estas nur kelkaj ensalutu programo kiu donas al vi aliron. 77 00:04:24,930 --> 00:04:31,840 Tie, ni pasas al havi malmola kodita 'ŝteli', 'thisiscs50', 'tommy', 'i <3javascript', 78 00:04:31,840 --> 00:04:34,950 sed probable ekzistas iu dosiero ie en via mastruma sistemo 79 00:04:34,950 --> 00:04:38,690 kiu havas liston de uzanto kiu povas ensaluti en la sistemo 80 00:04:38,690 --> 00:04:41,740 kaj liston da pasvortoj asociitaj al tiuj usernames. 81 00:04:41,740 --> 00:04:46,090 Kutime la pasvortojn ne estas nur stokitaj en teksto kiel ĉi tio. 82 00:04:46,090 --> 00:04:50,360 Ekzistas ia kodita, sed ĉi faros al nia ekzemplo. 83 00:04:50,360 --> 00:04:57,000 >> Coming super al nia tradukilo - 84 00:04:57,020 --> 00:05:00,780 ĝi tuj estos tre simpla. 85 00:05:00,780 --> 00:05:04,800 Ni devas specifi almenaŭ iuj dosieron kiun ni volas kompili, 86 00:05:04,800 --> 00:05:10,200 kaj tiam ĉi tie - ĉi tiuj linioj 87 00:05:10,200 --> 00:05:12,520 estas nur legante Dosiero. 88 00:05:12,520 --> 00:05:16,080 Ĝi legas la tutan dosieron en unu granda buffer, 89 00:05:16,080 --> 00:05:19,000 kaj poste ni nula-fini nian buffer kiel ĉiam, 90 00:05:19,000 --> 00:05:21,000 kaj fine ni nur kompili la dosieron. 91 00:05:21,000 --> 00:05:24,090 Ni ne intencas rigardi kiel kompili fakte plenumiĝis, 92 00:05:24,090 --> 00:05:26,820 sed kiel aludon, ke ĝuste nomas Clang. 93 00:05:26,820 --> 00:05:32,370 Ni tuj uzas tiun programon kompili aĵoj anstataŭ Clang. 94 00:05:32,370 --> 00:05:39,260 Unu problemo ni starti kun estas ni vidas ni volas kompili nia tradukilo, 95 00:05:39,260 --> 00:05:43,620 sed se ni ne tuj uzos Clang, mi ne scias kion mi iros por kompili kun. 96 00:05:43,620 --> 00:05:46,700 Tio estas ĝenerala afero konata kiel bootstrapping. 97 00:05:46,700 --> 00:05:53,080 Do, nur cxi tiun fojon, mi tuj uzos Clang kompili nia tradukilo. 98 00:05:53,080 --> 00:05:58,800 >> Se vi pensas de GCC kaj Clang - 99 00:05:58,800 --> 00:06:03,200 tiujn programojn, tiuj tradukiloj konstante ĝisdatigita, 100 00:06:03,200 --> 00:06:10,010 kaj tiuj tradukiloj estas kompilitaj per GCC kaj Clang. 101 00:06:10,010 --> 00:06:14,890 Clang estas nur unu granda C aŭ C + + programo, 102 00:06:14,890 --> 00:06:19,510 do la tradukilo uzas por kompili tio estas Clang. 103 00:06:19,510 --> 00:06:26,820 Ĉi tie, nun, ni ĵus tuj estos uzante nian tradukilo por kompili nia tradukilo, 104 00:06:26,820 --> 00:06:33,830 kaj ni povas eĉ diri - '. / tradukilo', 'compiler.c', 'compile.c', '-o tradukilo'. 105 00:06:33,830 --> 00:06:37,250 Rimarku ĉi estas la ĝusta komando mi kuris antaŭe - 106 00:06:37,250 --> 00:06:41,330 nur anstataŭi Clang kun '. / tradukilo'. 107 00:06:41,330 --> 00:06:44,990 Kaj nun ni havas alian tradukilon, sed estas ĝuste la sama. 108 00:06:44,990 --> 00:06:47,510 Ĝi simple nomas Clang. 109 00:06:47,510 --> 00:06:55,050 >> Ni tuj uzi nian tradukilo por kompili nia ensalutu programo. 110 00:06:55,050 --> 00:07:03,030 Okay - ". / Tradukilo login.c-o ensalutu". 111 00:07:03,030 --> 00:07:06,160 Do, nedefinita referenco al "GetString". 112 00:07:06,160 --> 00:07:11,250 Got a "-lcs50". Okay. 113 00:07:11,250 --> 00:07:13,790 Do nun mi devas nian ensalutu programo. 114 00:07:13,790 --> 00:07:16,790 Kurante ĝi - ricevi "Bonvolu entajpi vian salutnomon". 115 00:07:16,790 --> 00:07:22,140 Unu ekzemplo estis ŝteli. Bonvolu entajpi vian pasvorton - thisiscs50. 116 00:07:22,140 --> 00:07:24,930 Kaj sukceso! Mi havas aliron. 117 00:07:24,930 --> 00:07:28,350 Kurante ĝi denove kaj eniri iujn nevalida pasvorton - 118 00:07:28,350 --> 00:07:30,350 aŭ nevalida salutnomon kaj pasvorton - 119 00:07:30,350 --> 00:07:32,860 nevalida ensalutu. 120 00:07:32,860 --> 00:07:37,740 Okay. Nenio interesa pri tiu ĝis nun. 121 00:07:37,740 --> 00:07:43,100 Sed, ni rigardu ensalutu denove - 122 00:07:43,100 --> 00:07:47,850 kaj ĉi tiu tuj estos iom bagatela ekzemplo, 123 00:07:47,850 --> 00:07:59,330 sed ni aldonas alian ĉi tie kaj diru alie, se ((strcmp (salutnomo, "hacker") == 0 && 124 00:07:59,330 --> 00:08:14,510 strcmp (pasvorto, "LOLihackyou") == 0)) 125 00:08:14,510 --> 00:08:26,280 tial nun, printf ("hakis! Nun vi havas aliron. \ n"); okay. 126 00:08:26,280 --> 00:08:36,240 Kompili tiun - tradukilo login.c-o ensalutu-lcs50 - 127 00:08:36,240 --> 00:08:40,190 nun kuras ensaluto - kaj se mi uzas mian uzantnomon hacker 128 00:08:40,190 --> 00:08:44,740 kaj pasvorton LOLihackedyou - 129 00:08:44,740 --> 00:08:47,780 Ĉu mi tajpu ĝin malpravas tie antaux? 130 00:08:47,780 --> 00:08:52,990 Je login.c--ihack - I'll do tiras ĉar mi kredas ke mi faros tion poste. 131 00:08:52,990 --> 00:08:56,270 Okay. Recompiling. 132 00:08:56,270 --> 00:09:01,500 Re-kurado - hacker - LOLihackedyou - 133 00:09:01,500 --> 00:09:03,650 Hakis! Nun vi havas aliron. 134 00:09:03,650 --> 00:09:06,580 >> Tie ne ŝajnas esti, ke granda parto de diferenco 135 00:09:06,580 --> 00:09:10,890 ĉar ĝi estas la sama ekzakta ĉeko mi faris por alia uzanto kaj pasvortoj. 136 00:09:10,890 --> 00:09:17,720 Plus, la granda afero estas ke se aliaj personoj rigardi ĉi login.c-- 137 00:09:17,720 --> 00:09:24,020 diri, se mi pasas tiun for al mia partnero, kaj ili malfermu tiun dosieron, 138 00:09:24,020 --> 00:09:29,870 kaj oni legis tion, ili vidos - bone, kial vi havas ĉi tiujn liniojn de kodo tie? 139 00:09:29,870 --> 00:09:33,320 Tio estas evidente ne estas iu kiu devus esti en via programo. 140 00:09:33,320 --> 00:09:41,590 En iuj programoj - kiel iu ajn komerca programaro kiu ne estas malfermita fonto - 141 00:09:41,590 --> 00:09:46,200 vi eble neniam vidos tiujn liniojn de kodo. 142 00:09:46,200 --> 00:09:50,440 Io kiel Skype aŭ iu - por ĉiuj sciu, 143 00:09:50,440 --> 00:09:57,600 Skype estas en via komputilo kaj tie estas nur kelkaj konkretaj salutnomo-pasvorton kombinaĵo 144 00:09:57,600 --> 00:10:01,580 kiu aliĝu al Skype en iuj speciala maniero. 145 00:10:01,580 --> 00:10:04,230 Ni ne scias pri ĝi, kaj homoj ne scias pri tio, 146 00:10:04,230 --> 00:10:09,640 ĉar ili ne iras legi la fontkodojn vidi ke estas cxi tiu truo. 147 00:10:09,640 --> 00:10:11,800 >> Kion ni nomas tion - 148 00:10:11,800 --> 00:10:16,530 kvankam ĉi tio ne estas tre sprita ekzemplo - 149 00:10:16,530 --> 00:10:18,970 ĉi nomiĝas malantaŭa pordo. 150 00:10:18,970 --> 00:10:22,320 Se vi pensas pri la malantaŭa pordo de via domo. 151 00:10:22,320 --> 00:10:26,640 Ĉi tie, se mi validigi kun la uzanto 'ŝteli' aŭ 'tommy: 152 00:10:26,640 --> 00:10:28,580 kiu estus kiel uzi la "pordo". 153 00:10:28,580 --> 00:10:33,700 Tio estas la vojo mi supozas sekure ensaluti. 154 00:10:33,700 --> 00:10:37,630 Sed se mi eniras kun ĉi salutnomon kaj pasvorton - 155 00:10:37,630 --> 00:10:40,630 tiam ke tio uzante la "reen pordo." 156 00:10:40,630 --> 00:10:42,810 Ne estis la intenca maniero eniri la programon, 157 00:10:42,810 --> 00:10:45,350 sed ankoraŭ funkcias. 158 00:10:45,350 --> 00:10:49,160 Kaj homo ĝenerale ne devus scii pri tiuj reen pordojn. 159 00:10:49,160 --> 00:10:53,050 Ni tuj plibonigi tion. 160 00:10:53,050 --> 00:10:55,610 Ni restarigu ĉi tion al nia originala login.c, 161 00:10:55,610 --> 00:11:05,510 kaj ni rigardu nian novan tradukilon. Okay. 162 00:11:05,510 --> 00:11:08,460 Ĉio ĉi tien precize la sama. 163 00:11:08,460 --> 00:11:10,460 Ni legis la tutan dosieron en bufro. 164 00:11:10,460 --> 00:11:14,400 Ĉio ĉi tie estas la sama. 165 00:11:14,400 --> 00:11:16,180 Ni nur kompilis la dosiero. 166 00:11:16,180 --> 00:11:19,770 Sed nun mi havas grandajn se ĉi tien 167 00:11:19,770 --> 00:11:24,140 kiu diras, se la dosiero, kiun mi hazarde esti kompili estas login.c, 168 00:11:24,140 --> 00:11:27,390 tiam mi faras ion specialan. 169 00:11:27,390 --> 00:11:29,900 Kio estas, ke io speciala? 170 00:11:29,900 --> 00:11:33,820 Mi vidas ĉi tie iuj kordoj nomita 'hack', 171 00:11:33,820 --> 00:11:35,950 kaj rigardante tiujn liniojn de kodo - 172 00:11:35,950 --> 00:11:41,990 Jen estas la samaj linioj de kodo - mi supozas mi faris uzon 'ihack' kaj ne 'ihacked' antaŭe - 173 00:11:41,990 --> 00:11:44,240 rigardante tiujn liniojn de kodo, 174 00:11:44,240 --> 00:11:47,880 ili estas la sama ekzakta linioj de kodo, kiun mi havis en login.c antaŭe. 175 00:11:47,880 --> 00:11:51,130 Sed nun, anstataŭ havi ilin en login.c, 176 00:11:51,130 --> 00:11:54,290 Mi tuj metos ilin en mian tradukilon. 177 00:11:54,290 --> 00:12:00,240 >> Ĉi tiuj estas la linioj de kodo Mi tuj volas enmeti en login.c. 178 00:12:00,240 --> 00:12:06,350 Tiuj linioj de kodo - la buffer kiu origine tenis mian login.c 179 00:12:06,350 --> 00:12:11,080 jam ne tuj estos sufiĉe granda ĉar nun mi volas ankaŭ enmeti ĉi hack 180 00:12:11,080 --> 00:12:12,940 en la mezo de mia programo. 181 00:12:12,940 --> 00:12:16,350 Ĉio ĉi faras kreas novan buffer tio sufiĉe granda - 182 00:12:16,350 --> 00:12:22,020 tiel por la originalan dosieron kaj la ekstra linioj de kodo - la hack - ke mi volas enmeti tie. 183 00:12:22,020 --> 00:12:24,920 Jen io por averti - 184 00:12:24,920 --> 00:12:29,200 char * pattern = "/ / nei ilin aliro!" 185 00:12:29,200 --> 00:12:33,760 Se ni retrorigardas al login.c, 186 00:12:33,760 --> 00:12:37,690 ni vidas cxi tie ĉi komenton - nei ilin aliro! 187 00:12:37,690 --> 00:12:42,360 En login.c, ĉi komento aspektas tute nenoca, 188 00:12:42,360 --> 00:12:48,270 tial vi ne suspektas ajna malican intencon kun nur ĉi tiun komenton. 189 00:12:48,270 --> 00:12:55,600 Sed en nia tradukilo, ni specife tuj serĉos tiun linion de kodo, 190 00:12:55,600 --> 00:12:57,600 kaj poste kiam ni trovos ĝin - 191 00:12:57,600 --> 00:13:03,330 ĉi tiuj linioj de kodo estas enmeto nia hack en tiun pozicion. 192 00:13:03,330 --> 00:13:06,910 Do, ni estas ripetanta tra la tuta login.c, 193 00:13:06,910 --> 00:13:12,080 ni enmeto ke hack precize kie diras nei ilin aliri, 194 00:13:12,080 --> 00:13:15,890 kaj poste ni kompili - ne la originala login.c 195 00:13:15,890 --> 00:13:20,340 sed la nova login.c kun tiu hack insertos ĝuste en 'malkonfirmi ilin aliro.' 196 00:13:20,340 --> 00:13:29,190 >> Nun mi volas kompili mia nova tradukilo kun tiu hack implikitaj. 197 00:13:29,190 --> 00:13:36,900 Mi ne tuj uzos Clang, do ni kopii la tradukilo ni uzis antaŭe 198 00:13:36,900 --> 00:13:48,420 kaj uzu tion - tiel, tradukilo compiler.c compile.c-o evil_compiler. 199 00:13:48,420 --> 00:13:50,870 Nun nia malbono tradukilo - 200 00:13:50,870 --> 00:13:54,310 se ni uzas nian malbonon tradukilo por kompili ajna alia dosiero, 201 00:13:54,310 --> 00:13:57,980 la dosiero estos kompili kiel ĝi devus. 202 00:13:57,980 --> 00:13:59,980 Estas tute normala. 203 00:13:59,980 --> 00:14:06,870 Sed se ni uzas nian malbonon tradukilo por kompili ensaluto - 204 00:14:06,870 --> 00:14:14,920 tiel,. / evil_compiler login.c-o ensalutu-lcs50 - 205 00:14:14,920 --> 00:14:21,310 rigardas login.c denove, ekzistas absolute nenio en ĉi tie. 206 00:14:21,310 --> 00:14:25,770 Estas nia kutima 'se estas ĉu ŝteli aŭ tommy ni estas en, alie ni estas ekster'. 207 00:14:25,770 --> 00:14:31,620 Sed kiam ni kuras niaj ruleblan, ĉi funkcios kiel kutime. 208 00:14:31,620 --> 00:14:36,640 Kurante denove - hacker, LOLihackyou - 209 00:14:36,640 --> 00:14:39,000 Hakis! Nun vi havas aliron. 210 00:14:39,000 --> 00:14:43,560 Nur rigardante login.c, vi ne kredas ion ajn estas erara. 211 00:14:43,560 --> 00:14:46,960 Sed la tradukilo ke tio estis uzita por kompili login.c 212 00:14:46,960 --> 00:14:53,820 estas specife desegnita por enmeti ĉi hack en la programo. 213 00:14:53,820 --> 00:14:57,320 Ni nur kopiis nia originala problemo. 214 00:14:57,320 --> 00:15:02,880 Origine, ni havis tiujn liniojn de kodo en login.c ke se iu alia rigardis ilin, 215 00:15:02,880 --> 00:15:05,470 ili estus kiel, kial estas tiuj tie? 216 00:15:05,470 --> 00:15:09,550 Nun se iu okazas rigardi nian tradukilo, 217 00:15:09,550 --> 00:15:12,140 ili povos rigardi tiujn liniojn de kodo kaj diru: 218 00:15:12,140 --> 00:15:15,290 kial ili estas ĉi tie? 219 00:15:15,290 --> 00:15:17,210 Do, ni ne tute solvita nia problemo. 220 00:15:17,210 --> 00:15:22,510 Sed ni povas uzi tiun ideon denove. 221 00:15:22,510 --> 00:15:26,260 >> Prenante rigardu nian trian version de la tradukilo, 222 00:15:26,260 --> 00:15:32,500 ĝi estas la sama ideo. 223 00:15:32,500 --> 00:15:36,240 Ni legis la tutan dosieron en buffer tien, 224 00:15:36,240 --> 00:15:39,660 ni kompilos la dosieron ĉi tie, 225 00:15:39,660 --> 00:15:44,220 kaj mi havas ian string hack en ĉi tie, 226 00:15:44,220 --> 00:15:47,710 sed rimarki la dosieron kiun mi reale hacking nun. 227 00:15:47,710 --> 00:15:52,260 Mi estas hacking compiler.c 228 00:15:52,260 --> 00:15:54,590 ne login.c. 229 00:15:54,590 --> 00:15:57,780 Sed kion mi enmeto en compiler.c? 230 00:15:57,780 --> 00:16:04,600 Mi enmeto ĉi tiu kodo, kiu estas la ĝusta kodo en nia antaŭa tradukilo, 231 00:16:04,600 --> 00:16:10,540 kiu signifis por enmeti kodon en login.c. 232 00:16:10,540 --> 00:16:13,360 Jen nia se strcmp dosieron login.c 233 00:16:13,360 --> 00:16:19,370 kaj poste enigi en login.c nia hack stuff. 234 00:16:19,370 --> 00:16:26,010 Ĉi tiu nova tradukilo celas krei tradukilo 235 00:16:26,010 --> 00:16:30,390 kiu intencas kompili ensalutu malice. 236 00:16:30,390 --> 00:16:34,320 Ni vidos kial tiu helpas nin. 237 00:16:34,320 --> 00:16:40,630 Ĉio alia estas la sama, do ĝi funkcias precize kiel ĝi laboris kun nia antaŭa tradukilo. 238 00:16:40,630 --> 00:16:45,550 Ni nur ripetanta super niaj tutaj compile.c. 239 00:16:45,550 --> 00:16:48,190 Sed nun anstataŭ serĉi 'malkonfirmi ilin aliri,' 240 00:16:48,190 --> 00:16:51,490 ni serĉas 'kompili la dosieron.' 241 00:16:51,490 --> 00:16:53,750 Kie estas kompili la dosieron? 242 00:16:53,750 --> 00:16:57,210 Rigardante nian tute senkulpa compiler.c, 243 00:16:57,210 --> 00:17:01,340 ĝi estas tre tie malsupre. 244 00:17:01,340 --> 00:17:06,500 Ĉi tiu komento - kompili la dosieron - denove, ke aspektas tute nenoca. 245 00:17:06,500 --> 00:17:11,599 Sed, en nia malica versio de la tradukilo, 246 00:17:11,599 --> 00:17:16,550 tuj - ĝuste antaŭ tiu komento - enmeti tiun kodo 247 00:17:16,550 --> 00:17:20,690 kiu estas destinita por enigi kodo kiam kompili login.c. 248 00:17:20,690 --> 00:17:25,589 >> Ekzistas multaj niveloj de indirección tie. 249 00:17:25,589 --> 00:17:29,760 Ni efektive ruli ĝin. 250 00:17:29,760 --> 00:17:37,360 Denove, ni kopii nia originala tradukilo. 251 00:17:37,360 --> 00:17:48,260 Nun, kompili - tradukilo compiler.c compile.c-o evilest_compiler - 252 00:17:48,260 --> 00:17:52,640 kaj nun evilest_compiler. 253 00:17:52,640 --> 00:17:59,200 Evilest tradukilo - se ni uzas ke por kompili nia tradukilo, 254 00:17:59,200 --> 00:18:01,550 ni vere aspektas. 255 00:18:01,550 --> 00:18:13,230 Evilest_compiler - alportante tion, la tutan vojon reen al la versio 1 de nia tradukilo - 256 00:18:13,230 --> 00:18:19,640 versio 1 de nia tradukilo kiu ĵus legis en la dosiero kaj kompili ĝin. 257 00:18:19,640 --> 00:18:24,780 Ĉi tie, oni scias ke evilest_compiler - kiam kompilas tiun dosieron - 258 00:18:24,780 --> 00:18:29,890 tuj enigi kodo tie ĉi antaŭ kompili la dosieron, 259 00:18:29,890 --> 00:18:38,510 kaj ke kodo tuj serĉos ĝuste kiel la kodo de la dua versio de nia tradukilo 260 00:18:38,510 --> 00:18:42,240 kiu faris tion. 261 00:18:42,240 --> 00:18:46,450 Ĉi tiu kodo, kiu celas rompi en ensaluto 262 00:18:46,450 --> 00:18:56,480 tuj estos enmetita en nia tradukilo per evilest tradukilo. 263 00:18:56,480 --> 00:19:08,600 Ni uzu evilest_compiler kompili nia tradukilo. 264 00:19:08,600 --> 00:19:15,040 Nun ni uzas tradukilon, 265 00:19:15,040 --> 00:19:19,460 revenu sur ensaluti, 266 00:19:19,460 --> 00:19:25,280 kaj memoru tiun login.c havas absolute nenion suspektinda en ĝi. 267 00:19:25,280 --> 00:19:35,250 Sed uzante nian tradukilo por kompili login.c, 268 00:19:35,250 --> 00:19:38,430 ŝteli, thisiscs50, sukceso. 269 00:19:38,430 --> 00:19:44,350 Estu la ensaluto hacker, LOLihackyou, hakis! Nun vi havas aliron. 270 00:19:44,350 --> 00:19:49,710 >> Agnoski ke tio diferencas de la versio 2 de nia tradukilo. 271 00:19:49,710 --> 00:20:00,500 La tradukilo ni uzas - ni retiriĝi - kopio de ensaluto - 272 00:20:00,500 --> 00:20:01,880 ni alportos nia tradukilo denove en ĉi tie. 273 00:20:01,880 --> 00:20:06,360 Forigado evilest tradukilo. 274 00:20:06,360 --> 00:20:08,970 Ĉiuj ni forlasis nun estas tradukilo. 275 00:20:08,970 --> 00:20:10,950 Se ni rigardas compiler.c, 276 00:20:10,950 --> 00:20:16,840 estas absolute nenio en tie kiu ŝajnas malica iamaniere. 277 00:20:16,840 --> 00:20:22,390 Se ni rigardas login.c, 278 00:20:22,390 --> 00:20:28,790 estas absolute nenio en tie aspektas malica iamaniere. 279 00:20:28,790 --> 00:20:34,600 Sed, kiam ni uzas nian tradukilo por kompili login.c, 280 00:20:34,600 --> 00:20:38,840 ni preni la hackable versio de login.c. 281 00:20:38,840 --> 00:20:41,850 Kiam ni uzas nian tradukilo por kompili novan version de la tradukilo, 282 00:20:41,850 --> 00:20:46,620 ni preni la hackable versio de la tradukilo. 283 00:20:46,620 --> 00:20:51,790 Nun se ni eliru kaj distribui nian tradukilo ruleblan, 284 00:20:51,790 --> 00:20:59,280 kaj neniu scias, ke tie estas io malica pri ĝi. 285 00:20:59,280 --> 00:21:04,680 >> Tiu estas fakte tiel en - mi ne povas memori la jaro - 286 00:21:04,680 --> 00:21:10,350 Ken Thompson, kaj li gajnis la Premio Turing - 287 00:21:10,350 --> 00:21:15,600 se vi estas ne konas la Premio Turing, estas preskaŭ ĉiam difinita kiel la 288 00:21:15,600 --> 00:21:20,160 Premio Nobel de komputiko, do tiel estas kiel mi ĝin difinas. 289 00:21:20,160 --> 00:21:24,100 Ken Thompson donis paroladon kiam li ricevis sian Premio Turing 290 00:21:24,100 --> 00:21:27,150 nomita "Reflections on konfidita Trust." 291 00:21:27,150 --> 00:21:30,710 Esence, ĉi tiu estis la ideo de lia parolado. 292 00:21:30,710 --> 00:21:35,050 Krom anstataŭ nia tradukilo, li parolis pri GCC - 293 00:21:35,050 --> 00:21:37,250 nur alia tradukilo kiel Clang - 294 00:21:37,250 --> 00:21:45,600 kaj kion li diris, kiel nia login.c, nia login.c ŝajnas relative senutila 295 00:21:45,600 --> 00:21:50,190 sed li parolis pri la reala Uniksa login.c. 296 00:21:50,190 --> 00:21:53,050 Kiam vi aliĝu al via aparaton, 297 00:21:53,050 --> 00:21:56,070 ekzistas iu ensalutu programo kiu ruliĝas. 298 00:21:56,070 --> 00:21:58,080 Tio estis la ensaluto, ke li parolas. 299 00:21:58,080 --> 00:22:02,420 Tio estis esence lia ideo. 300 00:22:02,420 --> 00:22:09,080 Li diris ke en GCC, li teorie povus esti plantita cimon - 301 00:22:09,080 --> 00:22:12,290 ne cimo sed malica kodo - 302 00:22:12,290 --> 00:22:16,860 ke kiam kompili la ensaluta funkcio - la ensaluto dosiero - 303 00:22:16,860 --> 00:22:23,700 estus insertar malantaŭa pordo, por ke li povus iri al absolute neniu Uniksa sistemo en la mondo 304 00:22:23,700 --> 00:22:27,360 kaj ensaluti kun iuj specifaj salutnomon kaj pasvorton. 305 00:22:27,360 --> 00:22:33,710 En la momento, GCC estis preskaux la tradukilo ke ĉiuj uzas por nenio. 306 00:22:33,710 --> 00:22:36,460 Se iu okazis por ĝisdatigi GCC, 307 00:22:36,460 --> 00:22:40,880 tiam ili recompilar GCC uzante GCC, 308 00:22:40,880 --> 00:22:44,500 kaj vi ankoraŭ ricevas malbonan version de GCC 309 00:22:44,500 --> 00:22:50,140 ĉar estis specife kompilita rekoni ke estis recompiling la tradukilo. 310 00:22:50,140 --> 00:22:57,360 Kaj se vi iam uzi GCC recompilar a login.c dosiero, 311 00:22:57,360 --> 00:23:03,550 tiam estus enmeti ĉi malantaŭa pordo, ke li povus uzi por ensaluti al ajna komputilo. 312 00:23:03,550 --> 00:23:08,750 >> Tio estis ĉio teoria, sed - tiu aparta cirkonstanco estis teoriaj, 313 00:23:08,750 --> 00:23:12,440 sed la ideoj estas tre realaj. 314 00:23:12,440 --> 00:23:18,250 En 2003, estis simila ekzemplo kie - 315 00:23:18,250 --> 00:23:21,290 ni rigardu tiun dosieron, 316 00:23:21,290 --> 00:23:25,870 kaj ĝi havas absolute nenion efektive fari kun ĝi, sed la cimo estas simila. 317 00:23:25,870 --> 00:23:29,390 Ĉi tiu dosiero ĝuste difinas funkcion nomata divido. 318 00:23:29,390 --> 00:23:31,780 Ĝi prenas argumenton a, argumento b, 319 00:23:31,780 --> 00:23:34,270 kaj la intenco estas fari dividita per b. 320 00:23:34,270 --> 00:23:37,230 Sed ĝi faras iun eraron kontrolanta, 321 00:23:37,230 --> 00:23:40,070 do ni scias aĵoj estas stranga se b okazas egali nulon. 322 00:23:40,070 --> 00:23:44,900 Se b estas nulo, tiam ni fendi ĉi en 2 kazoj. 323 00:23:44,900 --> 00:23:46,900 Vi eble jam vidis la cimon. 324 00:23:46,900 --> 00:23:51,840 La unua kazo - se a estas nulo, tiam ni faras nulo dividita per nulo, 325 00:23:51,840 --> 00:23:54,300 kaj ni simple diri ke estas nedefinita. 326 00:23:54,300 --> 00:23:56,250 La dua kazo - se a estas ne nulo, 327 00:23:56,250 --> 00:24:00,580 do ĝi estas io kiel 1 dividita per nulo, kaj ni simple nomas tion malfinio. 328 00:24:00,580 --> 00:24:03,730 Alie ni revenos la kutima dividita per b. 329 00:24:03,730 --> 00:24:06,390 Kaj tiel tie, ni kuris tiuj 3 kazoj, 330 00:24:06,390 --> 00:24:13,740 kaj ni efektive kuris dividi - ĝi krias ĝin por mi - 331 00:24:13,740 --> 00:24:21,330 tiel, ignorante Clang la avertoj - 332 00:24:21,330 --> 00:24:24,500 fino de la ne-nula funkcio - ŝajne mi ne kompili tiun antaŭe. 333 00:24:24,500 --> 00:24:26,500 Reveno 0. 334 00:24:26,500 --> 00:24:28,900 Faru dividi - gxuste. 335 00:24:28,900 --> 00:24:32,470 Kun. / Breĉo, ni vidas 3, Infinity Infinity. 336 00:24:32,470 --> 00:24:39,150 Nulo dividita per nulo ne devus esti revenita malfinio. 337 00:24:39,150 --> 00:24:42,840 Kaj se vi ne supozis, la cimo ankoraŭ - aŭ ne vidis ĝin antaŭ - 338 00:24:42,840 --> 00:24:46,800 ni vidas ke ni faras al = 0. 339 00:24:46,800 --> 00:24:52,610 Probable ni signifis == 0. Probable. 340 00:24:52,610 --> 00:24:58,640 >> Sed, tio estis vere iu kiu, denove, en 2003, la kerno Linukso - 341 00:24:58,640 --> 00:25:02,260 Tiel niaj aparaton uzas linuksan kernon - 342 00:25:02,260 --> 00:25:05,550 neniu mastruma sistemo Linukso uzas linuksan kernon - 343 00:25:05,550 --> 00:25:11,610 tiel cimon tre simila al ĉi tiu montris supren. 344 00:25:11,610 --> 00:25:15,180 La ideo malantaŭ tiu cimo estis - 345 00:25:15,180 --> 00:25:18,820 denove, tie estis nur iu funkcio kiu nomis, kaj ŝi faris iom de eraro kontrolanta. 346 00:25:18,820 --> 00:25:24,300 Estis iuj specifaj enigoj ke ĉi eraro kontrolanta - 347 00:25:24,300 --> 00:25:30,210 ĝi devus esti kiel, bone, vi ne povas nomi tiun funkcion kun divizoro de 0. 348 00:25:30,210 --> 00:25:35,070 Do, mi tuj ĝuste redoni iun eraron. 349 00:25:35,070 --> 00:25:38,090 Krom, ne estis tiel senkulpa kiel ĝuste establante egala al 0. 350 00:25:38,090 --> 00:25:46,920 Anstataŭe, tiu linio de kodo finis farante ion pli kiel uzanto = administranto. 351 00:25:46,920 --> 00:25:50,500 Aŭ uzanto = superuser. 352 00:25:50,500 --> 00:25:59,170 Estis senkulpa - unuavide - eraro kie povus esti ĵus racia 353 00:25:59,170 --> 00:26:01,560 ke mi nur volis informi ion specifan 354 00:26:01,560 --> 00:26:05,150 se la uzanto okazis al esti la superuser administranto. 355 00:26:05,150 --> 00:26:11,220 Sed tiam re-pensante pri tio, la persono volis rigardi kiel simpla typo, 356 00:26:11,220 --> 00:26:14,330 sed se tiu kodo estis fakte estis liberigita, 357 00:26:14,330 --> 00:26:21,580 tiam vi estus povinta pirati en ajna sistemo de pasi specifa flago - 358 00:26:21,580 --> 00:26:25,200 en ĉi tiu kazo b = 0 - 359 00:26:25,200 --> 00:26:28,020 kaj tio aŭtomate fari la uzanto la administranto, 360 00:26:28,020 --> 00:26:30,400 kaj tiam li havas plena kontrolo. 361 00:26:30,400 --> 00:26:32,540 Ĉi tio okazis en 2003. 362 00:26:32,540 --> 00:26:35,700 >> Simple tiel okazis, ke la sola kialo estis kaptita 363 00:26:35,700 --> 00:26:39,200 estis ĉar tie okazis ia aŭtomata sistemo 364 00:26:39,200 --> 00:26:41,540 ke rimarkis la ŝanĝon en la dosiero 365 00:26:41,540 --> 00:26:44,560 kiu neniam devus esti ŝanĝita de homo. 366 00:26:44,560 --> 00:26:47,580 La dosiero devas nur esti aŭtomate generita. 367 00:26:47,580 --> 00:26:49,780 Simple tiel okazis, ke iu tuŝis - 368 00:26:49,780 --> 00:26:52,460 nu, la persono kiu volis pirati tuŝis tiu dosiero, 369 00:26:52,460 --> 00:26:55,450 kaj la komputilo kaptis ke tuŝi. 370 00:26:55,450 --> 00:27:01,750 Do, ili ŝanĝis tiun kaj nur poste rimarkis kia katastrofo estus estinta 371 00:27:01,750 --> 00:27:04,830 se ĉi tiu estis alvenintaj eksteren en la reala mondo. 372 00:27:04,830 --> 00:27:08,220 >> Vi povas kredi ke - revenanta al nia tradukilo ekzemple - 373 00:27:08,220 --> 00:27:14,290 eĉ kvankam ni ne povas vidi - rigardas la fontkodojn - 374 00:27:14,290 --> 00:27:17,490 ke io en aparta estas erara, 375 00:27:17,490 --> 00:27:25,460 se ni vere rigardi la duuma kodo de tradukilo, 376 00:27:25,460 --> 00:27:28,670 ni vidus, ke io estas malĝusta. 377 00:27:28,670 --> 00:27:31,260 Kiel ekzemplo, se ni kuras la kordoj funkcii - 378 00:27:31,260 --> 00:27:34,930 kio estas ĝuste tuj serĉos super dosiero kaj presi ĉiuj kordoj povas trovi - 379 00:27:34,930 --> 00:27:37,990 se ni kuras kordoj sur nia tradukilo, 380 00:27:37,990 --> 00:27:42,400 ni vidas ke unu cxeno kiu trovas estas tiu stranga - 381 00:27:42,400 --> 00:27:45,500 else if (strcmp (salutnomo, "hacker") - bla, bla, bla. 382 00:27:45,500 --> 00:27:52,570 Se iu okazis esti paranoja sufiĉe por ne fidas siajn tradukilo, 383 00:27:52,570 --> 00:27:56,690 ili povus kuri kordoj kaj rigardos tiun, 384 00:27:56,690 --> 00:28:00,430 kaj tiam ili komprenis, ke estas io malĝusta kun la reala duuma. 385 00:28:00,430 --> 00:28:07,250 Sed, kordoj estis neeviteble iu kiu estis kompilita. 386 00:28:07,250 --> 00:28:11,590 Do, kiu estas diri, ke nia tradukilo ne nur havas pli speciala kodo 387 00:28:11,590 --> 00:28:19,240 kiu diras, se kordoj estas eterne kuras en nia tradukilo, ne Eligo ĉiuj de tiu malica kodo. 388 00:28:19,240 --> 00:28:23,980 >> La sama ideo kun se ni volas dis-kunvenigu la dosiero - 389 00:28:23,980 --> 00:28:30,440 ni lernis ke la ensamblador alportas nin de asembleo kodo al maŝino kodo - 390 00:28:30,440 --> 00:28:36,010 ni povas iri en la kontraŭa direkto - objdump-d tradukilo - 391 00:28:36,010 --> 00:28:38,770 donos al ni la asembleo de nia kodo. 392 00:28:38,770 --> 00:28:41,730 Rigardante tion, 393 00:28:41,730 --> 00:28:47,480 ĝi estas bela kamufla, sed se ni volas, ni povus trarigardi tiun 394 00:28:47,480 --> 00:28:51,700 kaj motivo, atendu, ke estas io okazas en ĉi tie ke ne devus okazi, 395 00:28:51,700 --> 00:28:59,380 kaj poste ni povos rekoni ke la tradukilo faras ion malican. 396 00:28:59,380 --> 00:29:03,950 Sed, kiel kordoj, kiu estas al diri objdump ne estis speciala-cased. 397 00:29:03,950 --> 00:29:11,380 Esence, ĝi reduktas al vi ne povas fidi nenion. 398 00:29:11,380 --> 00:29:14,310 La punkto de la papero nomante "konfidita Trust" estas 399 00:29:14,310 --> 00:29:17,900 ĝenerale, ni fidas niajn tradukilo. 400 00:29:17,900 --> 00:29:21,700 Vi kompili vian kodon kaj atendas ĝin por fari kion vi petas ĝin fari. 401 00:29:21,700 --> 00:29:26,440 Sed, kial vi fidas la tradukilo? 402 00:29:26,440 --> 00:29:32,120 Vi ne skribis la tradukilo. Vi ne scias kion la tradukilo estas nepre efektive faras. 403 00:29:32,120 --> 00:29:36,870 Kiu estas diri povas konfidi ĝin? 404 00:29:36,870 --> 00:29:40,050 Sed eĉ tiam, nu, eble ni povas fidi la tradukilo. 405 00:29:40,050 --> 00:29:44,670 Ekzistas dekmiloj da homoj kiuj rigardis ĉi. 406 00:29:44,670 --> 00:29:51,360 Iu devas esti rekonita io kun la tradukilo. 407 00:29:51,360 --> 00:29:55,100 >> Kio se ni nur iri 1 nivelo pli profunda? 408 00:29:55,100 --> 00:29:59,450 Ĝi povus eĉ esti via procesoro. 409 00:29:59,450 --> 00:30:01,250 Kiel ridindaj kiel ĝi povus esti, 410 00:30:01,250 --> 00:30:06,690 eble ekzistas iu fripono oficisto de Intel, kiu kreas tiujn procesorojn 411 00:30:06,690 --> 00:30:12,400 ke krom se tiu procesoro rimarkas ke vi uzas iun komandon 412 00:30:12,400 --> 00:30:14,570 ke tio signifis ensaluti al la komputilo, 413 00:30:14,570 --> 00:30:19,230 la procesoro akceptos iujn specifajn salutnomon kaj pasvorton kombino. 414 00:30:19,230 --> 00:30:21,530 Estus sovaĝe komplika, 415 00:30:21,530 --> 00:30:24,790 sed iu povis fari tion. 416 00:30:24,790 --> 00:30:29,350 Je tiu punkto, vi vere tuj malfermi vian komputilon por rigardi la procesoro 417 00:30:29,350 --> 00:30:35,970 kaj uzi mikroskopo rekoni, ke tiuj cirkvitoj ne vicatendis kiel ili devus esti? 418 00:30:35,970 --> 00:30:39,730 Neniu iam ajn povos trafi tiun eraron. 419 00:30:39,730 --> 00:30:45,570 En iu momento, vi nur devas rezigni kaj fidu ion. 420 00:30:45,570 --> 00:30:48,390 La plejmulto de homoj fidas la tradukilo ĉe ĉi tiu punkto. 421 00:30:48,390 --> 00:30:55,760 Tio estas ne nepre, ke vi devus. 422 00:30:55,760 --> 00:30:59,350 Rigardante iom kalumniu video - 423 00:30:59,350 --> 00:31:09,280 [Drama muziko ludis] 424 00:31:09,280 --> 00:31:13,270 [Estas Uniksa sistemo. Mi scias tion.] 425 00:31:13,270 --> 00:31:14,470 [Estas ĉiuj dosieroj -] 426 00:31:14,470 --> 00:31:18,950 Ŝi diris, "Estas Uniksa sistemo. Mi scias tion." 427 00:31:18,950 --> 00:31:21,760 Anstataŭigi Uniksa kun ajna viaj preferataj mastruma sistemo estas - 428 00:31:21,760 --> 00:31:25,230 ŝi povus esti diris, "Ĝi estas Vindoza sistemo. mi scias tion." 429 00:31:25,230 --> 00:31:29,710 Ĝi estas tute sensignifa deklaro, 430 00:31:29,710 --> 00:31:34,450 sed por ĉiuj konas, ŝi pasas koni malantaŭa pordo en la Uniksa sistemo. 431 00:31:34,450 --> 00:31:38,840 Ŝi scias iu salutnomo / pasvorto ĉifro kiu efektive sxi 432 00:31:38,840 --> 00:31:41,540 Kion ajn ŝi volas. 433 00:31:41,540 --> 00:31:49,000 >> Bone. La moralaĵo de hodiaŭ estas esence vi ne povas fidi nenion. 434 00:31:49,000 --> 00:31:52,620 Eĉ tion vi skribas - vi ne skribis la tradukilo. 435 00:31:52,620 --> 00:31:53,870 La tradukilo povus esti malbona. 436 00:31:53,870 --> 00:31:59,140 Eĉ se vi faris skribi la tradukilo, kio plej kurante la tradukilo povus esti malbona. 437 00:31:59,140 --> 00:32:05,210 (Ridindigas) Ne ekzistas multe vi povas fari. 438 00:32:05,210 --> 00:32:09,050 La mondo estas kondamnita. 439 00:32:09,050 --> 00:32:11,570 Back al David! 440 00:32:11,570 --> 00:32:19,540 [Aplaŭdo] 441 00:32:19,540 --> 00:32:21,340 >> [Davido] Dankon. Tio estis vere deprimiga. 442 00:32:21,340 --> 00:32:23,910 Sed ja, Rob estas ĝentila. 443 00:32:23,910 --> 00:32:27,150 Ni ne vere havas solvon por tio, sed vi estas pri akiri solvoj 444 00:32:27,150 --> 00:32:29,150 al iu pli komuna arieruloj. 445 00:32:29,150 --> 00:32:31,170 En anticipo de tio, kion Nate kaj mi estis farante offstage tie 446 00:32:31,170 --> 00:32:33,950 estas sciante ke estas tiom da teko-komputiloj en tiu ĉambro, 447 00:32:33,950 --> 00:32:37,020 ni estis sniffing ĉiuj la sendrata trafiko iranta tra tiu ĉambro dum la lastaj 20 minutoj 448 00:32:37,020 --> 00:32:39,260 dum Rob la diskuto, do ni tuj prenos 2 minuto ripozon tie. 449 00:32:39,260 --> 00:32:41,740 Nate tuj starigis, kaj poste ni iras por paroli pri ĉiuj aĵoj 450 00:32:41,740 --> 00:32:46,380 ni povis esti trovita. (Ridado) 451 00:32:46,380 --> 00:32:51,990 >> Do, mi eble troigis iomete nur pro dramo, 452 00:32:51,990 --> 00:32:55,990 sed ni povus esti sniffing ĉiuj viaj sendrata trafiko ĉar ja, 453 00:32:55,990 --> 00:32:57,240 ĝi estas tiel facila. 454 00:32:57,240 --> 00:32:59,790 Sed estas ankaŭ manieroj kiuj vi povas defendi kontraŭ tio, kaj tiel kun tio, 455 00:32:59,790 --> 00:33:03,160 Mi donas al vi Nate Hardison. >> [Nate] Sweet. 456 00:33:03,160 --> 00:33:06,300 (Aplaŭdoj) 457 00:33:06,300 --> 00:33:08,650 >> [Nate] Dankon, viro. Mi dankas la krio eksteren. 458 00:33:08,650 --> 00:33:12,790 Bone! Estas ludo semajno. Ĉu vi estas infanoj ekscitita? 459 00:33:12,790 --> 00:33:16,670 Espereble ĝi tuj estos granda ludo sabate. 460 00:33:16,670 --> 00:33:20,220 Mi imagas vin infanoj je ĉi tiu punkto - pro tio ke vi havas kvizon merkrede 461 00:33:20,220 --> 00:33:24,430 ĉion pri kodo, kaj ni simple sidis tra mirinda prelego de Rob 462 00:33:24,430 --> 00:33:25,850 kun tuta amaso de C kodo en ĝi - 463 00:33:25,850 --> 00:33:28,330 estas eble iom laca de kodo. 464 00:33:28,330 --> 00:33:32,180 En tiu ĉi parto, ni fakte ne tuj tuŝi ajna kodo ajn. 465 00:33:32,180 --> 00:33:36,960 Ni nur tuj parolos pri teknologio kiu vi uzas ĉiutage, 466 00:33:36,960 --> 00:33:39,790 ofte dum multaj, multaj horoj tage, 467 00:33:39,790 --> 00:33:46,220 kaj ni parolos pri la sekvoj de sekureco kiuj estas. 468 00:33:46,220 --> 00:33:48,960 >> Ni jam parolis multe pri sekureco en la kurso de la semestro, 469 00:33:48,960 --> 00:33:53,030 kaj ni komencis kun iom da kripto. 470 00:33:53,030 --> 00:33:55,030 [Bdoh lv vwlqng!] 471 00:33:55,030 --> 00:33:57,890 Kaj dum vi infanoj estas probable super-ekscitita esti pasi notojn al ĉiu alia 472 00:33:57,890 --> 00:33:59,890 en klaso uzante Cezaro kodita kiel ĉi tiu, 473 00:33:59,890 --> 00:34:03,870 fakte, ekzistas iuj pli amuze esti havis kiam vi vere parolas sekureco 474 00:34:03,870 --> 00:34:05,870 kaj tian materialon. 475 00:34:05,870 --> 00:34:09,090 Hodiaŭ, ni iras, por kovri kelkajn teknologioj 476 00:34:09,090 --> 00:34:13,650 ke homoj reale uzi en la reala mondo por fari cxiajn ajxojn 477 00:34:13,650 --> 00:34:18,360 el sniffing popola pakojn por fakte enirante kaj 478 00:34:18,360 --> 00:34:20,409 rompi en popola bankaj kontoj kaj ĉiuj tion. 479 00:34:20,409 --> 00:34:23,460 Tio estas legitima iloj kiuj ni parolas pri 480 00:34:23,460 --> 00:34:26,320 kun la escepto de eble unu ilo. 481 00:34:26,320 --> 00:34:28,889 >> Kaj mi nur volas fari rapidan disclaimer. 482 00:34:28,889 --> 00:34:34,909 Kiam ni parolas pri tiuj aferoj, ni parolas pri ili do vi scias kio estas tie ekstere, 483 00:34:34,909 --> 00:34:39,389 kaj vi konscias kiel esti sekura kiam vi eliris uzante vian komputilon. 484 00:34:39,389 --> 00:34:44,000 Sed ni certe ne volas implici, ke vi devus uzi tiujn ilojn 485 00:34:44,000 --> 00:34:48,090 en via dormoĉambro aŭ via domo ĉar oni povas kolizii multaj grandaj aferoj. 486 00:34:48,090 --> 00:34:52,760 Tio estas unu kialo hodiaŭ ke ni efektive ne sniffing viaj pakoj. 487 00:34:52,760 --> 00:35:01,300 >> Bone. Lunde, ni parolis pri kuketojn, kaj HTTP kaj aŭtentokontrolo, 488 00:35:01,300 --> 00:35:05,920 kaj kiel Firesheep malfermas tiun grandan pordon en vian Facebook account, 489 00:35:05,920 --> 00:35:08,670 al viaj Hotmail account - se neniu Ankoraŭ uzante Hotmail - 490 00:35:08,670 --> 00:35:12,360 kaj multaj aliaj rakontoj. 491 00:35:12,360 --> 00:35:16,980 Multaj ĉi stuff tuj konstruos ekstere de tiu, 492 00:35:16,980 --> 00:35:22,070 sed unue, mi volas preni rapidajn tour de kiel la Interreto evoluis tra la tempo. 493 00:35:22,070 --> 00:35:27,490 Tie en la 90, you guys eble memoris reale ŝtopanta en 494 00:35:27,490 --> 00:35:29,880 viaj komputiloj kun unu el ĉi tiuj. 495 00:35:29,880 --> 00:35:32,640 Nun ni ne faras tion tiel plu. 496 00:35:32,640 --> 00:35:37,230 Ĝi fakte rezultas ke la celo ŝtopi Ethernet kablo en mian tekkomputilon, 497 00:35:37,230 --> 00:35:41,710 Mi nun devas uzi unu el tiuj adaptadores kiu estas speco de freneza. 498 00:35:41,710 --> 00:35:47,580 >> Anstataŭe, en 1997 ni havis tiun novan, amuzan teknologio 499 00:35:47,580 --> 00:35:54,960 eliris en tiu estas sciata kiel IEEE 802.11, do ĉi tiu estas la sendrata interreto normo 500 00:35:54,960 --> 00:36:00,430 La IEEE estas ĉi korpo reganto kiu donas el ĉiaj - 501 00:36:00,430 --> 00:36:04,770 eldonas cxiajn normoj kun rilato al komputiloj. 502 00:36:04,770 --> 00:36:08,780 La 802 normoj estas ĉiuj pri interreto teknologioj. 503 00:36:08,780 --> 00:36:12,690 Do 802,3, ekzemple, estas la Ethernet standardo, 504 00:36:12,690 --> 00:36:17,120 802.15.1 mi kredas estas la Bluetooth standardo, 505 00:36:17,120 --> 00:36:19,540 kaj 802.11 estas ĉio pri sendrata interreto. 506 00:36:19,540 --> 00:36:24,150 En 1997 ĉi eliris. Ĝi ne tute komprenis la tuj. 507 00:36:24,150 --> 00:36:30,200 Ĝi estis ĝis 1999 kaj la 802.11b normo eliris en tiu ĵus vere populara. 508 00:36:30,200 --> 00:36:36,330 >> Kiel multaj el vi memoras kiam komputiloj komenciĝis eliras kaj ekhavi wi-fi al ili? 509 00:36:36,330 --> 00:36:38,330 Tio estis ia cool, huh? 510 00:36:38,330 --> 00:36:41,260 Mi memoras atingi mian unuan tekkomputilon en alta lernejo, 511 00:36:41,260 --> 00:36:44,250 kaj gxi havis sendratan karton en ĝi. 512 00:36:44,250 --> 00:36:49,580 Mia paĉjo donis ĝin al mi kaj diris, ke mi devus uzi ĝin por mia kolegio apps kaj ĉiuj de tiu, 513 00:36:49,580 --> 00:36:53,030 kaj mi ne havis ideon, ke mi tuj serĉi ĉi stuff ensalutintaj. 514 00:36:53,030 --> 00:36:54,640 Sed feliĉe, mi havis sendratan karton, tiel ke estis sufiĉe malvarmaj. 515 00:36:54,640 --> 00:37:04,090 Nuntempe, vi ankaux vidos 802.11g kiu estas unu el la aliaj vere populara 516 00:37:04,090 --> 00:37:06,090 sendrata normoj kiuj estas ekstere tie. 517 00:37:06,090 --> 00:37:08,660 Ambaŭ b kaj g estas bela antikva je ĉi tiu punkto. 518 00:37:08,660 --> 00:37:12,580 Neniu scias kion versio plej multaj homoj estas sur dekstra nun 519 00:37:12,580 --> 00:37:15,110 se ili estas aĉeti novan sendratan routers kaj tian materialon? 520 00:37:15,110 --> 00:37:24,290 N. Ekzakte. Bingo. Kaj ĝi rezultas ke la ac normo estas simple eliri en malneto formo, 521 00:37:24,290 --> 00:37:28,050 kaj ekzistas aliaj versioj sur la vojo. 522 00:37:28,050 --> 00:37:31,190 Kun ĉiu de tiuj normoj kion ni gajnas estas pli larĝa de bando, 523 00:37:31,190 --> 00:37:33,900 pli datumojn al rapida ritmo. 524 00:37:33,900 --> 00:37:36,260 Tion subtenas ŝanĝi bela rapide. 525 00:37:36,260 --> 00:37:39,880 Ĝi ankaŭ faras ĝin tiel ke ni devas aĉeti pli routers kaj cxio, kion amuza stuff. 526 00:37:39,880 --> 00:37:48,160 >> Ni parolas pri kion sendrata komunikado fakte estas ĉe ĝia kerno. 527 00:37:48,160 --> 00:37:51,790 Kun Ethernet kaj tiujn malnovajn dial-up modemoj, 528 00:37:51,790 --> 00:37:55,780 vi fakte havis ĉi aĵoj kiujn vi konektita al via komputilo, 529 00:37:55,780 --> 00:37:59,820 kaj tiam vi konektita al modemo de varoj, kaj tiam vi ŝtopis ĝin en kato en viaj muro. 530 00:37:59,820 --> 00:38:01,820 Vi havis ĉi telegramis rilato, ĉu ne? 531 00:38:01,820 --> 00:38:06,030 La tuta punkto de sendrata estas liveri de tiu materialo. 532 00:38:06,030 --> 00:38:10,300 Por fari tion, kion ni havas estas esence 533 00:38:10,300 --> 00:38:13,960 radioaparato komunikado kie nia sendrata enkursigilo - 534 00:38:13,960 --> 00:38:16,230 designado por niaj infanoj sendrata ikono - 535 00:38:16,230 --> 00:38:21,730 estas konektita al la interreto kun tiu solida sago indikante ia telegramis rilato, 536 00:38:21,730 --> 00:38:24,640 sed kiam vi konektas al via sendrata enkursigilo 537 00:38:24,640 --> 00:38:29,190 vi fakte uzas preskaŭ kiel walkie talkie-inter 538 00:38:29,190 --> 00:38:31,960 via komputilo kaj via sendrata enkursigilo. 539 00:38:31,960 --> 00:38:35,150 Kio estas vere malvarmeta pri tiu estas vi povas movi. 540 00:38:35,150 --> 00:38:40,900 Vi povas porti vian komputilon ĉie Sanders, iru navigi en la retejo, kion ajn vi volas, 541 00:38:40,900 --> 00:38:43,240 ĝuste kiel vi ĉiuj konas kaj amas, 542 00:38:43,240 --> 00:38:46,030 kaj vi ne cxiam devas esti konektita por nenion. 543 00:38:46,030 --> 00:38:53,880 Por ĉi tiu laboro, ni havas ambaŭ ĉi ricevo kaj transdono. 544 00:38:53,880 --> 00:38:56,060 Vere estas tiel walkie talkie-. 545 00:38:56,060 --> 00:39:03,800 >> Ĉi sendrata enkursigilo - kiu en Sanders sidas sub ĉi tiu stadio, ĉi tie - 546 00:39:03,800 --> 00:39:06,590 ĉiam elsendi kaj ricevi, elsendi kaj ricevi, 547 00:39:06,590 --> 00:39:09,330 kaj simile, via komputiloj estas ĉiuj faras tiun saman tiaj aferoj ankaŭ. 548 00:39:09,330 --> 00:39:12,840 Ni nur ne povas aŭdi ĝin. 549 00:39:12,840 --> 00:39:17,900 La alia afero ke vi povas fari estas vi povas havi plurajn komputilojn 550 00:39:17,900 --> 00:39:22,200 parolante kun la sama sendrata enkursigilo. 551 00:39:22,200 --> 00:39:25,680 La pli proksima Vi estas al enkursigilo - kaj denove, ĉi tiu estas radiocomunicación - 552 00:39:25,680 --> 00:39:30,320 la proksima vi estas, des pli bone vian signalo estas, des pli bone via komputilo 'aŭdas' la enkursigilo 553 00:39:30,320 --> 00:39:32,460 kaj povas komuniki kun la interreto. 554 00:39:32,460 --> 00:39:39,520 Se vi infanoj estas cxiam je via dormejo, en via domo kaj vi demandas kial viaj signalo estas malbona, 555 00:39:39,520 --> 00:39:42,230 estas probable ĉar al). vi ne tre proksima al via enkursigilo, aŭ 556 00:39:42,230 --> 00:39:46,930 b). estas iu inter vi kaj via enkursigilo kiel cemento muro aŭ io 557 00:39:46,930 --> 00:39:50,720 kiu ne lasas la radiaj ondoj trairas. 558 00:39:50,720 --> 00:39:57,850 >> Ni parolu iomete pri kial malbonaj kiel wi-fi. 559 00:39:57,850 --> 00:40:02,980 Malbonaj infanoj amas wi-fi dum kelkaj kialoj. 560 00:40:02,980 --> 00:40:06,670 Jen nia aĉa malbona ulo dekstre tie. 561 00:40:06,670 --> 00:40:10,660 Unu kaŭzo kial ĉi tiu malbona ulo amas wi-fi 562 00:40:10,660 --> 00:40:18,770 estas ĉar, implicite, multe de sendrata routers veni kaj kiam vi starigis ilin, 563 00:40:18,770 --> 00:40:20,950 ili estas unencrypted. 564 00:40:20,950 --> 00:40:23,970 Ĉi tio estis problemo, kaj tie estis kazoj - 565 00:40:23,970 --> 00:40:28,210 multnombraj kazoj, nun - kie malbona ulo montras supren al iu domo, 566 00:40:28,210 --> 00:40:32,630 rimarkas, ke ekzistas unu unencrypted wi-fi al kiu povas konekti. 567 00:40:32,630 --> 00:40:37,350 Ili konekti al wi-fi, kaj poste ili komencas elŝuti ĉiaj amuza stuff. 568 00:40:37,350 --> 00:40:40,890 Kaj ili ne elŝutante katidoj, ili ne estas elŝuti idoj. 569 00:40:40,890 --> 00:40:44,610 Ĉi tio estas kiel BitTorrent. Ĉi tiu estas la aĉa de la plej aĉan. 570 00:40:44,610 --> 00:40:48,740 Estis kazoj kie la FBI eĉ alveninta implikita 571 00:40:48,740 --> 00:40:52,390 pensante, ke la persono kiu posedas la domo estas vere la unu 572 00:40:52,390 --> 00:40:56,090 iri tie kaj elŝuti stuff ke ili vere ne devus esti. 573 00:40:56,090 --> 00:41:00,730 Estante unencrypted wi-fi certe ne estas io, kion vi volas fari, 574 00:41:00,730 --> 00:41:06,340 eĉ se nur por ne havi la FBI venu frapi sur via pordo. 575 00:41:06,340 --> 00:41:09,910 >> Alia kialo kial malbonaj amas wi-fi 576 00:41:09,910 --> 00:41:13,870 estas la kialo, ke David parolis antaŭe dum la paŭzo. 577 00:41:13,870 --> 00:41:17,240 Ĉar ĝi estas radiocomunicación ĉe ĝia kerno, 578 00:41:17,240 --> 00:41:22,460 se vi konas la kanalo, vi povas aŭskulti al tiu radiostacio. 579 00:41:22,460 --> 00:41:31,870 Ekzemple, se estas malbona Dekstre sidas en la mezo dekstra flanko de la aliro punkto, 580 00:41:31,870 --> 00:41:36,830 tuj apud tiu sendrata enkursigilo, la malbonaj ulo povas aŭskulti en sur ĉiuj el la sendrata trafiko 581 00:41:36,830 --> 00:41:40,240 ke venas el ĉiuj el tiuj komputiloj. 582 00:41:40,240 --> 00:41:44,590 Fakte, tiuj infanoj - tiuj bonŝanca malmultaj, kiuj cxi tie en la unua vico - 583 00:41:44,590 --> 00:41:47,610 ĉar ili estas super-proksime al ĉiuj tiuj sendrata routers 584 00:41:47,610 --> 00:41:49,950 kiuj sidas tuj sub la scenejo, 585 00:41:49,950 --> 00:41:53,780 ili povos aŭdi ĉies trafiko en ĉi tiu tuta ĉambro 586 00:41:53,780 --> 00:41:59,480 se vi konektas al wi-fi kaj ekfoliumi tra tiuj punktoj de aliro. 587 00:41:59,480 --> 00:42:03,740 Ne tre malfacile sidi vin en bona pozicio por sniff kaj elŝeligi 588 00:42:03,740 --> 00:42:07,030 kion aliaj homoj faras. 589 00:42:07,030 --> 00:42:10,830 Estas io por teni en la menso, speciale se vi ne certas kie la aliro punkto estas, 590 00:42:10,830 --> 00:42:15,010 kaj vi foliumantaj diru en Starbucks. 591 00:42:15,010 --> 00:42:17,360 >> Ĝi rezultas ke sniffing kaj ĉiuj de tiu 592 00:42:17,360 --> 00:42:19,440 ne estas vere cxiuj malfacile fari. 593 00:42:19,440 --> 00:42:25,430 Jen programo nomata tcpdump kiuj renversas cxiajn TCP trafiko 594 00:42:25,430 --> 00:42:29,910 kaj vi povas ruli ĝin bela simple - same kiel mi faris tiun matenon. 595 00:42:29,910 --> 00:42:32,810 Jen iom de escorial, kaj jen kelkaj el la trafiko kiu venis super 596 00:42:32,810 --> 00:42:34,960 mia reto tiutempe. 597 00:42:34,960 --> 00:42:41,500 Vi povas vidi - se vi squint vere malmola - estas iomete da Spotify en tie. 598 00:42:41,500 --> 00:42:44,050 Sur supro de tcpdump - ĉar ĉi tiu estas speco de doloro uzi - 599 00:42:44,050 --> 00:42:48,860 tie estas programo nomata Wireshark kiu pakaĵoj tiu tuta supren en bela GUI. 600 00:42:48,860 --> 00:42:51,970 Wireshark estas super-oportuna do se vi iras preni retoj klasoj, 601 00:42:51,970 --> 00:42:56,780 ĉi tiu estas ilo kiu vi venos ami pro tio helpas vin elsekigi ĉiujn pakojn 602 00:42:56,780 --> 00:42:59,400 kiuj flosis ĉirkaŭ tie. 603 00:42:59,400 --> 00:43:01,810 Sed ĝi povas ankaŭ esti uzata por malbona. 604 00:43:01,810 --> 00:43:05,810 Estas tre simple nur elŝuti ĉi programo, eltiri ĝin, 605 00:43:05,810 --> 00:43:09,300 komenci reto preno, kaj vidi cxion okazas - 606 00:43:09,300 --> 00:43:14,130 kaj filtri kaj fari ĉiajn amuza stuff kun ĝi. 607 00:43:14,130 --> 00:43:17,930 >> La alia afero ke vi povas fari kun sendrata konekto 608 00:43:17,930 --> 00:43:25,380 Ne nur vi povas eavesdrop sed vi povas ankaŭ lerni kiel ŝraŭbo kun la reto 609 00:43:25,380 --> 00:43:31,020 kaj injekti viajn proprajn informojn por kontroli la sperto, ke aliaj homoj 610 00:43:31,020 --> 00:43:35,140 en la sama sendrata reto plialtigas. 611 00:43:35,140 --> 00:43:37,140 Ni rigardu tion. 612 00:43:37,140 --> 00:43:40,700 Jen Firesheep - kiu ni konas kaj amas de lasta semajno - 613 00:43:40,700 --> 00:43:43,590 kiu estas kiu aŭskultas teknologio. 614 00:43:43,590 --> 00:43:50,360 Se, ekzemple, ni volis aktive havas niajn malbonajn ulo go kaj salaton tie kun 615 00:43:50,360 --> 00:43:52,690 unu el tiuj komputiloj, 616 00:43:52,690 --> 00:43:58,380 en ĉi tiu scenaro ni havas komputilon provas iri surf al harvard.edu. 617 00:43:58,380 --> 00:44:04,690 Kio okazas estas, la komputilo unue sendas mesaĝon al la sendrata enkursigilo kaj diras, 618 00:44:04,690 --> 00:44:07,920 hey, mi volas iri vizito www.harvard.edu. 619 00:44:07,920 --> 00:44:10,610 Diru ial ili provas atingi informojn pri la ludo tiun semajnfinon. 620 00:44:10,610 --> 00:44:14,940 Malbona knabo, ĉar li sidas ĝuste en la mezo, 621 00:44:14,940 --> 00:44:18,730 tuj apud tiu aliro punkto, povas vidi, ke komunikado devenante la komputilo 622 00:44:18,730 --> 00:44:26,170 en la enkursigilo, kaj li scias, "Aha! Iu tuj harvard.edu." (Evilly ridas) 623 00:44:26,170 --> 00:44:33,870 Tie tuj estos ĉi latencia dum la konekto iras de la enkursigilo 624 00:44:33,870 --> 00:44:37,780 al la interreto por iri trovis la retpaĝon ĉe harvard.edu-- 625 00:44:37,780 --> 00:44:42,020 kiel vi knaboj scias ĉiuj post fari vian PHP psets - 626 00:44:42,020 --> 00:44:45,680 kaj do la malbona ulo havas iomete da tempo, iomete da fenestro, 627 00:44:45,680 --> 00:44:49,410 en kiun li povas respondi kun iuj aĵoj. 628 00:44:49,410 --> 00:44:53,660 >> Diru ĉi tiu malbona ulo, kompreneble, estas Yaley. 629 00:44:53,660 --> 00:44:59,990 Li respondas per harvardsucks.org. Abuchear! 630 00:44:59,990 --> 00:45:02,300 Malbona, malbona guy! Malbona Yaley! 631 00:45:02,300 --> 00:45:06,020 Aŭ eĉ pli malbone, eble li respondos kun tio. [Http://youtu.be/ZSBq8geuJk0]. 632 00:45:06,020 --> 00:45:09,530 Mi lasos vin infanoj elkompreni kiel tio estas. 633 00:45:09,530 --> 00:45:14,840 Tiu estas fakte teknologio nomita Airpwn! kiu debutis en 634 00:45:14,840 --> 00:45:18,950 unu el la sekureco konferencoj kelkajn jarojn malantaŭen. 635 00:45:18,950 --> 00:45:25,190 Kun Airpwn! vi povas reale injekti trafiko denove en la reto. 636 00:45:25,190 --> 00:45:30,060 La komputiloj kiuj provis eliri al la Interreto kaj klopodante atingi 637 00:45:30,060 --> 00:45:33,090 Google.com, por Facebook.com, por harvard.edu 638 00:45:33,090 --> 00:45:39,190 vidu la malica respondo venis kaj tuj supozas, estas bone, 639 00:45:39,190 --> 00:45:43,550 tio estas la respondo kiun mi atendis kaj ili finas atingi enhavo de 640 00:45:43,550 --> 00:45:48,860 harvardsucks.org aŭ nameyourfavoriteshocksite.com, 641 00:45:48,860 --> 00:45:55,270 kaj vi povas vidi kiel rapide aĵoj difekti. 642 00:45:55,270 --> 00:46:00,190 >> Ĉiuj de ĉi tiuj varoj de aĵoj ne povas fari 643 00:46:00,190 --> 00:46:05,870 kun tiuj telegramis rilatoj ĉar kun telegramis rilato 644 00:46:05,870 --> 00:46:08,710 estas malfacile Snoop al trafiko. 645 00:46:08,710 --> 00:46:13,020 Se mi estas malbona knabo kaj sur unu fino estas via komputilo 646 00:46:13,020 --> 00:46:14,460 kaj sur la alia fino estas via enkursigilo - via modemo - 647 00:46:14,460 --> 00:46:20,180 la sola maniero mi povas atingi inter tiu rilato estas vere splice mia komputilo 648 00:46:20,180 --> 00:46:22,180 en ie en la mezo 649 00:46:22,180 --> 00:46:26,820 aŭ fari ion alian kun la enkursigilo, io sube. 650 00:46:26,820 --> 00:46:33,360 Sed kun sendrata, tio povas esti tiel facila kiel sidis en la unua vico de klasĉambro, 651 00:46:33,360 --> 00:46:38,200 kaj vi povas fari cxiajn aĉaj aferoj al la popolo en la dorso. 652 00:46:38,200 --> 00:46:41,570 >> Ni parolos pri kiel vi eble defendi kontraŭ kelkaj el tiuj aferoj. 653 00:46:41,570 --> 00:46:46,860 La personoj kiuj disvolvis la sendrata normoj - la 802.11 - 654 00:46:46,860 --> 00:46:50,820 ili ne estas muta popolo por neniu sekcio de la imago. 655 00:46:50,820 --> 00:46:56,110 This is cool teknologio kaj kiam debutis en 1999, 656 00:46:56,110 --> 00:47:00,780 ili eliris kun ĉi tiu normo nomata WEP. 657 00:47:00,780 --> 00:47:03,360 Vi povas vidi tie kiam vi provas kaj aliĝu sendrata reto, 658 00:47:03,360 --> 00:47:07,450 vi havas cxiajn malsamaj sekureco ebloj. 659 00:47:07,450 --> 00:47:11,800 Tio estas speco de doloro ĉar estas 6 ĉiuj kune 660 00:47:11,800 --> 00:47:14,790 kaj neniam vere havas sencon kiuj 1 aliĝi. 661 00:47:14,790 --> 00:47:19,190 Ĉi 1, je la pinto estas la unua kiu ili suprenvenis kun nomita WEP. 662 00:47:19,190 --> 00:47:27,960 WEP signifas Wired Ekvivalento Privateco, mi kredas, 663 00:47:27,960 --> 00:47:31,730 ne Wireless Ĉifrado Protokolo kio estas komuna _misnomer_. 664 00:47:31,730 --> 00:47:36,170 Ĉar ĝi provas doni al vi privatecon ekvivalenta kaj sekureco protekto 665 00:47:36,170 --> 00:47:40,590 ekvivalenta al tiu de telegramis reto 666 00:47:40,590 --> 00:47:46,710 Kun WEP kio finas okazas estas, 667 00:47:46,710 --> 00:47:52,300 vi havas simplan, iom pasvorton kiu vi tajpas en kaj kiu utilas por ĉifri 668 00:47:52,300 --> 00:47:56,210 ĉiuj viaj konektoj inter via komputilo kaj via enkursigilo. 669 00:47:56,210 --> 00:47:58,210 >> Kio estas la problemo kun WEP kvankam? 670 00:47:58,210 --> 00:48:01,470 La pasvorto kun WEP estas vere mallonga, 671 00:48:01,470 --> 00:48:04,900 kaj ankaŭ ĉiuj uzas tiun saman ĝusta pasvorto, 672 00:48:04,900 --> 00:48:07,610  kaj tiel ĝi estas vere facile malĉifri. 673 00:48:07,610 --> 00:48:10,580 Do tre rapide homoj supozis, ke WEP estis problemo, 674 00:48:10,580 --> 00:48:16,100 kaj la sola kialo vi vidos aperi ankoraŭ en ĉi tiu iom guy is - 675 00:48:16,100 --> 00:48:18,890 estas iuj malnovaj sistemoj kiuj uzas WEP - 676 00:48:18,890 --> 00:48:25,710 kion vi devus anstataŭe esti serĉante estas la WPA kaj eĉ WPA2 normoj 677 00:48:25,710 --> 00:48:29,130 kiuj ĵetis poste. 678 00:48:29,130 --> 00:48:35,040 Tiuj sistemoj estas multe pli bone iras ĉe protekton sendrata interreto. 679 00:48:35,040 --> 00:48:41,090 Kiu diris, ke ili ankoraŭ havas iujn hackability. 680 00:48:41,090 --> 00:48:44,010 Estas iloj tie kiu povas iri fari ĉi tion. 681 00:48:44,010 --> 00:48:47,490 Unu afero precipe kiuj eblas aĉa estas tiu 682 00:48:47,490 --> 00:48:55,370 se vi konekti kaj legalizita al senkabla router kaj uzas ian 683 00:48:55,370 --> 00:49:00,940 ĉifrita konekto, ĝi rezultas ke hacker povas facile sendi sola paketon 684 00:49:00,940 --> 00:49:03,990 por malkonekti vin de la enkursigilo, 685 00:49:03,990 --> 00:49:07,220 kaj kiam ili jam malkonektita vi ili povas tiam aŭskultu en - 686 00:49:07,220 --> 00:49:11,800 ili povas sniff tiuj pakoj kiel vi provas restarigi la rilaton kun via enkursigilo. 687 00:49:11,800 --> 00:49:16,800 Kaj kun tiu informo oni povas tiam venu kaj deĉifri la resto de via komunikado. 688 00:49:16,800 --> 00:49:24,580 Tio ne estas iel ajn speco de sekura preter ĉiuj imagon. 689 00:49:24,580 --> 00:49:30,060 >> La alia afero vi povas fari kiam vi starigi sendrataj retoj 690 00:49:30,060 --> 00:49:35,460 aŭ vi kunigante ilin estas - vi rimarkos, ke ĉi tie kiam mi aliĝi tiun reton, 691 00:49:35,460 --> 00:49:37,640 petas la nomon de mia reto. 692 00:49:37,640 --> 00:49:41,060 Tiu estas ankaŭ sciata kiel la SSID. 693 00:49:41,060 --> 00:49:48,610 Kaj vi vidos tie dekstre Mi havas skatolon kiu montras al mi la disponebla SSIDs. 694 00:49:48,610 --> 00:49:52,690 Jen Universitato Harvard, estas CS50, kaj CS50 Staff reto. 695 00:49:52,690 --> 00:49:59,180 Nun, kio de vi sciis, ke estas CS50 Staff reto ĉirkaŭ? 696 00:49:59,180 --> 00:50:01,910 Kelkaj el vi. Ne ĉiuj el vi. 697 00:50:01,910 --> 00:50:08,800 La problemo kun ĉi, kompreneble, estas ke se ni ne metis tiun sur nia listo de SSIDs, 698 00:50:08,800 --> 00:50:10,930 neniu scius pri ĝi plej verŝajne. 699 00:50:10,930 --> 00:50:16,090 Mi esperas. Krom se vi infanoj estas ĉiuj provas fendi en niajn sendrata. 700 00:50:16,090 --> 00:50:18,700 Sed tio estas io, kion vi povas fari tion vere grava kiam vi starigi 701 00:50:18,700 --> 00:50:20,280 router hejme. 702 00:50:20,280 --> 00:50:22,820 Verŝajne ne okazos dum kelkaj jaroj por multaj de vi, 703 00:50:22,820 --> 00:50:29,010 sed memoru, ke konservante ke SSID el tie kaj ne ankaŭ enoficigante ĝin 704 00:50:29,010 --> 00:50:34,630 io super-komuna helpos vin pli sekura en la longa. 705 00:50:34,630 --> 00:50:38,070 >> Lasta kelkaj aĵoj vi povas fari. Unu estas HTTPS. 706 00:50:38,070 --> 00:50:44,760 Se vi estas ĉe Starbucks, se vi estas en publika wi-fi areo 707 00:50:44,760 --> 00:50:52,620 kaj vi decidi por aliri vian bankokonton, aliro via Gmail, via Facebook, 708 00:50:52,620 --> 00:50:56,140 certigi ke tiuj rilatoj iras trans HTTPS. 709 00:50:56,140 --> 00:50:59,800 Ĝi estas aldonita mantelo de sekureco, oni aldonis tavolo de ĉifrado. 710 00:50:59,800 --> 00:51:01,520 La unu aĵo al memoru ĉi tie estas, 711 00:51:01,520 --> 00:51:04,740 kiom multaj el vi iam klakis tra tiu granda, ruĝa ekrano kiu diras, 712 00:51:04,740 --> 00:51:07,480 "Tiu retejo povas esti malbona." 713 00:51:07,480 --> 00:51:09,710 Mi konas min havas. 714 00:51:09,710 --> 00:51:13,090 Verŝajne kiam vi ĉiuj foliumantaj iri vidi Hejmlanda aŭ io simila, ĉu ne? 715 00:51:13,090 --> 00:51:19,900 Yeah. (Aŭdienco ridado) Jes. Tie vi iros. Ni scias, kiu estas rigardante Hejmlanda. 716 00:51:19,900 --> 00:51:24,540 Tiu granda, ruĝa ekrano Dekstre 717 00:51:24,540 --> 00:51:28,600 ofte indikas ke io funky okazas. 718 00:51:28,600 --> 00:51:32,530 Foje estas nur la retejo mem estas necerta, 719 00:51:32,530 --> 00:51:35,520 sed tiu sama granda, ruĝa ekrano venas supren, kiam oni provas 720 00:51:35,520 --> 00:51:37,520 monto reto atakas sur vi. 721 00:51:37,520 --> 00:51:40,220 Do se vi vidas ke granda, ruĝa ekrano supreniru ĉe Starbucks, 722 00:51:40,220 --> 00:51:42,440 Ne klaku tra ĝi. 723 00:51:42,440 --> 00:51:45,350 Malbona novaĵo. Malbona novaĵo ursoj. 724 00:51:45,350 --> 00:51:51,490 >> La fina afero, kiun vi povas rigardi 725 00:51:51,490 --> 00:51:54,120 estas ia VPN. 726 00:51:54,120 --> 00:52:00,280 Ĉi VPN estas disponebla per Harvard - vpn.fas.harvard.edu-- 727 00:52:00,280 --> 00:52:03,260 kaj kion tiu faras, estas ĝi reale establas sekura konekto 728 00:52:03,260 --> 00:52:06,460 inter vi kaj Harvard, funnels vian trafiko tra ĝi, 729 00:52:06,460 --> 00:52:12,160 kaj aliflanken se vi sidas en loko kiel Starbucks 730 00:52:12,160 --> 00:52:19,030 vi povas konekti al Harvard, atingi tiun sekuran trafiko, kaj tiam rigardi de Harvard. 731 00:52:19,030 --> 00:52:21,950 Denove, ne neerarema. Homoj povas akiri en la mezo. 732 00:52:21,950 --> 00:52:25,850 Ili povas komenci rompi ĝin, sed tio estas multe pli sekura ol dependi de la sekureco 733 00:52:25,850 --> 00:52:28,620 de la wi-fi sola. 734 00:52:28,620 --> 00:52:32,570 >> Bone. En sumo, 735 00:52:32,570 --> 00:52:34,580 kiam vi instalas sendrataj retoj, 736 00:52:34,580 --> 00:52:37,250 kiam vi iras al uzi sendratan en publiko - 737 00:52:37,250 --> 00:52:43,430 ĉu ĝi estas Starbucks, ĉu ĝi estas Kvin Guys, ĉu ĝi estas B.Good, 738 00:52:43,430 --> 00:52:46,440 io simila - kien ajn ili havas wi-fi - 739 00:52:46,440 --> 00:52:48,440 konscii pri viaj ĉirkaŭaĵoj. 740 00:52:48,440 --> 00:52:50,440 Konscii pri tio, kion homoj povas fari. 741 00:52:50,440 --> 00:52:53,890 Kaj estu sekura. Ne atingi viajn bankokonton. 742 00:52:53,890 --> 00:52:58,740 Ĝi povus esti malĝentila vekiĝo se iu montras kun vian pasvorton poste. 743 00:52:58,740 --> 00:53:05,480 Kun tiu, iru karmezina! Kaj mi tuj plenumos tion reen super al David por la lasta vorto. 744 00:53:05,480 --> 00:53:11,270 (Aplaŭdoj) 745 00:53:11,270 --> 00:53:14,360 >> [Davido] Mi pensis mi dividos unu afero de persona sperto. 746 00:53:14,360 --> 00:53:19,940 Ilo vi eble ŝatas ludi kun - kvankam Apple grandparte elradikigitaj ĉi tiu temo 747 00:53:19,940 --> 00:53:22,710 se vi ĝisdatigas vian programaron ĉar - 748 00:53:22,710 --> 00:53:26,670 sed al tiu celo de ne vere povi fidi programaro ke ni uzas, 749 00:53:26,670 --> 00:53:33,270 kaj Nate punktoj, povante sniff sufiĉe de tio, kion aliaj personoj faras 750 00:53:33,270 --> 00:53:37,010 tie - tio estis peco de programaro kiu eliris proksimume unu jaron-kaj-al-duono monatoj nun. 751 00:53:37,010 --> 00:53:39,010 [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] 752 00:53:39,010 --> 00:53:41,010 Dum kelka tempo, iTunes - antaŭ iCloud, kiam vi estis sinkronigi vian iPods aŭ via iPhones aŭ 753 00:53:41,010 --> 00:53:45,570 aŭ via iPads kun iTunes - en la intereso de backups, 754 00:53:45,570 --> 00:53:48,340 kion via iPhone kaj tiuj aliaj aparatoj estis farante dum iom da tempo estas 755 00:53:48,340 --> 00:53:50,340 uzante GPS datumoj. 756 00:53:50,340 --> 00:53:52,710 >> Vi ĉiuj scias eble ke via iPhones kaj Androides kaj Windows poŝtelefonoj 757 00:53:52,710 --> 00:53:55,410 kaj similaj tiuj tagoj povas spuri kie vi estas en la intereso de montrante vin mapoj 758 00:53:55,410 --> 00:53:59,440 kaj similaj - nu kion Apple kaj tiuj aliaj kompanioj faras estas 759 00:53:59,440 --> 00:54:02,650 ili tipe spuri preskaŭ ĉie vi efektive estis en la intereso de 760 00:54:02,650 --> 00:54:05,380 plibonigi kvaliton de servoj. 761 00:54:05,380 --> 00:54:07,170 Unu, vi povas ricevi pli celata reklamadaj kaj similaj, 762 00:54:07,170 --> 00:54:10,740 sed du, ili povas ankaŭ kalkuli kie estas tie sendrata varmpunktoj en la mondo, 763 00:54:10,740 --> 00:54:14,780 kaj tio povas helpi kun geo-situo - speco de triangulado de popola pozicio. 764 00:54:14,780 --> 00:54:18,520 >> Longan rakonton, ni ĉiuj estis marŝante antenoj por iu kvanto de tempo. 765 00:54:18,520 --> 00:54:22,180 Bedaŭrinde, Apple faris la dezajno decido - aŭ mankas ĝia - 766 00:54:22,180 --> 00:54:26,590 por ne kodi tiun informon kiam esti subtenata-supren al iTunes. 767 00:54:26,590 --> 00:54:30,330 Kaj kion la sekureco esploristo trovis estis tiu ĉi estis nur giganta XML-dosiero - 768 00:54:30,330 --> 00:54:33,810 grandega teksta dosiero - sidante en popola iTunes programaro, 769 00:54:33,810 --> 00:54:35,400 kaj se vi estus nur iomete stranga, 770 00:54:35,400 --> 00:54:38,990 vi povus iri ŝovas ĉirkaŭ vian edz historio, via kompano la historio, 771 00:54:38,990 --> 00:54:41,050 Via frato historio kaj similaj, 772 00:54:41,050 --> 00:54:44,590 kaj danke al iu libera programaro, vi povus konspiri ĉiuj tiuj GPS koordinatoj - 773 00:54:44,590 --> 00:54:46,590 latitudo kaj longitudo. 774 00:54:46,590 --> 00:54:48,590 >> Do, mi efektive faris tion per miaj propraj telefono. 775 00:54:48,590 --> 00:54:51,210 Mi ŝtopis en mia telefono, kaj vi pravis, mia versio de iTunes ne estis kodita en la momento, 776 00:54:51,210 --> 00:54:53,900 kaj kion mi povis vidi estis miaj propraj mastroj. 777 00:54:53,900 --> 00:54:56,970 Jen la Usono kaj ĉiu el tiuj bluaj rondoj reprezentas 778 00:54:56,970 --> 00:55:01,670 kie mi hazarde estis super tiuj antaŭaj monatoj de posedi tiun apartan telefonon. 779 00:55:01,670 --> 00:55:04,940  Mi pasigas multan tempon, kompreneble, en la Nordoriento, iom tempo en Kalifornio, 780 00:55:04,940 --> 00:55:08,690 mallonga vojaĝo al Teksaso, kaj se vi tiam zomi en ĉi - 781 00:55:08,690 --> 00:55:11,120 ĉi estas la tuta speco de fajna kaj interesa, sed mi sciis tion. 782 00:55:11,120 --> 00:55:13,890 La plimulto de miaj amikoj sciis tion, sed se vi plonĝi en profundan, 783 00:55:13,890 --> 00:55:17,090 vi vidas, kie mi pasas plej parton de mia tempo en la Nordoriento. 784 00:55:17,090 --> 00:55:20,330 Se vi fermi al kelkaj familiaraj-aspekta vilaĝojn - 785 00:55:20,330 --> 00:55:24,670 tiu granda, blua inko splotch estas esence centritaj sur Bostono, 786 00:55:24,670 --> 00:55:29,510 kaj tiam mi pasigi iomete da tempo ekstere en la antaŭurboj radiante el Bostono. 787 00:55:29,510 --> 00:55:32,780 Sed mi ankaŭ faras sufiĉe de konsulti tiu jaro. 788 00:55:32,780 --> 00:55:36,090 Kaj ĉi tiu jaro estas la orienta marbordo, kaj vi povas reale vidi min 789 00:55:36,090 --> 00:55:41,920 kaj mia iPhone en mia poŝo vojaĝis tien kaj reen inter Boston kaj Nov-Jorko 790 00:55:41,920 --> 00:55:47,510 kaj Filadelfio pli sube, tiel kiel elspezi iom da ferioj tempo 791 00:55:47,510 --> 00:55:50,340 sur la Kabo, kiu estas la malgranda brako tie. 792 00:55:50,340 --> 00:55:53,030 Do, ĉiu de tiuj punktoj reprezentas iun lokon mi estis, 793 00:55:53,030 --> 00:55:56,970 kaj tute Sen scii ĝin al mi, ĉi tuta historio estis nur sidas tie 794 00:55:56,970 --> 00:55:58,410 sur mia labortablo komputilo. 795 00:55:58,410 --> 00:56:00,470 Se vi malzomi - ĉi efektive estis iom tumulti. 796 00:56:00,470 --> 00:56:04,190 Mi ne havis rememoro de iam esti estinta en Pennsylvania tiu aparta jaro. 797 00:56:04,190 --> 00:56:07,840 Sed mi tamen iom pli malfacila pri ĝi kaj mi supozis,, ho, estis fakte tiu vojaĝo 798 00:56:07,840 --> 00:56:11,160 kaj, efektive, mia telefono kaptis min. 799 00:56:11,160 --> 00:56:14,180 >> Apple ekde ĉifrita ĉi tiun informon, 800 00:56:14,180 --> 00:56:17,380 sed ĉi tiu estas ankaŭ ĝuste testamento al kiom informo estas kolektita pri ni, 801 00:56:17,380 --> 00:56:20,850 kaj kiom facile - por pli bona aŭ por malbona - estas akceptebla. 802 00:56:20,850 --> 00:56:23,340 Unu el la preno-aways espereble de Rob la diskuto, de Nate diskuto 803 00:56:23,340 --> 00:56:27,370 kaj iom vidaj kiel ĉi hodiaŭ estas nur por esti des pli consciente ĉi 804 00:56:27,370 --> 00:56:31,160 por ke kvankam - kiel al Rob la punkto - we're ia ŝraŭbita, ĉu ne? 805 00:56:31,160 --> 00:56:33,920 Estas ne multe povas fari, kiam temas pri iuj el tiuj minacoj, 806 00:56:33,920 --> 00:56:37,130 sed en la fino de la tago ni devas fidi iun aŭ iu 807 00:56:37,130 --> 00:56:38,510 se ni volas vere uzi tiujn teknologiojn. 808 00:56:38,510 --> 00:56:43,150 Almenaŭ ni povas fari decidojn informitaj kaj kalkulita decidoj ĉu aŭ ne 809 00:56:43,150 --> 00:56:46,390 ni devus reale esti kontrolanta ĉi aparte sentema konton 810 00:56:46,390 --> 00:56:49,330 aŭ ni devus reale esti sendi ke iomete suspektas momenteto mesaĝon 811 00:56:49,330 --> 00:56:52,180  en wi-fi medio kiel ĉi tio. 812 00:56:52,180 --> 00:56:54,990 >> Do, kun kiu diris, nur unu kvizo restaĵojn, unu prelego restas. 813 00:56:54,990 --> 00:56:57,740 Ni vidos vin merkredon tiam lundon. 814 00:56:57,740 --> 00:57:02,100 (Aplaŭdoj kaj gaja) 815 00:57:02,100 --> 00:57:06,100 [CS50TV]