1 00:00:00,000 --> 00:00:02,750 [Powered by Google Translate] [Недела 10] 2 00:00:02,750 --> 00:00:04,750 [Дејвид Џ Malan] [Универзитетот Харвард] 3 00:00:04,750 --> 00:00:07,000 [Ова е CS50.] [CS50.TV] 4 00:00:08,520 --> 00:00:13,240 >> Сите во право! Ова е CS50, но не и за многу подолго. 5 00:00:13,240 --> 00:00:14,740 Ова е почеток на недела 10. 6 00:00:14,740 --> 00:00:18,780 Во средата Ние имаме квиз, а потоа следниот понеделник имаме некои славеничка торта 7 00:00:18,780 --> 00:00:22,030 како што доаѓаат полн круг целиот пат назад од недела нула. 8 00:00:22,030 --> 00:00:25,200 Денес, ние зборуваме за една од моите омилени теми, вистината може да се рече - 9 00:00:25,200 --> 00:00:29,000 дека на безбедноста и приватноста и импликациите на сите на хардвер и софтвер 10 00:00:29,000 --> 00:00:31,000 дека сите ние ги користат овие денови. 11 00:00:31,000 --> 00:00:33,300 Да бидам искрен, постојат многу закани таму 12 00:00:33,300 --> 00:00:35,430 дека ако не се навистина пауза да се размислува за нив, 13 00:00:35,430 --> 00:00:36,920 тие се всушност прилично застрашувачка. 14 00:00:36,920 --> 00:00:40,070 Случај во точка - ако некој од вас некогаш преземале парче софтвер 15 00:00:40,070 --> 00:00:42,660 исклучување на интернет и инсталиран на вашиот компјутер, 16 00:00:42,660 --> 00:00:45,220 сте ангажирани во значителен степен на доверба, нели? 17 00:00:45,220 --> 00:00:50,220 Нема ништо ја спречи Skype, или Хром, или било парче софтвер 18 00:00:50,220 --> 00:00:54,770 сте го инсталирале на вашиот компјутер, од едноставно бришење на сите датотеки на вашиот хард диск; 19 00:00:54,770 --> 00:00:58,260 од качувањето на сите датотеки на вашиот хард диск на серверот некои на лошо момче е; 20 00:00:58,260 --> 00:01:01,650 од читање на сите ваши пораки, од зграпчување на сите ваши инстант пораки. 21 00:01:01,650 --> 00:01:05,040 Бидејќи реалноста е денес со повеќето модерните оперативни системи 22 00:01:05,040 --> 00:01:10,040 навистина не е многу на ѕидот меѓу софтверски програми кои ќе го инсталирате, 23 00:01:10,040 --> 00:01:14,220 и ти и јас се доста само вид на премин нашите прсти и преземање на верата 24 00:01:14,220 --> 00:01:17,750 дека тоа стан ние симне бесплатно, или дека нешто што е 99 центи, 25 00:01:17,750 --> 00:01:20,140 е всушност сосема бенигна. 26 00:01:20,140 --> 00:01:23,090 Но, како што видовме преку C, а сега PHP и го вклучите Javascript-, 27 00:01:23,090 --> 00:01:25,420 со оваа способност да се изразуваме programatically, 28 00:01:25,420 --> 00:01:30,300 можете да направите најмногу нешто што сакате со програма со која на корисникот сам не можеше да стори. 29 00:01:30,300 --> 00:01:32,390 >> Значи, денес ние се фокусираме на таа тема - 30 00:01:32,390 --> 00:01:35,360 не само некои закани, но, исто така, одбрана. 31 00:01:35,360 --> 00:01:37,540 Навистина, во светот на безбедноста воопшто, 32 00:01:37,540 --> 00:01:39,040 таму е вид на оваа мачка и глушец игра, 33 00:01:39,040 --> 00:01:41,990 и јас daresay лошите момци скоро секогаш имаат нога. 34 00:01:41,990 --> 00:01:45,880 Кога станува збор за искористување на хардвер и софтвер на нашите сопствени персонални компјутери, 35 00:01:45,880 --> 00:01:51,250 ние мора да сфатат дека лош човек едноставно треба да се најде една едноставна грешка - 36 00:01:51,250 --> 00:01:56,150 еден искористат, еден баг - во парче софтвер што сум напишал или се работи 37 00:01:56,150 --> 00:01:58,280 со цел за него или неа да го преземе целиот наш систем. 38 00:01:58,280 --> 00:02:02,870 Спротивно на тоа, ние - добрите момци - треба да се закрпи и да ја поправите сите оние грешки 39 00:02:02,870 --> 00:02:04,900 и да се избегне сите оние слабости. 40 00:02:04,900 --> 00:02:07,870 И така, јас daresay во целина, на лошите момци имаат предност. 41 00:02:07,870 --> 00:02:10,840 Што класи како оваа и следните класи се навистина за 42 00:02:10,840 --> 00:02:14,830 не се за вас учењето како да се водат битки дека овие лоши момци прават, 43 00:02:14,830 --> 00:02:18,220 но за тоа како да се заштитат себе си или барем како да се направи пресметува одлука 44 00:02:18,220 --> 00:02:22,970 дека да, знам дека ова парче софтвер навистина може да ја прочита секој еден од моите пораки, 45 00:02:22,970 --> 00:02:27,040 но јас сум во ред со тоа, бидејќи на вредноста тоа ме носи од друга страна. 46 00:02:27,040 --> 00:02:31,060 >> Јас сум многу задоволен да се придружија 2 од најпаметните луѓе што ги знам - 47 00:02:31,060 --> 00:02:33,060 Роб Бауден и Нејт Hardison. 48 00:02:33,060 --> 00:02:36,850 Роб е за да ни земе за турнеја низ најниско ниво на безбедност тагови - 49 00:02:36,850 --> 00:02:42,470 дека на компајлерот што, до сега, ние сме сите доаѓаат на љубовта и довербата. Роб Бауден. 50 00:02:42,470 --> 00:02:47,790 [Аплауз] 51 00:02:47,790 --> 00:02:50,280 >> [Роб] Во ред. Дејвид има доста земе целиот мој зборувам сладкодумно 52 00:02:50,280 --> 00:02:52,320 дека ќе одам да се воведе со тоа, но - 53 00:02:52,320 --> 00:02:58,070 Пред неколку недели, виде примерот на тампон-претекување напади 54 00:02:58,070 --> 00:03:01,900 која е пример на еден хакер хакирање во некои парче софтвер 55 00:03:01,900 --> 00:03:06,060 дека тие не би требало да се хакирање во. 56 00:03:06,060 --> 00:03:09,690 На другата страна на овој 57 00:03:09,690 --> 00:03:14,470 понекогаш имате софтвер кој е штетен во себе и за себе. 58 00:03:14,470 --> 00:03:17,070 Тоа дури и не треба да се пробиени. 59 00:03:17,070 --> 00:03:20,670 Лицето кое го напиша софтверот сака да ви се пробие. 60 00:03:20,670 --> 00:03:22,190 >> Ајде само скокаат право во кодот, 61 00:03:22,190 --> 00:03:28,560 Гледано во "login.c". 62 00:03:28,560 --> 00:03:33,390 Тука, глупо програма со која потврдува корисничко име и лозинка комбинација. 63 00:03:33,390 --> 00:03:39,420 Овде можете дефинитивно треба да се добивање удобно со C повторно за квиз. 64 00:03:39,420 --> 00:03:43,470 Прво, ние се користат да се стрингови за да се опише корисничко име, 65 00:03:43,470 --> 00:03:46,280 тогаш ние користиме get стринг за да го дофати лозинка, 66 00:03:46,280 --> 00:03:50,680 и тогаш имаме некои тривијални проверки на само, е корисничко име "Роб"? 67 00:03:50,680 --> 00:03:52,710 И е лозинка "thisiscs50"? 68 00:03:52,710 --> 00:03:56,900 Или, пак, е корисничко име "Томи" и лозинка "з <3javascript"? 69 00:03:56,900 --> 00:03:58,980 Ако било кој од овие е случај, 70 00:03:58,980 --> 00:04:01,980  тогаш ние само ќе печати "Успех", а потоа имаме пристап. 71 00:04:01,980 --> 00:04:07,690 Во спротивно, ние ќе печати "неправилен Влезот", а потоа, се разбира, 72 00:04:07,690 --> 00:04:11,120  бидејќи меморија скица жици Примерок, ние бесплатно корисничко име и лозинка. 73 00:04:11,120 --> 00:04:15,560 Ова е тривијална најава програма, 74 00:04:15,560 --> 00:04:18,110 и ако мислите дека за тоа кога ќе се најавите во уредот, 75 00:04:18,110 --> 00:04:22,350 тоа е прилично слични - или дури и да влезете во вашиот компјутер - 76 00:04:22,350 --> 00:04:24,930 има само некои најава програма која ви дава пристап. 77 00:04:24,930 --> 00:04:31,840 Тука, ние се случи да имаат хард-кодирани 'Rob', 'thisiscs50', 'tommy', 'з <3javascript, 78 00:04:31,840 --> 00:04:34,950 но веројатно постои некоја датотека некаде на вашиот оперативен систем 79 00:04:34,950 --> 00:04:38,690 која има листа на корисник кој може да се најавите на системот 80 00:04:38,690 --> 00:04:41,740 и листа на лозинки поврзани со овие кориснички имиња. 81 00:04:41,740 --> 00:04:46,090 Обично лозинки не се само зачувани како чист текст се допаѓа ова. 82 00:04:46,090 --> 00:04:50,360 Постои некој вид на енкрипција, но ова ќе направи за нашиот пример. 83 00:04:50,360 --> 00:04:57,000 >> Доаѓаат во текот на нашиот компајлерот - 84 00:04:57,020 --> 00:05:00,780 тоа се случува да биде многу лесно. 85 00:05:00,780 --> 00:05:04,800 Ние треба да наведете барем некои датотеки кои сакаме да ги собере, 86 00:05:04,800 --> 00:05:10,200 а потоа тука - овие линии 87 00:05:10,200 --> 00:05:12,520 се само читање на датотеката. 88 00:05:12,520 --> 00:05:16,080 Таа го чита целата датотека во една голема тампон, 89 00:05:16,080 --> 00:05:19,000 и тогаш нула-раскине нашите тампон како и секогаш, 90 00:05:19,000 --> 00:05:21,000 и конечно ние само ги собира на датотеката. 91 00:05:21,000 --> 00:05:24,090 Ние нема да се погледне како компајлирање всушност е имплементирано, 92 00:05:24,090 --> 00:05:26,820 но како навестување, тоа само ги повикува ѕвекот. 93 00:05:26,820 --> 00:05:32,370 Ние ќе ја користите оваа програма да ги собере работите наместо ѕвекот. 94 00:05:32,370 --> 00:05:39,260 Еден проблем ние започнуваме со е гледаме дека сакате да компајлирате нашата компајлер, 95 00:05:39,260 --> 00:05:43,620 но ако ние нема да се користи ѕвекот, јас не знам што јас ќе одам да ги собере со. 96 00:05:43,620 --> 00:05:46,700 Ова е општо прашање познат како bootstrapping. 97 00:05:46,700 --> 00:05:53,080 Значи, само ова уште еднаш, јас одам да се користи ѕвекот да ги собере нашите компајлерот. 98 00:05:53,080 --> 00:05:58,800 >> Ако мислите дека на GCC и ѕвекот - 99 00:05:58,800 --> 00:06:03,200 тие програми, оние компајлери постојано се ажурираат, 100 00:06:03,200 --> 00:06:10,010 и оние компајлери се компајлирана користење на GCC и ѕвекот. 101 00:06:10,010 --> 00:06:14,890 Ѕвекот е само една голема C или C + + програма, 102 00:06:14,890 --> 00:06:19,510 па компајлерот тие ги користат за да ги собере што е ѕвекот. 103 00:06:19,510 --> 00:06:26,820 Еве, сега, ние сме само ќе биде со користење на нашите компајлерот да ги собере нашите компајлер, 104 00:06:26,820 --> 00:06:33,830 а ние дури и може да се каже - '/ компајлерот.', 'compiler.c', 'compile.c', '-о компајлерот. 105 00:06:33,830 --> 00:06:37,250 Забележите ова е точната команда Истрчав пред - 106 00:06:37,250 --> 00:06:41,330 само замени ѕвекот со ". / компајлер. 107 00:06:41,330 --> 00:06:44,990 И сега имаме друг компајлер, но тоа е токму истото. 108 00:06:44,990 --> 00:06:47,510 Тоа само ги повикува ѕвекот. 109 00:06:47,510 --> 00:06:55,050 >> Ние ќе ги користат нашите компајлерот да ги собере нашите најава програма. 110 00:06:55,050 --> 00:07:03,030 Океј - ". / Компајлер login.c-о најава". 111 00:07:03,030 --> 00:07:06,160 Значи, недефинирана повикување на "GetString". 112 00:07:06,160 --> 00:07:11,250 Доби "-lcs50". Во ред. 113 00:07:11,250 --> 00:07:13,790 Па сега јас имаме најава програма. 114 00:07:13,790 --> 00:07:16,790 Трчање - добиваат "Ве молиме внесете го Вашето корисничко име". 115 00:07:16,790 --> 00:07:22,140 Еден пример е Роб. Ве молиме внесете ја вашата лозинка - thisiscs50. 116 00:07:22,140 --> 00:07:24,930 И успех! Имам пристап. 117 00:07:24,930 --> 00:07:28,350 Вклучување повторно и внесување на некои невалидни лозинка - 118 00:07:28,350 --> 00:07:30,350 или не е валиден корисничко име и лозинка - 119 00:07:30,350 --> 00:07:32,860 неправилен Влезот. 120 00:07:32,860 --> 00:07:37,740 Во ред. Ништо интересно за оваа досега. 121 00:07:37,740 --> 00:07:43,100 Но, ајде да ги разгледаме во најава повторно - 122 00:07:43,100 --> 00:07:47,850 и ова ќе биде нешто тривијални пример, 123 00:07:47,850 --> 00:07:59,330 но, ајде да додадете друг тука и да каже, друго ако ((strcmp (корисничко име, "хакер") == 0 && 124 00:07:59,330 --> 00:08:14,510 strcmp (лозинка "LOLihackyou") == 0)) 125 00:08:14,510 --> 00:08:26,280 па сега, printf ("Хакирано Вие сега имаат пристап \ n!."); ред. 126 00:08:26,280 --> 00:08:36,240 Составувањето на оваа - компајлерот login.c-о логирање-lcs50 - 127 00:08:36,240 --> 00:08:40,190 сега работи најава - и ако јас го користам моето корисничко име хакер 128 00:08:40,190 --> 00:08:44,740 и лозинка LOLihackedyou - 129 00:08:44,740 --> 00:08:47,780 Никако не можев да ја внесете погрешен таму и пред тоа? 130 00:08:47,780 --> 00:08:52,990 Во login.c--ihack - I'll се пробиени, бидејќи мислам дека јас го правам тоа подоцна. 131 00:08:52,990 --> 00:08:56,270 Во ред. Рекомпајлирање. 132 00:08:56,270 --> 00:09:01,500 Повторно работи - хакер - LOLihackedyou - 133 00:09:01,500 --> 00:09:03,650 Пробиени! Сега имаш пристап. 134 00:09:03,650 --> 00:09:06,580 >> Таму не чини да се биде дека многу разлика 135 00:09:06,580 --> 00:09:10,890 затоа што тоа е исто точно проверка правам за другите кориснички имиња и лозинки. 136 00:09:10,890 --> 00:09:17,720 Плус, голема работа е дека ако другите луѓе се погледне на овој login.c-- 137 00:09:17,720 --> 00:09:24,020 да речеме, ако јас го помине овој исклучи мојот партнер, и тие се отвори оваа датотека, 138 00:09:24,020 --> 00:09:29,870 и тие читаат ова, тие ќе видиме - во ред, зошто имате овие линии на код овде? 139 00:09:29,870 --> 00:09:33,320 Тоа не е очигледно нешто што треба да биде во вашата програма. 140 00:09:33,320 --> 00:09:41,590 Во некои програми - како било кој комерцијален софтвер кој не е со отворен код - 141 00:09:41,590 --> 00:09:46,200 можеби никогаш нема да ги види овие линии на код. 142 00:09:46,200 --> 00:09:50,440 Нешто како Skype или нешто - за сите што знаете, 143 00:09:50,440 --> 00:09:57,600 Skype е на вашиот компјутер и има само некои специфични корисничко име, лозинка комбинација 144 00:09:57,600 --> 00:10:01,580 кои ќе се најавите на Skype во некои посебен начин. 145 00:10:01,580 --> 00:10:04,230 Ние не знаеме за тоа, и луѓето не знаат за тоа, 146 00:10:04,230 --> 00:10:09,640 бидејќи тие не се за да го прочитате sourcecode да се види дека има оваа дупка. 147 00:10:09,640 --> 00:10:11,800 >> Она што го нарекуваме ова - 148 00:10:11,800 --> 00:10:16,530 иако тоа не е многу јасен пример - 149 00:10:16,530 --> 00:10:18,970 ова се нарекува задната врата. 150 00:10:18,970 --> 00:10:22,320 Ако мислите дека на задната врата на вашата куќа. 151 00:10:22,320 --> 00:10:26,640 Еве, ако јас се провери со "на rob на корисник или" Томи " 152 00:10:26,640 --> 00:10:28,580 Тоа би било како со помош на "пред врата". 153 00:10:28,580 --> 00:10:33,700 Тоа е начинот на кој јас сум требало да се логирате на безбедно. 154 00:10:33,700 --> 00:10:37,630 Но, ако јас внесете со оваа корисничко име и лозинка - 155 00:10:37,630 --> 00:10:40,630 тогаш тоа е со користење на "задна врата". 156 00:10:40,630 --> 00:10:42,810 Тоа не беше намерно начин да се добие во програмата, 157 00:10:42,810 --> 00:10:45,350 но се уште работи. 158 00:10:45,350 --> 00:10:49,160 И луѓето воопшто не би требало да знаете за овие задните врати. 159 00:10:49,160 --> 00:10:53,050 Ние ќе се подобри ова. 160 00:10:53,050 --> 00:10:55,610 Да се ​​вратите на нашиот оригинален login.c, 161 00:10:55,610 --> 00:11:05,510 и ајде да ги разгледаме во нашата нова компајлерот. Во ред. 162 00:11:05,510 --> 00:11:08,460 Сè што тука е иста. 163 00:11:08,460 --> 00:11:10,460 Ние ја читаш целото досие во тампон. 164 00:11:10,460 --> 00:11:14,400 Сè што тука долу е иста. 165 00:11:14,400 --> 00:11:16,180 Ние само Составувач на датотеката. 166 00:11:16,180 --> 00:11:19,770 Но, сега имам голема, ако тука 167 00:11:19,770 --> 00:11:24,140 кој се вели дека, ако датотеката што се случи да биде составувањето е login.c, 168 00:11:24,140 --> 00:11:27,390 тогаш правам нешто посебно. 169 00:11:27,390 --> 00:11:29,900 Што е тоа нешто посебно? 170 00:11:29,900 --> 00:11:33,820 Гледам тука некои стринг наречена "hack", 171 00:11:33,820 --> 00:11:35,950 и разгледување на овие линии на код - 172 00:11:35,950 --> 00:11:41,990 овие се исти линии на код - Претпоставувам дека го употреби "ihack", а не "ihacked" пред - 173 00:11:41,990 --> 00:11:44,240 гледајќи во овие линии на код, 174 00:11:44,240 --> 00:11:47,880 тие се исти точно линии на код кој што ги имав во login.c порано. 175 00:11:47,880 --> 00:11:51,130 Но сега, наместо да ги login.c, 176 00:11:51,130 --> 00:11:54,290 Одам да ги стави во мојот компајлерот. 177 00:11:54,290 --> 00:12:00,240 >> Овие се линии на код, ќе одам да сакате да го вметнете во login.c. 178 00:12:00,240 --> 00:12:06,350 Овие линии на код - тампон кој првично се одржа мојот login.c 179 00:12:06,350 --> 00:12:11,080 повеќе нема да биде доволно голема, бидејќи сега сакам да, исто така, вметнете овој hack 180 00:12:11,080 --> 00:12:12,940 во средината на мојата програма. 181 00:12:12,940 --> 00:12:16,350 Сето ова се прави е создавање на нова тампон кој е доволно голем - 182 00:12:16,350 --> 00:12:22,020 и за оригиналната датотека и дополнителни линии на код - на hack - дека сакате да го внесете таму. 183 00:12:22,020 --> 00:12:24,920 Тука е нешто да се забележи - 184 00:12:24,920 --> 00:12:29,200 char * шема = "/ / им дозволат пристап!" 185 00:12:29,200 --> 00:12:33,760 Ако ги погледнеме назад во login.c, 186 00:12:33,760 --> 00:12:37,690 можеме да видиме овде на овој коментар - им дозволат пристап! 187 00:12:37,690 --> 00:12:42,360 Во login.c, овој коментар изгледа сосема безопасни, 188 00:12:42,360 --> 00:12:48,270 така да не би се сомневаат било малициозни намери само со овој коментар. 189 00:12:48,270 --> 00:12:55,600 Но, во нашата компајлер, ние се специјално случува да се погледне за оваа линија код, 190 00:12:55,600 --> 00:12:57,600 и тогаш кога ние го најдете - 191 00:12:57,600 --> 00:13:03,330 овие линии на код се вметнување на нашите пробие во таа позиција. 192 00:13:03,330 --> 00:13:06,910 Значи, ние сме процесирањето во текот на целиот login.c, 193 00:13:06,910 --> 00:13:12,080 ние сме вметнување дека hack точно каде што вели дека им дозволат пристап, 194 00:13:12,080 --> 00:13:15,890 а потоа ние сме составувањето - не е оригиналот login.c 195 00:13:15,890 --> 00:13:20,340 но новиот login.c со тоа hack вметната во право "да им дозволат пристап. ' 196 00:13:20,340 --> 00:13:29,190 >> Сега сакам да ги собере мојот нов компајлер со тоа hack вклучени. 197 00:13:29,190 --> 00:13:36,900 Јас не одам да се користи ѕвекот, па ајде копија на компајлерот ние се користи пред 198 00:13:36,900 --> 00:13:48,420 и ја користат таа - па, компајлерот compiler.c compile.c-о evil_compiler. 199 00:13:48,420 --> 00:13:50,870 Сега нашите зли компајлерот - 200 00:13:50,870 --> 00:13:54,310 ако ние ги користиме нашите зли компајлерот да ги собере било која друга датотека, 201 00:13:54,310 --> 00:13:57,980 на датотеката ќе собере како што треба. 202 00:13:57,980 --> 00:13:59,980 Тоа е сосема нормално. 203 00:13:59,980 --> 00:14:06,870 Но, ако ние ги користиме нашите зли компајлерот да ги собере најава - 204 00:14:06,870 --> 00:14:14,920 така, / evil_compiler login.c-о логирање-lcs50. - 205 00:14:14,920 --> 00:14:21,310 гледајќи login.c повторно, има апсолутно ништо тука. 206 00:14:21,310 --> 00:14:25,770 Тоа е нашата вообичаена 'ако е или одземеш или tommy ние сме во, друго ние сме надвор. 207 00:14:25,770 --> 00:14:31,620 Но кога трчаме нашата извршна, тоа ќе работи како и обично. 208 00:14:31,620 --> 00:14:36,640 Водење повторно - хакер, LOLihackyou - 209 00:14:36,640 --> 00:14:39,000 Пробиени! Сега имаш пристап. 210 00:14:39,000 --> 00:14:43,560 Само гледајќи login.c, вие не би помислил ништо не е во ред. 211 00:14:43,560 --> 00:14:46,960 Но компајлерот тоа е се користи за да собере login.c 212 00:14:46,960 --> 00:14:53,820 е специјално дизајнирана да вметнете овој пробие во програмата. 213 00:14:53,820 --> 00:14:57,320 Ние само се преселил нашата изворна проблем. 214 00:14:57,320 --> 00:15:02,880 Првично, ние имавме овие линии на код во login.c дека ако некој друг погледна на нив, 215 00:15:02,880 --> 00:15:05,470 тие ќе бидат како, зошто се овие тука? 216 00:15:05,470 --> 00:15:09,550 Сега, ако некој се случува да се погледне во нашата компајлер, 217 00:15:09,550 --> 00:15:12,140 тие ќе се погледне во овие линии на код и да каже, 218 00:15:12,140 --> 00:15:15,290 зошто се овие тука? 219 00:15:15,290 --> 00:15:17,210 Значи, ние не сме сосема реши нашиот проблем. 220 00:15:17,210 --> 00:15:22,510 Но, можеме да го користиме оваа идеја повторно. 221 00:15:22,510 --> 00:15:26,260 >> Гледано во нашата третата верзија на компајлерот, 222 00:15:26,260 --> 00:15:32,500 тоа е истата идеја. 223 00:15:32,500 --> 00:15:36,240 Ние го прочитате целиот датотека во тампон се тука, 224 00:15:36,240 --> 00:15:39,660 ние компајлирање на датотеката долу тука, 225 00:15:39,660 --> 00:15:44,220 и имам некој вид на низа hack овде, 226 00:15:44,220 --> 00:15:47,710 но забележите на датотеката која јас сум всушност хакирање сега. 227 00:15:47,710 --> 00:15:52,260 Јас сум хакирање compiler.c 228 00:15:52,260 --> 00:15:54,590 не login.c. 229 00:15:54,590 --> 00:15:57,780 Но, она што сум вметнување во compiler.c? 230 00:15:57,780 --> 00:16:04,600 Јас сум вметнување овој код кој е точниот код во нашите претходни компајлер, 231 00:16:04,600 --> 00:16:10,540 кој требаше да го внесете кодот во login.c. 232 00:16:10,540 --> 00:16:13,360 Тука е нашата доколку strcmp датотека login.c 233 00:16:13,360 --> 00:16:19,370 и потоа вметнете во login.c нашите hack работи. 234 00:16:19,370 --> 00:16:26,010 Овој нов компајлер е наменет да се создаде компајлерот 235 00:16:26,010 --> 00:16:30,390 кој е наменет да ги собере најава злобно. 236 00:16:30,390 --> 00:16:34,320 Ќе видиме зошто тоа ни помага. 237 00:16:34,320 --> 00:16:40,630 Сè друго е иста, па таа работи токму онака како што работеа со нашите претходни компајлерот. 238 00:16:40,630 --> 00:16:45,550 Ние сме само процесирањето над целата наша compile.c. 239 00:16:45,550 --> 00:16:48,190 Но сега наместо да барате "им дозволат пристап," 240 00:16:48,190 --> 00:16:51,490 ние сме во потрага за 'собере на датотеката. " 241 00:16:51,490 --> 00:16:53,750 Каде е компајлирате датотеката? 242 00:16:53,750 --> 00:16:57,210 Гледајќи нашата целосно невини compiler.c, 243 00:16:57,210 --> 00:17:01,340 тоа е право тука долу на дното. 244 00:17:01,340 --> 00:17:06,500 Овој коментар - компајлирање на датотеката - повторно, дека изгледа сосема безопасни. 245 00:17:06,500 --> 00:17:11,599 Но, во нашата малициозни верзија на компајлерот, 246 00:17:11,599 --> 00:17:16,550 ние се случува да - право пред тоа коментар - вметнете овој код 247 00:17:16,550 --> 00:17:20,690 кој е наменет да внесете код при составувањето login.c. 248 00:17:20,690 --> 00:17:25,589 >> Постојат голем број на нивоа на околни тука. 249 00:17:25,589 --> 00:17:29,760 Да, всушност се работи. 250 00:17:29,760 --> 00:17:37,360 Повторно, ние ќе копирате нашата изворна компајлерот. 251 00:17:37,360 --> 00:17:48,260 Сега, компајлирате - компајлерот compiler.c compile.c-о evilest_compiler - 252 00:17:48,260 --> 00:17:52,640 и сега evilest_compiler. 253 00:17:52,640 --> 00:17:59,200 Evilest компајлерот - ако ние ги користиме тоа да ги собере нашите компајлер, 254 00:17:59,200 --> 00:18:01,550 ајде да всушност изгледаат. 255 00:18:01,550 --> 00:18:13,230 Evilest_compiler - доведување повеќе, сите на патот назад кон верзија 1 на нашите компајлерот - 256 00:18:13,230 --> 00:18:19,640 верзија 1 на нашите компајлер кој беше само да читате на датотека и ги собира неа. 257 00:18:19,640 --> 00:18:24,780 Тука, ние знаеме дека evilest_compiler - кога компајлира оваа датотека - 258 00:18:24,780 --> 00:18:29,890 се случува да внесете код овде пред компајлирате датотеката, 259 00:18:29,890 --> 00:18:38,510 и дека кодот ќе изгледаат точно како го кодот од втора верзија на нашиот компајлерот 260 00:18:38,510 --> 00:18:42,240 кој го направи ова. 261 00:18:42,240 --> 00:18:46,450 Овој код, кој е наменет да се пробие во најава, 262 00:18:46,450 --> 00:18:56,480 се случува да бидат вклучени во нашата компајлерот од evilest компајлерот. 263 00:18:56,480 --> 00:19:08,600 Ајде да го користите evilest_compiler да ги собере нашите компајлерот. 264 00:19:08,600 --> 00:19:15,040 Сега ние ќе ги користат компајлер, 265 00:19:15,040 --> 00:19:19,460 се врати во текот на најавите, 266 00:19:19,460 --> 00:19:25,280 и се сеќавам ова login.c има апсолутно ништо сомнително во неа. 267 00:19:25,280 --> 00:19:35,250 Но користење на нашата компајлерот да ги собере login.c, 268 00:19:35,250 --> 00:19:38,430 Роб, thisiscs50, успех. 269 00:19:38,430 --> 00:19:44,350 Најава хакер Ајде, LOLihackyou, Хакирано! Сега имаш пристап. 270 00:19:44,350 --> 00:19:49,710 >> Признаваат дека тоа беше поинаква од верзија 2 на нашите компајлерот. 271 00:19:49,710 --> 00:20:00,500 Компајлерот ние ги користиме - ајде да се движи назад - копија од најавите - 272 00:20:00,500 --> 00:20:01,880 ајде да донесе нашите компајлерот врати тука. 273 00:20:01,880 --> 00:20:06,360 Отстранување evilest компајлерот. 274 00:20:06,360 --> 00:20:08,970 Сите сме го оставиле сега е компајлерот. 275 00:20:08,970 --> 00:20:10,950 Ако ги погледнеме compiler.c, 276 00:20:10,950 --> 00:20:16,840 постои апсолутно ништо таму што се чини дека малициозен на било кој начин. 277 00:20:16,840 --> 00:20:22,390 Ако ги погледнеме login.c, 278 00:20:22,390 --> 00:20:28,790 постои апсолутно ништо тука што изгледа малициозен на било кој начин. 279 00:20:28,790 --> 00:20:34,600 Но, кога ние ги користиме нашите компајлерот да ги собере login.c, 280 00:20:34,600 --> 00:20:38,840 ќе го добиеме hackable верзија на login.c. 281 00:20:38,840 --> 00:20:41,850 Кога ние се користи нашата компајлерот да се состави новата верзија на компајлерот, 282 00:20:41,850 --> 00:20:46,620 ќе го добиеме hackable верзија на компајлерот. 283 00:20:46,620 --> 00:20:51,790 Сега ако одиме надвор и да се дистрибуираат нашите компајлерот извршна, 284 00:20:51,790 --> 00:20:59,280 и никој нема да знае дека има нешто малициозни за тоа. 285 00:20:59,280 --> 00:21:04,680 >> Ова е всушност тоа во - Не можам да се сетам на годината - 286 00:21:04,680 --> 00:21:10,350 Кен Томпсон, и тој ја освои наградата Туринг - 287 00:21:10,350 --> 00:21:15,600 ако сте запознаени со награда Тјуринг, тоа е речиси секогаш дефиниран како 288 00:21:15,600 --> 00:21:20,160 Нобеловата награда на информатиката, па тоа е како јас ќе го дефинираат. 289 00:21:20,160 --> 00:21:24,100 Кен Томпсон одржа говор кога ја добил неговата Туринг награда 290 00:21:24,100 --> 00:21:27,150 наречен "Рефлексии на Верувајќи доверба." 291 00:21:27,150 --> 00:21:30,710 Во суштина, ова беше идеја на неговиот говор. 292 00:21:30,710 --> 00:21:35,050 Освен наместо на нашите компајлер, зборуе GCC - 293 00:21:35,050 --> 00:21:37,250 само уште еден компајлерот како ѕвекот - 294 00:21:37,250 --> 00:21:45,600 и она што тој го кажа е, како нашите login.c, нашите login.c чини релативно бескорисни 295 00:21:45,600 --> 00:21:50,190 но тој зборуваше за актуелните UNIX login.c. 296 00:21:50,190 --> 00:21:53,050 Кога ќе се најавите на вашиот уред, 297 00:21:53,050 --> 00:21:56,070 постои некоја најава програма која се извршува. 298 00:21:56,070 --> 00:21:58,080 Тоа беше најава дека зборуе. 299 00:21:58,080 --> 00:22:02,420 Ова е во основа неговата идеја. 300 00:22:02,420 --> 00:22:09,080 Тој рече дека во GCC, тој во теорија би можеле да имаат засадени бубачка - 301 00:22:09,080 --> 00:22:12,290 не е бубачка но малициозен код - 302 00:22:12,290 --> 00:22:16,860 дека при составувањето на најава функција - се најавите датотека - 303 00:22:16,860 --> 00:22:23,700 ќе вметнете задната врата, така што тој може да оди на апсолутно секој Unix систем во светот 304 00:22:23,700 --> 00:22:27,360 и најавите со некои специфични корисничко име и лозинка. 305 00:22:27,360 --> 00:22:33,710 Во тоа време, GCC беше доста компајлерот дека секој користи за ништо. 306 00:22:33,710 --> 00:22:36,460 Ако некој се случи да се ажурира GCC, 307 00:22:36,460 --> 00:22:40,880 тогаш тие ќе прекомпајлирате GCC користење на GCC, 308 00:22:40,880 --> 00:22:44,500 а вие сепак ќе добиете лоша верзија на GCC 309 00:22:44,500 --> 00:22:50,140 бидејќи тоа беше специјално составени да се признае дека тоа беше рекомпајлирање на компајлерот. 310 00:22:50,140 --> 00:22:57,360 И ако некогаш ги користите GCC да го прекомпајлирате на login.c датотека, 311 00:22:57,360 --> 00:23:03,550 тогаш тоа ќе вметнете овој задната врата дека тој може да се користи за да се логирате на било кој компјутер. 312 00:23:03,550 --> 00:23:08,750 >> Тоа беше теоретски, но - тоа какви околности беше теоретски, 313 00:23:08,750 --> 00:23:12,440 но идеи се многу реални. 314 00:23:12,440 --> 00:23:18,250 Во 2003 година, имало сличен пример, каде што - 315 00:23:18,250 --> 00:23:21,290 ние ќе ги разгледаме во оваа датотека, 316 00:23:21,290 --> 00:23:25,870 и има апсолутно ништо да всушност се направи со неа, но бубачка е слична. 317 00:23:25,870 --> 00:23:29,390 Оваа датотека само дефинира функција наречена јаз. 318 00:23:29,390 --> 00:23:31,780 Таа ги зема кавга, аргумент б, 319 00:23:31,780 --> 00:23:34,270 и намерата е да се направи поделено со б. 320 00:23:34,270 --> 00:23:37,230 Но, тоа не некои грешка проверка, 321 00:23:37,230 --> 00:23:40,070 па знаеме работите се чудни ако б случува да изнесува нула. 322 00:23:40,070 --> 00:23:44,900 Ако б е нула, тогаш се подели тоа во 2 случаи. 323 00:23:44,900 --> 00:23:46,900 Вие веќе може да се види бубачка. 324 00:23:46,900 --> 00:23:51,840 Првиот случај - ако е нула, тогаш ние сме прави нула поделено со нула, 325 00:23:51,840 --> 00:23:54,300 а ние само се каже дека е недефинирана. 326 00:23:54,300 --> 00:23:56,250 Вториот случај - ако не е нула, 327 00:23:56,250 --> 00:24:00,580 тогаш тоа е нешто како 1 поделен со нула, а ние само повик дека бесконечност. 328 00:24:00,580 --> 00:24:03,730 Друго се врати на вообичаениот поделена од страна на б. 329 00:24:03,730 --> 00:24:06,390 И така тука, ние сме трчање оние 3 случаи, 330 00:24:06,390 --> 00:24:13,740 и ние всушност се кандидира јаз - тоа вика на него за мене - 331 00:24:13,740 --> 00:24:21,330 Значи, игнорирајќи ги предупредувањата ѕвекот на - 332 00:24:21,330 --> 00:24:24,500 крајот на не-празнина функција - очигледно јас не собере претходно. 333 00:24:24,500 --> 00:24:26,500 Врати 0. 334 00:24:26,500 --> 00:24:28,900 Направи поделба - сите права. 335 00:24:28,900 --> 00:24:32,470 Со. / Јаз, можеме да видиме 3, Infinity, Инфинити. 336 00:24:32,470 --> 00:24:39,150 Нула поделено со нула не треба да се врати бесконечност. 337 00:24:39,150 --> 00:24:42,840 И ако не сте го сфатиле бубачка уште - или не го види пред - 338 00:24:42,840 --> 00:24:46,800 можеме да видиме дека ние сме прави = 0. 339 00:24:46,800 --> 00:24:52,610 Веројатно ние значи == 0. Веројатно. 340 00:24:52,610 --> 00:24:58,640 >> Но, тоа е всушност нешто што, пак, во 2003 година, на Linux кернелот - 341 00:24:58,640 --> 00:25:02,260 така и нашата апаратот користи Linux kernel - 342 00:25:02,260 --> 00:25:05,550 било Линукс оперативен систем користи Linux kernel - 343 00:25:05,550 --> 00:25:11,610 па бубачка многу слични на оваа се појавил. 344 00:25:11,610 --> 00:25:15,180 Идејата зад овој баг е - 345 00:25:15,180 --> 00:25:18,820 Повторно, имаше само некои функција која се викаше, и тоа го правеше малку грешка проверка. 346 00:25:18,820 --> 00:25:24,300 Имаше некои специфични влезови дека оваа грешка проверка - 347 00:25:24,300 --> 00:25:30,210 тоа треба да се како, добро, не можете да се јавите на оваа функција со делител на 0. 348 00:25:30,210 --> 00:25:35,070 Значи, јас ќе одам да само се вратат некои грешка. 349 00:25:35,070 --> 00:25:38,090 Освен, тоа не беше како невини како само поставување на еднакви на 0. 350 00:25:38,090 --> 00:25:46,920 Наместо тоа, оваа линија на кодот заврши нешто повеќе како корисник = администраторот. 351 00:25:46,920 --> 00:25:50,500 Или кориснички = супер. 352 00:25:50,500 --> 00:25:59,170 Тоа беше еден невин - на прв поглед - грешка каде што би можеле да имаат само е разумно 353 00:25:59,170 --> 00:26:01,560 дека јас само сакав да го пријавите нешто посебно 354 00:26:01,560 --> 00:26:05,150 ако корисникот се случи да биде супер администратор. 355 00:26:05,150 --> 00:26:11,220 Но, тогаш повторно размислување за тоа, лицето сакаше тоа да изгледа како едноставна грешка, 356 00:26:11,220 --> 00:26:14,330 но ако овој код всушност е пуштен на слобода, 357 00:26:14,330 --> 00:26:21,580 тогаш би биле во можност да се пробие во било кој систем со донесување на посебни знаме - 358 00:26:21,580 --> 00:26:25,200 во овој случај b = 0 - 359 00:26:25,200 --> 00:26:28,020 и тој автоматски ќе го направи на корисникот администратор, 360 00:26:28,020 --> 00:26:30,400 и тогаш тој има целосна контрола. 361 00:26:30,400 --> 00:26:32,540 Ова се случи во 2003 година. 362 00:26:32,540 --> 00:26:35,700 >> Тоа само така се случи само заради тоа бил фатен 363 00:26:35,700 --> 00:26:39,200 е затоа што таму се случи да биде некои автоматски систем 364 00:26:39,200 --> 00:26:41,540 што забележав промена во оваа датотека 365 00:26:41,540 --> 00:26:44,560 која никогаш не треба да се променат од страна на човекот. 366 00:26:44,560 --> 00:26:47,580 На датотеката треба само да се автоматски генерирани. 367 00:26:47,580 --> 00:26:49,780 Тоа едноставно така се случило дека некој го допре - 368 00:26:49,780 --> 00:26:52,460 добро, лицето кое сака да се пробие допре таа датотека, 369 00:26:52,460 --> 00:26:55,450 и компјутерот фатени дека допирање. 370 00:26:55,450 --> 00:27:01,750 Значи, тие се промени тоа и дури подоцна сфатиле колку катастрофа што би биле 371 00:27:01,750 --> 00:27:04,830 ако тоа го тргнете во реалниот свет. 372 00:27:04,830 --> 00:27:08,220 >> Може да се размислува дека - се враќаат во нашата компајлерот пример - 373 00:27:08,220 --> 00:27:14,290 иако не можеме да видиме - во потрага на sourcecode - 374 00:27:14,290 --> 00:27:17,490 дека ништо посебно не е во ред, 375 00:27:17,490 --> 00:27:25,460 ако ние всушност се погледне на бинарен код на компајлерот, 376 00:27:25,460 --> 00:27:28,670 ќе видиме дека нешто не е во ред. 377 00:27:28,670 --> 00:27:31,260 Како пример, ако ние се кандидира на жици функционира - 378 00:27:31,260 --> 00:27:34,930 што е само ќе се погледне во текот на датотека и печати од сите жици може да се најде - 379 00:27:34,930 --> 00:27:37,990 ако трчаме жици на нашите компајлер, 380 00:27:37,990 --> 00:27:42,400 можеме да видиме дека еден стринг кој се наоѓа е овој чуден - 381 00:27:42,400 --> 00:27:45,500 друго, ако (strcmp (корисничко име, "хакер") - бла, бла, бла. 382 00:27:45,500 --> 00:27:52,570 Ако некој се случи да биде параноичен доволно за да не им веруваат на компајлерот, 383 00:27:52,570 --> 00:27:56,690 тие би можеле да работат жици и види ова, 384 00:27:56,690 --> 00:28:00,430 а потоа тие ќе знаат дека има нешто во ред со вистински бинарни. 385 00:28:00,430 --> 00:28:07,250 Но, стрингови беше неизбежно нешто што беше составена. 386 00:28:07,250 --> 00:28:11,590 Значи, кој е да се каже дека нашите компајлерот не само имаат повеќе специјални код 387 00:28:11,590 --> 00:28:19,240 кој се вели дека, ако жици е постојано работи на нашето компајлер, не излез сето тоа малициозен код. 388 00:28:19,240 --> 00:28:23,980 >> Истата идеја со ако сакаме да дис-соберат на датотеката - 389 00:28:23,980 --> 00:28:30,440 дознавме дека асемблер ни носи од асемблерски код на машина код - 390 00:28:30,440 --> 00:28:36,010 можеме да одиме во спротивна насока - objdump-г компајлерот - 391 00:28:36,010 --> 00:28:38,770 ќе ни даде на собранието на нашиот код. 392 00:28:38,770 --> 00:28:41,730 Гледајќи ова, 393 00:28:41,730 --> 00:28:47,480 тоа е прилично криптичната, но ако сакаме, можеме да се погледне во текот на овој 394 00:28:47,480 --> 00:28:51,700 и разумот, чекај, има нешто се случува тука дека не треба да се случува, 395 00:28:51,700 --> 00:28:59,380 а потоа ќе познаеме дека на компајлерот прави нешто злонамерно. 396 00:28:59,380 --> 00:29:03,950 Но, исто како стрингови, кој е да се каже objdump не беше специјални латински. 397 00:29:03,950 --> 00:29:11,380 Во суштина, се сведува на не можете да му верувате ништо. 398 00:29:11,380 --> 00:29:14,310 Поентата на хартија се нарекува "Верувајќи Доверба" ​​е 399 00:29:14,310 --> 00:29:17,900 Во принцип, ние им веруваме на нашите компајлерот. 400 00:29:17,900 --> 00:29:21,700 Ќе компајлирате вашиот код и да очекувате тоа да го направи она што ве праша што да прави. 401 00:29:21,700 --> 00:29:26,440 Но, зошто треба да му верувате на компајлерот? 402 00:29:26,440 --> 00:29:32,120 Вие не пишувам на компајлерот. Ти не знаеш што компајлерот е нужно всушност прави. 403 00:29:32,120 --> 00:29:36,870 Кој е да каже можете да го верувам? 404 00:29:36,870 --> 00:29:40,050 Но, дури и тогаш, добро, можеби можеме да и веруваме на компајлерот. 405 00:29:40,050 --> 00:29:44,670 Постојат десетици илјади луѓе кои погледна ова. 406 00:29:44,670 --> 00:29:51,360 Некој мора да имаат признаено дека нешто не е во чекор со компајлерот. 407 00:29:51,360 --> 00:29:55,100 >> Што ако ние само одиме 1 ниво подлабоко? 408 00:29:55,100 --> 00:29:59,450 Тоа дури може да биде вашиот процесор. 409 00:29:59,450 --> 00:30:01,250 Како смешно како што веројатно би можело да биде, 410 00:30:01,250 --> 00:30:06,690 можеби има некои непринципиелни вработен во Интел кој создава овие процесори 411 00:30:06,690 --> 00:30:12,400 дека секогаш кога тоа процесор забележува дека сте водење некои команда 412 00:30:12,400 --> 00:30:14,570 што е наменета да се најавите на компјутер, 413 00:30:14,570 --> 00:30:19,230 процесор ќе прифати некои специфични корисничко име и лозинка комбинација. 414 00:30:19,230 --> 00:30:21,530 Тоа ќе биде диво комплицирано, 415 00:30:21,530 --> 00:30:24,790 но некој може да го стори тоа. 416 00:30:24,790 --> 00:30:29,350 Во тој момент, дали сте навистина се случува да се отвори вашиот компјутер да се погледне на процесор 417 00:30:29,350 --> 00:30:35,970 и употреба на микроскоп да се признае дека овие кола не се наредени како што треба да биде? 418 00:30:35,970 --> 00:30:39,730 Никој не е некогаш ќе се фати дека грешка. 419 00:30:39,730 --> 00:30:45,570 Во одреден момент, вие само треба да се откаже и доверба нешто. 420 00:30:45,570 --> 00:30:48,390 Повеќето луѓе не им веруваат на компајлерот во овој момент. 421 00:30:48,390 --> 00:30:55,760 Тоа е да се каже не значи дека ти треба. 422 00:30:55,760 --> 00:30:59,350 Гледајќи нешто злогласните видео - 423 00:30:59,350 --> 00:31:09,280 [Драматични музички] 424 00:31:09,280 --> 00:31:13,270 [Тоа е систем UNIX. Знам дека ова.] 425 00:31:13,270 --> 00:31:14,470 [Тоа е сите датотеки -] 426 00:31:14,470 --> 00:31:18,950 Таа рече: "Тоа е систем UNIX. Знам дека ова". 427 00:31:18,950 --> 00:31:21,760 Заменете UNIX со она што вашиот омилен оперативен систем е - 428 00:31:21,760 --> 00:31:25,230 таа може да се рече, "Тоа е систем Windows. Знам дека ова". 429 00:31:25,230 --> 00:31:29,710 Тоа е потполно бесмислени изјава, 430 00:31:29,710 --> 00:31:34,450 туку и за сите што знаеме, таа се случува да се знае задната врата во системот на UNIX. 431 00:31:34,450 --> 00:31:38,840 Таа знае некои корисничко име / лозинка комбинација која, всушност, ќе нека 432 00:31:38,840 --> 00:31:41,540 направи она што таа го сака. 433 00:31:41,540 --> 00:31:49,000 >> Во ред. Поуката од денес е во основа не можете да му верувате ништо. 434 00:31:49,000 --> 00:31:52,620 Дури и она што пишува - вие не пишувам на компајлерот. 435 00:31:52,620 --> 00:31:53,870 Компајлерот може да биде лошо. 436 00:31:53,870 --> 00:31:59,140 Дури и ако не пишувам на компајлерот, она што е водење на компајлерот може да биде лошо. 437 00:31:59,140 --> 00:32:05,210 (Се смее) Нема многу што можете да направите. 438 00:32:05,210 --> 00:32:09,050 Светот се осудени на пропаст. 439 00:32:09,050 --> 00:32:11,570 Вратете се на Давидов! 440 00:32:11,570 --> 00:32:19,540 [Аплауз] 441 00:32:19,540 --> 00:32:21,340 >> [Дејвид] Благодарам. Тоа беше навистина депресивно. 442 00:32:21,340 --> 00:32:23,910 Но, навистина, Роб е точно. 443 00:32:23,910 --> 00:32:27,150 Ние навистина не имаат решение за тоа, но вие сте за да се добијат некои решенија 444 00:32:27,150 --> 00:32:29,150 некои почести одбрана. 445 00:32:29,150 --> 00:32:31,170 Во пресрет на ова, она Нејт и јас се прави надвор од сцената таму 446 00:32:31,170 --> 00:32:33,950 е да се знае дека постојат толку многу лаптопи во оваа соба, 447 00:32:33,950 --> 00:32:37,020 ние сме биле душкаат сите безжични сообраќај поминува низ соба во изминатите 20 минути 448 00:32:37,020 --> 00:32:39,260 време за разговор на Rob, па ние ќе да се донесе 2 минутна пауза тука. 449 00:32:39,260 --> 00:32:41,740 Нејт се случува да се постави, а потоа ние ќе зборуваме за сите работи 450 00:32:41,740 --> 00:32:46,380 би можеле да се најде. (Смеа) 451 00:32:46,380 --> 00:32:51,990 >> Значи, јас може да се претерани малку само за доброто на драма, 452 00:32:51,990 --> 00:32:55,990 но ние би можеле да се душкаат сите на вашата безжична сообраќајот, бидејќи, навистина, 453 00:32:55,990 --> 00:32:57,240 тоа е толку едноставно. 454 00:32:57,240 --> 00:32:59,790 Но, исто така, постојат начини на кои можете да ги бранат против тоа, и така со тоа, 455 00:32:59,790 --> 00:33:03,160 Јас ви даде Нејт Hardison. >> [Нејт] Слатка. 456 00:33:03,160 --> 00:33:06,300 (Аплауз) 457 00:33:06,300 --> 00:33:08,650 >> [Нејт] Ви благодариме, човеку. Ја ценам викне надвор. 458 00:33:08,650 --> 00:33:12,790 Сите во право! Тоа е играта недела. Дали сте момци возбудени? 459 00:33:12,790 --> 00:33:16,670 Се надеваме дека тоа ќе биде голем натпревар во сабота. 460 00:33:16,670 --> 00:33:20,220 Те замислувам момци во овој момент - со оглед дека имате квиз во средата 461 00:33:20,220 --> 00:33:24,430 за сите код, а ние само са преку прекрасно предавање од Роб 462 00:33:24,430 --> 00:33:25,850 со еден куп на C код во него - 463 00:33:25,850 --> 00:33:28,330 можеби се малку уморни од код. 464 00:33:28,330 --> 00:33:32,180 Во овој дел, ние, всушност, не се случува да се допре било код она. 465 00:33:32,180 --> 00:33:36,960 Ние сме само ќе зборуваме за технологија која ќе ги користиме секој ден, 466 00:33:36,960 --> 00:33:39,790 често за многу, многу часа на ден, 467 00:33:39,790 --> 00:33:46,220 и ние ќе зборуваме за импликациите со сигурност дека постојат. 468 00:33:46,220 --> 00:33:48,960 >> Ние зборуваше многу за безбедноста во текот на семестарот, 469 00:33:48,960 --> 00:33:53,030 и ние започна со малку крипто. 470 00:33:53,030 --> 00:33:55,030 [Bdoh лева vwlqng!] 471 00:33:55,030 --> 00:33:57,890 И додека вие сте веројатно супер возбудени да се поминува белешки едни на други 472 00:33:57,890 --> 00:33:59,890 во класа користење на шифра Цезар како овој, 473 00:33:59,890 --> 00:34:03,870 во реалноста, има некои повеќе да се забавуваат, да се имаа кога сте всушност зборуваме за безбедноста 474 00:34:03,870 --> 00:34:05,870 и тој вид на работи. 475 00:34:05,870 --> 00:34:09,090 Денес, ние ќе покриеме неколку технологии 476 00:34:09,090 --> 00:34:13,650 дека луѓето всушност ги користат во реалниот свет да направите сите видови на нештата 477 00:34:13,650 --> 00:34:18,360 од кои душкаат луѓето пакети всушност се случува во и 478 00:34:18,360 --> 00:34:20,409 кршење на банкарските сметки на луѓето и сето тоа. 479 00:34:20,409 --> 00:34:23,460 Ова се легитимни алатки кои ние зборуваме за 480 00:34:23,460 --> 00:34:26,320 со исклучок на можеби една алатка. 481 00:34:26,320 --> 00:34:28,889 >> И јас само сакам да се направи брзо предупредувања. 482 00:34:28,889 --> 00:34:34,909 Кога зборуваме за овие работи, ние зборуваме за нив, па да знаете што е таму, 483 00:34:34,909 --> 00:34:39,389 и сте свесни за тоа како да се биде безбеден кога сте со користење на вашиот компјутер. 484 00:34:39,389 --> 00:34:44,000 Но, ние дефинитивно не сакам да се имплицира дека треба да ги користат овие алатки 485 00:34:44,000 --> 00:34:48,090 во вашиот дом или вашата куќа, бидејќи можете да го извршите во многу големи проблеми. 486 00:34:48,090 --> 00:34:52,760 Тоа е една од причините денес дека ние всушност не се душкаат вашите пакети. 487 00:34:52,760 --> 00:35:01,300 >> Во ред. Минатиот понеделник, ние разговаравме за колачиња, и HTTP, и автентикација, 488 00:35:01,300 --> 00:35:05,920 и како Firesheep отвора оваа голема врата во вашиот Фејсбук профил, 489 00:35:05,920 --> 00:35:08,670 да вашиот Hotmail сметка - ако некој е уште користите Hotmail - 490 00:35:08,670 --> 00:35:12,360 и многу други сметки. 491 00:35:12,360 --> 00:35:16,980 А многу на овој материјал се случува да се изгради надвор од тоа, 492 00:35:16,980 --> 00:35:22,070 Но, прво, сакам да се земе брз турнеја на тоа како на интернет има еволуирале со текот на времето. 493 00:35:22,070 --> 00:35:27,490 Назад во 90-тите, вие момци може да се сети всушност приклучување 494 00:35:27,490 --> 00:35:29,880 вашите компјутери со еден од овие. 495 00:35:29,880 --> 00:35:32,640 Сега ние не го сторат тоа толку многу повеќе. 496 00:35:32,640 --> 00:35:37,230 Тоа всушност излегува дека со цел да го приклучиш на Ethernet кабел во мојот лаптоп, 497 00:35:37,230 --> 00:35:41,710 Јас сега треба да користите една од овие адаптери кој е вид на луд. 498 00:35:41,710 --> 00:35:47,580 >> Наместо тоа, во 1997 година ние имавме оваа нова, забава технологија 499 00:35:47,580 --> 00:35:54,960 излезе дека е познат како IEEE 802,11, па ова е безжичен интернет стандард 500 00:35:54,960 --> 00:36:00,430 На IEEE е ова управно тело, кој дава на сите видови на - 501 00:36:00,430 --> 00:36:04,770 објавува сите видови на стандарди со однос на компјутери. 502 00:36:04,770 --> 00:36:08,780 802 стандарди се сите за интернет технологии. 503 00:36:08,780 --> 00:36:12,690 Значи 802,3, на пример, е Ethernet стандард, 504 00:36:12,690 --> 00:36:17,120 802.15.1 јас верувам дека е на Bluetooth стандард, 505 00:36:17,120 --> 00:36:19,540 и 802,11 е за сите безжичен интернет. 506 00:36:19,540 --> 00:36:24,150 Во 1997 година овој излезе. Тоа не сосема се фати за веднаш. 507 00:36:24,150 --> 00:36:30,200 Таа не беше до 1999 година и 802.11b стандард излезе дека само што влегов навистина популарни. 508 00:36:30,200 --> 00:36:36,330 >> Како и многумина од вас се сеќавам кога компјутери почнаа да доаѓаат надвор и добивање на Wi-Fi на нив? 509 00:36:36,330 --> 00:36:38,330 Тоа беше вид на кул, нели? 510 00:36:38,330 --> 00:36:41,260 Се сеќавам добивање на мојот прв лаптоп во средно училиште, 511 00:36:41,260 --> 00:36:44,250 и имаше безжична картичка во него. 512 00:36:44,250 --> 00:36:49,580 Татко ми ми го даде и велеше дека јас треба да ја користите за мојот колеџ апликации и сето тоа, 513 00:36:49,580 --> 00:36:53,030 и немав идеја како ќе одам да се погледне до овој материјал онлајн. 514 00:36:53,030 --> 00:36:54,640 Но, за среќа, имав безжична картичка, така што беше прилично кул. 515 00:36:54,640 --> 00:37:04,090 Денес, исто така, ќе видите 802.11g кој е еден од другите навистина популарен 516 00:37:04,090 --> 00:37:06,090 безжични стандарди, тоа е таму. 517 00:37:06,090 --> 00:37:08,660 Двете б и g се прилично застарени во овој момент. 518 00:37:08,660 --> 00:37:12,580 Секој знае која верзија повеќето луѓе се токму сега 519 00:37:12,580 --> 00:37:15,110 ако тие се купуваат нови безжични рутери и тој вид на работи? 520 00:37:15,110 --> 00:37:24,290 Н Токму така. Бинго. И излегува дека на наизменична струја стандард е само излегува во нацрт-форма, 521 00:37:24,290 --> 00:37:28,050 и постојат други верзии на патот. 522 00:37:28,050 --> 00:37:31,190 Со секој од овие стандарди она што ние го добива е поголем опсег, 523 00:37:31,190 --> 00:37:33,900 повеќе податоци на побрзо стапка. 524 00:37:33,900 --> 00:37:36,260 Овие работи постојано се менуваат многу брзо. 525 00:37:36,260 --> 00:37:39,880 Таа, исто така го прави така што ние треба да купуваат повеќе рутери и сето тоа забава нешта. 526 00:37:39,880 --> 00:37:48,160 >> Ајде да зборуваме за она што безжична комуникација, всушност, е во неговото јадро. 527 00:37:48,160 --> 00:37:51,790 Со Ethernet и оние старите dial-up модеми, 528 00:37:51,790 --> 00:37:55,780 вие всушност имаа оваа нешта кои ви вклучени во вашиот компјутер, 529 00:37:55,780 --> 00:37:59,820 а потоа можете вклучен во модем на сорти, а потоа ќе го вклучени во приклучок во вашиот ѕид. 530 00:37:59,820 --> 00:38:01,820 Сте имале оваа кабелска конекција, нели? 531 00:38:01,820 --> 00:38:06,030 Целата поента на безжични е да се ослободиме од овие работи. 532 00:38:06,030 --> 00:38:10,300 Со цел да го направат тоа, она што го имаме е во суштина 533 00:38:10,300 --> 00:38:13,960 радио комуникација, каде што нашите безжичен рутер - 534 00:38:13,960 --> 00:38:16,230 назначени од нашата мала безжична икона - 535 00:38:16,230 --> 00:38:21,730 е поврзан на интернет со овој солидна стрелката некој вид на кабелска конекција, 536 00:38:21,730 --> 00:38:24,640 но кога ќе се поврзете со вашиот безжичен рутер 537 00:38:24,640 --> 00:38:29,190 сте всушност користење на речиси како токи-токи помеѓу 538 00:38:29,190 --> 00:38:31,960 вашиот компјутер и вашиот безжичен рутер. 539 00:38:31,960 --> 00:38:35,150 Она што е навистина кул за тоа е може да се движи наоколу. 540 00:38:35,150 --> 00:38:40,900 Можете да носат вашиот компјутер од целиот Сандерс, одат сурфање на интернет, она што го сакате, 541 00:38:40,900 --> 00:38:43,240 исто како што сите знаете и љубов, 542 00:38:43,240 --> 00:38:46,030 и никогаш не треба да бидат вклучени во ништо. 543 00:38:46,030 --> 00:38:53,880 За ова да работи, имаме и оваа примање и пренесување. 544 00:38:53,880 --> 00:38:56,060 Тоа навистина е како што токи-токи. 545 00:38:56,060 --> 00:39:03,800 >> Овој безжичен рутер - кој во Сандерс седи под оваа фаза, токму тука - 546 00:39:03,800 --> 00:39:06,590 секогаш емитување и примање, емитување и примање, 547 00:39:06,590 --> 00:39:09,330 и, исто така, вашите компјутери се прави истата вид на работа, премногу. 548 00:39:09,330 --> 00:39:12,840 Ние едноставно не може да го слушнеш. 549 00:39:12,840 --> 00:39:17,900 Од друга работа што можете да направите е да може да имате повеќе компјутери 550 00:39:17,900 --> 00:39:22,200 зборува на истиот безжичен рутер. 551 00:39:22,200 --> 00:39:25,680 Колку сте поблиску до рутер - и повторно, ова е радио комуникација - 552 00:39:25,680 --> 00:39:30,320 колку сте поблиску, толку подобро вашиот сигнал е, толку подобро вашиот компјутер слуша "на рутерот 553 00:39:30,320 --> 00:39:32,460 и може да комуницира со интернет. 554 00:39:32,460 --> 00:39:39,520 Ако вие момци се секогаш во вашата dorm, во твојата куќа и ти се прашувате зошто вашиот сигнал е лошо, 555 00:39:39,520 --> 00:39:42,230 тоа е веројатно затоа а). вие не сте многу блиску до вашиот рутер, или 556 00:39:42,230 --> 00:39:46,930 б). има нешто помеѓу вас и вашиот рутер како бетонски ѕид или нешто 557 00:39:46,930 --> 00:39:50,720 што не ги споделите со оние радио бранови одат преку. 558 00:39:50,720 --> 00:39:57,850 >> Ајде да зборуваме малку за тоа зошто лошите момци како Wi-Fi. 559 00:39:57,850 --> 00:40:02,980 Лошите момци сакаат Wi-Fi за неколку причини. 560 00:40:02,980 --> 00:40:06,670 Тука е нашата грозен лошо момче право таму. 561 00:40:06,670 --> 00:40:10,660 Една од причините зошто ова лошо момче сака Wi-Fi 562 00:40:10,660 --> 00:40:18,770 е затоа што, по правило, многу безжични рутери дојде и кога ќе ги постави, 563 00:40:18,770 --> 00:40:20,950 тие се енкриптирани. 564 00:40:20,950 --> 00:40:23,970 Ова е проблем, а имало и случаи - 565 00:40:23,970 --> 00:40:28,210 повеќекратни инстанци, сега - каде негативец покажува до куќата нечија, 566 00:40:28,210 --> 00:40:32,630 забележи дека има енкриптирани Wi-Fi за кои тие можат да се поврзете. 567 00:40:32,630 --> 00:40:37,350 Тие се поврзете со Wi-Fi, а потоа тие да започнат преземете сите видови на забава нешта. 568 00:40:37,350 --> 00:40:40,890 И тие не се симнување на мачиња, тие не се симнување на кученцата. 569 00:40:40,890 --> 00:40:44,610 Ова е како BitTorrent. Ова е грозен на nastiest. 570 00:40:44,610 --> 00:40:48,740 Имало случаи каде што ФБИ дури и добивано вклучени 571 00:40:48,740 --> 00:40:52,390 мислејќи дека лицето кое го поседува куќа е всушност еден 572 00:40:52,390 --> 00:40:56,090 Излегувам таму и симнување на нешто што тие навистина не треба да биде. 573 00:40:56,090 --> 00:41:00,730 Ја енкриптирани Wi-Fi дефинитивно не е нешто што сакате да направите, 574 00:41:00,730 --> 00:41:06,340 ако само за да не имаат на ФБИ доаѓаат затропа на вашата врата. 575 00:41:06,340 --> 00:41:09,910 >> Друга причина зошто лошите момци сакаат Wi-Fi 576 00:41:09,910 --> 00:41:13,870 е причината што Давид зборуваше за порано за време на паузата. 577 00:41:13,870 --> 00:41:17,240 Бидејќи тоа е радио комуникација на неговото јадро, 578 00:41:17,240 --> 00:41:22,460 ако знаете на канал, можете да слушате дека радио станица. 579 00:41:22,460 --> 00:41:31,870 На пример, ако има лош право таму седи во средината веднаш до пристапна точка, 580 00:41:31,870 --> 00:41:36,830 веднаш до кој безжичен рутер, лош човек може да го слушнете во на сите безжични сообраќај 581 00:41:36,830 --> 00:41:40,240 тоа е доаѓаат од сите оние компјутери. 582 00:41:40,240 --> 00:41:44,590 Всушност, овие момци - овие среќа неколку, кои се тука во предниот ред - 583 00:41:44,590 --> 00:41:47,610 бидејќи тие се супер-блиску до сите овие безжични рутери 584 00:41:47,610 --> 00:41:49,950 кои седат само под сцената, 585 00:41:49,950 --> 00:41:53,780 тие ќе бидат во можност да се слушне сообраќај на секого во оваа целата соба 586 00:41:53,780 --> 00:41:59,480 ако сте поврзани со Wi-Fi и почнете да ги прелистувате низ овие точки за пристап. 587 00:41:59,480 --> 00:42:03,740 Тоа не е многу тешко да се седи во добра позиција да шмркаат и дознаам 588 00:42:03,740 --> 00:42:07,030 она што другите луѓе го прават. 589 00:42:07,030 --> 00:42:10,830 Тоа е нешто што треба да имајте на ум, особено ако не сте сигурни каде што пристапна точка е, 590 00:42:10,830 --> 00:42:15,010 а ти си бараат да речеме, на Старбакс. 591 00:42:15,010 --> 00:42:17,360 >> Излегува дека душкаат и сето тоа 592 00:42:17,360 --> 00:42:19,440 навистина не е сето тоа тешко да се направи. 593 00:42:19,440 --> 00:42:25,430 Има програма наречена tcpdump кои депонии сите видови на TCP сообраќај 594 00:42:25,430 --> 00:42:29,910 и можете да го извршите прилично едноставно - само како што го направив ова утро. 595 00:42:29,910 --> 00:42:32,810 Тука е малку депонија, а еве некои од сообраќај, што доаѓа во текот 596 00:42:32,810 --> 00:42:34,960 мојата мрежа во тоа време. 597 00:42:34,960 --> 00:42:41,500 Може да се види - ако кривогледство навистина тешко - има малку Spotify во таму. 598 00:42:41,500 --> 00:42:44,050 На врвот на tcpdump - бидејќи ова е еден вид на болка да се користи - 599 00:42:44,050 --> 00:42:48,860 има програма наречена Wireshark кој снопови, сето тоа во еден убав GUI. 600 00:42:48,860 --> 00:42:51,970 Wireshark е супер-корисна па ако одат за да се преземат вмрежување класи, 601 00:42:51,970 --> 00:42:56,780 ова е алатка која ќе дојде да се сака, бидејќи тоа ви помага да се сецира сите пакети 602 00:42:56,780 --> 00:42:59,400 кои се лебдат околу таму. 603 00:42:59,400 --> 00:43:01,810 Но, тоа, исто така, може да се користи за лошо. 604 00:43:01,810 --> 00:43:05,810 Тоа е многу едноставно да се само преземете оваа програма, подигнете го, 605 00:43:05,810 --> 00:43:09,300 започнете мрежна фаќање, и види сè што се случува - 606 00:43:09,300 --> 00:43:14,130 и филтер и не сите видови на забава нешта со неа. 607 00:43:14,130 --> 00:43:17,930 >> Од друга работа што можете да направите со безжична комуникација 608 00:43:17,930 --> 00:43:25,380 не само што може да прислушува но исто така можете да научите како да завртка со мрежата 609 00:43:25,380 --> 00:43:31,020 и внесе свој информации за контрола на искуство дека другите луѓе 610 00:43:31,020 --> 00:43:35,140 на истата безжична мрежа се добива. 611 00:43:35,140 --> 00:43:37,140 Ајде да ги разгледаме во тоа. 612 00:43:37,140 --> 00:43:40,700 Еве Firesheep - што знаеме и љубов од минатата недела - 613 00:43:40,700 --> 00:43:43,590 а тоа е дека прислушување технологија. 614 00:43:43,590 --> 00:43:50,360 Ако, на пример, сакавме да активно имаме лошо момче движење и плеткаме околу со 615 00:43:50,360 --> 00:43:52,690 еден од овие компјутери, 616 00:43:52,690 --> 00:43:58,380 Во ова сценарио ние имаме еден компјутер се обидува да одат сурфање на harvard.edu. 617 00:43:58,380 --> 00:44:04,690 Што се случува е, компјутерот прво испраќа порака до безжичен рутер и вели: 618 00:44:04,690 --> 00:44:07,920 еј, јас сакам да одам посета www.harvard.edu. 619 00:44:07,920 --> 00:44:10,610 Велат дека поради некоја причина тие се обидуваат да добијат информации за играта овој викенд. 620 00:44:10,610 --> 00:44:14,940 Лошо момче, бидејќи тој седи право во средината, 621 00:44:14,940 --> 00:44:18,730 веднаш до кои пристапна точка, може да се види дека комуникацијата доаѓа од компјутерот 622 00:44:18,730 --> 00:44:26,170 во рутер, и тој знае "Аха! Некој ќе harvard.edu." (Подмолно се смее) 623 00:44:26,170 --> 00:44:33,870 Таму ќе биде овој латентност додека комуникација оди од рутер 624 00:44:33,870 --> 00:44:37,780 надвор кон интернетот за да одат најде веб страница на harvard.edu-- 625 00:44:37,780 --> 00:44:42,020 како само вие момци сите знаеме откако ќе го направите вашиот PHP psets - 626 00:44:42,020 --> 00:44:45,680 и така лошо момче има малку време, малку прозорецот, 627 00:44:45,680 --> 00:44:49,410 во која тој може да одговори со некои работи. 628 00:44:49,410 --> 00:44:53,660 >> Да речеме ова лошо момче, се разбира, е Yaley. 629 00:44:53,660 --> 00:44:59,990 Тој реагира со harvardsucks.org. Boo! 630 00:44:59,990 --> 00:45:02,300 Лошо, лошо момче! Лош Yaley! 631 00:45:02,300 --> 00:45:06,020 Или уште полошо, тој може да одговори со тоа. [Http://youtu.be/ZSBq8geuJk0]. 632 00:45:06,020 --> 00:45:09,530 Јас ќе ти момци дознаам што е тоа. 633 00:45:09,530 --> 00:45:14,840 Ова е всушност технологија наречена Airpwn! кој беше дебитираше на 634 00:45:14,840 --> 00:45:18,950 еден од безбедносните конференции за неколку години назад. 635 00:45:18,950 --> 00:45:25,190 Со Airpwn! сте во можност да всушност инјектираат сообраќај назад во мрежата. 636 00:45:25,190 --> 00:45:30,060 Компјутери кои се обидуваат да се излезе на интернет и се обидува да дојде до 637 00:45:30,060 --> 00:45:33,090 Google.com, да Facebook.com, да harvard.edu 638 00:45:33,090 --> 00:45:39,190 види малициозни одговор дојде и веднаш се претпостави, во ред, 639 00:45:39,190 --> 00:45:43,550 тоа е одговор што го чекаше и заврши добивање содржини од 640 00:45:43,550 --> 00:45:48,860 harvardsucks.org или nameyourfavoriteshocksite.com, 641 00:45:48,860 --> 00:45:55,270 и можете да видите колку брзо работите ќе се влошат. 642 00:45:55,270 --> 00:46:00,190 >> Сите овие видови на нештата не може да се направи 643 00:46:00,190 --> 00:46:05,870 со овие жичен врски, бидејќи со жичана конекција 644 00:46:05,870 --> 00:46:08,710 тоа е тешко да Snoop на сообраќај. 645 00:46:08,710 --> 00:46:13,020 Ако сум лош човек и на едниот крај е вашиот компјутер 646 00:46:13,020 --> 00:46:14,460 и на другиот крај е вашиот рутер - вашиот модем - 647 00:46:14,460 --> 00:46:20,180 единствениот начин да се добие помеѓу таа врска е всушност да се сплетка мојот компјутер 648 00:46:20,180 --> 00:46:22,180 некаде во средината 649 00:46:22,180 --> 00:46:26,820 или направи нешто друго со рутер, нешто низводно. 650 00:46:26,820 --> 00:46:33,360 Но, со безжичен, тоа може да биде толку лесно како седи во првиот ред на училницата, 651 00:46:33,360 --> 00:46:38,200 и што можете да направите сите видови на непријатни нешта на луѓето во грб. 652 00:46:38,200 --> 00:46:41,570 >> Ајде да зборуваме за тоа како може да се брани против некои од овие работи. 653 00:46:41,570 --> 00:46:46,860 Луѓето кој го развил безжични стандарди - 802,11 - 654 00:46:46,860 --> 00:46:50,820 тие не се глупави луѓе од било која се протега на имагинацијата. 655 00:46:50,820 --> 00:46:56,110 Ова е кул технологија и кога дебитираше во 1999 година, 656 00:46:56,110 --> 00:47:00,780 тие излегоа со овој стандард наречен WEP. 657 00:47:00,780 --> 00:47:03,360 Можете да видите тука кога ќе се обидат и да се приклучи на безжична мрежа, 658 00:47:03,360 --> 00:47:07,450 имате сите видови на различни безбедносни опции. 659 00:47:07,450 --> 00:47:11,800 Тоа е вид на болка, бидејќи таму се 6 сите заедно 660 00:47:11,800 --> 00:47:14,790 и никогаш не навистина има смисла кои 1 да се придружи. 661 00:47:14,790 --> 00:47:19,190 Оваа 1, на врвот е првиот што тие дојдоа со нарекува WEP. 662 00:47:19,190 --> 00:47:27,960 WEP се залага за Wired Еквивалентно на приватност, верувам, 663 00:47:27,960 --> 00:47:31,730 Не безжична енкрипција протокол кој е заеднички соодветно. 664 00:47:31,730 --> 00:47:36,170 Поради тоа што се обидува да ви даде приватност еквивалент и безбедносна заштита 665 00:47:36,170 --> 00:47:40,590 еднаква на онаа на кабелска мрежа 666 00:47:40,590 --> 00:47:46,710 Со WEP што завршува се случува е, 667 00:47:46,710 --> 00:47:52,300 имате едноставен, малку лозинката што сте ја напишете и кој служи за да го криптирате 668 00:47:52,300 --> 00:47:56,210 сите ваши комуникација помеѓу вашиот компјутер и вашиот рутер. 669 00:47:56,210 --> 00:47:58,210 >> Што е проблемот со WEP иако? 670 00:47:58,210 --> 00:48:01,470 Лозинка со WEP е навистина краток, 671 00:48:01,470 --> 00:48:04,900 а исто така и сите го користат истиот точната лозинка, 672 00:48:04,900 --> 00:48:07,610  и така тоа е навистина лесно да се дешифрирате. 673 00:48:07,610 --> 00:48:10,580 Па многу брзо луѓето сфатиле дека WEP е проблем, 674 00:48:10,580 --> 00:48:16,100 а единствената причина зошто ти ја видите се појави уште на тој малиот човек е - 675 00:48:16,100 --> 00:48:18,890 постојат некои постари системи кои се користат WEP - 676 00:48:18,890 --> 00:48:25,710 што наместо да се гледа за се WPA, па дури и WPA2 стандарди 677 00:48:25,710 --> 00:48:29,130 кои беа објавени подоцна. 678 00:48:29,130 --> 00:48:35,040 Овие системи се многу подобра одат на заштита на безжичен интернет. 679 00:48:35,040 --> 00:48:41,090 Тоа, рече, тие се уште немаат некои hackability. 680 00:48:41,090 --> 00:48:44,010 Постојат алатки таму што може да оди направите тоа. 681 00:48:44,010 --> 00:48:47,490 Едно нешто посебно што може да биде гаден е дека 682 00:48:47,490 --> 00:48:55,370 ако да се поврзете и најавени на безжичен рутер и се користи некој вид на 683 00:48:55,370 --> 00:49:00,940 криптирана комуникација, излегува дека хакер лесно може да испрати еден пакет 684 00:49:00,940 --> 00:49:03,990 да се исклучите од рутер, 685 00:49:03,990 --> 00:49:07,220 и откако тие сум те исклучени тогаш тие може да го слушнете во - 686 00:49:07,220 --> 00:49:11,800 тие може да шмркаат овие пакети како што се обиде повторно да воспостави врска со вашиот рутер. 687 00:49:11,800 --> 00:49:16,800 И со тие информации, тогаш тие можат да одат во и декриптирање на остатокот од вашата комуникација. 688 00:49:16,800 --> 00:49:24,580 Ова не е од страна на било каков начин, било кој вид на сигурно надвор од сите имагинација. 689 00:49:24,580 --> 00:49:30,060 >> Од друга работа што можете да направите кога сте поставување на безжични мрежи 690 00:49:30,060 --> 00:49:35,460 или сте ги приклучување е - ќе забележите дека тука кога сум се приклучи на оваа мрежа, 691 00:49:35,460 --> 00:49:37,640 таа прашува за името на мојата мрежа. 692 00:49:37,640 --> 00:49:41,060 Ова е исто така познат како SSID. 693 00:49:41,060 --> 00:49:48,610 И ќе видите дека тука на десната имам кутија, кој ми ги покажа достапни SSIDs. 694 00:49:48,610 --> 00:49:52,690 Има Универзитетот Харвард, а CS50, и CS50 штаб мрежа. 695 00:49:52,690 --> 00:49:59,180 Сега, како и многумина од вас знаеше имаше CS50 штаб мрежа околу? 696 00:49:59,180 --> 00:50:01,910 Некои од вас. Не сите од вас. 697 00:50:01,910 --> 00:50:08,800 Проблемот со ова, се разбира, е тоа што ние не го стави ова на нашата листа на SSIDs, 698 00:50:08,800 --> 00:50:10,930 никој не би се знае за тоа, најверојатно. 699 00:50:10,930 --> 00:50:16,090 Се надевам. Освен ако не сте момци се сите се обидуваат да попуштат во нашата безжична врска. 700 00:50:16,090 --> 00:50:18,700 Но, ова е нешто што можете да го направите тоа е навистина важно кога сте поставување 701 00:50:18,700 --> 00:50:20,280 рутер дома. 702 00:50:20,280 --> 00:50:22,820 Ова веројатно не ќе се случи за неколку години за многу од вас, 703 00:50:22,820 --> 00:50:29,010 но имајте на ум дека чувањето дека SSID од таму и исто така не го именување 704 00:50:29,010 --> 00:50:34,630 нешто супер-заеднички ќе ви помогне да бидете посигурни во долг рок. 705 00:50:34,630 --> 00:50:38,070 >> Во последната неколку работи што можете да направите. Една од нив е HTTPS. 706 00:50:38,070 --> 00:50:44,760 Ако сте во Старбакс, ако сте во јавен област Wi-Fi 707 00:50:44,760 --> 00:50:52,620 и не одлучи за да пристапите вашата банкарска сметка, пристап до вашиот Gmail, Фејсбук, 708 00:50:52,620 --> 00:50:56,140 бидете сигурни дека тие врски се случува во текот на HTTPS. 709 00:50:56,140 --> 00:50:59,800 Тоа е додадена слој на сигурност, дополнителен слој на енкрипција. 710 00:50:59,800 --> 00:51:01,520 Една работа да се има предвид е тука, 711 00:51:01,520 --> 00:51:04,740 колку од вас некогаш кликне низ таа голема, црвени екран, кој вели: 712 00:51:04,740 --> 00:51:07,480 "Овој сајт може да биде лошо." 713 00:51:07,480 --> 00:51:09,710 Знам дека имате. 714 00:51:09,710 --> 00:51:13,090 Тоа е веројатно кога сте сите бараат да одам да видам домашна или нешто слично, нели? 715 00:51:13,090 --> 00:51:19,900 Да. (Публиката смеа) Да. Таму да одите. Знаеме кој е гледање татковина. 716 00:51:19,900 --> 00:51:24,540 Толку голема, црвен екран право таму 717 00:51:24,540 --> 00:51:28,600 често укажува на тоа дека нешто фанки се случува. 718 00:51:28,600 --> 00:51:32,530 Понекогаш тоа е само веб-сајтот себе е несигурен, 719 00:51:32,530 --> 00:51:35,520 но дека истиот голем, црвен екран доаѓа до кога луѓето се обидуваат да 720 00:51:35,520 --> 00:51:37,520 монтирање мрежа напади врз вас. 721 00:51:37,520 --> 00:51:40,220 Значи, ако видите дека голем, црвен екран излезе на Старбакс, 722 00:51:40,220 --> 00:51:42,440 не кликнете низ него. 723 00:51:42,440 --> 00:51:45,350 Лошата вест. Лошата вест носи. 724 00:51:45,350 --> 00:51:51,490 >> Конечниот нешто што може да се погледне 725 00:51:51,490 --> 00:51:54,120 е некој вид на VPN. 726 00:51:54,120 --> 00:52:00,280 Ова VPN е достапна преку Харвард - vpn.fas.harvard.edu-- 727 00:52:00,280 --> 00:52:03,260 и што тоа не е тоа всушност воспоставува безбедна конекција 728 00:52:03,260 --> 00:52:06,460 помеѓу вас и Харвард, Инките вашиот сообраќај преку него, 729 00:52:06,460 --> 00:52:12,160 и на тој начин ако си седи во место како Старбакс 730 00:52:12,160 --> 00:52:19,030 можете да се поврзете на Харвард, се дека безбеден сообраќај, а потоа ја разгледате од Харвард. 731 00:52:19,030 --> 00:52:21,950 Повторно не, сигурниот. Луѓето можат да се во средината. 732 00:52:21,950 --> 00:52:25,850 Тие можат да почнат да се скрши, но ова е далеку посигурни од потпирајќи се врз безбедноста 733 00:52:25,850 --> 00:52:28,620 на Wi-Fi сам. 734 00:52:28,620 --> 00:52:32,570 >> Во ред. Во неа, 735 00:52:32,570 --> 00:52:34,580 кога ќе се поставување на безжични мрежи, 736 00:52:34,580 --> 00:52:37,250 кога ви се случува надвор да се користи безжичен во јавноста - 737 00:52:37,250 --> 00:52:43,430 дали тоа е Старбакс, без разлика дали тоа е Петка Дечки, дали тоа е B.Good, 738 00:52:43,430 --> 00:52:46,440 нешто слично на тоа - каде што тие имаат Wi-Fi - 739 00:52:46,440 --> 00:52:48,440 бидете свесни за вашата околина. 740 00:52:48,440 --> 00:52:50,440 Бидат свесни за она што луѓето може да го направи. 741 00:52:50,440 --> 00:52:53,890 И да бидат безбедни. Не влегувај во вашата банкарска сметка. 742 00:52:53,890 --> 00:52:58,740 Тоа може да биде груб будење ако некој се појавува со вашата лозинка подоцна. 743 00:52:58,740 --> 00:53:05,480 Со тоа, одете црвено! И јас одам да се сврти работите назад во текот на Дејвид за конечниот збор. 744 00:53:05,480 --> 00:53:11,270 (Аплауз) 745 00:53:11,270 --> 00:53:14,360 >> [Дејвид] Мислев дека ќе делат едно нешто од лично искуство. 746 00:53:14,360 --> 00:53:19,940 А алатка може да сакаат да играат со - иако на Apple во голема мера искорени овој проблем 747 00:53:19,940 --> 00:53:22,710 ако сте ажурирани вашиот софтвер, бидејќи - 748 00:53:22,710 --> 00:53:26,670 но кон таа цел на навистина не се во можност да му верувате на софтверот кој ние ги користиме, 749 00:53:26,670 --> 00:53:33,270 и да поени на Nate, се во можност да шмркаат доста она што другите луѓе го прават 750 00:53:33,270 --> 00:53:37,010 таму надвор - ова беше дел од софтвер кој излезе пред околу година и пол пред сега. 751 00:53:37,010 --> 00:53:39,010 [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] 752 00:53:39,010 --> 00:53:41,010 За некое време, iTunes - пред iCloud, кога ќе се синхронизира вашиот iPods или iPhone-или 753 00:53:41,010 --> 00:53:45,570 или вашиот iPads со iTunes - во интерес на бекап, 754 00:53:45,570 --> 00:53:48,340 она што вашиот iPhone и овие други уреди се прави за некое време е 755 00:53:48,340 --> 00:53:50,340 користењето на GPS податоците. 756 00:53:50,340 --> 00:53:52,710 >> Сите знаете можеби дека вашиот iPhone и андроидите и Windows мобилни телефони 757 00:53:52,710 --> 00:53:55,410 и како овие денови може да се следат каде се наоѓате во интерес на ви покажува карти 758 00:53:55,410 --> 00:53:59,440 и слично - и она што Apple и овие други компании направите е да 759 00:53:59,440 --> 00:54:02,650 тие обично следи речиси насекаде сте всушност е во интерес на 760 00:54:02,650 --> 00:54:05,380 подобрување на квалитетот на услугите. 761 00:54:05,380 --> 00:54:07,170 Еден, можете да добиете повеќе насочени рекламирање и слично, 762 00:54:07,170 --> 00:54:10,740 туку две, тие исто така може да дознаам каде постојат безжичен жариштата во светот, 763 00:54:10,740 --> 00:54:14,780 и ова може да помогне со гео-локација - вид на триангулација на позиција на луѓето. 764 00:54:14,780 --> 00:54:18,520 >> Скратам приказната, сите од нас биле одење антена за некои износот на време. 765 00:54:18,520 --> 00:54:22,180 За жал, Епл ја направија дизајн одлука - или недостаток од него - 766 00:54:22,180 --> 00:54:26,590 да не енкриптираат оваа информација кога беше се поткрепени-до iTunes. 767 00:54:26,590 --> 00:54:30,330 И тоа што безбедносните истражувач најдов беше дека ова е само огромен XML датотека - 768 00:54:30,330 --> 00:54:33,810 голем текст фајл - седи во iTunes софтверот на луѓето, 769 00:54:33,810 --> 00:54:35,400 и ако сте биле само малку љубопитни, 770 00:54:35,400 --> 00:54:38,990 можете да се обратите ѕиркаа наоколу историја вашиот брачен другар е, историјата вашиот цимер е, 771 00:54:38,990 --> 00:54:41,050 Вашиот брат историја и слично, 772 00:54:41,050 --> 00:54:44,590 и благодарение на некои слободен софтвер, можете да заговор сите овие GPS координати - 773 00:54:44,590 --> 00:54:46,590 географска ширина и должина. 774 00:54:46,590 --> 00:54:48,590 >> Значи, јас всушност го направи ова со моите сопствени телефон. 775 00:54:48,590 --> 00:54:51,210 Јас вклучени во мојот телефон, и секако, мојата верзија на iTunes не е шифрирана во тоа време, 776 00:54:51,210 --> 00:54:53,900 и она што јас бев во можност да се види беа моите сопствени обрасци. 777 00:54:53,900 --> 00:54:56,970 Еве на САД и секоја од овие сини кругови претставува 778 00:54:56,970 --> 00:55:01,670 каде што се случи да се над оние претходните месеци на сопственик овој телефон. 779 00:55:01,670 --> 00:55:04,940  Јас поминувам многу време, се разбира, во Североисточниот, малку време во Калифорнија, 780 00:55:04,940 --> 00:55:08,690 краткотрајна посета на Тексас, и ако тогаш зумирате на ова - 781 00:55:08,690 --> 00:55:11,120 ова е вид на парична казна и интересни, но знаев тоа. 782 00:55:11,120 --> 00:55:13,890 Повеќето од моите пријатели знаев за тоа, но ако се нурне во подлабок, 783 00:55:13,890 --> 00:55:17,090 ќе видите каде јас поминуваат поголемиот дел од моето време во североисточниот регион. 784 00:55:17,090 --> 00:55:20,330 Ако држат некои познати изглед градови - 785 00:55:20,330 --> 00:55:24,670 оваа голема, сино мастило splotch суштина центриран околу Бостон, 786 00:55:24,670 --> 00:55:29,510 а потоа потроши малку време во предградијата зрачи надвор од Бостон. 787 00:55:29,510 --> 00:55:32,780 Но, јас бев исто така прави доста консултации таа година. 788 00:55:32,780 --> 00:55:36,090 И оваа година е на источниот брег, а вие всушност може да ме види 789 00:55:36,090 --> 00:55:41,920 и мојот iPhone во џебот патување напред и назад меѓу Бостон и Њујорк 790 00:55:41,920 --> 00:55:47,510 и Филаделфија потаму, како и да потрошите малку одмор 791 00:55:47,510 --> 00:55:50,340 на Кејп, кој е малку раката таму. 792 00:55:50,340 --> 00:55:53,030 Значи, секоја од овие точки претставува некое место сум бил, 793 00:55:53,030 --> 00:55:56,970 и целосно непознат за мене, целата оваа историја е само седи таму 794 00:55:56,970 --> 00:55:58,410 на мојот десктоп компјутер. 795 00:55:58,410 --> 00:56:00,470 Ако одзумирате - ова всушност беше малку вознемирувачки. 796 00:56:00,470 --> 00:56:04,190 Имав не се сеќава кога бил во Пенсилванија дека одредена година. 797 00:56:04,190 --> 00:56:07,840 Но јас иако малку потешко за тоа и јас сфатиле, ох, тоа е всушност тоа патување 798 00:56:07,840 --> 00:56:11,160 и секако, мојот телефон ме фатат. 799 00:56:11,160 --> 00:56:14,180 >> Јаболко оттогаш шифрирана оваа информација, 800 00:56:14,180 --> 00:56:17,380 но тоа исто така е само доказ за тоа колку информации се собираат за нас, 801 00:56:17,380 --> 00:56:20,850 и колку лесно - за подобро или за полошо - тоа е прифатливо. 802 00:56:20,850 --> 00:56:23,340 Една од се-Aways надевам дека од разговор Роб, од разговор на Nate 803 00:56:23,340 --> 00:56:27,370 и малку визуелни вака денес е само за да биде повеќе осведомен на овој 804 00:56:27,370 --> 00:56:31,160 така што иако - како до точка на Rob - we're вид на зезнав, нели? 805 00:56:31,160 --> 00:56:33,920 Таму не е многу можеме да направиме кога станува збор за некои од овие закани, 806 00:56:33,920 --> 00:56:37,130 но на крајот на денот ние треба да му верувате на некој или на нешто 807 00:56:37,130 --> 00:56:38,510 ако сакаме навистина да ги користат овие технологии. 808 00:56:38,510 --> 00:56:43,150 Барем можеме да се прави информирани одлуки и пресметува одлуки дали или не 809 00:56:43,150 --> 00:56:46,390 ние всушност треба да се проверуваат оваа особено чувствителна сметка 810 00:56:46,390 --> 00:56:49,330 или ние всушност треба да се испраќаат дека малку се сомневаат инстант порака 811 00:56:49,330 --> 00:56:52,180  во Wi-Fi средина се допаѓа ова. 812 00:56:52,180 --> 00:56:54,990 >> Значи, со што, рече, само еден квиз остатоци, едно предавање останува. 813 00:56:54,990 --> 00:56:57,740 Ние ќе се видиме во среда тогаш понеделникот. 814 00:56:57,740 --> 00:57:02,100 (Аплауз и овации) 815 00:57:02,100 --> 00:57:06,100 [CS50TV]