1 00:00:00,000 --> 00:00:11,300 2 00:00:11,300 --> 00:00:15,490 >> DAVID J. MALAN: Detta är CS50, och detta är början på vecka 10. 3 00:00:15,490 --> 00:00:19,460 Ni minns kanske att vi har visat på skärmen en 3D-skrivare, som 4 00:00:19,460 --> 00:00:21,610 är denna enhet som tar spolar av plast 5 00:00:21,610 --> 00:00:24,840 och sedan sprutar det genom upphettning upp och smälta det så att vi kan då 6 00:00:24,840 --> 00:00:27,310 bilda Chang armé av elefanter, till exempel. 7 00:00:27,310 --> 00:00:29,184 >> Så vid Leverett House, Men på senare tid, jag 8 00:00:29,184 --> 00:00:31,850 chatta med en av dina klasskamrater och en vän till Chang 9 00:00:31,850 --> 00:00:35,720 heter Michelle, som faktiskt internerades denna andra företag det senaste året som 10 00:00:35,720 --> 00:00:40,010 har en annan teknik för att faktiskt skapa tredimensionella objekt, 11 00:00:40,010 --> 00:00:41,890 gillar denna lilla lilla elefanten här. 12 00:00:41,890 --> 00:00:45,550 I synnerhet hur det fungerar är att det är ett exempel på något 13 00:00:45,550 --> 00:00:49,740 kallas stereolitografi, varvid det är denna bassäng av harts eller vätska, 14 00:00:49,740 --> 00:00:53,340 och sedan en laser slår att vätska, och gradvis, varvid anordningen 15 00:00:53,340 --> 00:00:56,990 hissar och hissar och lyfter sak att du skriver ut, som en elefant, 16 00:00:56,990 --> 00:00:58,676 så att vätska som blir fast. 17 00:00:58,676 --> 00:01:00,550 Och resultatet, faktiskt, är något som är 18 00:01:00,550 --> 00:01:04,194 mycket mer robust än vissa av plasten giveaways några av er 19 00:01:04,194 --> 00:01:04,819 kan ha haft. 20 00:01:04,819 --> 00:01:06,860 >> Och vad Chang vänligt gjorde för oss här var 21 00:01:06,860 --> 00:01:12,210 gjorde en time-lapse använder fotografier under loppet av en timme eller mer, 22 00:01:12,210 --> 00:01:14,580 förmodligen, för att producera den här killen här. 23 00:01:14,580 --> 00:01:19,060 Skulle någon som aldrig kommit upp inför vilja komma hit Start på den här videon? 24 00:01:19,060 --> 00:01:21,250 Låt mig gå med, om det inte hur. 25 00:01:21,250 --> 00:01:21,790 Kom upp. 26 00:01:21,790 --> 00:01:24,960 27 00:01:24,960 --> 00:01:25,460 Okej. 28 00:01:25,460 --> 00:01:29,250 29 00:01:29,250 --> 00:01:29,896 Och du är? 30 00:01:29,896 --> 00:01:31,270 Lukas: Jag heter Lukas [OHÖRBAR]. 31 00:01:31,270 --> 00:01:31,700 DAVID J. MALAN: Hej, Luke. 32 00:01:31,700 --> 00:01:32,695 TREVLIGT ATT TRÄFFAS. 33 00:01:32,695 --> 00:01:33,653 >> Lukas: Trevligt att träffas. 34 00:01:33,653 --> 00:01:35,120 PUBLIK: Han kör för UC. 35 00:01:35,120 --> 00:01:38,640 >> DAVID J. MALAN: Jag vet, vi försöker att inte främja. 36 00:01:38,640 --> 00:01:41,240 Okej, så Luke, alla du måste göra här i CS50 37 00:01:41,240 --> 00:01:45,829 träffas på mellanslagstangenten att skriva ut denna elefant. 38 00:01:45,829 --> 00:01:46,495 [VIDEOAVSPELNING] 39 00:01:46,495 --> 00:01:49,988 - [MACHINE snurr] 40 00:01:49,988 --> 00:02:00,467 41 00:02:00,467 --> 00:02:01,964 - [CRASH] 42 00:02:01,964 --> 00:02:04,459 - [BOM] 43 00:02:04,459 --> 00:02:06,147 - [CRASH] 44 00:02:06,147 --> 00:02:06,980 [END VIDEOAVSPELNING] 45 00:02:06,980 --> 00:02:09,370 DAVID J. MALAN: Så det är precis hur det är att 3D-print. 46 00:02:09,370 --> 00:02:10,453 Och här är din elefant. 47 00:02:10,453 --> 00:02:12,100 Tack för volontärarbete. 48 00:02:12,100 --> 00:02:12,830 Okej. 49 00:02:12,830 --> 00:02:16,580 Så återigen, per specifikationen för lärdomsprovet, denna hårdvara som är 50 00:02:16,580 --> 00:02:18,890 tillgängliga för er killar är, av någon anledning, 51 00:02:18,890 --> 00:02:21,870 projektet har några skärnings av mjukvara och hårdvara, 52 00:02:21,870 --> 00:02:24,650 inse att dessa är nu resurser. 53 00:02:24,650 --> 00:02:27,750 >> Jag ville ta en stund att röra på en Crimson artikel som kom ut 54 00:02:27,750 --> 00:02:30,541 sent i går kväll, som skulle meddela att den här mannen här, David 55 00:02:30,541 --> 00:02:33,920 Johnson, som har varit den ledande handledare för Ec 10 under ganska lång tid, 56 00:02:33,920 --> 00:02:36,210 lämnar Harvard vid slutet av läsåret. 57 00:02:36,210 --> 00:02:38,390 Och jag ville bara ta en stund, ärligt talat, 58 00:02:38,390 --> 00:02:41,620 tacka David framför CS50. 59 00:02:41,620 --> 00:02:44,360 Han har varit en mentor för sorterar till oss genom åren. 60 00:02:44,360 --> 00:02:46,980 >> Och jag tycker vi, CS50, har snarare vuxit upp med Ec 10 61 00:02:46,980 --> 00:02:48,870 in här, eftersom de är rätt framför oss. 62 00:02:48,870 --> 00:02:52,040 Och han och hela laget i Ec 10 har varit underbart nådig, ärligt talat, 63 00:02:52,040 --> 00:02:55,410 som vi släpa i all vår utrustning varje vecka, och år sedan, 64 00:02:55,410 --> 00:02:57,320 som en stor del av råd som vi var 65 00:02:57,320 --> 00:02:59,520 nyfiken på hur de fungerar Ec 10. 66 00:02:59,520 --> 00:03:02,640 Så vårt tack och beundran för David Johnson. 67 00:03:02,640 --> 00:03:06,560 >> [Applåder] 68 00:03:06,560 --> 00:03:08,030 69 00:03:08,030 --> 00:03:12,180 >> Nu unrelatedly, så slutet är verkligen nära. 70 00:03:12,180 --> 00:03:13,630 Vi är här i vecka 10. 71 00:03:13,630 --> 00:03:15,920 Och vi har bara bara en några formella veckor 72 00:03:15,920 --> 00:03:18,320 här i klassen vänster, följt genom ett par av händelser. 73 00:03:18,320 --> 00:03:21,860 Så för att ge dig en känsla för vad som är vid horisonten, är vi här i dag. 74 00:03:21,860 --> 00:03:24,480 >> Denna onsdag, återkallelse, Vi kommer att ha en gästföreläsning 75 00:03:24,480 --> 00:03:27,040 av ingen mindre än Microsofts egen Steve Ballmer. 76 00:03:27,040 --> 00:03:31,740 Om du ännu inte har gått till cs50.harvard.edu/register, 77 00:03:31,740 --> 00:03:33,360 göra det, eftersom rymden kommer att vara begränsade. 78 00:03:33,360 --> 00:03:36,447 Och de kommer att kontrollera ID vid dörren i dag. 79 00:03:36,447 --> 00:03:38,280 Om du inte var här förra veckan, jag trodde jag skulle 80 00:03:38,280 --> 00:03:41,850 reta dig med ett annorlunda utseende på Steve och den spänning som 81 00:03:41,850 --> 00:03:44,215 väntar på oss på onsdag. 82 00:03:44,215 --> 00:03:45,205 >> [VIDEOAVSPELNING] 83 00:03:45,205 --> 00:03:46,195 >> -Passion. 84 00:03:46,195 --> 00:03:50,650 >> -Vi Kommer att vara hardcore-- särskilt allvarliga. 85 00:03:50,650 --> 00:03:51,640 >> -Innovator. 86 00:03:51,640 --> 00:03:53,339 >> -Bill Sa, du fattar inte. 87 00:03:53,339 --> 00:03:55,130 Vi ska sätta en dator på varje skrivbord 88 00:03:55,130 --> 00:03:58,690 och i varje hem, som blev mottot för företaget. 89 00:03:58,690 --> 00:04:01,850 Jag svär, Bill uppfann det den kvällen för att verkligen ge mig 90 00:04:01,850 --> 00:04:04,370 en del av visionen om varför jag skulle säga ja. 91 00:04:04,370 --> 00:04:07,280 Jag har aldrig sett tillbaka, verkligen, efter detta. 92 00:04:07,280 --> 00:04:10,010 >> -Färsk Av college, han gick med i en spirande start 93 00:04:10,010 --> 00:04:14,450 och hjälpte den att växa till ett av USA: s mest framgångsrika företag någonsin. 94 00:04:14,450 --> 00:04:16,920 Livet i och affärer lärdomar på vägen 95 00:04:16,920 --> 00:04:19,925 låt honom tillbaka till sin barndom passion och kärlek. 96 00:04:19,925 --> 00:04:24,650 Och dessa erfarenheter har förberett honom för hans nästa utmaning i livet. 97 00:04:24,650 --> 00:04:27,150 >> -Inget Får i vår way-- boom! 98 00:04:27,150 --> 00:04:29,330 Håll kommande hardcore! 99 00:04:29,330 --> 00:04:31,150 Gå Clippersna! 100 00:04:31,150 --> 00:04:38,627 >> -Det Här är Steve Ballmer, "I mina egna ord." 101 00:04:38,627 --> 00:04:39,460 [END VIDEOAVSPELNING] 102 00:04:39,460 --> 00:04:41,240 David J. MALAN: --Denna Onsdag till CS50. 103 00:04:41,240 --> 00:04:43,080 Bege igen till denna URL här. 104 00:04:43,080 --> 00:04:46,500 När det gäller vad annat är vid horisonten, nästa vecka, ingen föreläsning på måndag. 105 00:04:46,500 --> 00:04:50,020 Men vi kommer att följa det med frågesport ett på onsdag. 106 00:04:50,020 --> 00:04:54,390 Gå till CS50 hemsida för mer information på människor, platser och tider 107 00:04:54,390 --> 00:04:57,640 för alla de olika proctoring logistik och liknande, 108 00:04:57,640 --> 00:05:00,190 liksom om översyn sessioner som är förestående. 109 00:05:00,190 --> 00:05:06,479 Och sedan, slutligen, på måndagen, dagen innan veckan av Thanksgiving brytning, 110 00:05:06,479 --> 00:05:08,020 inser att det kommer att bli vår sista föreläsning. 111 00:05:08,020 --> 00:05:11,490 Vi kommer att tjäna tårta och en stor del spänning, hoppas vi. 112 00:05:11,490 --> 00:05:13,976 >> Nu, ett par andra uppdateringar. 113 00:05:13,976 --> 00:05:16,350 Tänk på att statusen Rapporten, som är egentligen bara 114 00:05:16,350 --> 00:05:20,430 tänkt att vara en tillfällig interaktion med din TF att stolt konstatera bara 115 00:05:20,430 --> 00:05:23,106 hur långt tillsammans med din slutprojekt du är, 116 00:05:23,106 --> 00:05:24,980 eller åtminstone som en sanity Kontrollera att du bör 117 00:05:24,980 --> 00:05:27,250 närma sig att pekar kort därefter. 118 00:05:27,250 --> 00:05:28,660 Den hackathon följer att. 119 00:05:28,660 --> 00:05:30,800 Inse hackathon inte är en möjlighet 120 00:05:30,800 --> 00:05:33,690 att starta din slutgiltiga projektet, men är tänkt att vara en möjlighet 121 00:05:33,690 --> 00:05:37,040 att vara i mitten av eller i riktning mot i slutet av din slutgiltiga projektet, 122 00:05:37,040 --> 00:05:41,030 med genomförandet på grund av ett fåtal dagar senare, följt av CS50 rättvis. 123 00:05:41,030 --> 00:05:43,330 >> Nu CS50 produktion lag, ett par år sedan, 124 00:05:43,330 --> 00:05:46,127 sätta ihop en teaser för CS50 rättvist att vi 125 00:05:46,127 --> 00:05:48,710 trodde vi skulle visa er i dag, eftersom de har jobbat hårt 126 00:05:48,710 --> 00:05:51,930 om en prequel till det, en ny video att vi ska avsluta idag med. 127 00:05:51,930 --> 00:05:57,694 Men här är vad som väntar dig för årets CS50 rättvist. 128 00:05:57,694 --> 00:05:58,360 [VIDEOAVSPELNING] 129 00:05:58,360 --> 00:06:00,680 - [CELL telefonen ringer] 130 00:06:00,680 --> 00:06:07,624 131 00:06:07,624 --> 00:06:11,117 [MUSIC "tema från Mission: Impossible"] 132 00:06:11,117 --> 00:08:47,065 133 00:08:47,065 --> 00:08:52,820 [END VIDEOAVSPELNING] 134 00:08:52,820 --> 00:08:56,840 DAVID J. MALAN: Så det är precis så Vi stänger slutgiltiga projektansökningar. 135 00:08:56,840 --> 00:08:59,220 Ett par nu teasers-- om du skulle vilja gå med Nick här 136 00:08:59,220 --> 00:09:02,740 för lunch, som vanligt, detta Fredag, bege dig till denna URL här. 137 00:09:02,740 --> 00:09:05,530 Dessutom, om du vill ha att gå med Nick eller den här Nick 138 00:09:05,530 --> 00:09:08,770 eller det Allison eller någon medlemmar av CS50 team, 139 00:09:08,770 --> 00:09:11,110 inser att, inom kort efter termins slut, 140 00:09:11,110 --> 00:09:13,780 CS50 kommer redan att rekrytera för nästa års lag, 141 00:09:13,780 --> 00:09:18,130 för certifikatutfärdare, TF, formgivare, producenter, forskare och andra positioner 142 00:09:18,130 --> 00:09:21,790 att här verkar CS50 både i framför och bakom kulisserna. 143 00:09:21,790 --> 00:09:25,482 Så om detta skulle kunna vara av intresse till dig, gå till denna URL här. 144 00:09:25,482 --> 00:09:28,190 Och eleverna mer bekväm, mindre bekväm, och någonstans i 145 00:09:28,190 --> 00:09:31,710 mellan likadana är alla välkomna och uppmuntras att söka. 146 00:09:31,710 --> 00:09:34,920 >> Så det var perfekt timing att, nej skämt, i morse, när jag vaknade, 147 00:09:34,920 --> 00:09:37,220 Jag hade detta här skräppost i min inkorg. 148 00:09:37,220 --> 00:09:39,420 Det faktiskt glidit genom Gmails spamfilter 149 00:09:39,420 --> 00:09:41,659 på något sätt och hamnade i min faktiska inkorg. 150 00:09:41,659 --> 00:09:43,700 Och den säger, "Kära brevlåda användaren, du är närvarande 151 00:09:43,700 --> 00:09:45,240 uppgraderas till 4 gigabyte utrymme. 152 00:09:45,240 --> 00:09:50,750 Logga in på ditt konto i syfte att validera E-space. " 153 00:09:50,750 --> 00:09:54,100 >> Och sedan finns det fina blå lockande länk där för att klicka på 154 00:09:54,100 --> 00:09:59,480 för lärare och personal, som sedan ledde mig till en härligt legitim sida, vilket 155 00:09:59,480 --> 00:10:02,300 bad mig att ge dem mitt namn och e-postadress och, naturligtvis, 156 00:10:02,300 --> 00:10:05,090 lösenord för att validera vem jag är och så vidare. 157 00:10:05,090 --> 00:10:09,330 Men naturligtvis är så alltid är fallet, du kommer till denna målsida, 158 00:10:09,330 --> 00:10:11,370 och naturligtvis finns det åtminstone ett stavfel, 159 00:10:11,370 --> 00:10:14,840 vilket verkar vara spiken i kistan för någon av dessa bedrägerier. 160 00:10:14,840 --> 00:10:17,890 Och vi kommer lägga upp, kanske någon annan länkar till dessa typer av skärmdumpar 161 00:10:17,890 --> 00:10:18,473 i framtiden. 162 00:10:18,473 --> 00:10:22,535 Men förhoppningsvis, de flesta i detta rum har inte clicked-- 163 00:10:22,535 --> 00:10:24,410 eller även om du har klickat sådana förbindelser som detta, 164 00:10:24,410 --> 00:10:28,040 du har inte gått så långt som att fylla i de blanketter och så vidare. 165 00:10:28,040 --> 00:10:30,210 I själva verket är det OK om du har. 166 00:10:30,210 --> 00:10:33,410 Vi ska försöka fixa det i dag, därför att, ja, är dagens konversation 167 00:10:33,410 --> 00:10:34,450 om säkerhet. 168 00:10:34,450 --> 00:10:36,500 >> Och faktiskt, en av målen för CS50 inte 169 00:10:36,500 --> 00:10:38,980 så mycket att lära dig CE eller PHP eller Javascript eller SQL 170 00:10:38,980 --> 00:10:41,610 eller någon av dessa underliggande genomförandet detaljer. 171 00:10:41,610 --> 00:10:45,612 Men det är att ge dig som människor att bara fatta smartare beslut som det 172 00:10:45,612 --> 00:10:48,070 hänför sig till tekniken ned väg så att, oavsett om du är 173 00:10:48,070 --> 00:10:51,370 ingenjör eller humanist eller vetenskapsman eller någon annan roll, 174 00:10:51,370 --> 00:10:54,970 du gör välgrundade beslut om din egen datoranvändningen, 175 00:10:54,970 --> 00:10:56,980 eller om du är i en beslutsfattande ställning, 176 00:10:56,980 --> 00:10:59,250 i politiken, i synnerhet, du gör mycket, 177 00:10:59,250 --> 00:11:02,770 mycket bättre beslut än en Många människor i dag har varit. 178 00:11:02,770 --> 00:11:04,830 Och vi kommer att göra detta genom att sätt några exempel. 179 00:11:04,830 --> 00:11:09,030 >> Först var jag ganska förvånad nyligen för att upptäcka följande. 180 00:11:09,030 --> 00:11:11,120 Så lösenord, naturligtvis, är vad de flesta av oss 181 00:11:11,120 --> 00:11:18,030 använda för att skydda vår data-- e-post, chatt, och alla typer av resurser som. 182 00:11:18,030 --> 00:11:23,020 Och bara genom en awkward-- Visa inte av händer, men generad utseende av skam, 183 00:11:23,020 --> 00:11:26,600 Hur många av er använder samma lösenord i en mängd olika webbplatser? 184 00:11:26,600 --> 00:11:28,020 >> Åh, OK, så vi ska göra av händerna. 185 00:11:28,020 --> 00:11:30,950 OK, så en hel del av er gör. 186 00:11:30,950 --> 00:11:33,770 Den som gör det, bara varför? 187 00:11:33,770 --> 00:11:35,078 Och vad? 188 00:11:35,078 --> 00:11:36,537 Yeah? 189 00:11:36,537 --> 00:11:39,870 PUBLIK: Det är lätt att komma ihåg, eftersom du behöver inte komma ihåg [OHÖRBAR]. 190 00:11:39,870 --> 00:11:41,703 DAVID J. MALAN: Ja, det är lätt att komma ihåg. 191 00:11:41,703 --> 00:11:44,560 Det är en helt rimlig, rationellt beteende, 192 00:11:44,560 --> 00:11:46,920 även om risken du sätta dig själv 193 00:11:46,920 --> 00:11:50,540 vid i dessa fall är bara en eller flera av dessa webbplatser 194 00:11:50,540 --> 00:11:54,510 är utsatta för dataintrång eller osäker eller ditt lösenord är bara 195 00:11:54,510 --> 00:11:57,130 så jäkla att gissa, vem som helst kan lista ut det. 196 00:11:57,130 --> 00:11:59,850 Inte bara är en konto äventyras, men i teorin, någon 197 00:11:59,850 --> 00:12:01,280 konton du har på internet. 198 00:12:01,280 --> 00:12:04,550 Så jag vet att jag kan säga i dag, inte använda samma lösenord överallt, 199 00:12:04,550 --> 00:12:06,450 men det är mycket lättare sagt än gjort. 200 00:12:06,450 --> 00:12:10,850 Men det finns tekniker för mildra denna oro. 201 00:12:10,850 --> 00:12:14,030 >> Nu råkar jag, till exempel, till använda ett program som heter 1Password. 202 00:12:14,030 --> 00:12:16,010 En annan populär en kallas Lastpass. 203 00:12:16,010 --> 00:12:19,030 Och ett gäng CS50 personalen använder ett eller flera av dessa typer av verktyg. 204 00:12:19,030 --> 00:12:20,940 Och lång historia kort, en takeaway för idag 205 00:12:20,940 --> 00:12:25,080 borde vara, ja, du kan ha samma lösenord överallt, 206 00:12:25,080 --> 00:12:27,260 men det är mycket lätt att inte längre göra det. 207 00:12:27,260 --> 00:12:31,260 Till exempel, i dessa dagar, jag vet Kanske en av mina tiotals eller hundratals 208 00:12:31,260 --> 00:12:31,910 av lösenord. 209 00:12:31,910 --> 00:12:33,990 Alla mina andra lösenord är pseudo-slumpmässigt 210 00:12:33,990 --> 00:12:36,046 genereras av ett av dessa program här. 211 00:12:36,046 --> 00:12:38,420 Och i ett nötskal, och till och med om de flesta av dessa program 212 00:12:38,420 --> 00:12:41,487 tenderar att komma med en bit av en kostnad, du skulle installera ett program som detta, 213 00:12:41,487 --> 00:12:43,820 du sedan skulle lagra alla ditt användarnamn och lösenord 214 00:12:43,820 --> 00:12:46,960 insidan av detta program på din egen Mac eller PC eller whatnot, 215 00:12:46,960 --> 00:12:49,290 och då skulle det vara krypteras på din dator 216 00:12:49,290 --> 00:12:51,599 med vad som finns förhoppningsvis en särskilt långt lösenord. 217 00:12:51,599 --> 00:12:54,140 Så jag har en hel massa lösenord för enskilda webbplatser, 218 00:12:54,140 --> 00:12:56,390 och sedan har jag en riktigt långt lösenord som jag 219 00:12:56,390 --> 00:12:59,059 använder för att låsa upp alla de andra lösenord. 220 00:12:59,059 --> 00:13:00,850 Och vad är trevligt om program som detta är 221 00:13:00,850 --> 00:13:04,016 att när du besöker en webbplats som är ber om ditt användarnamn och lösenord, 222 00:13:04,016 --> 00:13:06,304 dessa dagar har jag inte skriver in mitt användarnamn och lösenord, 223 00:13:06,304 --> 00:13:08,970 eftersom, återigen, jag vet inte ens vad de flesta av mina lösenord är. 224 00:13:08,970 --> 00:13:12,180 Jag stället slog ett tangentbord genväg, vars resultat 225 00:13:12,180 --> 00:13:15,990 är att utlösa denna programvara för att be mig för min huvudlösenord. 226 00:13:15,990 --> 00:13:18,780 Jag skriver sedan att en stor lösenord i, och sedan webbläsaren 227 00:13:18,780 --> 00:13:21,090 fyller automatiskt i vad mitt lösenord är. 228 00:13:21,090 --> 00:13:24,960 Så riktigt, om du tar något annat från idag i form av lösenord, 229 00:13:24,960 --> 00:13:28,440 dessa är en mjukvara som är värda ladda ner eller investera i så 230 00:13:28,440 --> 00:13:30,750 att du kan åtminstone paus att särskild vana. 231 00:13:30,750 --> 00:13:33,374 Och om du är den typen som är med hjälp av post-it lappar eller like-- 232 00:13:33,374 --> 00:13:37,310 och oddsen är minst en av er är-- denna vana, även det räcker att säga, 233 00:13:37,310 --> 00:13:38,340 bör vara bruten. 234 00:13:38,340 --> 00:13:42,360 >> Nu råkade jag upptäcka, som en följd att använda programvaran, följande. 235 00:13:42,360 --> 00:13:45,690 Jag beställer en Ätbara arrangemang, denna korg med frukt, nyligen. 236 00:13:45,690 --> 00:13:49,380 Och jag slog min speciella tangentbord genväg för att logga in på webbplatsen. 237 00:13:49,380 --> 00:13:53,325 Och mjukvaran utlöste en pop-up som sagt, är du säker 238 00:13:53,325 --> 00:13:55,950 du vill att jag ska automatiskt lämna denna användarnamn och lösenord? 239 00:13:55,950 --> 00:13:57,690 Eftersom anslutningen är osäker. 240 00:13:57,690 --> 00:14:01,450 >> Anslutningen är inte via HTTPS, för säker, 241 00:14:01,450 --> 00:14:04,900 att använda det protokollet som kallas SSL, Secure Sockets Layer. 242 00:14:04,900 --> 00:14:07,640 Och faktiskt, om man tittar på Högst upp till vänster på denna webbplats, 243 00:14:07,640 --> 00:14:12,880 det är bara www.ediblearrangements.com, ingen HTTPS, vilket inte är så bra. 244 00:14:12,880 --> 00:14:15,480 >> Nu var jag curious-- kanske detta är bara en bugg i mjukvaran. 245 00:14:15,480 --> 00:14:19,240 Visst, vissa webbplats som detta att många av oss känner till 246 00:14:19,240 --> 00:14:24,046 åtminstone med hjälp av kryptering eller HTTPS-adresser för att logga in dig. 247 00:14:24,046 --> 00:14:25,670 Så jag blev lite nyfiken morse. 248 00:14:25,670 --> 00:14:29,046 Och jag fick ut min CS50 färdigheter, Jag öppnade Chrome Inspector. 249 00:14:29,046 --> 00:14:30,295 Det är inte ens mycket av en färdighet. 250 00:14:30,295 --> 00:14:32,890 Det är bara träffar rätt tangentbordet genväg för att öppna denna. 251 00:14:32,890 --> 00:14:34,830 Och här är ett stort fönster av Chromes Inspector. 252 00:14:34,830 --> 00:14:38,960 >> Men vad var egentligen en lite tragiskt och löjligt 253 00:14:38,960 --> 00:14:40,830 var dessa två rader här. 254 00:14:40,830 --> 00:14:44,570 Upp på toppen, märker webbadressen till som mitt användarnamn och lösenord 255 00:14:44,570 --> 00:14:45,530 lämnades in. 256 00:14:45,530 --> 00:14:46,380 Låt mig zooma in. 257 00:14:46,380 --> 00:14:47,352 Det var det här. 258 00:14:47,352 --> 00:14:49,060 Och allt detta är slags ointressant, 259 00:14:49,060 --> 00:14:54,962 med undantag för den sak hela vägen i vänster, som börjar med http: //. 260 00:14:54,962 --> 00:14:57,240 Och så då, OK, kanske de är bara att skicka 261 00:14:57,240 --> 00:14:59,084 mitt användarnamn, vilket är inte en så stor sak. 262 00:14:59,084 --> 00:15:00,500 Kanske mitt lösenord får skickas senare. 263 00:15:00,500 --> 00:15:02,300 Det skulle vara typ av en intressant design beslut. 264 00:15:02,300 --> 00:15:03,100 >> Men nix. 265 00:15:03,100 --> 00:15:06,130 Om du sedan tittar på begäran nyttolast, användarnamn och lösenord 266 00:15:06,130 --> 00:15:08,470 Jag sent-- och jag hånade dessa upp för slide-- 267 00:15:08,470 --> 00:15:10,000 faktiskt skickas i klartext. 268 00:15:10,000 --> 00:15:13,792 Så du går till denna webbplats och beställa en Ätbara arrangemang som detta, 269 00:15:13,792 --> 00:15:16,750 och faktiskt, tydligen, för allt detta gången jag har varit beställning från dem, 270 00:15:16,750 --> 00:15:19,800 ditt användarnamn och lösenord går över i klartext. 271 00:15:19,800 --> 00:15:22,120 Så ärligt talat, är det helt oacceptabelt. 272 00:15:22,120 --> 00:15:26,240 Och det är så trivialt att undvika saker så här som formgivaren av en webbplats 273 00:15:26,240 --> 00:15:27,950 och såsom programmeraren av en webbplats. 274 00:15:27,950 --> 00:15:31,020 >> Men takeaway här för oss som användare av webbplatser 275 00:15:31,020 --> 00:15:35,700 bara att inse att alla Det som krävs är för en dum konstruktion 276 00:15:35,700 --> 00:15:40,010 beslut, oförsvarliga designbeslut, så att nu, om du vet mitt lösenord är 277 00:15:40,010 --> 00:15:41,820 "Crimson" på detta hemsida, har du förmodligen 278 00:15:41,820 --> 00:15:44,654 precis fått in ett helt gäng andra webbplatser som jag nu har. 279 00:15:44,654 --> 00:15:46,570 Och det finns inte mycket av ett försvar mot det 280 00:15:46,570 --> 00:15:48,301 annat än vad Chang gjorde i morse. 281 00:15:48,301 --> 00:15:51,550 Han gick till Edible Arrangements, vilket ligger ner på gatan i Cambridge, 282 00:15:51,550 --> 00:15:53,430 och fysiskt köpte detta för oss. 283 00:15:53,430 --> 00:15:57,490 Det var mycket säkrare än använder hemsidan i detta fall. 284 00:15:57,490 --> 00:16:02,320 >> Men detaljerna att hålla utkik efter är faktiskt vad som finns i webbläsaren där uppe 285 00:16:02,320 --> 00:16:02,940 där. 286 00:16:02,940 --> 00:16:04,690 Men även det kan vara lite vilseledande. 287 00:16:04,690 --> 00:16:07,002 Så en annan intressant exempel och sätt att försvara 288 00:16:07,002 --> 00:16:09,960 mot this-- och faktiskt, låt oss gör det first-- sättet att försvara 289 00:16:09,960 --> 00:16:12,540 mot detta är en teknik att säkerhets människor skulle 290 00:16:12,540 --> 00:16:14,810 ring tvåfaktorsautentisering. 291 00:16:14,810 --> 00:16:20,130 >> Någon som vet vad lösningen problem som detta innebär? 292 00:16:20,130 --> 00:16:23,110 Vad är tvåfaktorsautentisering? 293 00:16:23,110 --> 00:16:27,320 Eller annorlunda uttryckt, hur många av er använder den? 294 00:16:27,320 --> 00:16:28,650 OK, så ett par blyga personer. 295 00:16:28,650 --> 00:16:29,060 Men ja. 296 00:16:29,060 --> 00:16:29,976 Jag såg din hand gå upp. 297 00:16:29,976 --> 00:16:31,510 Vad är tvåfaktorsautentisering? 298 00:16:31,510 --> 00:16:34,010 >> Publik: I grund och botten, förutom att skriva in ditt lösenord, 299 00:16:34,010 --> 00:16:37,390 Du har också en sekundär [OHÖRBAR] skickas via SMS till din telefon 300 00:16:37,390 --> 00:16:39,460 vid [OHÖRBAR]. 301 00:16:39,460 --> 00:16:40,460 DAVID J. MALAN: Exakt. 302 00:16:40,460 --> 00:16:44,150 Förutom vissa primära formen av autentisering, som ett lösenord, 303 00:16:44,150 --> 00:16:47,190 du bad om en sekundär faktor, som typiskt är 304 00:16:47,190 --> 00:16:49,740 något man måste fysiskt på dig, även om det 305 00:16:49,740 --> 00:16:51,610 kan vara något helt annat. 306 00:16:51,610 --> 00:16:54,630 Och det där är typiskt en mobiltelefon dessa dagar som du får 307 00:16:54,630 --> 00:16:59,200 skickade ett tillfälligt textmeddelande som säger "Ditt tillfälliga pass koden är 12345." 308 00:16:59,200 --> 00:17:01,280 >> Så utöver min lösenord "crimson", jag också 309 00:17:01,280 --> 00:17:03,916 måste skriva in vad som helst webbplatsen har textade mig. 310 00:17:03,916 --> 00:17:06,290 Eller om du har detta med en bank eller ett investeringskonto, 311 00:17:06,290 --> 00:17:08,123 du ibland har dessa små donglar som 312 00:17:08,123 --> 00:17:11,760 faktiskt har en pseudoslumpmässig talsgenerator inbyggd i dem, 313 00:17:11,760 --> 00:17:15,849 men både enheten och banken vet vad din första frö är 314 00:17:15,849 --> 00:17:19,710 så att de vet, även som lite kod på din lilla nyckelbricka 315 00:17:19,710 --> 00:17:22,380 marscherar framåt varje minut eller två, förändrade värderingar, 316 00:17:22,380 --> 00:17:25,260 så gör det värdeförändring på bankens server 317 00:17:25,260 --> 00:17:28,620 så att de på liknande sätt kan autentisera dig, inte bara med ditt lösenord, 318 00:17:28,620 --> 00:17:30,024 men med den tillfälliga koden. 319 00:17:30,024 --> 00:17:31,690 Nu kan du faktiskt göra det i Google. 320 00:17:31,690 --> 00:17:33,606 Och ärligt talat, är detta en god vana att komma in, 321 00:17:33,606 --> 00:17:36,180 speciellt om du använder Gmail hela tiden på en webbläsare. 322 00:17:36,180 --> 00:17:39,880 Om du går till denna URL här, vilket är i bilderna på nätet idag, och sedan 323 00:17:39,880 --> 00:17:43,579 klicka på 2 tvåstegsverifiering, samma faktiska sak där. 324 00:17:43,579 --> 00:17:45,870 Du blir ombedd att ge dem ditt mobilnummer. 325 00:17:45,870 --> 00:17:49,660 Och sedan, när du loggar in Gmail, du kommer att bli inte bara bad 326 00:17:49,660 --> 00:17:53,480 om ditt lösenord, men också för en lite kod som får skickas till telefonen 327 00:17:53,480 --> 00:17:54,190 temporärt. 328 00:17:54,190 --> 00:17:57,894 Och så länge du har cookies aktiverat och så länge du inte uttryckligen 329 00:17:57,894 --> 00:18:00,060 loggar ut, kommer du bara att ha att göra det en gång i en stund, 330 00:18:00,060 --> 00:18:01,870 som när du sitter ner vid en ny dator. 331 00:18:01,870 --> 00:18:05,320 >> Och uppsidan även här är, om du sitta ner på någon internet cafe stil 332 00:18:05,320 --> 00:18:07,380 dator eller bara en väns dator, även 333 00:18:07,380 --> 00:18:09,710 om den vännen uppsåt eller omedvetet 334 00:18:09,710 --> 00:18:13,580 har vissa tangentbord logger installerad på sin dator, 335 00:18:13,580 --> 00:18:15,640 så att allt du typ görs loggas, 336 00:18:15,640 --> 00:18:19,170 åtminstone att andra faktor, som tillfällig kod är kortlivad. 337 00:18:19,170 --> 00:18:21,630 Så han eller hon eller vem är äventyras datorn 338 00:18:21,630 --> 00:18:24,890 kan inte logga in dig senare, även om allt annat 339 00:18:24,890 --> 00:18:27,890 var utsatt eller till och med okrypterade helt. 340 00:18:27,890 --> 00:18:29,760 Facebook har även detta med den adressen här, 341 00:18:29,760 --> 00:18:32,070 där du kan klicka på Logga in godkännanden. 342 00:18:32,070 --> 00:18:35,500 Så även här, om du inte vill vänner att peta folk, 343 00:18:35,500 --> 00:18:40,140 Du vill inte bli peta på Facebook eller posta statusuppdateringar för dig, 344 00:18:40,140 --> 00:18:42,479 tvåfaktorsautentisering här är förmodligen en bra sak. 345 00:18:42,479 --> 00:18:44,520 Och så finns det här annan teknik helt och hållet, 346 00:18:44,520 --> 00:18:46,853 bara revision, vilket är ännu en bra sak för oss människor, 347 00:18:46,853 --> 00:18:49,950 Om två-faktor visar sig vara irriterande, vilket, Det kan visserligen, eller det är bara inte 348 00:18:49,950 --> 00:18:53,930 finns på någon hemsida, minimalt hålla ett öga på om och när 349 00:18:53,930 --> 00:18:57,650 du logga in på webbplatser, om de att du är en bra teknik också. 350 00:18:57,650 --> 00:19:01,300 Så Facebook ger dig också denna inloggnings anmälningar funktionen, varvid 351 00:19:01,300 --> 00:19:06,240 När som helst Facebook inser, hm, har David loggat in från någon dator eller telefon 352 00:19:06,240 --> 00:19:09,710 att vi aldrig har sett förut från en IP-adress som ser obekant, 353 00:19:09,710 --> 00:19:12,320 de kommer åtminstone att skicka ett e-post till vad e-postadress 354 00:19:12,320 --> 00:19:14,750 som du har angett, sade gör detta ser misstänksam? 355 00:19:14,750 --> 00:19:17,590 Om så är fallet, ändra ditt lösenord omedelbart. 356 00:19:17,590 --> 00:19:19,610 Och så där också, bara revision beteende 357 00:19:19,610 --> 00:19:21,940 även efter att du har varit äventyras, kan åtminstone 358 00:19:21,940 --> 00:19:25,980 avgränsa fönstret under som ni är sårbara. 359 00:19:25,980 --> 00:19:29,910 >> Okej, några frågor på det där hittills? 360 00:19:29,910 --> 00:19:35,510 Idag är dagen för att få alla din paranoia bekräftas eller förnekas. 361 00:19:35,510 --> 00:19:36,820 Det är oftast bekräftas, tyvärr. 362 00:19:36,820 --> 00:19:37,210 Yeah? 363 00:19:37,210 --> 00:19:39,223 >> PUBLIK: [OHÖRBAR] telefon, vad händer om din telefon går sönder, 364 00:19:39,223 --> 00:19:41,010 och då är det alltid svårt att verify-- 365 00:19:41,010 --> 00:19:41,295 >> David J. MALAN: Sant. 366 00:19:41,295 --> 00:19:43,330 >> PUBLIK: Eller om du är i en annan land, och de låter inte dig 367 00:19:43,330 --> 00:19:44,505 logga in eftersom [OHÖRBAR]. 368 00:19:44,505 --> 00:19:45,630 DAVID J. MALAN: Absolut. 369 00:19:45,630 --> 00:19:48,780 Och så dessa är det extra kostnader som kan uppstå. 370 00:19:48,780 --> 00:19:51,040 Det finns alltid detta tema av en kompromiss, trots allt. 371 00:19:51,040 --> 00:19:53,748 Och sedan, om du förlorar din telefon, om det går sönder, om du är utomlands, 372 00:19:53,748 --> 00:19:56,382 eller om du bara inte har en signal, som en 3G eller LTE-signal, 373 00:19:56,382 --> 00:19:58,340 du kanske inte egentligen kunna autentisera. 374 00:19:58,340 --> 00:20:00,520 >> Så återigen, dessa två är avvägningar. 375 00:20:00,520 --> 00:20:03,670 Och ibland kan det skapa en mycket arbete för dig som följd. 376 00:20:03,670 --> 00:20:08,130 Men det beror egentligen, då, på vad det förväntade priset till dig 377 00:20:08,130 --> 00:20:10,980 är något väsen äventyras helt och hållet. 378 00:20:10,980 --> 00:20:15,300 >> Så SSL, då är denna teknik som vi alla tar i regel för givet 379 00:20:15,300 --> 00:20:18,970 eller antar är där, även om det är uppenbarligen inte fallet. 380 00:20:18,970 --> 00:20:23,339 Och du kan fortfarande vilse människor, men även med detta. 381 00:20:23,339 --> 00:20:24,630 Så här är ett exempel på en bank. 382 00:20:24,630 --> 00:20:25,860 >> Detta är Bank of America. 383 00:20:25,860 --> 00:20:28,730 Det finns en hel drös av dessa i Harvard Square och utanför. 384 00:20:28,730 --> 00:20:32,530 Och att märka det, högst upp på skärmen, det finns en, faktiskt, HTTPS. 385 00:20:32,530 --> 00:20:35,370 Och det är ännu grönt och betonade för oss 386 00:20:35,370 --> 00:20:39,550 för att visa att detta faktiskt ett legitimt säker webbplats, 387 00:20:39,550 --> 00:20:41,420 eller så vi har tränats att tro. 388 00:20:41,420 --> 00:20:46,416 >> Nu, förutom det, dock, märker att om vi zoomar in, 389 00:20:46,416 --> 00:20:48,790 det är denna sak här, där du uppmanas att logga in. 390 00:20:48,790 --> 00:20:54,920 Vad innebär detta hänglås betyder rätt där, bredvid mitt användarnamn uppmaning? 391 00:20:54,920 --> 00:20:57,890 Detta är ganska vanligt på webbsidor också. 392 00:20:57,890 --> 00:21:01,120 Vad innebär detta hänglås detta? 393 00:21:01,120 --> 00:21:02,453 Du verkar som du vet. 394 00:21:02,453 --> 00:21:03,420 >> PUBLIK: Det betyder inte någonting. 395 00:21:03,420 --> 00:21:04,230 >> David J. MALAN: Det betyder ingenting. 396 00:21:04,230 --> 00:21:07,790 Det innebär att Bank of America vet hur att skriva HTML med bildtaggar, eller hur? 397 00:21:07,790 --> 00:21:12,080 Det betyder verkligen ingenting, eftersom även vi, med hjälp av den första dagen i vår look 398 00:21:12,080 --> 00:21:15,760 vid HTML kan koda upp en sida med en röd bakgrund och en bild, 399 00:21:15,760 --> 00:21:18,910 som en GIF eller whatnot, som råkar se ut som ett hänglås. 400 00:21:18,910 --> 00:21:20,890 Och ändå är denna super vanligt i webbsidor, 401 00:21:20,890 --> 00:21:24,000 eftersom vi har fått utbildning i att ta på sig att, åh, hänglås betyder säker, 402 00:21:24,000 --> 00:21:25,760 när det verkligen betyder bara vet HTML. 403 00:21:25,760 --> 00:21:28,840 >> Till exempel, tillbaka i dag, jag kunde har just lagt ut på min hemsida, 404 00:21:28,840 --> 00:21:31,660 hävdar att det är säkert, och frågar, effektivt, 405 00:21:31,660 --> 00:21:33,590 för människors användarnamn och lösenord. 406 00:21:33,590 --> 00:21:36,310 Så ser i webbadressen är åtminstone en bättre ledtråd, 407 00:21:36,310 --> 00:21:39,580 eftersom det är inbyggt i Chrome eller vad webbläsare du använder. 408 00:21:39,580 --> 00:21:41,470 Men även då, ibland saker kan gå fel. 409 00:21:41,470 --> 00:21:45,940 Och faktiskt, kanske du inte alltid se HTTPS, än mindre i grönt. 410 00:21:45,940 --> 00:21:48,126 >> Har någon av er någonsin sett en skärm som denna? 411 00:21:48,126 --> 00:21:50,000 Du kanske har, faktiskt, tidigare i oktober, 412 00:21:50,000 --> 00:21:54,740 när jag glömde att betala för vår SSL-certifikat, som det kallas, 413 00:21:54,740 --> 00:21:58,400 och vi letade ut detta för en timme eller två. 414 00:21:58,400 --> 00:22:01,830 Så du har förmodligen sett saker så här, med ett genomslag, 415 00:22:01,830 --> 00:22:05,240 som en röd linje genom protokollet i webbadressen 416 00:22:05,240 --> 00:22:08,010 eller någon form av skärm som är åtminstone förman du 417 00:22:08,010 --> 00:22:09,760 för att försöka gå vidare. 418 00:22:09,760 --> 00:22:12,540 Och Google Här är inbjudande dig att gå tillbaka till säkerheten. 419 00:22:12,540 --> 00:22:17,120 >> Nu, i det här fallet, detta bara inneburit att SSL-certifikat som vi använde, 420 00:22:17,120 --> 00:22:22,220 de stora, matematiskt användbara siffror som är förknippade med CS50 server, 421 00:22:22,220 --> 00:22:23,949 inte längre gällde. 422 00:22:23,949 --> 00:22:26,490 Och i själva verket kan vi simulera detta, som du kan på din bärbara dator. 423 00:22:26,490 --> 00:22:30,270 Om jag går in i Chrome här, och låt oss gå till facebook.com, 424 00:22:30,270 --> 00:22:32,230 och det ser ut så här är säkert. 425 00:22:32,230 --> 00:22:36,910 Men låt mig gå vidare nu och klicka på hänglåset här. 426 00:22:36,910 --> 00:22:40,030 >> Och låt mig gå till Connection, Certifikatinformation. 427 00:22:40,030 --> 00:22:42,020 Och faktiskt, vad du kommer se här är ett gäng 428 00:22:42,020 --> 00:22:46,160 av lägre nivå detaljer om som facebook.com egentligen är. 429 00:22:46,160 --> 00:22:49,380 Det verkar som om de har betalat pengar till ett företag som heter kanske Digicert Hög 430 00:22:49,380 --> 00:22:54,420 Försäkring som har lovat att tala om för resten av världen 431 00:22:54,420 --> 00:22:57,250 att om en webbläsare någonsin ser en certificate-- du kan tänka 432 00:22:57,250 --> 00:23:00,291 det bokstavligen som ett certifikat som ser ut som det ostliknande sak i toppen 433 00:23:00,291 --> 00:23:04,360 left-- sedan facebook.com är som de säger att de är, eftersom all denna tid, när 434 00:23:04,360 --> 00:23:07,160 du besöker en webbplats, som cs50.harvard.edu eller facebook.com 435 00:23:07,160 --> 00:23:11,880 eller gmail.com som använder HTTPS Webbadresser, bakom kulisserna, 436 00:23:11,880 --> 00:23:15,190 det finns denna typ av transaktion händer automatiskt 437 00:23:15,190 --> 00:23:18,060 för dig, vari facebook.com, i detta fall, 438 00:23:18,060 --> 00:23:22,150 skickar till din webbläsare dess så kallad SSL-certifikat, eller snarare, 439 00:23:22,150 --> 00:23:23,380 dess publika nyckel, 440 00:23:23,380 --> 00:23:25,600 och sedan din webbläsare använder den publika nyckeln 441 00:23:25,600 --> 00:23:29,600 att därefter skicka krypterad trafik till och från den. 442 00:23:29,600 --> 00:23:32,360 >> Men det finns hela denna hierarki i världen av företag 443 00:23:32,360 --> 00:23:36,430 att du betalar pengar till vem som kommer då vittna, i en digital bemärkelse, 444 00:23:36,430 --> 00:23:41,330 att du verkligen facebook.com eller din server är verkligen cs50.harvard.edu. 445 00:23:41,330 --> 00:23:44,580 Och inbyggd i webbläsare, som Chrome och IE och Firefox, 446 00:23:44,580 --> 00:23:48,260 är en lista på alla de sk certifikatutfärdare 447 00:23:48,260 --> 00:23:51,360 som är godkända av Microsoft och Google och Mozilla 448 00:23:51,360 --> 00:23:55,410 för att bekräfta eller förneka att facebook.com är vem det säger att det är. 449 00:23:55,410 --> 00:23:57,430 Men kruxet är att dessa saker förfaller. 450 00:23:57,430 --> 00:24:02,670 I själva verket ser Facebook är som det går ut i oktober, 2015. 451 00:24:02,670 --> 00:24:06,490 >> Så vi kan faktiskt simulera detta om jag gå i min Mac till min Systeminställningar, 452 00:24:06,490 --> 00:24:11,070 och jag går in datum och tid, samt Jag går in datum och tid här, 453 00:24:11,070 --> 00:24:17,190 och jag låsa upp denna här-- tack och lov, Vi visade inte ett lösenord här time-- 454 00:24:17,190 --> 00:24:20,660 och nu går jag ner för att avmarkera det. 455 00:24:20,660 --> 00:24:25,660 Och låt oss actually-- oops, det är inte lika intressant som att göra detta. 456 00:24:25,660 --> 00:24:30,140 Vi är bokstavligen i framtiden nu, vilket innebär att detta är vad 2020 är. 457 00:24:30,140 --> 00:24:36,360 Om jag laddar nu page-- låt oss göra det i Ingognito mode-- 458 00:24:36,360 --> 00:24:40,910 om jag ladda om sidan, där vi går. 459 00:24:40,910 --> 00:24:45,820 >> Så nu, tycker min dator Det är 2020, men min webbläsare 460 00:24:45,820 --> 00:24:49,810 vet att detta certifikat från Facebook går ut, naturligtvis, i 2015. 461 00:24:49,810 --> 00:24:51,360 Så det ger mig denna röda budskap. 462 00:24:51,360 --> 00:24:53,550 Nu, tack och lov, webbläsare som Chrome har faktiskt 463 00:24:53,550 --> 00:24:55,480 gjorde det ganska svårt att fortsätt ändå. 464 00:24:55,480 --> 00:24:57,300 De vill att jag faktiskt att gå tillbaka till säkerheten. 465 00:24:57,300 --> 00:25:00,550 >> Om jag klickar här på Advance, det kommer att berätta lite mer detaljer. 466 00:25:00,550 --> 00:25:02,580 Och om jag verkligen vill att gå vidare, de ska låta 467 00:25:02,580 --> 00:25:06,250 mig gå till facebook.com, vilket är, igen, osäkra, vid vilken punkt 468 00:25:06,250 --> 00:25:08,310 Jag får se Facebooks hemsida, som den här. 469 00:25:08,310 --> 00:25:10,080 Men sedan annat verkar vara brytning. 470 00:25:10,080 --> 00:25:12,825 Vad är förmodligen bryta i detta läge? 471 00:25:12,825 --> 00:25:13,700 PUBLIK: JavaScript. 472 00:25:13,700 --> 00:25:15,540 DAVID J. MALAN: Liksom JavaScript och / eller CSS 473 00:25:15,540 --> 00:25:17,460 filer är på liknande sätt möter detta fel. 474 00:25:17,460 --> 00:25:19,830 Så det här är bara en dålig situation totalt sett. 475 00:25:19,830 --> 00:25:24,790 Men poängen här är att åtminstone Facebook har verkligen SSL aktiverat 476 00:25:24,790 --> 00:25:30,040 för sina servrar, som många webbplatser, gör, men inte nödvändigtvis alla. 477 00:25:30,040 --> 00:25:33,360 >> Men det är inte bara takeaway här. 478 00:25:33,360 --> 00:25:36,040 Visar sig att även SSL har demonstrerats 479 00:25:36,040 --> 00:25:37,810 att vara osäkra på något sätt. 480 00:25:37,810 --> 00:25:40,400 Så jag slags antyder att SSL, bra. 481 00:25:40,400 --> 00:25:44,250 Leta efter HTTPS webbadresser, och livet är bra, eftersom all din HTTP-trafik 482 00:25:44,250 --> 00:25:46,180 och rubriker och innehåll är krypterad. 483 00:25:46,180 --> 00:25:49,560 >> Ingen kan avlyssna den i mitten, med undantag för en så kallad man 484 00:25:49,560 --> 00:25:50,454 i mitten. 485 00:25:50,454 --> 00:25:52,870 Detta är en allmän teknik i världen av säkerhet känd 486 00:25:52,870 --> 00:25:54,420 som en man-in-the-middle attack. 487 00:25:54,420 --> 00:25:57,067 Anta att du är den här lilla laptop över här till vänster, 488 00:25:57,067 --> 00:25:59,900 och antar att du försöker besöka en server där borta till höger, 489 00:25:59,900 --> 00:26:00,990 liknande facebook.com. 490 00:26:00,990 --> 00:26:03,940 >> Men anta att, i mellan dig och Facebook, 491 00:26:03,940 --> 00:26:07,750 är en hel massa andra servrar och utrustning, som switchar och routrar, 492 00:26:07,750 --> 00:26:11,530 DNS-servrar, DHCP-servrar, varav ingen vi kontrollerar. 493 00:26:11,530 --> 00:26:15,280 Det kan styras med Bucks eller Harvard eller Comcast eller liknande. 494 00:26:15,280 --> 00:26:18,090 Tja, antar att någon uppsåt, i nätverket, 495 00:26:18,090 --> 00:26:20,800 mellan dig och Facebook, kan berätta för dig 496 00:26:20,800 --> 00:26:24,740 att, vet du vad, IP-adress Facebook är inte vad du tror det är. 497 00:26:24,740 --> 00:26:26,250 Det är denna IP istället. 498 00:26:26,250 --> 00:26:28,740 >> Och så din webbläsare är luras till att begära 499 00:26:28,740 --> 00:26:30,750 trafik från en annan dator helt och hållet. 500 00:26:30,750 --> 00:26:35,350 Tja, antar att datorn bara tittar på alla 501 00:26:35,350 --> 00:26:38,859 av trafiken du begär från Facebook och alla webbsidor 502 00:26:38,859 --> 00:26:40,400 att du begär från Facebook. 503 00:26:40,400 --> 00:26:45,700 Och varje gång det ser i din trafik en URL som börjar med HTTPS, 504 00:26:45,700 --> 00:26:49,250 det dynamiskt, om flyga, skriver den som HTTP. 505 00:26:49,250 --> 00:26:53,490 Och varje gång det ser en plats header, plats kolon, 506 00:26:53,490 --> 00:26:55,930 som vi använder för att omdirigera användaren, de också, 507 00:26:55,930 --> 00:27:00,690 kan ändras genom den här mannen i mitten från HTTPS till HTTP. 508 00:27:00,690 --> 00:27:04,170 >> Så även om du själv kanske tror du är på den riktiga Facebook, 509 00:27:04,170 --> 00:27:07,860 Det är inte så svårt för en motståndare med fysisk tillgänglighet 510 00:27:07,860 --> 00:27:10,630 till nätverket för att helt enkelt returnera sidor för er att 511 00:27:10,630 --> 00:27:12,650 ser ut som Gmail, som ser ut som Facebook, 512 00:27:12,650 --> 00:27:14,880 och faktiskt URL är identiska, eftersom de är 513 00:27:14,880 --> 00:27:19,410 låtsas ha samma värdnamn på grund av vissa utnyttjande av DNS 514 00:27:19,410 --> 00:27:21,340 eller något annat system som. 515 00:27:21,340 --> 00:27:23,894 Och resultatet är då att vi människor bara kanske 516 00:27:23,894 --> 00:27:26,810 inse att, OK, det här ser ut som Gmail eller åtminstone den äldre versionen, 517 00:27:26,810 --> 00:27:29,480 eftersom denna bild från en äldre presentationen. 518 00:27:29,480 --> 00:27:34,250 Men det ser ut this-- http://www.google.com. 519 00:27:34,250 --> 00:27:37,370 >> Så även här verkligheten är att hur många av er, 520 00:27:37,370 --> 00:27:41,290 när du går till Facebook eller Gmail eller någon webbplats och du vet lite något 521 00:27:41,290 --> 00:27:47,060 om SSL, hur många av er fysiskt skriva https: // och sedan webbplatsen 522 00:27:47,060 --> 00:27:48,990 namn, Enter. 523 00:27:48,990 --> 00:27:52,940 De flesta av oss bara skriva, liksom, CS50, tryck Enter, eller F-A för Facebook 524 00:27:52,940 --> 00:27:54,770 och tryck Enter, och låt det komplettera automatiskt. 525 00:27:54,770 --> 00:27:57,620 Men bakom kulisserna, om du tittar på din HTTP-trafik, 526 00:27:57,620 --> 00:28:00,090 det finns förmodligen en hel drös av de lokaliserings headers 527 00:28:00,090 --> 00:28:03,580 som skickar dig från Facebook till www.facebook.com 528 00:28:03,580 --> 00:28:07,250 till https://www.facebook.com. 529 00:28:07,250 --> 00:28:12,300 >> Så det är en eller flera HTTP-transaktioner där din uppgift är 530 00:28:12,300 --> 00:28:15,102 sändas i det klara, ingen kryptering som helst. 531 00:28:15,102 --> 00:28:17,810 Nu, som kanske inte är så stort handlar om allt du försöker göra 532 00:28:17,810 --> 00:28:20,980 är tillgång till hemsidan, du är inte skicka ditt användarnamn och lösenord. 533 00:28:20,980 --> 00:28:23,130 Men vad är det under huven, särskilt 534 00:28:23,130 --> 00:28:28,130 för PHP-baserade webbplatser som är också skickas fram och tillbaka när 535 00:28:28,130 --> 00:28:33,820 du besöka några webbsida om att webbplatsen använder, säg, PHP 536 00:28:33,820 --> 00:28:37,370 och implementerar funktioner som pset7? 537 00:28:37,370 --> 00:28:40,840 Det som skickas fram och tillbaka i din HTTP-rubriker som gav dig 538 00:28:40,840 --> 00:28:44,903 tillgång till denna vackra användbart super globalt i PHP? 539 00:28:44,903 --> 00:28:45,710 >> Målgrupp: Cookies. 540 00:28:45,710 --> 00:28:49,020 >> DAVID J. MALAN: Kakor, specifikt PHP sess ID cookie. 541 00:28:49,020 --> 00:28:53,100 Så minns, om vi går till, säg, cs50.harvard.edu igen, 542 00:28:53,100 --> 00:28:56,440 men denna gång, låt oss öppna upp Fliken Nätverk, och nu, här uppe, 543 00:28:56,440 --> 00:29:01,570 Låt oss bokstavligen bara gå till http://cs50.harvard.edu 544 00:29:01,570 --> 00:29:03,030 och sedan trycka Enter. 545 00:29:03,030 --> 00:29:05,520 Och sedan titta på skärmen här nere. 546 00:29:05,520 --> 00:29:09,600 Lägg märke till att vi faktiskt fick tillbaka en 301 flyttas permanent 547 00:29:09,600 --> 00:29:12,820 meddelande, vilket innebär att det finns en plats header här, 548 00:29:12,820 --> 00:29:15,610 som nu omdirigera mig till HTTPS. 549 00:29:15,610 --> 00:29:21,330 >> Men kruxet är att om jag redan haft en cookie stämplat på min hand så gott, 550 00:29:21,330 --> 00:29:25,890 som vi har diskuterat tidigare, och Jag mänskliga slags omedvetet 551 00:29:25,890 --> 00:29:29,090 bara besöka den osäkra version, och min webbläsare tar det 552 00:29:29,090 --> 00:29:34,020 på sig att visa att handen stämpel för den första begäran, vilket är via HTTP, 553 00:29:34,020 --> 00:29:36,610 någon människa i mitten, något motståndare i mitten, 554 00:29:36,610 --> 00:29:39,380 kan teoretiskt bara se dessa HTTP-huvuden, bara 555 00:29:39,380 --> 00:29:40,980 som om vi tittar på dem här. 556 00:29:40,980 --> 00:29:43,310 Det är bara när du är prata med en HTTPS 557 00:29:43,310 --> 00:29:47,780 URL gör den handen stämpel själv får krypterad, a la Caesar eller Vigenère, 558 00:29:47,780 --> 00:29:50,500 men med en snyggare algoritm helt och hållet. 559 00:29:50,500 --> 00:29:53,611 Så här också, även om webbplatser använder HTTPS, 560 00:29:53,611 --> 00:29:56,860 vi människor har betingats, tack till automatisk komplettering och andra tekniker, 561 00:29:56,860 --> 00:29:59,827 att inte ens tänka på de potentiella konsekvenserna. 562 00:29:59,827 --> 00:30:01,160 Nu, det finns vägar runt detta. 563 00:30:01,160 --> 00:30:03,140 Exempelvis har många webbplatser kan konfigureras 564 00:30:03,140 --> 00:30:05,848 så att när du har denna hand stämpel, kan du tala om för webbläsaren, 565 00:30:05,848 --> 00:30:07,750 denna hand stämpel är bara för SSL-anslutningar. 566 00:30:07,750 --> 00:30:11,702 Webbläsaren bör inte uppvisa det till mig om det är över SSL. 567 00:30:11,702 --> 00:30:13,410 Men många webbplatser försök inte med det. 568 00:30:13,410 --> 00:30:17,260 Och många webbplatser tydligen inte ens bry med SSL alls. 569 00:30:17,260 --> 00:30:20,540 >> Så för mer om det, det finns faktiskt ännu mer smuts i denna presentation 570 00:30:20,540 --> 00:30:24,010 att en annan höll vid en så kallad svart Hat konferensen ett par år sedan, 571 00:30:24,010 --> 00:30:26,468 där det finns även andra illvilliga tricks människor har använt. 572 00:30:26,468 --> 00:30:28,630 Du kanske kommer ihåg det här begreppet en favicon, som 573 00:30:28,630 --> 00:30:32,270 är som en liten logotyp som är ofta i webbläsarens fönster. 574 00:30:32,270 --> 00:30:34,610 Nå, vad har varit vanligt bland skurkarna är 575 00:30:34,610 --> 00:30:36,340 att göra fab ikoner som ser ut som vad? 576 00:30:36,340 --> 00:30:39,054 577 00:30:39,054 --> 00:30:39,970 PUBLIK: [OHÖRBAR]. 578 00:30:39,970 --> 00:30:40,280 DAVID J. MALAN: Säg igen? 579 00:30:40,280 --> 00:30:41,490 PUBLIK: De webbplatser. 580 00:30:41,490 --> 00:30:42,130 DAVID J. MALAN: Inte en webbplats. 581 00:30:42,130 --> 00:30:43,394 Så favicon, liten liten ikon. 582 00:30:43,394 --> 00:30:45,560 Vad skulle vara det mest skadlig, manipulativ sak 583 00:30:45,560 --> 00:30:47,832 Du kan göra din webbplats standardikon se ut? 584 00:30:47,832 --> 00:30:48,790 Publik: En grön lås. 585 00:30:48,790 --> 00:30:49,080 DAVID J. MALAN: Vad är det? 586 00:30:49,080 --> 00:30:50,160 PUBLIK: Lite grön lås. 587 00:30:50,160 --> 00:30:51,960 DAVID J. MALAN: Like ett grönt lock, exakt. 588 00:30:51,960 --> 00:30:55,242 Så du kan ha denna estetiska av en liten grön hänglås, 589 00:30:55,242 --> 00:30:57,950 antydan till världen, åh, vi är säker, då, återigen, allt det innebär 590 00:30:57,950 --> 00:31:00,210 är att du vet lite HTML. 591 00:31:00,210 --> 00:31:02,895 Så sessionskapning syftar på just detta. 592 00:31:02,895 --> 00:31:05,936 Om du har någon som är typ av sniffa etermedierna i detta rum här 593 00:31:05,936 --> 00:31:09,150 eller har fysisk tillgång till en nätverk och kan se dina cookies, 594 00:31:09,150 --> 00:31:12,152 han eller hon kan ta det PHP sess ID cookie. 595 00:31:12,152 --> 00:31:13,860 Och sedan, om de är kunniga nog att veta 596 00:31:13,860 --> 00:31:18,200 hur man kan skicka samma kaka som sin egen handen stämpel bara genom att kopiera detta värde 597 00:31:18,200 --> 00:31:20,860 och skicka HTTP headers, Någon kan mycket lätt 598 00:31:20,860 --> 00:31:23,510 logga in på någon av Facebook- konton eller Gmail-konton 599 00:31:23,510 --> 00:31:27,355 eller Twitter-konton som är här, öppna i rummet, om du inte använder SSL 600 00:31:27,355 --> 00:31:31,500 och om webbplatsen är inte använder SSL korrekt. 601 00:31:31,500 --> 00:31:33,690 >> Så låt oss övergång till en annan. 602 00:31:33,690 --> 00:31:34,700 Så en annan sann historia. 603 00:31:34,700 --> 00:31:38,680 Och detta bara galopperade i nyheter en vecka eller två sedan. 604 00:31:38,680 --> 00:31:41,520 Verizon har gjort en mycket ond sak, 605 00:31:41,520 --> 00:31:45,110 och som bästa människorna kan berätta, sedan åtminstone 2012, varigenom, 606 00:31:45,110 --> 00:31:51,550 När du besöka webbplatser via en Verizon mobiltelefon, oavsett tillverkare det är, 607 00:31:51,550 --> 00:31:54,150 de har varit presumptuously, som historien går, 608 00:31:54,150 --> 00:31:59,890 injicering i alla dina HTTP trafik egen HTTP-huvudet. 609 00:31:59,890 --> 00:32:04,040 Och att header ser ut liknande this-- X-UIDH. 610 00:32:04,040 --> 00:32:06,465 UID är som en unik identifierare eller användar-ID. 611 00:32:06,465 --> 00:32:09,660 Och X betyder just detta är en anpassad header det är inte standard. 612 00:32:09,660 --> 00:32:11,720 >> Men vad det betyder är att om jag drar upp, 613 00:32:11,720 --> 00:32:14,640 till exempel en webbplats på min telefon här-- 614 00:32:14,640 --> 00:32:18,310 och jag använder Verizon som min carrier-- trots att min webbläsare kanske inte 615 00:32:18,310 --> 00:32:21,110 att skicka detta HTTP header, Verizon, så snart 616 00:32:21,110 --> 00:32:23,650 eftersom signalen når sin mobiltelefon torn någonstans, 617 00:32:23,650 --> 00:32:28,187 har varit en tid injicerar detta header in alla våra HTTP-trafik. 618 00:32:28,187 --> 00:32:29,020 Varför gör de det? 619 00:32:29,020 --> 00:32:31,920 Förmodligen för spårningsskäl för reklamskäl. 620 00:32:31,920 --> 00:32:36,280 >> Men det moronic besluts designen här är att en HTTP-huvudet, 621 00:32:36,280 --> 00:32:41,090 som ni vet från pset6, tas emot av alla webbservrar 622 00:32:41,090 --> 00:32:42,540 att du begär trafiken av. 623 00:32:42,540 --> 00:32:44,248 Så hela den här tiden, om du har besökt 624 00:32:44,248 --> 00:32:48,019 Facebook eller Gmail eller någon hemsida som inte använder SSL all time-- 625 00:32:48,019 --> 00:32:49,810 och faktiskt, de två lyckligtvis nu do-- 626 00:32:49,810 --> 00:32:52,670 men andra webbplatser som använder inte SSL hela tiden, 627 00:32:52,670 --> 00:32:54,930 Verizon har väsentligen varit plantering, med våld, 628 00:32:54,930 --> 00:32:58,180 en hand stämpel på alla våra händer att även vi inte ser, 629 00:32:58,180 --> 00:33:00,330 utan snarare, slut webbplatser gör. 630 00:33:00,330 --> 00:33:02,890 Och så har det inte varit att svårt för vem som helst på Internet 631 00:33:02,890 --> 00:33:05,245 kör en webbserver till inse, ooh, det här är David, 632 00:33:05,245 --> 00:33:09,340 eller, ooh, det här Davin, även om vi är rigorösa om att rensa våra cookies, 633 00:33:09,340 --> 00:33:10,772 eftersom det inte kommer från oss. 634 00:33:10,772 --> 00:33:11,980 Det kommer från bäraren. 635 00:33:11,980 --> 00:33:14,896 >> De gör en sökning på ditt telefonnummer och sedan säga, åh, det här är David. 636 00:33:14,896 --> 00:33:18,890 Låt mig injicera en unik identifierare så att våra annonsörer eller vem kan 637 00:33:18,890 --> 00:33:19,850 hålla reda på detta. 638 00:33:19,850 --> 00:33:23,769 Så det här är faktiskt mycket, mycket, mycket dåligt och skrämmande. 639 00:33:23,769 --> 00:33:26,060 Och jag vill uppmuntra er att titta, till exempel, 640 00:33:26,060 --> 00:33:29,950 på den här webbadressen, som jag borde förnekanden Jag försökte faktiskt detta i morse. 641 00:33:29,950 --> 00:33:31,970 Jag skrev ett litet manus, uttryckte det på följande webbadress, 642 00:33:31,970 --> 00:33:34,770 besökte det med min egen Verizon Mobiltelefon efter vridning Wi-Fi off. 643 00:33:34,770 --> 00:33:38,010 Så du måste slå på Wi-Fi av så att du använder 3G eller LTE eller liknande. 644 00:33:38,010 --> 00:33:40,010 Och sedan, om du besöker denna URL, allt detta script 645 00:33:40,010 --> 00:33:41,770 gör för er, om du vill spela, 646 00:33:41,770 --> 00:33:45,380 det spottar ut vad HTTP-huvuden telefonen sänder till vår server. 647 00:33:45,380 --> 00:33:48,510 Och jag faktiskt, i rättvisans namn, gjorde inte ser detta i morse, som 648 00:33:48,510 --> 00:33:51,430 får mig att tänka antingen det lokala mobiltelefon torn jag var ansluten till 649 00:33:51,430 --> 00:33:55,160 eller whatnot inte gör det, eller de har backade att göra detta för tillfället. 650 00:33:55,160 --> 00:33:58,160 Men för mer information huvudet till denna URL här. 651 00:33:58,160 --> 00:34:00,680 >> Och nu this-- här komiska verkar förnuftigt. 652 00:34:00,680 --> 00:34:03,530 653 00:34:03,530 --> 00:34:04,030 Nej? 654 00:34:04,030 --> 00:34:04,530 OK. 655 00:34:04,530 --> 00:34:05,390 Okej. 656 00:34:05,390 --> 00:34:06,310 Det dog. 657 00:34:06,310 --> 00:34:07,240 Okej. 658 00:34:07,240 --> 00:34:11,330 >> Så låt oss ta en titt på ett par mer attacker, om så bara för att öka medvetenheten om 659 00:34:11,330 --> 00:34:13,179 och sedan erbjuda ett par möjliga lösningar 660 00:34:13,179 --> 00:34:14,430 så att du är desto mer uppmärksam. 661 00:34:14,430 --> 00:34:17,305 Detta talade vi om den andra dag, men gav inte ett namn. 662 00:34:17,305 --> 00:34:22,360 Det är en cross-site request förfalskning, vilket är en alltför fint sätt att säga 663 00:34:22,360 --> 00:34:26,489 du lura en användare till att klicka på en URL som denna, som knep dem 664 00:34:26,489 --> 00:34:28,280 i vissa beteenden som de inte hade för avsikt. 665 00:34:28,280 --> 00:34:30,710 >> I detta fall verkar det att försöka lura mig 666 00:34:30,710 --> 00:34:32,920 till att sälja mina aktier i Google. 667 00:34:32,920 --> 00:34:36,810 Och detta kommer att lyckas om Jag, programmeraren av pset7, 668 00:34:36,810 --> 00:34:40,409 har inte gjort vad? 669 00:34:40,409 --> 00:34:44,739 Eller snarare, mer allmänt, i vilken fall är jag sårbar för en attack 670 00:34:44,739 --> 00:34:49,460 Om någon försöker lura en annan användares till att klicka på en URL som denna? 671 00:34:49,460 --> 00:34:49,960 Yeah? 672 00:34:49,960 --> 00:34:52,500 >> PUBLIK: Du behöver inte skilja mellan GET och POST. 673 00:34:52,500 --> 00:34:52,760 >> DAVID J. MALAN: Good. 674 00:34:52,760 --> 00:34:54,850 Om vi ​​inte gör skillnad mellan GET och POST, 675 00:34:54,850 --> 00:34:57,950 och faktiskt, om vi låter GET för att sälja saker, 676 00:34:57,950 --> 00:35:00,284 vi bjuder in den här typen av angrepp. 677 00:35:00,284 --> 00:35:01,950 Men vi kunde ändå dämpa det lite. 678 00:35:01,950 --> 00:35:04,283 Och jag kommenterade, tror jag, förra veckan att Amazon minst 679 00:35:04,283 --> 00:35:08,180 försöker att motverka detta med en teknik det är ganska enkelt. 680 00:35:08,180 --> 00:35:11,860 Vad skulle en smart sak att göra på din server, 681 00:35:11,860 --> 00:35:14,652 snarare än att bara blint sälja oavsett symbol användaren skriver in? 682 00:35:14,652 --> 00:35:15,984 PUBLIK: Bekräftelse av slag? 683 00:35:15,984 --> 00:35:19,320 DAVID J. MALAN: En bekräftelseskärm, något som involverar mänsklig interaktion 684 00:35:19,320 --> 00:35:21,300 så att jag är tvungen att göra dom samtal, 685 00:35:21,300 --> 00:35:23,930 även om jag har naivt klickat en länk som ser ut så här 686 00:35:23,930 --> 00:35:27,760 och ledde mig till cellen skärmen, vid Minst bad mig att bekräfta eller förneka. 687 00:35:27,760 --> 00:35:32,460 Men inte en ovanlig attack, speciellt i så kallade phishing eller spam-liknande 688 00:35:32,460 --> 00:35:33,280 attacker. 689 00:35:33,280 --> 00:35:34,890 >> Nu, här är lite mer subtil. 690 00:35:34,890 --> 00:35:37,060 Detta är en cross-site scripting-attack. 691 00:35:37,060 --> 00:35:39,250 Och detta händer om din webbplats inte använder 692 00:35:39,250 --> 00:35:41,260 motsvarigheten av htmlspecialchars. 693 00:35:41,260 --> 00:35:45,160 Och det tar användarens input och bara blint injicera det i en webbsida, 694 00:35:45,160 --> 00:35:48,170 såsom med tryck eller eko, with-- igen-- ut ringer något 695 00:35:48,170 --> 00:35:49,710 liknande htmlspecialchars. 696 00:35:49,710 --> 00:35:52,602 >> Så antar webbplatsen i Frågan är vulnerable.com. 697 00:35:52,602 --> 00:35:55,620 Och antar att det tar emot en parameter som heter q. 698 00:35:55,620 --> 00:35:59,040 Titta på vad som kan hända om jag faktiskt, en skurk, 699 00:35:59,040 --> 00:36:02,360 skriver in eller lura en användare till besöker en webbadress som ser ut som this-- 700 00:36:02,360 --> 00:36:05,900 q = open script-tagg, stängd skripttagg. 701 00:36:05,900 --> 00:36:08,480 Och återigen, jag antar att vulnerable.com är inte 702 00:36:08,480 --> 00:36:11,740 kommer att vända farliga tecken som öppna konsoler 703 00:36:11,740 --> 00:36:15,570 i HTML-entiteter, det et-tecken, L-T, semikolon sak 704 00:36:15,570 --> 00:36:17,090 som du kanske har sett förut. 705 00:36:17,090 --> 00:36:18,900 >> Men vad är skriptet eller JavaScript-kod 706 00:36:18,900 --> 00:36:21,160 Jag försöker lura en användare till att köra? 707 00:36:21,160 --> 00:36:25,420 Tja, hänvisar document.location min webbläsare nuvarande adress. 708 00:36:25,420 --> 00:36:29,400 Så om jag gör document.location =, Detta gör att jag kan omdirigera användaren 709 00:36:29,400 --> 00:36:30,830 i JavaScript till en annan webbplats. 710 00:36:30,830 --> 00:36:34,290 Det är som vår PHP-funktionen omdirigera, men gjort i JavaScript. 711 00:36:34,290 --> 00:36:35,900 >> Var ska jag försökte skicka användaren? 712 00:36:35,900 --> 00:36:40,110 Jo, tydligen, badguy.com/log.php, som är en del manus, som synes, 713 00:36:40,110 --> 00:36:43,530 den onde skrev, som tar en parameter kallad cookie. 714 00:36:43,530 --> 00:36:46,790 >> Och varsel, vad gör jag verkar vara konkatenering 715 00:36:46,790 --> 00:36:49,190 på slutet av det likhetstecken? 716 00:36:49,190 --> 00:36:52,030 Tja, något som säger document.cookie. 717 00:36:52,030 --> 00:36:53,320 Vi har inte pratat om det här. 718 00:36:53,320 --> 00:36:55,730 Men det visar sig, i JavaScript, precis som i PHP, 719 00:36:55,730 --> 00:36:59,770 du kan komma åt alla cookies att din webbläsare faktiskt använder. 720 00:36:59,770 --> 00:37:02,180 >> Så effekten av denna en kodrad, om en användare 721 00:37:02,180 --> 00:37:06,440 luras att klicka på denna länk och webbplatsen vulnerable.com inte 722 00:37:06,440 --> 00:37:10,000 undkomma den med htmlspecialchars, är att du har bara ett effektivt sätt 723 00:37:10,000 --> 00:37:13,660 upp till log.php alla dina cookies. 724 00:37:13,660 --> 00:37:17,300 Och det är inte alltid så problematiskt, utom om en av dessa cookies 725 00:37:17,300 --> 00:37:20,040 är din session-ID, din så kallade handstämpel, som 726 00:37:20,040 --> 00:37:26,470 innebär badguy.com kan göra sin egen HTTP-förfrågningar, skicka den samma hand 727 00:37:26,470 --> 00:37:30,210 stämpel, samma kaka header, och logga in oavsett hemsida 728 00:37:30,210 --> 00:37:33,680 du besökte, vilket i det här fallet är vulnerable.com. 729 00:37:33,680 --> 00:37:35,940 Det är en cross-site scripting attack i den meningen 730 00:37:35,940 --> 00:37:38,130 att du är sortens lura en plats i talande 731 00:37:38,130 --> 00:37:43,560 en annan webbplats om viss information det bör inte, i själva verket har tillgång till. 732 00:37:43,560 --> 00:37:46,510 >> Okej, redo för en annan oroande detalj? 733 00:37:46,510 --> 00:37:49,970 Okej, är världen en skrämmande plats, legitimt så. 734 00:37:49,970 --> 00:37:52,480 Här är en enkel JavaScript exempel som är 735 00:37:52,480 --> 00:37:54,847 i dagens källkod heter geolocation 0 och 1. 736 00:37:54,847 --> 00:37:56,930 Och det finns ett par walkthroughs på nätet för detta. 737 00:37:56,930 --> 00:37:59,920 >> Och det gör följande om jag öppna denna webbsida i Chrome. 738 00:37:59,920 --> 00:38:04,590 Det gör först ingenting. 739 00:38:04,590 --> 00:38:07,300 OK, vi ska prova det här igen. 740 00:38:07,300 --> 00:38:07,800 Oh. 741 00:38:07,800 --> 00:38:10,990 742 00:38:10,990 --> 00:38:13,370 Nej, det gör något. 743 00:38:13,370 --> 00:38:16,500 OK, stand by. 744 00:38:16,500 --> 00:38:18,200 >> Låt oss prova det här en gång till. 745 00:38:18,200 --> 00:38:21,285 746 00:38:21,285 --> 00:38:21,785 [OHÖRBAR] 747 00:38:21,785 --> 00:38:26,941 748 00:38:26,941 --> 00:38:29,444 Ah, OK, inte säker på varför the-- åh, apparaten 749 00:38:29,444 --> 00:38:31,360 troligen förlorat internet åtkomst av någon anledning. 750 00:38:31,360 --> 00:38:32,840 Okej, så händer mig också. 751 00:38:32,840 --> 00:38:34,650 >> Okej, så meddelande vad som händer här. 752 00:38:34,650 --> 00:38:37,300 Denna kryptiska utseende URL, vilket är bara en av CS50 server, 753 00:38:37,300 --> 00:38:41,130 vill använda min dator plats, liksom fysiskt betyder. 754 00:38:41,130 --> 00:38:45,160 Och om, ja, jag klickar på Tillåt, låt oss se vad som händer. 755 00:38:45,160 --> 00:38:49,030 Tydligen är detta min nuvarande latitud och längsgående koordinater ned 756 00:38:49,030 --> 00:38:51,660 till en ganska bra upplösning. 757 00:38:51,660 --> 00:38:53,310 >> Så hur hamnade jag på det här? 758 00:38:53,310 --> 00:38:57,620 Hur denna webbplats, liksom CS50 server, vet fysiskt var i världen 759 00:38:57,620 --> 00:38:59,600 Jag är, än mindre med den precision. 760 00:38:59,600 --> 00:39:01,990 Tja, visar out-- låt oss bara titta på sidans source-- 761 00:39:01,990 --> 00:39:05,280 att här är ett gäng HTML på botten som först har this-- 762 00:39:05,280 --> 00:39:09,080 kroppen onload = "Lokalisera" - bara en funktion jag skrev. 763 00:39:09,080 --> 00:39:11,840 >> Och jag säger, om lastning sidan, ring Lokalisera. 764 00:39:11,840 --> 00:39:13,750 Och så finns det inget i kroppen, eftersom 765 00:39:13,750 --> 00:39:16,270 i huvudet på sidan, märke till vad jag har här. 766 00:39:16,270 --> 00:39:18,090 Här är min Lokalisera funktion. 767 00:39:18,090 --> 00:39:23,560 Och detta är bara några fel checking-- Om den typ av navigator.geolocation 768 00:39:23,560 --> 00:39:24,490 inte är odefinierad. 769 00:39:24,490 --> 00:39:26,240 Så JavaScript har detta mekanism där du 770 00:39:26,240 --> 00:39:28,270 kan säga, vad är det typ av denna variabel? 771 00:39:28,270 --> 00:39:30,790 Och om det inte är undefined-- det betyder att det finns en viss value-- 772 00:39:30,790 --> 00:39:35,940 Jag ska ringa navigator.geolocation.getCurrentPosition 773 00:39:35,940 --> 00:39:37,230 och sedan återuppringning. 774 00:39:37,230 --> 00:39:37,750 >> Vad är detta? 775 00:39:37,750 --> 00:39:39,916 Så generellt, vad är en motringning, bara för att vara tydlig? 776 00:39:39,916 --> 00:39:42,890 Du kanske har stött detta redan i pset8. 777 00:39:42,890 --> 00:39:44,790 Återuppringning är en generisk term för att göra vad? 778 00:39:44,790 --> 00:39:48,430 779 00:39:48,430 --> 00:39:49,554 Känns som bara jag i dag. 780 00:39:49,554 --> 00:39:50,470 PUBLIK: [OHÖRBAR]. 781 00:39:50,470 --> 00:39:53,322 782 00:39:53,322 --> 00:39:55,280 DAVID J. MALAN: Exakt, en funktion som bör 783 00:39:55,280 --> 00:39:57,330 anropas endast när vi har data. 784 00:39:57,330 --> 00:40:01,510 Denna uppmaning till webbläsaren, få min nuvarande ställning, kan ta en millisekund, 785 00:40:01,510 --> 00:40:02,720 det kan ta någon minut. 786 00:40:02,720 --> 00:40:06,960 Vad detta betyder är att vi talar GET getCurrentPosition metoden, 787 00:40:06,960 --> 00:40:09,910 kalla denna callback-funktion, som jag bokstavligen som heter återuppringning 788 00:40:09,910 --> 00:40:13,150 för enkelhets skull, som tydligen är det en här. 789 00:40:13,150 --> 00:40:16,290 >> Och sättet getCurrentPosition fabrik, helt enkelt genom att läsa dokumentationen 790 00:40:16,290 --> 00:40:19,540 för vissa JavaScript-kod på nätet, är att man kallar det så kallade callback 791 00:40:19,540 --> 00:40:23,220 funktion, passerar den in i det ett JavaScript-objekt, 792 00:40:23,220 --> 00:40:28,970 inuti vilken är .coords.latitude och .coords.longitude, 793 00:40:28,970 --> 00:40:32,140 vilket är exakt hur, då, när jag reloaded denna sida, 794 00:40:32,140 --> 00:40:33,985 Jag kunde se min plats här. 795 00:40:33,985 --> 00:40:35,610 Nu, åtminstone fanns ett försvar här. 796 00:40:35,610 --> 00:40:37,820 Innan jag besökte denna sida, när det faktiskt fungerade, 797 00:40:37,820 --> 00:40:40,935 vad var jag åtminstone tillfrågas om? 798 00:40:40,935 --> 00:40:42,180 >> PUBLIK: [OHÖRBAR]. 799 00:40:42,180 --> 00:40:44,200 >> DAVID J. MALAN: Ja eller no-- göra du vill tillåta eller neka detta? 800 00:40:44,200 --> 00:40:46,630 Men tänk också om vanor ni har nog antagit, 801 00:40:46,630 --> 00:40:48,330 både på dina telefoner och din webbläsare. 802 00:40:48,330 --> 00:40:50,390 Många av oss, mig själv ingår, är förmodligen 803 00:40:50,390 --> 00:40:54,960 nätt predisponerade dessa days-- du se en pop-up, bara Enter, OK, Godkänn, 804 00:40:54,960 --> 00:40:55,730 Tillåt. 805 00:40:55,730 --> 00:40:59,070 Och mer och mer, kan du sätta själv i riskzonen för dessa skäl. 806 00:40:59,070 --> 00:41:03,280 >> Så i själva verket, det var denna underbara bugg några år ago-- eller brist på feature-- 807 00:41:03,280 --> 00:41:08,250 att iTunes hade för några år sedan, som innebär att om du hade en mobiltelefon, 808 00:41:08,250 --> 00:41:12,000 och det var en iPhone, och du lämnade ditt hem 809 00:41:12,000 --> 00:41:15,600 och därför reste runt om i världen eller grannskapet, hela tiden, 810 00:41:15,600 --> 00:41:17,819 telefonen var loggning var du är via GPS. 811 00:41:17,819 --> 00:41:20,610 Och detta är faktiskt avslöjas, och folk sorts förvänta sig detta nu. 812 00:41:20,610 --> 00:41:21,930 Telefonen vet var du befinner dig. 813 00:41:21,930 --> 00:41:24,990 Men problemet var att, När du säkerhetskopierar 814 00:41:24,990 --> 00:41:29,260 telefonen till iTunes-- detta var innan de dagar av icloud, vilket är för bättre 815 00:41:29,260 --> 00:41:33,960 eller för worse-- att data lagras i iTunes, helt okrypterad. 816 00:41:33,960 --> 00:41:37,370 Så om du har en familj eller rumskamrater eller en illvillig granne som är 817 00:41:37,370 --> 00:41:41,430 nyfiken på bokstavligen varje GPS koordinat du någonsin har varit på, 818 00:41:41,430 --> 00:41:43,300 han eller hon kunde bara sitta ner med iTunes, kör 819 00:41:43,300 --> 00:41:46,540 vissa program som var fritt tillgängliga, och producerar kartor som denna. 820 00:41:46,540 --> 00:41:48,680 >> I själva verket är det här jag producerat av min egen telefon. 821 00:41:48,680 --> 00:41:49,380 Jag inkopplad det. 822 00:41:49,380 --> 00:41:51,670 Och det ser ut, baserad på de blå prickarna där, 823 00:41:51,670 --> 00:41:53,900 det är där de flesta av GPS-koordinaterna var 824 00:41:53,900 --> 00:41:56,680 loggas av iTunes som jag var i nordöst där. 825 00:41:56,680 --> 00:42:00,030 Men jag tydligen reste runt en bit, även inom Massachusetts. 826 00:42:00,030 --> 00:42:01,950 >> Så det är Boston Harbor finns till höger. 827 00:42:01,950 --> 00:42:04,430 Det är typ av Cambridge och Boston, där det är som mörkast. 828 00:42:04,430 --> 00:42:07,660 Och ibland vill jag springa ärenden att en större geografi. 829 00:42:07,660 --> 00:42:11,464 >> Men iTunes, i flera år, hade som bäst Jag skulle kunna berätta, allt detta uppgifter om mig. 830 00:42:11,464 --> 00:42:13,380 Du kan tala om att, det året, var jag faktiskt 831 00:42:13,380 --> 00:42:17,990 reser mycket mellan Boston och New York, som går fram och tillbaka 832 00:42:17,990 --> 00:42:18,830 och fram och tillbaka. 833 00:42:18,830 --> 00:42:22,660 Och faktiskt, detta är jag på Amtrak, baksida och tillbaka, fram och tillbaka, en hel del. 834 00:42:22,660 --> 00:42:25,970 Allt som loggas och lagras krypterat på min dator 835 00:42:25,970 --> 00:42:28,520 för alla som kan ha tillgång till min dator. 836 00:42:28,520 --> 00:42:29,480 >> Detta var oroande. 837 00:42:29,480 --> 00:42:32,180 Jag visste inte varför jag var i Pennsylvania eller varför 838 00:42:32,180 --> 00:42:35,277 min telefon var i Pennsylvania, uppenbarligen ganska tätt. 839 00:42:35,277 --> 00:42:37,360 Och, slutligen, såg jag på min gcal, och, åh, jag 840 00:42:37,360 --> 00:42:39,880 besökte CMU, Carnegie Mellon, på den tiden. 841 00:42:39,880 --> 00:42:42,031 Och skönt, den typen av förklarade att blip. 842 00:42:42,031 --> 00:42:43,780 Och sedan, om du zoomar ut längre, kan du 843 00:42:43,780 --> 00:42:46,850 ser jag besökte San Francisco en eller flera gånger då, 844 00:42:46,850 --> 00:42:51,140 och jag hade även en snacka i vad Jag tycker är Vegas, där nere. 845 00:42:51,140 --> 00:42:54,120 Så alla this-- bara en snacka på flygplatsen. 846 00:42:54,120 --> 00:42:56,420 >> PUBLIK: [SKRATT] 847 00:42:56,420 --> 00:43:00,760 >> Så detta är bara att säga att dessa problem, ärligt talat, är allestädes närvarande. 848 00:43:00,760 --> 00:43:02,780 Och det bara känns alltmer som det finns 849 00:43:02,780 --> 00:43:05,810 mer och mer av detta röjs, vilket förmodligen är en bra sak. 850 00:43:05,810 --> 00:43:08,390 Jag vågar påstå, att världen inte är blir sämre på att skriva mjukvara. 851 00:43:08,390 --> 00:43:10,520 Vi blir bättre, förhoppningsvis på att uppmärksamma 852 00:43:10,520 --> 00:43:13,037 hur illa viss programvara är att vi använder. 853 00:43:13,037 --> 00:43:14,870 Och tack och lov, en del företag har börjat 854 00:43:14,870 --> 00:43:17,080 att ställas till svars för detta. 855 00:43:17,080 --> 00:43:19,080 >> Men vilka typer av försvar kan du ha i åtanke? 856 00:43:19,080 --> 00:43:23,610 Så förutom lösenord chefer, liksom 1Password och Lastpass och andra, 857 00:43:23,610 --> 00:43:27,340 Förutom att bara ändra dina lösenord och komma med slumpmässiga ettor 858 00:43:27,340 --> 00:43:29,700 med hjälp av programvara som det, kan du också prova 859 00:43:29,700 --> 00:43:31,700 så gott du kan för att kryptera all din trafik 860 00:43:31,700 --> 00:43:34,680 till åtminstone begränsa det fria ett hot. 861 00:43:34,680 --> 00:43:38,100 Så till exempel, som Harvard dotterbolag, du kan alla gå till vpn.harvard.edu 862 00:43:38,100 --> 00:43:41,010 och logga in med ditt Harvard-ID och PIN-kod. 863 00:43:41,010 --> 00:43:49,350 Och detta kommer att upprätta en säker koppling mellan dig och Harvard. 864 00:43:49,350 --> 00:43:51,150 >> Nu gör det inte nödvändigtvis skydda dig 865 00:43:51,150 --> 00:43:54,360 mot eventuella hot som finns mellan Harvard och Facebook eller Harvard 866 00:43:54,360 --> 00:43:54,861 och Gmail. 867 00:43:54,861 --> 00:43:56,735 Men om du sitter på en flygplats eller om du är 868 00:43:56,735 --> 00:43:59,260 sitter i Starbucks eller du är sitter på en väns plats, 869 00:43:59,260 --> 00:44:02,730 och du inte riktigt litar på dem eller deras konfiguration av deras hem router, 870 00:44:02,730 --> 00:44:04,970 åtminstone du kan upprätta en säker anslutning 871 00:44:04,970 --> 00:44:10,260 till en enhet som denna plats som är förmodligen lite bättre säkrad 872 00:44:10,260 --> 00:44:12,437 än något som liknar en Bucks eller liknande. 873 00:44:12,437 --> 00:44:14,270 Och vad detta innebär är den fastställer, återigen, 874 00:44:14,270 --> 00:44:16,300 kryptering mellan dig och slutpunkten. 875 00:44:16,300 --> 00:44:17,880 >> Ännu finare är saker som detta. 876 00:44:17,880 --> 00:44:20,000 Så en del av er kanske redan känna till Tor, 877 00:44:20,000 --> 00:44:22,930 vilket är den här sortens anonymisering nätverk, där massor av människor, 878 00:44:22,930 --> 00:44:26,640 om de kör det här programmet, väg därefter deras internet 879 00:44:26,640 --> 00:44:27,990 trafik genom varandra. 880 00:44:27,990 --> 00:44:31,460 Så den kortaste punkten är inte längre mellan A och B. 881 00:44:31,460 --> 00:44:35,850 Men det kan vara hela Placera så att du är i huvudsak 882 00:44:35,850 --> 00:44:40,742 täcker sina spår och lämnar mindre av ett rekord om var din HTTP 883 00:44:40,742 --> 00:44:43,950 trafiken kommer ifrån, eftersom det kommer genom en hel massa andra människors 884 00:44:43,950 --> 00:44:45,990 bärbara och stationära, på gott och ont. 885 00:44:45,990 --> 00:44:48,180 >> Men även detta är inte ett bombsäkert sak. 886 00:44:48,180 --> 00:44:51,560 Några av er kanske kommer ihåg förra året det bombhot som kallades in. 887 00:44:51,560 --> 00:44:54,662 Och det spårades slutligen till en användare som hade använt detta nätverk här. 888 00:44:54,662 --> 00:44:57,870 Och fångsten där, som jag minns det, är, Om det inte finns så många andra människor 889 00:44:57,870 --> 00:45:02,190 med hjälp av en programvara som denna, eller använder denna port och protokoll, 890 00:45:02,190 --> 00:45:06,250 det är inte så svårt för ett nätverk för att ens lista ut vem, med viss sannolikhet, 891 00:45:06,250 --> 00:45:08,950 i själva verket var anonyma sin trafik. 892 00:45:08,950 --> 00:45:12,030 >> Och jag vet inte om de var faktiska uppgifterna i fråga. 893 00:45:12,030 --> 00:45:15,400 Men säkert, inser att ingen av dessa är bombsäkert lösningar, liksom. 894 00:45:15,400 --> 00:45:18,820 Och målet här i dag är att minst få dig att tänka på dessa saker 895 00:45:18,820 --> 00:45:23,140 och komma med tekniker för försvara dig mot dem. 896 00:45:23,140 --> 00:45:28,858 Eventuella frågor om alla de hot som väntar där ute, och här inne? 897 00:45:28,858 --> 00:45:29,358 Yeah? 898 00:45:29,358 --> 00:45:29,858 899 00:45:29,858 --> 00:45:31,793 PUBLIK: Hur säkert göra Vi räknar med att i genomsnitt 900 00:45:31,793 --> 00:45:35,210 [? webbplats för att vara,?] som den genomsnittliga CS50 projektet? 901 00:45:35,210 --> 00:45:38,530 >> David J. MALAN: Den Medel CS50 projektet? 902 00:45:38,530 --> 00:45:43,190 Det är alltid bevisat varje år som Vissa CS50 sista projekt inte 903 00:45:43,190 --> 00:45:44,530 särskilt säker. 904 00:45:44,530 --> 00:45:47,940 Vanligtvis är det en del rumskompis eller hallmate att siffrorna ut detta 905 00:45:47,940 --> 00:45:51,200 genom att skicka förfrågningar till ditt projekt. 906 00:45:51,200 --> 00:45:55,230 >> Kort answer-- hur många webbplatser är säkra? 907 00:45:55,230 --> 00:45:57,450 Jag plockar på dagens anomalier. 908 00:45:57,450 --> 00:46:00,640 Som det var bara tillfällighet som jag insåg att denna webbplats 909 00:46:00,640 --> 00:46:03,390 Jag har beställa dessa frankly utsökta arrangemang from-- 910 00:46:03,390 --> 00:46:05,348 och jag är inte säker på att jag ska sluta använda deras hemsida; 911 00:46:05,348 --> 00:46:08,030 Jag kan bara ändra min lösenord mer regularly-- 912 00:46:08,030 --> 00:46:11,320 Det är inte klart hur sårbar alla dessa various-- 913 00:46:11,320 --> 00:46:12,970 Detta är chokladtäckta faktiskt. 914 00:46:12,970 --> 00:46:16,172 915 00:46:16,172 --> 00:46:19,130 Det korta svaret, jag kan inte svara på det effektivt, annat än för att säga det 916 00:46:19,130 --> 00:46:22,150 var inte så svårt för mig att hitta några av dessa exempel bara 917 00:46:22,150 --> 00:46:24,040 av hänsyn till diskussionen i föreläsningen. 918 00:46:24,040 --> 00:46:26,456 Och bara hålla ett öga på Google News och andra resurser 919 00:46:26,456 --> 00:46:29,590 kommer att ge ännu mer av dessa typer av saker att lysa. 920 00:46:29,590 --> 00:46:32,460 >> Okej, låt oss sluta med denna prequel 921 00:46:32,460 --> 00:46:36,870 att CS50 team har förberett för dig i väntan på CS50 hackathon. 922 00:46:36,870 --> 00:46:39,763 Och på väg ut i ett ögonblicket, kommer frukt serveras. 923 00:46:39,763 --> 00:46:40,429 [VIDEOAVSPELNING] 924 00:46:40,429 --> 00:46:43,595 [MUSIK Fergie, Q tips, och GOONROCK, "A LITTLE PARTY DÖDADE ALDRIG INGEN (ALL 925 00:46:43,595 --> 00:46:44,373 VI FICK) "] 926 00:46:44,373 --> 00:48:08,880 927 00:48:08,880 --> 00:48:13,467 >> - [SNARKNING] 928 00:48:13,467 --> 00:48:14,300 [END VIDEOAVSPELNING] 929 00:48:14,300 --> 00:48:15,420 DAVID J. MALAN: Det är det för CS50. 930 00:48:15,420 --> 00:48:16,544 Vi ses på onsdag. 931 00:48:16,544 --> 00:48:20,670 932 00:48:20,670 --> 00:48:25,840 [MUSIK - Skrillex, "IMMA" prova det "] 933 00:48:25,840 --> 00:51:47,776