1 00:00:00,000 --> 00:00:02,750 [Powered by Google Translate] [Седмица 10] 2 00:00:02,750 --> 00:00:04,750 [Дейвид Дж. Малан] [Харвардския университет] 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, или Chrome, или която и да било част на софтуер 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 с тази способност да изразим себе си програма, 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 и смея да кажа лошите момчета почти винаги имат крака. 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 И така, смея да кажа като цяло, на лошите момчета имат предимство. 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 >> Аз съм много доволен, да се присъединят към две от най-умните хора, които познавам - 47 00:02:31,060 --> 00:02:33,060 Роб Bowden и Нейт 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 тогава ние използваме взимането да вземете парола, 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 Или е потребителското име "Томи" и парола "I <3javascript"? 69 00:03:56,900 --> 00:03:58,980 Ако някоя от тях е случаят, 70 00:03:58,980 --> 00:04:01,980  тогава ние просто ще отпечатате "Success", и след това ние имаме достъп. 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 Ето, ние се случи да има хард-кодиран "ограби", "thisiscs50", "Томи", "I <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 Това е общ проблем, известен като зареждане на операционна. 97 00:05:46,700 --> 00:05:53,080 Така че, само този път, аз ще звъня да съставят компилатор. 98 00:05:53,080 --> 00:05:58,800 >> Ако смятате, че на ССЗ и звъня - 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 така и сега, ФОРМАТ ("Hacked Вече имате достъп \ 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 - Ще се хакнат, защото мисля, че правя това по-късно. 131 00:08:52,990 --> 00:08:56,270 Добре. Прекомпилиране. 132 00:08:56,270 --> 00:09:01,500 Re-бягане - хакер - LOLihackedyou - 133 00:09:01,500 --> 00:09:03,650 Hacked! Вече имате достъп. 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 защото те не получават да прочетете изходния код, за да видим, че има тази дупка. 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 Тук, ако потвърдете с потребителските имена ограби "или" Томи, " 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 Виждам тук някои низ, наречен "рана", 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 вече няма да бъде достатъчно голям, защото сега искам да вмъкнете този хак 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 както за оригиналния файл и допълнителни линии на код - рана, че искате да вмъкнете там. 183 00:12:22,020 --> 00:12:24,920 Ето нещо, което да забележите - 184 00:12:24,920 --> 00:12:29,200 Чар * модел = "/ / откаже достъп до тях!" 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 ние поставяме този хак, точно там, където се казва откаже достъп до тях, 194 00:13:12,080 --> 00:13:15,890 и след това ние сме съставяне - не оригиналната login.c 195 00:13:15,890 --> 00:13:20,340 но новият login.c с тази рана, вкарани точно в "отричат ​​достъп до тях." 196 00:13:20,340 --> 00:13:29,190 >> Сега искам да съставят нов компилатор с тази рана участват. 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 Това е обичайната ни ", ако това е Роб или Томи сме в друго, ние сме". 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 Hacked! Вече имате достъп. 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 и аз имам някаква на низ рана в тук, 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 рана неща. 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, Hacked! Вече имате достъп. 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 Кен Томпсън изнесе реч, когато той получил Turing Award 290 00:21:24,100 --> 00:21:27,150 наречен "Размисли за Доверявайки Trust". 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 По това време, ССЗ е почти на компилатора че всеки използва за нищо. 306 00:22:33,710 --> 00:22:36,460 Ако някой се случи да се актуализира ССЗ, 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 Ако Б е нула, а след това се разделихме в два случая. 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 то е нещо като една разделена на нула, а ние просто се обадете, че безкрайност. 328 00:24:00,580 --> 00:24:03,730 Else върнем обичайните разделена от б. 329 00:24:03,730 --> 00:24:06,390 И така, ето, ние сме тези три случая, 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, 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 ядрото - 342 00:25:02,260 --> 00:25:05,550 Линукс операционна система използва ядрото на Linux - 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 в този случай б = 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 въпреки че не можем да видим на изходния код 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 може би има някакъв измамник служител на Intel, който създава тези процесори 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 по време на речта на Роб, така че ние ще вземем 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. >> [] Sweet Нейт. 456 00:33:03,160 --> 00:33:06,300 (Аплодисменти) 457 00:33:06,300 --> 00:33:08,650 >> [Nate] Благодаря, човече. Аз оценявам вик. 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 отваря тази голяма врата в профила си във Facebook, 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,11 гр, който е един на друг много популярен 516 00:37:04,090 --> 00:37:06,090 безжични стандарти, че е там. 517 00:37:06,090 --> 00:37:08,660 Б и грам са доста остарели в този момент. 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 Ако вие сте някога в общежитието, в къщата си и се чудите защо сигналът е лошо, 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. Това е най-гаден от най-тежката. 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 и сте търсят да речем, на Starbucks. 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 Bad Guy, тъй като той седи точно в средата, 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 Лош, лош човек! Bad 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 това е трудно да душат за движение. 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 Това е вид болка, защото има шест всички заедно 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 Equivalent Privacy, аз вярвам, 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 Ако сте на Starbucks, ако сте в публичен Wi-Fi зона 707 00:50:44,760 --> 00:50:52,620 а вие решите да влезете в банковата си сметка, достъп до Gmail, Facebook, 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 Така че, ако видите, че голям, червен екран на Starbucks, 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 и по този начин, ако си седите на едно място, като Starbucks 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 дали това е Starbucks, независимо дали е пет момчета, дали това е 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 и точки на Нейт, е в състояние да помиришат доста от това, което правят другите 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 За известно време, качи преди iCloud, когато сте били синхронизирането на айпод или Iphones или 753 00:53:41,010 --> 00:53:45,570 или iPads с качи - в интерес на архивите, 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 >> Вие всички знаете, че може би Iphones и андроиди и Windows Mobile телефони 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 One, можете да получите по-целенасочена реклама и други подобни, 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 За съжаление, Apple направи дизайнерско решение - или липса на такова - 766 00:54:22,180 --> 00:54:26,590 шифроването на този вид, когато това е подкрепено да качи. 767 00:54:26,590 --> 00:54:30,330 И какво сигурността изследовател намерил е, че това е просто огромна XML файл - 768 00:54:30,330 --> 00:54:33,810 огромен текстов файл - седи в хората качи софтуер, 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 Включен в телефона ми, и разбира се, моята версия на качи по това време не е криптирана, 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 този голям син оцапвам мастило е по същество над Бостън, 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 >> Apple е криптират тази информация, 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 Един от Take-уикенд, надявам се от разговори на Роб, от речта на Нейт 803 00:56:23,340 --> 00:56:27,370 и малки визуални като това днес е само за да бъде още по-осведомени за това 804 00:56:27,370 --> 00:56:31,160 така че въпреки че - като точка Роб - ние нещо прецакани, нали? 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]