1 00:00:00,000 --> 00:00:11,300 2 00:00:11,300 --> 00:00:15,490 >> DAVID J. MALAN: Dette er CS50, og dette er starten på uke 10. 3 00:00:15,490 --> 00:00:19,460 Du husker kanskje at vi har vist på skjermen en 3D-printer, som 4 00:00:19,460 --> 00:00:21,610 er denne enheten som tar sneller plast 5 00:00:21,610 --> 00:00:24,840 og deretter ekstruderer det ved å oppvarme det opp og smelter det slik at vi kan deretter 6 00:00:24,840 --> 00:00:27,310 danne Chang hær av elefanter, for eksempel. 7 00:00:27,310 --> 00:00:29,184 >> Så på Leverett House, skjønt, nylig, jeg 8 00:00:29,184 --> 00:00:31,850 chattet med en av dine klassekamerater og en venn av Chang 9 00:00:31,850 --> 00:00:35,720 heter Michelle, som faktisk internert på dette andre selskapet det siste året som 10 00:00:35,720 --> 00:00:40,010 har en annen teknikk for faktisk skape tredimensjonale objekter, 11 00:00:40,010 --> 00:00:41,890 som dette bitte liten elefant her. 12 00:00:41,890 --> 00:00:45,550 Spesielt måten dette fungerer er at det er et eksempel på noe 13 00:00:45,550 --> 00:00:49,740 kalt stereolitografi, der det er dette bassenget av harpiks eller væske, 14 00:00:49,740 --> 00:00:53,340 og deretter en laser streik som væske, og gradvis, vil enheten 15 00:00:53,340 --> 00:00:56,990 heiser og heiser og løfter ting at du skriver ut, som en elefant, 16 00:00:56,990 --> 00:00:58,676 som at væsken blir solid. 17 00:00:58,676 --> 00:01:00,550 Og resultatet, faktisk, er noe som er 18 00:01:00,550 --> 00:01:04,194 mye mer robust enn noen av plasten giveaways noen av dere 19 00:01:04,194 --> 00:01:04,819 kan ha hatt. 20 00:01:04,819 --> 00:01:06,860 >> Og hva Chang ber gjorde for oss her var 21 00:01:06,860 --> 00:01:12,210 gjorde en time-lapse bruke bilder i løpet av en time eller mer, 22 00:01:12,210 --> 00:01:14,580 sannsynligvis, for å produsere denne fyren her. 23 00:01:14,580 --> 00:01:19,060 Ville noen som aldri har kommet opp før liker å komme hit på Start på denne videoen? 24 00:01:19,060 --> 00:01:21,250 La meg gå med, hva med det. 25 00:01:21,250 --> 00:01:21,790 Kom opp. 26 00:01:21,790 --> 00:01:24,960 27 00:01:24,960 --> 00:01:25,460 OK. 28 00:01:25,460 --> 00:01:29,250 29 00:01:29,250 --> 00:01:29,896 Og du er? 30 00:01:29,896 --> 00:01:31,270 LUKE: Jeg heter Luke [uhørbart]. 31 00:01:31,270 --> 00:01:31,700 DAVID J. MALAN: Hei, Luke. 32 00:01:31,700 --> 00:01:32,695 Hyggelig å møte deg. 33 00:01:32,695 --> 00:01:33,653 >> LUKE: Hyggelig å møte deg. 34 00:01:33,653 --> 00:01:35,120 PUBLIKUM: Han kjører for UC. 35 00:01:35,120 --> 00:01:38,640 >> DAVID J. MALAN: jeg vet, vi prøver ikke å fremme. 36 00:01:38,640 --> 00:01:41,240 All right, så Lukas, alle du trenger å gjøre her i CS50 37 00:01:41,240 --> 00:01:45,829 er truffet på mellomromstasten å skrive ut denne elefant. 38 00:01:45,829 --> 00:01:46,495 [VIDEO PLAYBACK] 39 00:01:46,495 --> 00:01:49,988 - [MACHINE surrende] 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 - [BOOM] 43 00:02:04,459 --> 00:02:06,147 - [CRASH] 44 00:02:06,147 --> 00:02:06,980 [END VIDEO PLAYBACK] 45 00:02:06,980 --> 00:02:09,370 DAVID J. MALAN: Så det er akkurat hvordan det er å 3D-print. 46 00:02:09,370 --> 00:02:10,453 Og her er din elefant. 47 00:02:10,453 --> 00:02:12,100 Takk for frivillig arbeid. 48 00:02:12,100 --> 00:02:12,830 OK. 49 00:02:12,830 --> 00:02:16,580 Så igjen, i henhold til spesifikasjon for det endelige prosjektet, denne maskinvaren som er 50 00:02:16,580 --> 00:02:18,890 tilgjengelig for dere er en eller annen grunn, 51 00:02:18,890 --> 00:02:21,870 prosjektet har noen skjærings av programvare og maskinvare, 52 00:02:21,870 --> 00:02:24,650 innse at disse er nå ressurser. 53 00:02:24,650 --> 00:02:27,750 >> Jeg ønsket å ta en stund å røre på en Crimson artikkel som kom ut 54 00:02:27,750 --> 00:02:30,541 sent i går kveld, som var å kunngjøre at denne karen her, David 55 00:02:30,541 --> 00:02:33,920 Johnson, som har vært senior veileder for Ec 10 for en stund, 56 00:02:33,920 --> 00:02:36,210 forlater Harvard på slutten av studieåret. 57 00:02:36,210 --> 00:02:38,390 Og jeg ville bare ta et øyeblikk, ærlig, 58 00:02:38,390 --> 00:02:41,620 å takke David foran CS50. 59 00:02:41,620 --> 00:02:44,360 Han har vært en mentor for sorterer til oss gjennom årene. 60 00:02:44,360 --> 00:02:46,980 >> Og jeg føler at vi, CS50, har heller vokst opp med Ec 10 61 00:02:46,980 --> 00:02:48,870 her, siden de er rett foran oss. 62 00:02:48,870 --> 00:02:52,040 Og han og hele teamet i Ec 10 har vært fantastisk nådig, ærlig, 63 00:02:52,040 --> 00:02:55,410 som vi slepe i alt utstyret vårt hver eneste uke, og år siden, 64 00:02:55,410 --> 00:02:57,320 gitt mye av råd som vi var 65 00:02:57,320 --> 00:02:59,520 nysgjerrig på hvordan de opererer Ec 10. 66 00:02:59,520 --> 00:03:02,640 Så vår takk og beundring til David Johnson. 67 00:03:02,640 --> 00:03:06,560 >> [APPLAUSE] 68 00:03:06,560 --> 00:03:08,030 69 00:03:08,030 --> 00:03:12,180 >> Nå unrelatedly, så Til slutt er faktisk nær. 70 00:03:12,180 --> 00:03:13,630 Vi er her i uke 10. 71 00:03:13,630 --> 00:03:15,920 Og vi har bare bare en par formelle uker 72 00:03:15,920 --> 00:03:18,320 her i klassen igjen, etterfulgt ved et par hendelser. 73 00:03:18,320 --> 00:03:21,860 Så for å gi deg en følelse av hva som er i horisonten, her vi er i dag. 74 00:03:21,860 --> 00:03:24,480 >> Denne onsdagen, husker, vi vil ha en gjesteforelesning 75 00:03:24,480 --> 00:03:27,040 av ingen ringere enn Microsofts egen Steve Ballmer. 76 00:03:27,040 --> 00:03:31,740 Hvis du ennå ikke har gått til cs50.harvard.edu/register, 77 00:03:31,740 --> 00:03:33,360 gjøre det, siden plass vil være begrenset. 78 00:03:33,360 --> 00:03:36,447 Og de skal sjekke IDer på døren denne dagen. 79 00:03:36,447 --> 00:03:38,280 Hvis du ikke var her i forrige uke, jeg trodde jeg hadde 80 00:03:38,280 --> 00:03:41,850 erte deg med et annet utseende på Steve og spenningen som 81 00:03:41,850 --> 00:03:44,215 venter oss på onsdag. 82 00:03:44,215 --> 00:03:45,205 >> [VIDEO PLAYBACK] 83 00:03:45,205 --> 00:03:46,195 >> -Passion. 84 00:03:46,195 --> 00:03:50,650 >> -Vi Kommer til å være hardcore-- hardcore. 85 00:03:50,650 --> 00:03:51,640 >> -Innovator. 86 00:03:51,640 --> 00:03:53,339 >> -Bill Sagt, du får ikke det. 87 00:03:53,339 --> 00:03:55,130 Vi kommer til å sette en datamaskin på hver pult 88 00:03:55,130 --> 00:03:58,690 og i hvert hjem, som ble mottoet for selskapet. 89 00:03:58,690 --> 00:04:01,850 Jeg sverger, Bill oppfant den den kvelden for å virkelig gi meg 90 00:04:01,850 --> 00:04:04,370 noen av visjonen om hvorfor jeg skulle si ja. 91 00:04:04,370 --> 00:04:07,280 Jeg har aldri sett seg tilbake, virkelig, etter det. 92 00:04:07,280 --> 00:04:10,010 >> -Friske ut av college, han ble med en fledgling oppstart 93 00:04:10,010 --> 00:04:14,450 og hjalp den vokse til en av USAs de fleste vellykkede bedrifter noensinne. 94 00:04:14,450 --> 00:04:16,920 Livet til og næringsliv erfaringene underveis 95 00:04:16,920 --> 00:04:19,925 la ham tilbake til hans barndom lidenskap og kjærlighet. 96 00:04:19,925 --> 00:04:24,650 Og disse opplevelsene har forberedt ham for hans neste utfordring i livet. 97 00:04:24,650 --> 00:04:27,150 >> -Ingenting kommer i vår måte-- boom! 98 00:04:27,150 --> 00:04:29,330 Stadig vender hardcore! 99 00:04:29,330 --> 00:04:31,150 Gå Clippers! 100 00:04:31,150 --> 00:04:38,627 >> -Dette Er Steve Ballmer, "In My Own Words». 101 00:04:38,627 --> 00:04:39,460 [END VIDEO PLAYBACK] 102 00:04:39,460 --> 00:04:41,240 DAVID J. MALAN: --this Onsdag til CS50. 103 00:04:41,240 --> 00:04:43,080 Hodet igjen til denne nettadressen her. 104 00:04:43,080 --> 00:04:46,500 Som for hva annet er på horisonten, neste uke, ingen forelesning på mandag. 105 00:04:46,500 --> 00:04:50,020 Men vi vil følge at etter quiz en på onsdag. 106 00:04:50,020 --> 00:04:54,390 Gå til CS50 hjemmeside for mer informasjon på personer, steder og tider 107 00:04:54,390 --> 00:04:57,640 for alle de ulike proctoring logistikk og lignende, 108 00:04:57,640 --> 00:05:00,190 så vel som om en vurdering sesjoner som er forestående. 109 00:05:00,190 --> 00:05:06,479 Og så, til slutt, på mandag, dagen før uken av Thanksgiving pause, 110 00:05:06,479 --> 00:05:08,020 skjønner det vil være vår siste forelesning. 111 00:05:08,020 --> 00:05:11,490 Vi vil servere kake og en stor livet spennende, håper vi. 112 00:05:11,490 --> 00:05:13,976 >> Nå, et par andre oppdateringer. 113 00:05:13,976 --> 00:05:16,350 Husk at status Rapporten, som egentlig bare er 114 00:05:16,350 --> 00:05:20,430 ment å være en uformell interaksjon med TF å stolt staten bare 115 00:05:20,430 --> 00:05:23,106 hvor langt sammen med din siste prosjektet du er, 116 00:05:23,106 --> 00:05:24,980 eller i det minste som en mental helse sjekk at du bør 117 00:05:24,980 --> 00:05:27,250 bli nærmer seg peke kort tid etterpå. 118 00:05:27,250 --> 00:05:28,660 Den Hackathon følger da at. 119 00:05:28,660 --> 00:05:30,800 Innse Hackathon er ikke en mulighet 120 00:05:30,800 --> 00:05:33,690 å starte det endelige prosjektet, men er ment å være en mulighet 121 00:05:33,690 --> 00:05:37,040 å være i midten av eller mot slutten av det endelige prosjektet, 122 00:05:37,040 --> 00:05:41,030 med gjennomføringen skyldes noen dager senere, etterfulgt av CS50 rettferdig. 123 00:05:41,030 --> 00:05:43,330 >> Nå CS50 produksjon team, et par år siden, 124 00:05:43,330 --> 00:05:46,127 sette sammen en teaser for CS50 rettferdig at vi 125 00:05:46,127 --> 00:05:48,710 tenkte vi skulle vise dere i dag, fordi de har vært vanskelig på jobben 126 00:05:48,710 --> 00:05:51,930 på en prequel for at en ny video at vi vil konkludere i dag med. 127 00:05:51,930 --> 00:05:57,694 Men her er hva som venter deg for årets CS50 rettferdig. 128 00:05:57,694 --> 00:05:58,360 [VIDEO PLAYBACK] 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 fra Mission: Impossible"] 132 00:06:11,117 --> 00:08:47,065 133 00:08:47,065 --> 00:08:52,820 [END VIDEO PLAYBACK] 134 00:08:52,820 --> 00:08:56,840 DAVID J. MALAN: Så det er nøyaktig hvordan vi lukker endelige prosjekt innleveringer. 135 00:08:56,840 --> 00:08:59,220 Et par nå teasers-- hvis du ønsker å bli med Nick her 136 00:08:59,220 --> 00:09:02,740 til lunsj, som vanlig, dette Fredag, hodet til denne nettadressen her. 137 00:09:02,740 --> 00:09:05,530 Videre, hvis du ønsker å bli med Nick eller denne Nick 138 00:09:05,530 --> 00:09:08,770 eller denne Allison eller noen medlemmer av CS50 team, 139 00:09:08,770 --> 00:09:11,110 innser at, kort tid etter term slutt, 140 00:09:11,110 --> 00:09:13,780 CS50 vil allerede være å rekruttere for neste års team, 141 00:09:13,780 --> 00:09:18,130 for instanser, TFS, designere, produsenter, forskere og andre stillinger 142 00:09:18,130 --> 00:09:21,790 at her opererer CS50 både i foran og bak kulissene. 143 00:09:21,790 --> 00:09:25,482 Så hvis dette kan være av interesse til deg, hodet til denne nettadressen her. 144 00:09:25,482 --> 00:09:28,190 Og studentene mer komfortable, mindre komfortable, og et sted i 145 00:09:28,190 --> 00:09:31,710 mellom alike er alle velkommen og oppfordres til å søke. 146 00:09:31,710 --> 00:09:34,920 >> Så det var perfekt timing at, nei spøk, i morges, da jeg våknet, 147 00:09:34,920 --> 00:09:37,220 Jeg hadde dette her spam i innboksen min. 148 00:09:37,220 --> 00:09:39,420 Det faktisk gled gjennom Gmails spamfilter 149 00:09:39,420 --> 00:09:41,659 en eller annen måte, og endte opp i min faktiske innboks. 150 00:09:41,659 --> 00:09:43,700 Og det står: "Kjære postkasse bruker, er du for tiden 151 00:09:43,700 --> 00:09:45,240 oppgradert til 4 gigabyte med plass. 152 00:09:45,240 --> 00:09:50,750 Vennligst logg inn på din konto for å validere E-space. " 153 00:09:50,750 --> 00:09:54,100 >> Og så er det denne fine blå frist link der til å klikke på 154 00:09:54,100 --> 00:09:59,480 for lærere og ansatte, som deretter førte meg til en fantastisk legitim side, som 155 00:09:59,480 --> 00:10:02,300 ba meg om å gi dem mitt navn og e-postadresse, og, selvfølgelig, 156 00:10:02,300 --> 00:10:05,090 passord for å validere hvem jeg er og så videre. 157 00:10:05,090 --> 00:10:09,330 Men selvfølgelig, er som alltid tilfelle, du kommer til denne destinasjonssiden, 158 00:10:09,330 --> 00:10:11,370 og selvfølgelig, det er minst en skrivefeil, 159 00:10:11,370 --> 00:10:14,840 som synes å være spikeren i kisten til noen av disse svindel. 160 00:10:14,840 --> 00:10:17,890 Og vi vil legge ut, kanskje, noen andre linker til slike skjermbilder 161 00:10:17,890 --> 00:10:18,473 i fremtiden. 162 00:10:18,473 --> 00:10:22,535 Men forhåpentligvis, de fleste i Dette rommet har ikke clicked-- 163 00:10:22,535 --> 00:10:24,410 eller selv om du har klikket slike koblinger som dette, 164 00:10:24,410 --> 00:10:28,040 du ikke har gått så langt som å fylle ut disse skjemaene og så videre. 165 00:10:28,040 --> 00:10:30,210 Faktisk, det er OK hvis du har. 166 00:10:30,210 --> 00:10:33,410 Vi skal prøve å fikse det i dag, fordi, ja, er dagens samtale 167 00:10:33,410 --> 00:10:34,450 om sikkerhet. 168 00:10:34,450 --> 00:10:36,500 >> Og ja, en av de mål av CS50 er ikke 169 00:10:36,500 --> 00:10:38,980 så mye å lære deg CE eller PHP eller Javascript eller SQL 170 00:10:38,980 --> 00:10:41,610 eller en hvilken som helst av disse underliggende gjennomføring detaljer. 171 00:10:41,610 --> 00:10:45,612 Men det er å styrke deg som mennesker å bare ta smartere avgjørelser som det 172 00:10:45,612 --> 00:10:48,070 gjelder teknologi nedover veien slik at, uansett om du er 173 00:10:48,070 --> 00:10:51,370 ingeniør eller humanist eller forsker eller noen annen rolle, 174 00:10:51,370 --> 00:10:54,970 du gjør informerte beslutninger om din egen databehandling bruk, 175 00:10:54,970 --> 00:10:56,980 eller hvis du er i en beslutningsposisjon, 176 00:10:56,980 --> 00:10:59,250 i politikken, i særdeleshet, du gjør mye, 177 00:10:59,250 --> 00:11:02,770 mye bedre beslutninger enn en Mange mennesker i dag har vært. 178 00:11:02,770 --> 00:11:04,830 Og vi vil gjøre dette ved å hjelp av noen eksempler. 179 00:11:04,830 --> 00:11:09,030 >> Først var jeg ganske overrasket nylig å oppdage følgende. 180 00:11:09,030 --> 00:11:11,120 Så passord, selvfølgelig, er hva de fleste av oss 181 00:11:11,120 --> 00:11:18,030 bruke for å beskytte vår data-- e-post, chat, og alle slags ressurser sånn. 182 00:11:18,030 --> 00:11:23,020 Og bare ved en awkward-- Ikke vis av hender, men flau ser av skam, 183 00:11:23,020 --> 00:11:26,600 hvor mange av dere bruker det samme passordet i en rekke forskjellige nettsteder? 184 00:11:26,600 --> 00:11:28,020 >> Oh, OK, så vi vil gjøre hendene. 185 00:11:28,020 --> 00:11:30,950 OK, så mange av dere gjør. 186 00:11:30,950 --> 00:11:33,770 Alle som gjør dette, bare hvorfor? 187 00:11:33,770 --> 00:11:35,078 Og hva? 188 00:11:35,078 --> 00:11:36,537 Yeah? 189 00:11:36,537 --> 00:11:39,870 PUBLIKUM: Det er lett å huske, fordi du trenger ikke å huske [uhørbart]. 190 00:11:39,870 --> 00:11:41,703 DAVID J. MALAN: Yeah, det er lett å huske. 191 00:11:41,703 --> 00:11:44,560 Det er en helt rimelig, rasjonell atferd, 192 00:11:44,560 --> 00:11:46,920 Selv om risikoen du setter deg selv 193 00:11:46,920 --> 00:11:50,540 ved i disse tilfeller er bare ett eller flere av disse nettstedene 194 00:11:50,540 --> 00:11:54,510 er sårbar for hacking eller usikre eller passordet ditt er bare 195 00:11:54,510 --> 00:11:57,130 så darn guessable, hvem som helst kan finne ut av det. 196 00:11:57,130 --> 00:11:59,850 Ikke bare er én konto kompromittert, men i teorien, noe 197 00:11:59,850 --> 00:12:01,280 kontoer du har på internett. 198 00:12:01,280 --> 00:12:04,550 Så jeg vet jeg kan si i dag, gjør ikke bruke samme passord overalt, 199 00:12:04,550 --> 00:12:06,450 men det er mye lettere sagt enn gjort. 200 00:12:06,450 --> 00:12:10,850 Men det finnes teknikker for formildende at særlig bekymring. 201 00:12:10,850 --> 00:12:14,030 >> Nå, i skje, for eksempel, å bruke et program som heter 1Password. 202 00:12:14,030 --> 00:12:16,010 En annen populær heter Lastpass. 203 00:12:16,010 --> 00:12:19,030 Og en haug med CS50 ansatte bruke ett eller flere av disse typer verktøy. 204 00:12:19,030 --> 00:12:20,940 Og lang historie kort, en takeaway for dag 205 00:12:20,940 --> 00:12:25,080 bør være, ja, du kan ha det samme passordet overalt, 206 00:12:25,080 --> 00:12:27,260 men det er veldig lett å ikke lenger gjøre det. 207 00:12:27,260 --> 00:12:31,260 For eksempel, i disse dager, jeg vet kanskje en av mine dusinvis eller hundrevis 208 00:12:31,260 --> 00:12:31,910 av passord. 209 00:12:31,910 --> 00:12:33,990 Alle mine andre passord er pseudo-tilfeldig 210 00:12:33,990 --> 00:12:36,046 generert av et av disse programmene her. 211 00:12:36,046 --> 00:12:38,420 Og i et nøtteskall, og selv selv om de fleste av disse programmene 212 00:12:38,420 --> 00:12:41,487 en tendens til å komme med en bit av en kostnad, du vil installere et program som dette, 213 00:12:41,487 --> 00:12:43,820 du vil da lagre alle brukernavn og passord 214 00:12:43,820 --> 00:12:46,960 innsiden av dette programmet på din egen Mac eller PC eller whatnot, 215 00:12:46,960 --> 00:12:49,290 og da ville det være krypteres på din PC 216 00:12:49,290 --> 00:12:51,599 med hva som er forhåpentligvis en særlig langt passord. 217 00:12:51,599 --> 00:12:54,140 Så jeg har en hel haug med passord for individuelle nettsteder, 218 00:12:54,140 --> 00:12:56,390 og så har jeg en virkelig langt passord som jeg 219 00:12:56,390 --> 00:12:59,059 bruke til å låse opp alle de andre passord. 220 00:12:59,059 --> 00:13:00,850 Og hva er fint om programvare som dette er 221 00:13:00,850 --> 00:13:04,016 at når du besøker et nettsted som er spør etter brukernavn og passord, 222 00:13:04,016 --> 00:13:06,304 disse dager, vet jeg ikke skrive i mitt brukernavn og passord, 223 00:13:06,304 --> 00:13:08,970 fordi, igjen, jeg vet ikke engang hva de fleste av mine passord er. 224 00:13:08,970 --> 00:13:12,180 Jeg i stedet traff et tastatur snarvei, hvor resultatet 225 00:13:12,180 --> 00:13:15,990 er å utløse denne programvaren til å spør meg om mitt hovedpassord. 226 00:13:15,990 --> 00:13:18,780 Jeg deretter skriver at en stor passord i, og deretter leseren 227 00:13:18,780 --> 00:13:21,090 automatisk fyller inn hva passordet er. 228 00:13:21,090 --> 00:13:24,960 Så virkelig, hvis du tar ingenting annet bort fra i dag i form av passord, 229 00:13:24,960 --> 00:13:28,440 disse er programvare som er verdt laste ned eller å investere i så 230 00:13:28,440 --> 00:13:30,750 som du kan i det minste pause det bestemt vane. 231 00:13:30,750 --> 00:13:33,374 Og hvis du er den typen som er ved hjelp av Post-it lapper eller like-- 232 00:13:33,374 --> 00:13:37,310 og oddsen er minst en av dere er-- som vane, også, det er nok å si, 233 00:13:37,310 --> 00:13:38,340 bør være brutt. 234 00:13:38,340 --> 00:13:42,360 >> Nå kom jeg til å oppdage, som et resultat for å bruke programvaren, følgende. 235 00:13:42,360 --> 00:13:45,690 Jeg var bestiller en spiselig Arrangement, denne kurv med frukt, nylig. 236 00:13:45,690 --> 00:13:49,380 Og jeg traff min spesielt tastatur snarvei for å logge deg på nettsiden. 237 00:13:49,380 --> 00:13:53,325 Og programvaren utløste en pop-up som sagt, er du sikker 238 00:13:53,325 --> 00:13:55,950 du vil ha meg til å automatisk sende inn dette brukernavnet og passordet? 239 00:13:55,950 --> 00:13:57,690 På grunn av at forbindelsen er usikker. 240 00:13:57,690 --> 00:14:01,450 >> Tilkoblingen er ikke bruker HTTPS for sikker, 241 00:14:01,450 --> 00:14:04,900 ved hjelp av den protokollen som kalles SSL, Secure Sockets Layer. 242 00:14:04,900 --> 00:14:07,640 Og ja, hvis du ser på øverst til venstre på denne nettsiden, 243 00:14:07,640 --> 00:14:12,880 det er bare www.ediblearrangements.com, no HTTPS, som ikke er så bra. 244 00:14:12,880 --> 00:14:15,480 >> Nå var jeg curious-- kanskje dette er bare en feil i programvaren. 245 00:14:15,480 --> 00:14:19,240 Sikkert, noen nettside som dette at mange av oss vet om 246 00:14:19,240 --> 00:14:24,046 er i det minste ved hjelp av kryptering eller HTTPS for å logge deg inn. 247 00:14:24,046 --> 00:14:25,670 Så fikk jeg litt nysgjerrig morges. 248 00:14:25,670 --> 00:14:29,046 Og jeg fikk ut min CS50 ferdigheter, Jeg åpnet opp Chrome Inspector. 249 00:14:29,046 --> 00:14:30,295 Det er ikke engang mye av en ferdighet. 250 00:14:30,295 --> 00:14:32,890 Det er bare treffer den rette tastaturet snarvei for å åpne dette opp. 251 00:14:32,890 --> 00:14:34,830 Og her er et stort vindu av Chrome Inspector. 252 00:14:34,830 --> 00:14:38,960 >> Men hva var egentlig en litt tragisk og latterlig 253 00:14:38,960 --> 00:14:40,830 var disse to linjer her. 254 00:14:40,830 --> 00:14:44,570 Opp på toppen, legge merke til nettadressen til som mitt brukernavn og passord 255 00:14:44,570 --> 00:14:45,530 ble sendt inn. 256 00:14:45,530 --> 00:14:46,380 La meg zoome inn. 257 00:14:46,380 --> 00:14:47,352 Det var denne her. 258 00:14:47,352 --> 00:14:49,060 Og alt dette er slags uinteressant, 259 00:14:49,060 --> 00:14:54,962 med unntak av noe helt på venstre, som starter med http: //. 260 00:14:54,962 --> 00:14:57,240 Og så da, OK, kanskje de er bare å sende 261 00:14:57,240 --> 00:14:59,084 mitt brukernavn, som er ikke en så big deal. 262 00:14:59,084 --> 00:15:00,500 Kanskje mitt passord blir sendt senere. 263 00:15:00,500 --> 00:15:02,300 Det ville være slag av en interessant design beslutning. 264 00:15:02,300 --> 00:15:03,100 >> Men nope. 265 00:15:03,100 --> 00:15:06,130 Hvis du da ser på forespørsel nyttelast, brukernavn og passord 266 00:15:06,130 --> 00:15:08,470 Jeg sent-- og jeg spottet disse opp for slide-- 267 00:15:08,470 --> 00:15:10,000 faktisk ble sendt i klartekst. 268 00:15:10,000 --> 00:15:13,792 Så du gå til denne nettsiden og bestille en spiselig Arrangement som dette, 269 00:15:13,792 --> 00:15:16,750 og ja, tilsynelatende, for alt dette gang jeg har vært bestilling fra dem, 270 00:15:16,750 --> 00:15:19,800 brukernavn og passord går over i klartekst. 271 00:15:19,800 --> 00:15:22,120 Så ærlig, er dette helt uakseptabelt. 272 00:15:22,120 --> 00:15:26,240 Og det er så trivielt å unngå ting sånn som designer av et nettsted 273 00:15:26,240 --> 00:15:27,950 og som programmerer av et nettsted. 274 00:15:27,950 --> 00:15:31,020 >> Men takeaway her for oss som brukere av nettsteder 275 00:15:31,020 --> 00:15:35,700 er bare å sette pris på at alle det tar er for en dum konstruksjon 276 00:15:35,700 --> 00:15:40,010 beslutning, uforsvarlig utforming avgjørelse, slik at nå, hvis du vet at passordet mitt er 277 00:15:40,010 --> 00:15:41,820 "Crimson" på denne nettside, har du sannsynligvis 278 00:15:41,820 --> 00:15:44,654 bare fikk inn en hel haug med andre nettsteder som jeg nå har. 279 00:15:44,654 --> 00:15:46,570 Og det er ikke mye av et forsvar mot at 280 00:15:46,570 --> 00:15:48,301 annet enn hva Chang gjorde i morges. 281 00:15:48,301 --> 00:15:51,550 Han gikk til Edible Arrangements, som ligger nedover gaten i Cambridge, 282 00:15:51,550 --> 00:15:53,430 og fysisk kjøpte dette for oss. 283 00:15:53,430 --> 00:15:57,490 Det var mye mer sikker enn bruke nettstedet i dette tilfellet. 284 00:15:57,490 --> 00:16:02,320 >> Men detaljene for å holde et øye med er faktisk hva som er i nettleseren opp toppen 285 00:16:02,320 --> 00:16:02,940 der. 286 00:16:02,940 --> 00:16:04,690 Men selv det kan være litt villedende. 287 00:16:04,690 --> 00:16:07,002 Så en annen interessant eksempel og måte å forsvare 288 00:16:07,002 --> 00:16:09,960 mot dette-- og faktisk, la oss gjør at first-- veien for å forsvare 289 00:16:09,960 --> 00:16:12,540 mot dette er en teknikk at sikkerhets folk ville 290 00:16:12,540 --> 00:16:14,810 ringe to-faktor autentisering. 291 00:16:14,810 --> 00:16:20,130 >> Vet noen hva løsningen til problemer som dette betyr? 292 00:16:20,130 --> 00:16:23,110 Hva er to-faktor autentisering? 293 00:16:23,110 --> 00:16:27,320 Eller sagt på en annen måte, hvordan mange av dere bruker det? 294 00:16:27,320 --> 00:16:28,650 OK, så et par sjenerte folk. 295 00:16:28,650 --> 00:16:29,060 Men ja. 296 00:16:29,060 --> 00:16:29,976 Jeg så hånden din gå opp. 297 00:16:29,976 --> 00:16:31,510 Hva er to-faktor autentisering? 298 00:16:31,510 --> 00:16:34,010 >> PUBLIKUM: I utgangspunktet, i tillegg å skrive inn passordet ditt, 299 00:16:34,010 --> 00:16:37,390 du har også en sekundær [uhørbart] sendes via tekstmelding til telefonen din 300 00:16:37,390 --> 00:16:39,460 på [uhørbart]. 301 00:16:39,460 --> 00:16:40,460 DAVID J. MALAN: Nettopp. 302 00:16:40,460 --> 00:16:44,150 I tillegg til noen primære form autentisering, som et passord, 303 00:16:44,150 --> 00:16:47,190 du blir bedt om en sekundær faktor, noe som er typisk 304 00:16:47,190 --> 00:16:49,740 noe du har fysisk på deg, selv om det 305 00:16:49,740 --> 00:16:51,610 kan være noe helt annet. 306 00:16:51,610 --> 00:16:54,630 Og at ting er vanligvis en mobiltelefon i disse dager som du får 307 00:16:54,630 --> 00:16:59,200 sendte en midlertidig tekstmelding som sier "Midlertidig pass koden er 12345." 308 00:16:59,200 --> 00:17:01,280 >> Så i tillegg til min password "Crimson," Jeg også 309 00:17:01,280 --> 00:17:03,916 må skrive inn hva nettstedet har tekstet meg. 310 00:17:03,916 --> 00:17:06,290 Eller hvis du har dette med en bank eller en investering konto, 311 00:17:06,290 --> 00:17:08,123 du noen ganger har disse små dongler som 312 00:17:08,123 --> 00:17:11,760 faktisk har en pseudo-tilfeldig tall-generator bygget inn i dem, 313 00:17:11,760 --> 00:17:15,849 men både enheten og banken vet hva din første frø er 314 00:17:15,849 --> 00:17:19,710 slik at de vet, likesom liten kode på din lille nøkkel fob 315 00:17:19,710 --> 00:17:22,380 marsjerer foran hvert minutt eller to, endre verdier, 316 00:17:22,380 --> 00:17:25,260 så gjør at verdiendring på bankens server 317 00:17:25,260 --> 00:17:28,620 slik at de kan likeledes autentisere deg, ikke bare med ditt passord, 318 00:17:28,620 --> 00:17:30,024 men med at midlertidig kode. 319 00:17:30,024 --> 00:17:31,690 Nå kan du faktisk gjøre dette i Google. 320 00:17:31,690 --> 00:17:33,606 Og ærlig talt, dette er et god vane å komme inn, 321 00:17:33,606 --> 00:17:36,180 spesielt hvis du bruker Gmail hele tiden på en nettleser. 322 00:17:36,180 --> 00:17:39,880 Hvis du går til denne nettadressen her, som er i lysbildene online for i dag, og deretter 323 00:17:39,880 --> 00:17:43,579 klikk på 2-trinns bekreftelse, samme faktiske ting der. 324 00:17:43,579 --> 00:17:45,870 Du vil bli bedt om å gi dem mobilnummeret ditt. 325 00:17:45,870 --> 00:17:49,660 Og så, når du logger inn Gmail, blir du ikke bare spurt 326 00:17:49,660 --> 00:17:53,480 for passordet, men også for en lite kode som blir sendt til telefonen 327 00:17:53,480 --> 00:17:54,190 midlertidig. 328 00:17:54,190 --> 00:17:57,894 Og så lenge du har cookies aktivert, og så lenge du ikke eksplisitt 329 00:17:57,894 --> 00:18:00,060 logge ut, vil du bare ha å gjøre det en gang i en stund, 330 00:18:00,060 --> 00:18:01,870 som når du setter deg ned på en ny datamaskin. 331 00:18:01,870 --> 00:18:05,320 >> Og oppsiden her, også er, hvis du sitte ned på noen internet cafe stil 332 00:18:05,320 --> 00:18:07,380 Datamaskinen eller bare en venns datamaskin, selv 333 00:18:07,380 --> 00:18:09,710 hvis den vennen skadelig eller ubevisst 334 00:18:09,710 --> 00:18:13,580 har noen tastatur logger installert på sin datamaskin, 335 00:18:13,580 --> 00:18:15,640 slik at alt du type blir logget, 336 00:18:15,640 --> 00:18:19,170 minst at andre faktoren, som midlertidig kode, er flyktig. 337 00:18:19,170 --> 00:18:21,630 Slik at han eller hun eller hvem er kompromittert datamaskin 338 00:18:21,630 --> 00:18:24,890 kan ikke logge inn i deg senere, selv om alt annet 339 00:18:24,890 --> 00:18:27,890 var sårbare eller ukryptert helt. 340 00:18:27,890 --> 00:18:29,760 Facebook har også dette med at nettadressen her, 341 00:18:29,760 --> 00:18:32,070 hvor du kan klikke på Logg inn godkjenninger. 342 00:18:32,070 --> 00:18:35,500 Så her, også, hvis du ikke gjør det ønsker venner å rote mennesker, 343 00:18:35,500 --> 00:18:40,140 trenger du ikke ønsker å bli poking på Facebook eller legge ut statusoppdateringer for deg, 344 00:18:40,140 --> 00:18:42,479 to-faktor autentisering her er trolig en god ting. 345 00:18:42,479 --> 00:18:44,520 Og så er det dette annen teknikk helt, 346 00:18:44,520 --> 00:18:46,853 bare revisjon, som er enda en god ting for oss mennesker, 347 00:18:46,853 --> 00:18:49,950 hvis to-faktor beviser irriterende, som, Riktignok kan det, eller er det bare ikke 348 00:18:49,950 --> 00:18:53,930 tilgjengelig på noen nettside, minimalt holde et øye med hvis og når 349 00:18:53,930 --> 00:18:57,650 du logge inn på nettsteder, hvis de tillate deg, er en god teknikk, også. 350 00:18:57,650 --> 00:19:01,300 Så Facebook gir deg også denne innloggings varslinger har der 351 00:19:01,300 --> 00:19:06,240 når som helst Facebook innser, hm, har David logget inn fra noen datamaskin eller telefon 352 00:19:06,240 --> 00:19:09,710 som vi aldri har sett før fra en IP-adresse som ser ukjente, 353 00:19:09,710 --> 00:19:12,320 de vil i det minste sende deg en e-post til hva e-postadresse 354 00:19:12,320 --> 00:19:14,750 du har registrert, og sa: ser dette mistenkelig? 355 00:19:14,750 --> 00:19:17,590 I så fall endre passordet umiddelbart. 356 00:19:17,590 --> 00:19:19,610 Og så det også, bare revisjon atferd 357 00:19:19,610 --> 00:19:21,940 selv etter at du har vært kompromittert, kan i det minste 358 00:19:21,940 --> 00:19:25,980 begrense vinduet under som du er sårbar. 359 00:19:25,980 --> 00:19:29,910 >> Greit, noen spørsmål på at ting så langt? 360 00:19:29,910 --> 00:19:35,510 I dag er dagen for å få alle din paranoia bekreftet eller avvist. 361 00:19:35,510 --> 00:19:36,820 Det har stort sett bekreftet, dessverre. 362 00:19:36,820 --> 00:19:37,210 Yeah? 363 00:19:37,210 --> 00:19:39,223 >> PUBLIKUM: [uhørlig] telefon, hva om telefonen pauser, 364 00:19:39,223 --> 00:19:41,010 og da er det alltid vanskelig å verify-- 365 00:19:41,010 --> 00:19:41,295 >> DAVID J. MALAN: Sann. 366 00:19:41,295 --> 00:19:43,330 >> PUBLIKUM: Eller hvis du er i en annen landet, og de trenger ikke la deg 367 00:19:43,330 --> 00:19:44,505 logg inn fordi [uhørbart]. 368 00:19:44,505 --> 00:19:45,630 DAVID J. MALAN: Absolutt. 369 00:19:45,630 --> 00:19:48,780 Og så disse er det ekstra kostnader som du pådrar deg. 370 00:19:48,780 --> 00:19:51,040 Det er alltid dette temaet av en trade-off, tross alt. 371 00:19:51,040 --> 00:19:53,748 Og så, hvis du mister telefonen din, hvis det bryter, hvis du er i utlandet, 372 00:19:53,748 --> 00:19:56,382 eller du bare ikke har en signalet, som en LTE eller 3G-signal, 373 00:19:56,382 --> 00:19:58,340 du kanskje ikke egentlig være i stand til å godkjenne. 374 00:19:58,340 --> 00:20:00,520 >> Så igjen, disse to er avveininger. 375 00:20:00,520 --> 00:20:03,670 Og noen ganger, kan det skape en mye arbeid for deg som resultat. 376 00:20:03,670 --> 00:20:08,130 Men det er egentlig avhengig, da, på hva forventet pris til deg 377 00:20:08,130 --> 00:20:10,980 er av noe vesen kompromittert helt. 378 00:20:10,980 --> 00:20:15,300 >> Så SSL, da er denne teknikken som vi alle vanligvis tar for gitt 379 00:20:15,300 --> 00:20:18,970 eller antar er der, selv om det er åpenbart ikke tilfelle. 380 00:20:18,970 --> 00:20:23,339 Og du kan fortsatt villede folk, men selv med dette. 381 00:20:23,339 --> 00:20:24,630 Så her er et eksempel på en bank. 382 00:20:24,630 --> 00:20:25,860 >> Dette er Bank of America. 383 00:20:25,860 --> 00:20:28,730 Det er en hel haug av disse i Harvard Square og utover. 384 00:20:28,730 --> 00:20:32,530 Og legg merke til at det på toppen av skjermen, det er en, ja, HTTPS. 385 00:20:32,530 --> 00:20:35,370 Og det er enda grønn og understreket for oss 386 00:20:35,370 --> 00:20:39,550 for å vise at dette faktisk er et legitimt sikkert nettsted, 387 00:20:39,550 --> 00:20:41,420 eller så vi har blitt opplært til å tro. 388 00:20:41,420 --> 00:20:46,416 >> Nå, i tillegg til det, men Legg merke til at, hvis vi zoomer inn, 389 00:20:46,416 --> 00:20:48,790 det er denne tingen her, hvor du blir bedt om å logge inn. 390 00:20:48,790 --> 00:20:54,920 Hva betyr dette hengelås mener rett der, ved siden av brukernavnet mitt be? 391 00:20:54,920 --> 00:20:57,890 Dette er ganske vanlig på nettsteder, også. 392 00:20:57,890 --> 00:21:01,120 Hva betyr dette hengelås mener? 393 00:21:01,120 --> 00:21:02,453 Du virker som om du vet. 394 00:21:02,453 --> 00:21:03,420 >> PUBLIKUM: Det betyr ikke noe. 395 00:21:03,420 --> 00:21:04,230 >> DAVID J. MALAN: Det betyr ikke noe. 396 00:21:04,230 --> 00:21:07,790 Det betyr at Bank of America vet hvordan å skrive HTML med bilde-koder, ikke sant? 397 00:21:07,790 --> 00:21:12,080 Det betyr virkelig ingenting, fordi selv vi, ved hjelp av den første dagen av vår utseende 398 00:21:12,080 --> 00:21:15,760 på HTML, kan kode opp en side med en rød bakgrunn og et bilde, 399 00:21:15,760 --> 00:21:18,910 som en GIF eller whatnot, at skjer for å se ut som en hengelås. 400 00:21:18,910 --> 00:21:20,890 Og likevel, dette er super vanlig i nettsteder, 401 00:21:20,890 --> 00:21:24,000 fordi vi har blitt opplært til å anta det, oh, betyr hengelås sikker, 402 00:21:24,000 --> 00:21:25,760 når det egentlig bare betyr vet du HTML. 403 00:21:25,760 --> 00:21:28,840 >> For eksempel, tilbake i dag, kunne jeg har bare sette dette på min hjemmeside, 404 00:21:28,840 --> 00:21:31,660 hevder det er sikkert, og spør, effektivt, 405 00:21:31,660 --> 00:21:33,590 for folks brukernavn og passord. 406 00:21:33,590 --> 00:21:36,310 Så ser i URL-er minst en bedre ledetråd, 407 00:21:36,310 --> 00:21:39,580 fordi det er innebygd i Chrome eller hva nettleser du bruker. 408 00:21:39,580 --> 00:21:41,470 Men selv da iblant ting kan gå galt. 409 00:21:41,470 --> 00:21:45,940 Og faktisk, kan du ikke alltid se HTTPS, la alene i grønt. 410 00:21:45,940 --> 00:21:48,126 >> Har noen av dere noen gang sett en skjerm som dette? 411 00:21:48,126 --> 00:21:50,000 Du har kanskje, faktisk, tidligere i oktober, 412 00:21:50,000 --> 00:21:54,740 når jeg glemte å betale for vår SSL-sertifikat, som det heter, 413 00:21:54,740 --> 00:21:58,400 og vi var ute som dette for en time eller to. 414 00:21:58,400 --> 00:22:01,830 Så du har sikkert sett ting som dette, med en strike-gjennom, 415 00:22:01,830 --> 00:22:05,240 som en rød tråd gjennom protokollen i URL 416 00:22:05,240 --> 00:22:08,010 eller annen form for skjerm som er minst formaner deg 417 00:22:08,010 --> 00:22:09,760 for å prøve å fortsette videre. 418 00:22:09,760 --> 00:22:12,540 Og Google her er innbydende deg å gå tilbake i sikkerhet. 419 00:22:12,540 --> 00:22:17,120 >> Nå, i dette tilfellet, er dette bare ment som SSL-sertifikatet som vi brukte, 420 00:22:17,120 --> 00:22:22,220 de store, matematisk nyttige tall som er forbundet med CS50 server, 421 00:22:22,220 --> 00:22:23,949 ikke lenger var gyldig. 422 00:22:23,949 --> 00:22:26,490 Og faktisk, kan vi simulere dette, som du kan på den bærbare datamaskinen. 423 00:22:26,490 --> 00:22:30,270 Hvis jeg går inn i Chrome her, og la oss gå til facebook.com, 424 00:22:30,270 --> 00:22:32,230 og det ser ut som dette er sikker. 425 00:22:32,230 --> 00:22:36,910 Men la meg gå videre nå og klikk på hengelåsen her. 426 00:22:36,910 --> 00:22:40,030 >> Og la meg gå til Connection, Sertifikatinformasjon. 427 00:22:40,030 --> 00:22:42,020 Og ja, hva du vil se her er en haug 428 00:22:42,020 --> 00:22:46,160 av lavere nivå detaljer om som facebook.com egentlig er. 429 00:22:46,160 --> 00:22:49,380 Det virker som de har betalt penger til et firma som heter kanskje DigiCert Høy 430 00:22:49,380 --> 00:22:54,420 Assurance som har lovet å fortelle resten av verden 431 00:22:54,420 --> 00:22:57,250 at dersom en nettleser gang ser en certificate-- du kan tenke 432 00:22:57,250 --> 00:23:00,291 av det bokstavelig talt som et sertifikat som ser ut som at cheesy ting på toppen 433 00:23:00,291 --> 00:23:04,360 left-- deretter facebook.com er hvem de sier de er, fordi hele denne tiden, når 434 00:23:04,360 --> 00:23:07,160 du besøker en nettside, som cs50.harvard.edu eller facebook.com 435 00:23:07,160 --> 00:23:11,880 eller gmail.com som bruker HTTPS Webadresser, bak kulissene, 436 00:23:11,880 --> 00:23:15,190 det er denne typen transaksjon skjer automatisk 437 00:23:15,190 --> 00:23:18,060 for deg, der facebook.com, i dette tilfellet 438 00:23:18,060 --> 00:23:22,150 sender til nettleseren din sin såkalte SSL-sertifikat, eller rettere sagt, 439 00:23:22,150 --> 00:23:23,380 sin offentlige nøkkel, 440 00:23:23,380 --> 00:23:25,600 og deretter din nettleser bruker den offentlige nøkkelen 441 00:23:25,600 --> 00:23:29,600 til senere å sende kryptert trafikk til og fra den. 442 00:23:29,600 --> 00:23:32,360 >> Men det er hele dette hierarkiet i verden av selskaper 443 00:23:32,360 --> 00:23:36,430 at du betaler penger til hvem som skal deretter vitne, i en digital forstand, 444 00:23:36,430 --> 00:23:41,330 at du faktisk er facebook.com eller serveren er faktisk cs50.harvard.edu. 445 00:23:41,330 --> 00:23:44,580 Og bygget inn nettlesere, som Chrome og IE og Firefox, 446 00:23:44,580 --> 00:23:48,260 er en liste over alle de såkalte sertifiseringsinstanser 447 00:23:48,260 --> 00:23:51,360 som er autorisert av Microsoft og Google og Mozilla 448 00:23:51,360 --> 00:23:55,410 for å bekrefte eller benekte at facebook.com er som den sier at den er. 449 00:23:55,410 --> 00:23:57,430 Men fangsten er at disse tingene utløper. 450 00:23:57,430 --> 00:24:02,670 Faktisk ser Facebooks liker den utløper neste oktober, i 2015. 451 00:24:02,670 --> 00:24:06,490 >> Så vi kan faktisk simulere dette hvis jeg gå i min Mac til mine Systemvalg, 452 00:24:06,490 --> 00:24:11,070 og jeg går inn dato og klokkeslett, og Jeg går inn dato og klokkeslett her, 453 00:24:11,070 --> 00:24:17,190 og jeg låse opp denne her-- heldigvis, vi ikke avsløre et passord denne tid-- 454 00:24:17,190 --> 00:24:20,660 og nå går jeg ned for å fjerne merket for dette. 455 00:24:20,660 --> 00:24:25,660 Og la oss actually-- oops, det er ikke så interessant som å gjøre dette. 456 00:24:25,660 --> 00:24:30,140 Vi er bokstavelig talt i fremtiden nå, noe som betyr at dette er hva 2020 er like. 457 00:24:30,140 --> 00:24:36,360 Hvis jeg nå laste page-- la oss gjøre det i Ingognito mode-- 458 00:24:36,360 --> 00:24:40,910 hvis jeg laste siden på nytt, det vi går. 459 00:24:40,910 --> 00:24:45,820 >> Så nå, mener min datamaskin det er 2020, men nettleseren min 460 00:24:45,820 --> 00:24:49,810 vet at dette sertifikatet fra Facebook utløper, selvfølgelig, i 2015. 461 00:24:49,810 --> 00:24:51,360 Så det gir meg denne røde meldingen. 462 00:24:51,360 --> 00:24:53,550 Nå, heldigvis, nettlesere som Chrome har faktisk 463 00:24:53,550 --> 00:24:55,480 gjorde det ganske vanskelig å fortsette likevel. 464 00:24:55,480 --> 00:24:57,300 De faktisk vil ha meg å gå tilbake til sikkerhet. 465 00:24:57,300 --> 00:25:00,550 >> Hvis jeg klikker her på Advance, er det kommer til å fortelle meg noen flere detaljer. 466 00:25:00,550 --> 00:25:02,580 Og hvis jeg virkelig ønsker å fortsette, vil de la 467 00:25:02,580 --> 00:25:06,250 meg gå til facebook.com, som er, igjen, usikre, og da 468 00:25:06,250 --> 00:25:08,310 Jeg vil se Facebook hjemmeside, som dette. 469 00:25:08,310 --> 00:25:10,080 Men så andre ting synes å være breaking. 470 00:25:10,080 --> 00:25:12,825 Hva er trolig bryte på dette punktet? 471 00:25:12,825 --> 00:25:13,700 PUBLIKUM: Javascript. 472 00:25:13,700 --> 00:25:15,540 DAVID J. MALAN: I likhet med Javascripts og / eller CSS 473 00:25:15,540 --> 00:25:17,460 filene er på samme måte opplever denne feilen. 474 00:25:17,460 --> 00:25:19,830 Så dette er bare en dårlig situasjon generelt. 475 00:25:19,830 --> 00:25:24,790 Men poenget her er at minst Facebook har faktisk SSL aktivert 476 00:25:24,790 --> 00:25:30,040 for sine servere, så mange nettsteder, gjør, men ikke nødvendigvis alle. 477 00:25:30,040 --> 00:25:33,360 >> Men det er ikke alene takeaway her. 478 00:25:33,360 --> 00:25:36,040 Det viser seg at selv SSL har blitt demonstrert 479 00:25:36,040 --> 00:25:37,810 å være usikre på noen måte. 480 00:25:37,810 --> 00:25:40,400 Så jeg liksom antydet at SSL, bra. 481 00:25:40,400 --> 00:25:44,250 Se etter HTTPS, og livet er bra, fordi alle dine HTTP-trafikk 482 00:25:44,250 --> 00:25:46,180 og overskrifter og innhold er kryptert. 483 00:25:46,180 --> 00:25:49,560 >> Ingen kan snappe den i midten, med unntak av en såkalt mann 484 00:25:49,560 --> 00:25:50,454 i midten. 485 00:25:50,454 --> 00:25:52,870 Dette er en generell teknikk i verden av sikkerhet kjent 486 00:25:52,870 --> 00:25:54,420 som et man-in-the-middle angrep. 487 00:25:54,420 --> 00:25:57,067 Anta at du er denne lille laptop over her til venstre, 488 00:25:57,067 --> 00:25:59,900 og anta at du prøver å besøke serveren der borte til høyre, 489 00:25:59,900 --> 00:26:00,990 som facebook.com. 490 00:26:00,990 --> 00:26:03,940 >> Men anta at i mellom deg og Facebook, 491 00:26:03,940 --> 00:26:07,750 er en hel haug med andre servere og utstyr, som svitsjer og rutere, 492 00:26:07,750 --> 00:26:11,530 DNS-servere, DHCP-servere, noe som vi kontrollerer. 493 00:26:11,530 --> 00:26:15,280 Det kan være styrt av danse eller Harvard eller Comcast eller lignende. 494 00:26:15,280 --> 00:26:18,090 Vel, antar at noen skadelig, på nettverket, 495 00:26:18,090 --> 00:26:20,800 i mellom deg og Facebook, er i stand til å fortelle deg 496 00:26:20,800 --> 00:26:24,740 det, vet du hva, IP-adressen Facebook er ikke hva du tror det er. 497 00:26:24,740 --> 00:26:26,250 Det er denne IP i stedet. 498 00:26:26,250 --> 00:26:28,740 >> Og så nettleseren din er lures til å be om 499 00:26:28,740 --> 00:26:30,750 trafikk fra en annen datamaskinen helt. 500 00:26:30,750 --> 00:26:35,350 Vel, antar at datamaskinen bare ser i det hele tatt 501 00:26:35,350 --> 00:26:38,859 av trafikken du ber om fra Facebook og alle web-sider 502 00:26:38,859 --> 00:26:40,400 at du ber om fra Facebook. 503 00:26:40,400 --> 00:26:45,700 Og hver gang den ser i trafikken en URL som starter med HTTPS, 504 00:26:45,700 --> 00:26:49,250 Det dynamisk, på den fly, omskriver det som HTTP. 505 00:26:49,250 --> 00:26:53,490 Og hver gang den ser en plassering header, plassering tykktarm, 506 00:26:53,490 --> 00:26:55,930 som vi bruker til å omdirigere brukeren, de også, 507 00:26:55,930 --> 00:27:00,690 kan endres av denne mannen i midten fra HTTPS til HTTP. 508 00:27:00,690 --> 00:27:04,170 >> Så selv om du selv kanskje Tror du er på den virkelige Facebook, 509 00:27:04,170 --> 00:27:07,860 det er ikke så vanskelig for en motstander med fysisk tilgang 510 00:27:07,860 --> 00:27:10,630 til nettverket for å rett og slett returnere sider til deg som 511 00:27:10,630 --> 00:27:12,650 se ut som Gmail, som ser ut som Facebook, 512 00:27:12,650 --> 00:27:14,880 og faktisk webadressen er identiske, fordi de er 513 00:27:14,880 --> 00:27:19,410 later til å ha den samme vertsnavn på grunn av noen utnyttelse av DNS 514 00:27:19,410 --> 00:27:21,340 eller et annet system som det. 515 00:27:21,340 --> 00:27:23,894 Og resultatet er altså at vi mennesker kanskje bare 516 00:27:23,894 --> 00:27:26,810 innse at, OK, dette ser ut som Gmail eller i det minste den eldre versjonen, 517 00:27:26,810 --> 00:27:29,480 så er dette lysbildet fra en eldre presentasjon. 518 00:27:29,480 --> 00:27:34,250 Men det ser ut som dette-- http://www.google.com. 519 00:27:34,250 --> 00:27:37,370 >> Så også her, virkeligheten er at hvor mange av dere, 520 00:27:37,370 --> 00:27:41,290 når du går til Facebook eller Gmail eller noen nettside og du vet litt noe 521 00:27:41,290 --> 00:27:47,060 om SSL, hvor mange av dere fysisk skrive https: // og så nettsiden 522 00:27:47,060 --> 00:27:48,990 navn, Enter. 523 00:27:48,990 --> 00:27:52,940 De fleste av oss bare skrive, som, CS50, trykk Enter, eller F-A for Facebook 524 00:27:52,940 --> 00:27:54,770 og trykk Enter, og la det autofullfør. 525 00:27:54,770 --> 00:27:57,620 Men bak kulissene, om du ser på din HTTP-trafikk, 526 00:27:57,620 --> 00:28:00,090 Det er sannsynligvis en hel haug av disse location overskrifter 527 00:28:00,090 --> 00:28:03,580 som sender deg fra Facebook til www.facebook.com 528 00:28:03,580 --> 00:28:07,250 til https://www.facebook.com. 529 00:28:07,250 --> 00:28:12,300 >> Så det er en eller flere HTTP-transaksjoner hvor informasjonen er fullstendig 530 00:28:12,300 --> 00:28:15,102 sendes i klartekst, ingen kryptering overhodet. 531 00:28:15,102 --> 00:28:17,810 Nå, som kanskje ikke er en så stor håndtere hvis alt du prøver å gjøre 532 00:28:17,810 --> 00:28:20,980 er tilgang på hjemmesiden, er du ikke sende ditt brukernavn og passord. 533 00:28:20,980 --> 00:28:23,130 Men hva er det under panseret, spesielt 534 00:28:23,130 --> 00:28:28,130 for PHP-baserte nettsteder som også blir sendt frem og tilbake når 535 00:28:28,130 --> 00:28:33,820 du besøke noen nettside hvis at nettstedet bruker, si, PHP 536 00:28:33,820 --> 00:28:37,370 og implementerer funksjonalitet som pset7? 537 00:28:37,370 --> 00:28:40,840 Hva som ble sendt frem og tilbake i din HTTP-hoder som ga deg 538 00:28:40,840 --> 00:28:44,903 tilgang til denne vakre nyttig super global i PHP? 539 00:28:44,903 --> 00:28:45,710 >> Målgruppe: Cookies. 540 00:28:45,710 --> 00:28:49,020 >> DAVID J. MALAN: Cookies, spesielt PHP sess ID cookie. 541 00:28:49,020 --> 00:28:53,100 Så husker, hvis vi går til, si, cs50.harvard.edu igjen, 542 00:28:53,100 --> 00:28:56,440 men denne gangen, la oss åpne opp Network-kategorien, og nå, her oppe, 543 00:28:56,440 --> 00:29:01,570 la oss bokstavelig talt bare gå til http://cs50.harvard.edu 544 00:29:01,570 --> 00:29:03,030 og trykk Enter. 545 00:29:03,030 --> 00:29:05,520 Og deretter se på skjermen her nede. 546 00:29:05,520 --> 00:29:09,600 Legg merke til at vi faktisk fikk tilbake en 301 flyttet permanent 547 00:29:09,600 --> 00:29:12,820 melding, noe som betyr at det er et sted header her, 548 00:29:12,820 --> 00:29:15,610 som nå omdirigere meg til HTTPS. 549 00:29:15,610 --> 00:29:21,330 >> Men fangsten er at hvis jeg allerede hadde en cookie stemplet på hånden min så godt, 550 00:29:21,330 --> 00:29:25,890 som vi har diskutert før, og Jeg menneske slags uvitende 551 00:29:25,890 --> 00:29:29,090 bare besøke usikre versjon, og nettleseren min tar det 552 00:29:29,090 --> 00:29:34,020 på seg for å vise at håndstempel for den første forespørsel, som er via HTTP, 553 00:29:34,020 --> 00:29:36,610 noen mann i midten, noe motstander i midten, 554 00:29:36,610 --> 00:29:39,380 kan teoretisk bare se disse HTTP-hoder, bare 555 00:29:39,380 --> 00:29:40,980 som vi ser på dem her. 556 00:29:40,980 --> 00:29:43,310 Det er bare når du er å snakke med en HTTPS 557 00:29:43,310 --> 00:29:47,780 URL gjør at håndstempel i seg selv får kryptert, a la Cæsar eller Vigenère, 558 00:29:47,780 --> 00:29:50,500 men med en mer avansert algoritme helt. 559 00:29:50,500 --> 00:29:53,611 Så også her, selv om bruke nettsteder HTTPS, 560 00:29:53,611 --> 00:29:56,860 vi mennesker har vært betinget, takk til auto-komplette og andre teknikker, 561 00:29:56,860 --> 00:29:59,827 å ikke engang tenke på de potensielle implikasjoner. 562 00:29:59,827 --> 00:30:01,160 Nå, det finnes måter rundt dette. 563 00:30:01,160 --> 00:30:03,140 For eksempel, mange nettsteder kan konfigureres 564 00:30:03,140 --> 00:30:05,848 slik at når du har denne hånden stempel, kan du fortelle leseren, 565 00:30:05,848 --> 00:30:07,750 denne hånden stempel er bare for SSL-tilkoblinger. 566 00:30:07,750 --> 00:30:11,702 Nettleseren skal ikke presentere det til meg med mindre det er over SSL. 567 00:30:11,702 --> 00:30:13,410 Men mange nettsteder ikke bry deg med det. 568 00:30:13,410 --> 00:30:17,260 Og mange nettsteder tilsynelatende ikke engang bry med SSL i det hele tatt. 569 00:30:17,260 --> 00:30:20,540 >> Så for mer om det, er det faktisk enda mer skitt i denne presentasjonen 570 00:30:20,540 --> 00:30:24,010 at en fyr holdt på et såkalt svart lue konferanse for et par år siden, 571 00:30:24,010 --> 00:30:26,468 hvor det er enda andre ondsinnede triks folk har brukt. 572 00:30:26,468 --> 00:30:28,630 Dere husker kanskje at dette oppfatningen av en favicon, som 573 00:30:28,630 --> 00:30:32,270 er som en liten logo som er ofte i nettleservinduet. 574 00:30:32,270 --> 00:30:34,610 Vel, hva som er vanlig blant skurkene er 575 00:30:34,610 --> 00:30:36,340 å gjøre fab ikoner som ser ut som hva? 576 00:30:36,340 --> 00:30:39,054 577 00:30:39,054 --> 00:30:39,970 PUBLIKUM: [uhørlig]. 578 00:30:39,970 --> 00:30:40,280 DAVID J. MALAN: Si det igjen? 579 00:30:40,280 --> 00:30:41,490 PUBLIKUM: Det nettsteder. 580 00:30:41,490 --> 00:30:42,130 DAVID J. MALAN: Ikke en nettside. 581 00:30:42,130 --> 00:30:43,394 Så favicon, bitte liten ikon. 582 00:30:43,394 --> 00:30:45,560 Hva ville være den mest ondsinnet, manipulerende ting 583 00:30:45,560 --> 00:30:47,832 du kan gjøre nettstedet ditt er standardikon se ut? 584 00:30:47,832 --> 00:30:48,790 PUBLIKUM: En grønn lås. 585 00:30:48,790 --> 00:30:49,080 DAVID J. MALAN: Hva er det? 586 00:30:49,080 --> 00:30:50,160 PUBLIKUM: En liten grønn lås. 587 00:30:50,160 --> 00:30:51,960 DAVID J. MALAN: Like en grønn lås, akkurat. 588 00:30:51,960 --> 00:30:55,242 Så du kan ha denne estetiske av en liten grønn hengelås, 589 00:30:55,242 --> 00:30:57,950 hinter til verden, oh, vi er sikre, da, igjen, alt det innebærer 590 00:30:57,950 --> 00:31:00,210 er at du vet litt HTML. 591 00:31:00,210 --> 00:31:02,895 Så session hijacking refererer til akkurat det. 592 00:31:02,895 --> 00:31:05,936 Hvis du har noen som er litt sniffing eteren i dette rommet her 593 00:31:05,936 --> 00:31:09,150 eller har tilgang til en fysisk nettverk og kan se dine cookies, 594 00:31:09,150 --> 00:31:12,152 han eller hun kan hente den PHP sess ID cookie. 595 00:31:12,152 --> 00:31:13,860 Og så, hvis de er smarte nok til å vite 596 00:31:13,860 --> 00:31:18,200 hvordan du sender at cookie som sine egne håndstempel bare ved å kopiere denne verdien 597 00:31:18,200 --> 00:31:20,860 og sende HTTP-hoder, noen kunne veldig lett 598 00:31:20,860 --> 00:31:23,510 logge inn i noen av Facebook kontoer eller Gmail-kontoer 599 00:31:23,510 --> 00:31:27,355 eller Twitter-kontoer som er her, åpne i rommet, hvis du ikke bruker SSL 600 00:31:27,355 --> 00:31:31,500 og hvis nettsiden er ikke bruker SSL riktig. 601 00:31:31,500 --> 00:31:33,690 >> Så la oss overgang til en annen. 602 00:31:33,690 --> 00:31:34,700 Så en annen sann historie. 603 00:31:34,700 --> 00:31:38,680 Og dette bare brøt i nyheter en uke eller to siden. 604 00:31:38,680 --> 00:31:41,520 Verizon har gjort en svært ond ting, 605 00:31:41,520 --> 00:31:45,110 og som beste folk kan fortelle, siden minst 2012, hvorved, 606 00:31:45,110 --> 00:31:51,550 når du tilgang til nettsteder via en Verizon mobiltelefon, uansett produsent det er, 607 00:31:51,550 --> 00:31:54,150 de har vært overmodig som historien går, 608 00:31:54,150 --> 00:31:59,890 injisere i all din HTTP trafikken sin egen HTTP header. 609 00:31:59,890 --> 00:32:04,040 Og at header utseende som dette-- X-UIDH. 610 00:32:04,040 --> 00:32:06,465 UID er som en unik identifikator eller bruker-ID. 611 00:32:06,465 --> 00:32:09,660 Og X betyr bare dette er en skikk header som ikke er standard. 612 00:32:09,660 --> 00:32:11,720 >> Men hva dette betyr er at hvis jeg trekker opp, 613 00:32:11,720 --> 00:32:14,640 for eksempel hvilken som helst nettside på telefonen min her-- 614 00:32:14,640 --> 00:32:18,310 og jeg bruker Verizon som min carrier-- selv om nettleseren min kanskje ikke 615 00:32:18,310 --> 00:32:21,110 være å sende dette HTTP header, Verizon, snarest 616 00:32:21,110 --> 00:32:23,650 som signalet har nådd sin mobiltelefon tårnet et sted, 617 00:32:23,650 --> 00:32:28,187 har vært i noen tid å injisere dette header inn alle våre HTTP-trafikk. 618 00:32:28,187 --> 00:32:29,020 Hvorfor gjør de dette? 619 00:32:29,020 --> 00:32:31,920 Formodentlig for sporing grunner, for reklame grunner. 620 00:32:31,920 --> 00:32:36,280 >> Men moronic utforming avgjørelse her er at en HTTP-header, 621 00:32:36,280 --> 00:32:41,090 som dere vet fra pset6, mottas av alle web-server 622 00:32:41,090 --> 00:32:42,540 at du ber om trafikk av. 623 00:32:42,540 --> 00:32:44,248 Slik at hele denne tiden, hvis du har vært på besøk 624 00:32:44,248 --> 00:32:48,019 Facebook eller Gmail eller hvilken som helst nettside som ikke bruker SSL all tid-- 625 00:32:48,019 --> 00:32:49,810 og faktisk, de to heldigvis nå do-- 626 00:32:49,810 --> 00:32:52,670 men andre nettsteder som ikke bruk av SSL hele tiden, 627 00:32:52,670 --> 00:32:54,930 Verizon har i hovedsak plantet, med makt, 628 00:32:54,930 --> 00:32:58,180 en hånd stempel på alle våre hender at selv ikke vi ser, 629 00:32:58,180 --> 00:33:00,330 men snarere ende nettsteder gjør. 630 00:33:00,330 --> 00:33:02,890 Og slik har det ikke vært så vanskelig for hvem som helst på internett 631 00:33:02,890 --> 00:33:05,245 kjører en web server til realisere, ooh, dette er David, 632 00:33:05,245 --> 00:33:09,340 eller, ooh, dette er Davin, selv om vi er streng om tømming våre cookies, 633 00:33:09,340 --> 00:33:10,772 fordi det kommer ikke fra oss. 634 00:33:10,772 --> 00:33:11,980 Det kommer fra transportøren. 635 00:33:11,980 --> 00:33:14,896 >> De gjør et oppslag på telefonnummer og så si, oh, dette er David. 636 00:33:14,896 --> 00:33:18,890 La meg injisere en unik identifikator slik at våre annonsører eller den som kan 637 00:33:18,890 --> 00:33:19,850 holde styr på dette. 638 00:33:19,850 --> 00:33:23,769 Så dette er faktisk veldig, veldig, veldig dårlig og skremmende. 639 00:33:23,769 --> 00:33:26,060 Og jeg vil oppfordre deg til ta en titt, for eksempel, 640 00:33:26,060 --> 00:33:29,950 på denne nettadressen, som jeg burde fraskriver Jeg faktisk prøvd dette i morges. 641 00:33:29,950 --> 00:33:31,970 Jeg skrev et lite script, sette det på denne nettadressen, 642 00:33:31,970 --> 00:33:34,770 besøkte det med min egen Verizon mobiltelefon etter å slå Wi-Fi av. 643 00:33:34,770 --> 00:33:38,010 Så du må slå Wi-Fi av slik at du bruker 3G eller LTE eller lignende. 644 00:33:38,010 --> 00:33:40,010 Og så, hvis du besøker denne nettadressen, alt dette skriptet 645 00:33:40,010 --> 00:33:41,770 gjør for dere, hvis du ønsker å spille, 646 00:33:41,770 --> 00:33:45,380 er den spytter ut hva HTTP-hoder telefonen sender til vår server. 647 00:33:45,380 --> 00:33:48,510 Og jeg faktisk, i rettferdighet, gjorde ikke se dette i morges, som 648 00:33:48,510 --> 00:33:51,430 gjør at jeg tror enten det lokale mobiltelefon tårnet jeg var koblet til 649 00:33:51,430 --> 00:33:55,160 eller whatnot ikke gjør det, eller de har støttet av av å gjøre dette midlertidig. 650 00:33:55,160 --> 00:33:58,160 Men for mer informasjon, å hodet til denne nettadressen her. 651 00:33:58,160 --> 00:34:00,680 >> Og nå til dette-- dette tegneserie kan være fornuftig. 652 00:34:00,680 --> 00:34:03,530 653 00:34:03,530 --> 00:34:04,030 Nei? 654 00:34:04,030 --> 00:34:04,530 OK. 655 00:34:04,530 --> 00:34:05,390 OK. 656 00:34:05,390 --> 00:34:06,310 Som døde. 657 00:34:06,310 --> 00:34:07,240 OK. 658 00:34:07,240 --> 00:34:11,330 >> Så la oss ta en titt på et par mer angrep, hvis bare for å øke bevisstheten om 659 00:34:11,330 --> 00:34:13,179 og deretter tilby et par mulige løsninger 660 00:34:13,179 --> 00:34:14,430 slik at du er enda mer oppmerksom. 661 00:34:14,430 --> 00:34:17,305 Dette snakket vi om den andre dag, men ikke gi den et navn. 662 00:34:17,305 --> 00:34:22,360 Det er en cross-site request forfalskning, som er en overdrevent fancy måte å si 663 00:34:22,360 --> 00:34:26,489 du lure en bruker til å klikke på en URL som dette, hvilke triks dem 664 00:34:26,489 --> 00:34:28,280 inn i noen atferd som de ikke har tenkt. 665 00:34:28,280 --> 00:34:30,710 >> I dette tilfellet, synes dette å være å prøve å lure meg 666 00:34:30,710 --> 00:34:32,920 til å selge mine aksjer i Google. 667 00:34:32,920 --> 00:34:36,810 Og dette vil lykkes hvis Jeg, programmerer av pset7, 668 00:34:36,810 --> 00:34:40,409 har ikke gjort det? 669 00:34:40,409 --> 00:34:44,739 Eller rettere sagt, mer generelt, i det som tilfeller er jeg utsatt for et angrep 670 00:34:44,739 --> 00:34:49,460 hvis noen lurer en annen brukers til å klikke en URL som dette? 671 00:34:49,460 --> 00:34:49,960 Yeah? 672 00:34:49,960 --> 00:34:52,500 >> PUBLIKUM: Du trenger ikke skille mellom GET og POST. 673 00:34:52,500 --> 00:34:52,760 >> DAVID J. MALAN: Good. 674 00:34:52,760 --> 00:34:54,850 Hvis vi ikke skille mellom GET og POST, 675 00:34:54,850 --> 00:34:57,950 og ja, hvis vi tillater GET for å selge ting, 676 00:34:57,950 --> 00:35:00,284 vi invitere denne type angrep. 677 00:35:00,284 --> 00:35:01,950 Men vi kan fortsatt redusere det noe. 678 00:35:01,950 --> 00:35:04,283 Og jeg kommenterte, tror jeg, forrige uke at Amazon minst 679 00:35:04,283 --> 00:35:08,180 forsøker å redusere dette med en teknikk det er ganske grei. 680 00:35:08,180 --> 00:35:11,860 Hva ville en smart ting å gjøre er å være på serveren din, 681 00:35:11,860 --> 00:35:14,652 snarere enn bare blindt å selge uansett symbol brukeren skriver inn? 682 00:35:14,652 --> 00:35:15,984 PUBLIKUM: Bekreftelse av former? 683 00:35:15,984 --> 00:35:19,320 DAVID J. MALAN: En bekreftelse på skjermen, noe som involverer menneskelig samhandling 684 00:35:19,320 --> 00:35:21,300 slik at jeg er nødt til å gjøre vurderingssak, 685 00:35:21,300 --> 00:35:23,930 selv om jeg har naivt klikket en link som ser slik ut 686 00:35:23,930 --> 00:35:27,760 og førte meg til mobilskjermen på Minst ba meg om å bekrefte eller benekte. 687 00:35:27,760 --> 00:35:32,460 Men ikke en uvanlig angrep, spesielt i såkalte phishing eller spam-lignende 688 00:35:32,460 --> 00:35:33,280 angrep. 689 00:35:33,280 --> 00:35:34,890 >> Nå er dette en litt mer subtil. 690 00:35:34,890 --> 00:35:37,060 Dette er en cross-site scripting-angrep. 691 00:35:37,060 --> 00:35:39,250 Og dette skjer hvis din Nettstedet er ikke bruker 692 00:35:39,250 --> 00:35:41,260 tilsvarende htmlspecialchars. 693 00:35:41,260 --> 00:35:45,160 Og det tar brukerundersøkelser og bare blindt injisere det i en web-side, 694 00:35:45,160 --> 00:35:48,170 som med print eller ekko, with-- igjen-- ut kalle noe 695 00:35:48,170 --> 00:35:49,710 som htmlspecialchars. 696 00:35:49,710 --> 00:35:52,602 >> Så antar nettsiden i Spørsmålet er vulnerable.com. 697 00:35:52,602 --> 00:35:55,620 Og antar at det aksepterer en parameter som heter q. 698 00:35:55,620 --> 00:35:59,040 Se på hva som kan skje hvis jeg faktisk, en bad guy, 699 00:35:59,040 --> 00:36:02,360 skrive inn eller lure en bruker til besøke en nettadresse som ser ut som dette-- 700 00:36:02,360 --> 00:36:05,900 q = åpen script tag, lukket skriptmerket. 701 00:36:05,900 --> 00:36:08,480 Og igjen, jeg antar at vulnerable.com er ikke 702 00:36:08,480 --> 00:36:11,740 kommer til å slå farlig figurer som åpne brak 703 00:36:11,740 --> 00:36:15,570 inn HTML enheter, den -tegn, L-T, semikolon ting 704 00:36:15,570 --> 00:36:17,090 som du kanskje har sett før. 705 00:36:17,090 --> 00:36:18,900 >> Men hva er skriptet eller Javascript-kode 706 00:36:18,900 --> 00:36:21,160 Jeg prøver å lure en brukeren til å utføre? 707 00:36:21,160 --> 00:36:25,420 Vel, refererer document.location til nettleseren min nåværende adresse. 708 00:36:25,420 --> 00:36:29,400 Så hvis jeg gjør document.location =, Dette tillater meg å omdirigere brukeren 709 00:36:29,400 --> 00:36:30,830 i Javascript til en annen nettside. 710 00:36:30,830 --> 00:36:34,290 Det er som vår PHP-funksjonen omdirigere, men gjøres i Javascript. 711 00:36:34,290 --> 00:36:35,900 >> Hvor jeg prøver å sende brukeren? 712 00:36:35,900 --> 00:36:40,110 Vel, tydeligvis, badguy.com/log.php, som er noen manus, tilsynelatende, 713 00:36:40,110 --> 00:36:43,530 slemmingen skrev, som tar en parameter som heter cookie. 714 00:36:43,530 --> 00:36:46,790 >> Og legg merke til, hva gjør jeg synes å være sammenkjeding 715 00:36:46,790 --> 00:36:49,190 på enden av at likhetstegnet? 716 00:36:49,190 --> 00:36:52,030 Vel, noe som sier document.cookie. 717 00:36:52,030 --> 00:36:53,320 Vi har ikke snakket om dette. 718 00:36:53,320 --> 00:36:55,730 Men det viser seg, i Javascript, akkurat som i PHP, 719 00:36:55,730 --> 00:36:59,770 du får tilgang til alle cookies at nettleseren din er faktisk bruker. 720 00:36:59,770 --> 00:37:02,180 >> Slik at effekten av denne ene linje med kode, hvis en bruker 721 00:37:02,180 --> 00:37:06,440 blir lurt til å klikke på denne linken og nettstedet vulnerable.com ikke 722 00:37:06,440 --> 00:37:10,000 unnslippe den med htmlspecialchars, er at du har bare effektivt 723 00:37:10,000 --> 00:37:13,660 lastet opp til log.php alle dine informasjonskapsler. 724 00:37:13,660 --> 00:37:17,300 Og det er ikke alltid så problematisk, bortsett fra hvis en av disse informasjonskapslene 725 00:37:17,300 --> 00:37:20,040 er din session-ID, din såkalte håndstempel, som 726 00:37:20,040 --> 00:37:26,470 betyr badguy.com kan lage sin egen HTTP-forespørsler, sende den samme hånden 727 00:37:26,470 --> 00:37:30,210 stempel, det samme cookie header, og logg inn i hva nettstedet 728 00:37:30,210 --> 00:37:33,680 du var på besøk, noe som i dette tilfellet er vulnerable.com. 729 00:37:33,680 --> 00:37:35,940 Det er en cross-site scripting angrep i den forstand 730 00:37:35,940 --> 00:37:38,130 at du liksom lure ett område til å fortelle 731 00:37:38,130 --> 00:37:43,560 et annet nettsted om noen informasjon den bør ikke i virkeligheten har tilgang til. 732 00:37:43,560 --> 00:37:46,510 >> All right, klar for en annen bekymringsfull detalj? 733 00:37:46,510 --> 00:37:49,970 Greit, er verden et skummelt sted, legitimt det. 734 00:37:49,970 --> 00:37:52,480 Her er en enkel Javascript eksempel som er 735 00:37:52,480 --> 00:37:54,847 i dagens kildekode kalt geolocation 0 og 1. 736 00:37:54,847 --> 00:37:56,930 Og det er et par walkthroughs på nettet for dette. 737 00:37:56,930 --> 00:37:59,920 >> Og det gjør følgende hvis jeg åpne denne websiden i Chrome. 738 00:37:59,920 --> 00:38:04,590 Det gjør ingenting først. 739 00:38:04,590 --> 00:38:07,300 OK, vi skal prøve dette igjen. 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 Ingen, bør det gjør noe. 743 00:38:13,370 --> 00:38:16,500 OK, stå ved. 744 00:38:16,500 --> 00:38:18,200 >> La oss prøve dette på nytt. 745 00:38:18,200 --> 00:38:21,285 746 00:38:21,285 --> 00:38:21,785 [Uhørbart] 747 00:38:21,785 --> 00:38:26,941 748 00:38:26,941 --> 00:38:29,444 Ah, OK, ikke sikker på hvorfor the-- oh, apparatet 749 00:38:29,444 --> 00:38:31,360 sannsynligvis mistet internett tilgang for en eller annen grunn. 750 00:38:31,360 --> 00:38:32,840 All right, så skjer for meg også. 751 00:38:32,840 --> 00:38:34,650 >> All right, så varsel hva som skjer her. 752 00:38:34,650 --> 00:38:37,300 Denne kryptiske utseende URL, som er bare ett av CS50 server, 753 00:38:37,300 --> 00:38:41,130 ønsker å bruke datamaskinen min beliggenhet, like fysisk det betyr. 754 00:38:41,130 --> 00:38:45,160 Og hvis, ja, jeg klikker på Tillat, la oss se hva som skjer. 755 00:38:45,160 --> 00:38:49,030 Angivelig, dette er min nåværende breddegrad og lengdekoordinater ned 756 00:38:49,030 --> 00:38:51,660 til en ganske darn god oppløsning. 757 00:38:51,660 --> 00:38:53,310 >> Så hvordan jeg får på dette? 758 00:38:53,310 --> 00:38:57,620 Hvordan virker dette nettstedet, som CS50 server, fysisk vet hvor i verden 759 00:38:57,620 --> 00:38:59,600 Jeg er, enn si med at presisjon. 760 00:38:59,600 --> 00:39:01,990 Vel, viser out-- la oss bare se på sidens source-- 761 00:39:01,990 --> 00:39:05,280 at her er en haug med HTML på bunnen som først har dette-- 762 00:39:05,280 --> 00:39:09,080 body onload = "Lokalisere geografisk" - bare en funksjon jeg skrev. 763 00:39:09,080 --> 00:39:11,840 >> Og jeg sier, på lasting siden, kaller Lokalisere geografisk. 764 00:39:11,840 --> 00:39:13,750 Og så er det ingenting i legemet, fordi 765 00:39:13,750 --> 00:39:16,270 i hodet på siden, Legg merke til hva jeg har her. 766 00:39:16,270 --> 00:39:18,090 Her er min Lokalisere geografisk funksjon. 767 00:39:18,090 --> 00:39:23,560 Og dette er bare noen feil checking-- hvis den type navigator.geolocation 768 00:39:23,560 --> 00:39:24,490 er ikke definert. 769 00:39:24,490 --> 00:39:26,240 Så Java har dette mekanisme hvor du 770 00:39:26,240 --> 00:39:28,270 kan si, hva er type av denne variabel? 771 00:39:28,270 --> 00:39:30,790 Og hvis det ikke er undefined-- det betyr at det er noen value-- 772 00:39:30,790 --> 00:39:35,940 Jeg kommer til å ringe navigator.geolocation.getCurrentPosition 773 00:39:35,940 --> 00:39:37,230 og deretter tilbakeringing. 774 00:39:37,230 --> 00:39:37,750 >> Hva er dette? 775 00:39:37,750 --> 00:39:39,916 Så generelt, hva er en tilbakeringing, bare for å være klar? 776 00:39:39,916 --> 00:39:42,890 Du har kanskje støtt dette allerede i pset8. 777 00:39:42,890 --> 00:39:44,790 Callback er en generisk begrep for å gjøre hva? 778 00:39:44,790 --> 00:39:48,430 779 00:39:48,430 --> 00:39:49,554 Føles som bare meg i dag. 780 00:39:49,554 --> 00:39:50,470 PUBLIKUM: [uhørlig]. 781 00:39:50,470 --> 00:39:53,322 782 00:39:53,322 --> 00:39:55,280 DAVID J. MALAN: Akkurat, en funksjon som skal 783 00:39:55,280 --> 00:39:57,330 bli kalt bare når vi har data. 784 00:39:57,330 --> 00:40:01,510 Denne samtalen til nettleseren, får min nåværende posisjon, kan ta ett millisekund, 785 00:40:01,510 --> 00:40:02,720 det kan ta et minutt. 786 00:40:02,720 --> 00:40:06,960 Hva dette betyr er at vi forteller get getCurrentPosition metoden, 787 00:40:06,960 --> 00:40:09,910 kalle denne tilbakeringingsfunksjonen, som jeg bokstavelig talt heter tilbakeringing 788 00:40:09,910 --> 00:40:13,150 for enkelhets skyld, som tilsynelatende er denne her. 789 00:40:13,150 --> 00:40:16,290 >> Og måten getCurrentPosition fungerer, rett og slett ved å lese dokumentasjonen 790 00:40:16,290 --> 00:40:19,540 for noen Javascript-kode på nettet, er at det kaller det såkalte tilbakeringing 791 00:40:19,540 --> 00:40:23,220 funksjon, passerer det inn i det en Javascript-objekt, 792 00:40:23,220 --> 00:40:28,970 innsiden av som er .coords.latitude og .coords.longitude, 793 00:40:28,970 --> 00:40:32,140 som er nøyaktig hvordan, da, når jeg reloaded denne siden, 794 00:40:32,140 --> 00:40:33,985 Jeg var i stand til å se min posisjon her. 795 00:40:33,985 --> 00:40:35,610 Nå, i det minste var det et forsvar her. 796 00:40:35,610 --> 00:40:37,820 Før jeg besøkte denne siden når det faktisk fungerte, 797 00:40:37,820 --> 00:40:40,935 hva var jeg i hvert fall bedt om? 798 00:40:40,935 --> 00:40:42,180 >> PUBLIKUM: [uhørlig]. 799 00:40:42,180 --> 00:40:44,200 >> DAVID J. MALAN: Ja eller no-- gjøre du vil tillate eller nekte dette? 800 00:40:44,200 --> 00:40:46,630 Men tenk også om vaner dere har sikkert vedtatt, 801 00:40:46,630 --> 00:40:48,330 både på telefoner og nettlesere. 802 00:40:48,330 --> 00:40:50,390 Mange av oss, meg selv inkludert, er trolig 803 00:40:50,390 --> 00:40:54,960 ganske disponert disse days-- deg se en pop-up, bare Enter, OK, Godkjenn, 804 00:40:54,960 --> 00:40:55,730 Tillat. 805 00:40:55,730 --> 00:40:59,070 Og i økende grad, kan du sette deg selv i fare for disse grunner. 806 00:40:59,070 --> 00:41:03,280 >> Så faktisk, det var denne fantastiske bug noen år ago-- eller mangel på feature-- 807 00:41:03,280 --> 00:41:08,250 at iTunes hadde for noen år siden, der, hvis du hadde en mobiltelefon, 808 00:41:08,250 --> 00:41:12,000 og det var en iPhone, og du forlot hjem 809 00:41:12,000 --> 00:41:15,600 og derfor reist verden rundt eller nabolaget, hele denne tiden, 810 00:41:15,600 --> 00:41:17,819 telefonen ble logging hvor du er via GPS. 811 00:41:17,819 --> 00:41:20,610 Og dette er faktisk avslørt, og folk slags forventer dette nå. 812 00:41:20,610 --> 00:41:21,930 Telefonen vet hvor du er. 813 00:41:21,930 --> 00:41:24,990 Men problemet var at, når du var å sikkerhetskopiere 814 00:41:24,990 --> 00:41:29,260 telefonen til iTunes-- dette var før dagene av iCloud, som er for bedre 815 00:41:29,260 --> 00:41:33,960 eller for worse-- at data ble lagret i iTunes, helt ukryptert. 816 00:41:33,960 --> 00:41:37,370 Så hvis du har en familie eller romkamerater eller en ondsinnet nabo som er 817 00:41:37,370 --> 00:41:41,430 nysgjerrig på bokstavelig talt alle GPS koordinere du noen gang har vært på, 818 00:41:41,430 --> 00:41:43,300 han eller hun kunne bare sitte ned på iTunes, kjøre 819 00:41:43,300 --> 00:41:46,540 noen programvare som var fritt tilgjengelig, og produsere kart som dette. 820 00:41:46,540 --> 00:41:48,680 >> Faktisk, dette er hva jeg produsert av min egen telefon. 821 00:41:48,680 --> 00:41:49,380 Jeg plugget den inn. 822 00:41:49,380 --> 00:41:51,670 Og det ser ut som, basert på de blå prikker der, 823 00:41:51,670 --> 00:41:53,900 det er der det meste av GPS-koordinatene var 824 00:41:53,900 --> 00:41:56,680 logget av iTunes som jeg var i nordøst der. 825 00:41:56,680 --> 00:42:00,030 Men jeg tydeligvis reist rundt en bit, selv innenfor Massachusetts. 826 00:42:00,030 --> 00:42:01,950 >> Så det er Boston Harbor det til høyre. 827 00:42:01,950 --> 00:42:04,430 Det er slags Cambridge og Boston, hvor det er mørkest. 828 00:42:04,430 --> 00:42:07,660 Og av og til, ville jeg kjøre ærender til en større geografi. 829 00:42:07,660 --> 00:42:11,464 >> Men iTunes, i mange år, hadde som beste Jeg kan si, alt dette data på meg. 830 00:42:11,464 --> 00:42:13,380 Du kan fortelle at, det året, var jeg faktisk 831 00:42:13,380 --> 00:42:17,990 reiser mye mellom Boston og New York, går frem og tilbake 832 00:42:17,990 --> 00:42:18,830 og frem og tilbake. 833 00:42:18,830 --> 00:42:22,660 Og ja, dette er meg på Amtrak, rygg frem og tilbake, frem og tilbake, ganske mye. 834 00:42:22,660 --> 00:42:25,970 Alle som ble logget og lagret kryptert på datamaskinen min 835 00:42:25,970 --> 00:42:28,520 for alle som kan ha tilgang til datamaskinen min. 836 00:42:28,520 --> 00:42:29,480 >> Dette var bekymringsfull. 837 00:42:29,480 --> 00:42:32,180 Jeg visste ikke hvorfor jeg var i Pennsylvania eller hvorfor 838 00:42:32,180 --> 00:42:35,277 telefonen min var i Pennsylvania, tilsynelatende ganske tett. 839 00:42:35,277 --> 00:42:37,360 Og så, endelig, så jeg på min Gcal, og, oh, jeg 840 00:42:37,360 --> 00:42:39,880 besøkt CMU, Carnegie Mellon, på den tiden. 841 00:42:39,880 --> 00:42:42,031 Og puh, den slags forklarte at blip. 842 00:42:42,031 --> 00:42:43,780 Og så, hvis du zoomer ut videre, kan du 843 00:42:43,780 --> 00:42:46,850 ser jeg besøkte San Francisco én eller flere ganger og deretter, 844 00:42:46,850 --> 00:42:51,140 og jeg selv hadde en layover i hva Jeg tror er Vegas, der nede. 845 00:42:51,140 --> 00:42:54,120 Så alle dette-- bare en layover, på flyplassen. 846 00:42:54,120 --> 00:42:56,420 >> PUBLIKUM: [latter] 847 00:42:56,420 --> 00:43:00,760 >> Så dette er bare for å si at disse problemer, ærlig, er allestedsnærværende. 848 00:43:00,760 --> 00:43:02,780 Og det bare føles stadig liker det 849 00:43:02,780 --> 00:43:05,810 mer og mer av dette blir avslørt, som sannsynligvis er en god ting. 850 00:43:05,810 --> 00:43:08,390 Jeg daresay, verden er ikke blir verre på å skrive programvare. 851 00:43:08,390 --> 00:43:10,520 Vi får bedre, forhåpentligvis, ved å merke 852 00:43:10,520 --> 00:43:13,037 hvor ille bestemt programvare er at vi bruker. 853 00:43:13,037 --> 00:43:14,870 Og heldigvis, noen selskaper er i ferd 854 00:43:14,870 --> 00:43:17,080 å bli holdt ansvarlig for dette. 855 00:43:17,080 --> 00:43:19,080 >> Men hva slags forsvar kan du ha i tankene? 856 00:43:19,080 --> 00:43:23,610 Så i tillegg til passord ledere, som 1Password og Lastpass og andre, 857 00:43:23,610 --> 00:43:27,340 dessuten bare å endre passordene dine og kommer opp med tilfeldige seg 858 00:43:27,340 --> 00:43:29,700 ved hjelp av programvare som det, kan du også prøve 859 00:43:29,700 --> 00:43:31,700 som best du kan for å kryptere alt av trafikken 860 00:43:31,700 --> 00:43:34,680 å i det minste å begrense sonen av en trussel. 861 00:43:34,680 --> 00:43:38,100 Så for eksempel, som Harvard tilknyttede selskaper, du kan alle gå til vpn.harvard.edu 862 00:43:38,100 --> 00:43:41,010 og logg deg på med Harvard-ID og PIN-kode. 863 00:43:41,010 --> 00:43:49,350 Og dette vil etablere en sikker forbindelse mellom deg og Harvard. 864 00:43:49,350 --> 00:43:51,150 >> Nå gjør det ikke nødvendigvis beskytte deg 865 00:43:51,150 --> 00:43:54,360 mot eventuelle trusler som er mellom Harvard og Facebook eller Harvard 866 00:43:54,360 --> 00:43:54,861 og Gmail. 867 00:43:54,861 --> 00:43:56,735 Men hvis du sitter på en flyplass eller du er 868 00:43:56,735 --> 00:43:59,260 sitter i Starbucks eller du er sitter på en venns sted, 869 00:43:59,260 --> 00:44:02,730 og du egentlig ikke stole på dem eller deres konfigurasjon av deres hjem router, 870 00:44:02,730 --> 00:44:04,970 minst kan du opprette en sikker tilkobling 871 00:44:04,970 --> 00:44:10,260 til en enhet som dette sted som er trolig litt bedre sikret 872 00:44:10,260 --> 00:44:12,437 enn noe som en Starbucks eller lignende. 873 00:44:12,437 --> 00:44:14,270 Og hva dette betyr er den etablerer, igjen, 874 00:44:14,270 --> 00:44:16,300 kryptering mellom deg og endepunkt. 875 00:44:16,300 --> 00:44:17,880 >> Selv mer avansert er ting som dette. 876 00:44:17,880 --> 00:44:20,000 Så noen av dere kanskje allerede være kjent med Tor, 877 00:44:20,000 --> 00:44:22,930 som er denne slags anonymisering nettverk, der mange mennesker, 878 00:44:22,930 --> 00:44:26,640 hvis de kjøre denne programvaren, rute senere deres Internett 879 00:44:26,640 --> 00:44:27,990 trafikk gjennom hverandre. 880 00:44:27,990 --> 00:44:31,460 Så den korteste punktet er ikke lenger mellom A og B. 881 00:44:31,460 --> 00:44:35,850 Men det kan være over hele plasser slik at du er i hovedsak 882 00:44:35,850 --> 00:44:40,742 dekker ens spor og forlate mindre av en rekord med hensyn til hvor din HTTP 883 00:44:40,742 --> 00:44:43,950 trafikken kom fra, fordi det kommer gjennom en hel haug med andre menneskers 884 00:44:43,950 --> 00:44:45,990 bærbare eller stasjonære PCer, for bedre eller verre. 885 00:44:45,990 --> 00:44:48,180 >> Men selv dette er ikke en sikker ting. 886 00:44:48,180 --> 00:44:51,560 Noen av dere kanskje husker i fjor bomben skremme som ble kalt inn. 887 00:44:51,560 --> 00:44:54,662 Og det ble sporet til slutt til et Brukeren som hadde brukt dette nettverket her. 888 00:44:54,662 --> 00:44:57,870 Og fangsten der, som jeg husker, er, hvis det ikke er så mange andre mennesker 889 00:44:57,870 --> 00:45:02,190 ved hjelp av en programvare som dette eller bruker denne porten og protokoll, 890 00:45:02,190 --> 00:45:06,250 det er ikke så vanskelig for et nettverk å selv finne ut hvem, med en viss sannsynlighet, 891 00:45:06,250 --> 00:45:08,950 var faktisk anonymiteringsnettverk hans eller hennes trafikk. 892 00:45:08,950 --> 00:45:12,030 >> Og jeg vet ikke om de var faktiske opplysninger i spørsmålet. 893 00:45:12,030 --> 00:45:15,400 Men sikkert, innser at ingen av disse er Surefire løsninger, så vel. 894 00:45:15,400 --> 00:45:18,820 Og målet her i dag er å minst få deg å tenke på disse tingene 895 00:45:18,820 --> 00:45:23,140 og kommer opp med teknikker for forsvare deg mot dem. 896 00:45:23,140 --> 00:45:28,858 Eventuelle spørsmål om alle truslene som venter deg der ute, og her 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 PUBLIKUM: Hvor trygge gjøre vi forventer at gjennomsnittlig 900 00:45:31,793 --> 00:45:35,210 [? nettsted for å være,?] som gjennomsnittlig CS50 prosjektet? 901 00:45:35,210 --> 00:45:38,530 >> DAVID J. MALAN: The gjennomsnittlig CS50 prosjektet? 902 00:45:38,530 --> 00:45:43,190 Det er alltid vist seg hvert år som noen CS50 endelige prosjektene er ikke 903 00:45:43,190 --> 00:45:44,530 spesielt sikker. 904 00:45:44,530 --> 00:45:47,940 Vanligvis er det noen kollektiv eller hallmate at tall ut dette 905 00:45:47,940 --> 00:45:51,200 ved å sende forespørsler til prosjektet. 906 00:45:51,200 --> 00:45:55,230 >> Kort answer-- hvor mange nettsteder er trygge? 907 00:45:55,230 --> 00:45:57,450 Jeg plukker på dagens anomalier. 908 00:45:57,450 --> 00:46:00,640 Som det var bare tilfeldigheter at jeg innså at denne nettsiden 909 00:46:00,640 --> 00:46:03,390 Jeg har vært bestiller disse ærlig deilige ordninger from-- 910 00:46:03,390 --> 00:46:05,348 og jeg er ikke sikker på at jeg skal slutte å bruke deres hjemmeside; 911 00:46:05,348 --> 00:46:08,030 Jeg kan bare endre min passord mer regularly-- 912 00:46:08,030 --> 00:46:11,320 Det er ikke klart hvor sårbare alle disse various-- 913 00:46:11,320 --> 00:46:12,970 dette er sjokolade dekket faktisk. 914 00:46:12,970 --> 00:46:16,172 915 00:46:16,172 --> 00:46:19,130 Det korte svaret, kan jeg ikke svare på det effektivt, annet enn å si det 916 00:46:19,130 --> 00:46:22,150 var ikke så vanskelig for meg å finne noen av disse eksemplene bare 917 00:46:22,150 --> 00:46:24,040 av hensyn til diskusjon i forelesning. 918 00:46:24,040 --> 00:46:26,456 Og bare å holde et øye med Google News og andre ressurser 919 00:46:26,456 --> 00:46:29,590 vil bringe enda mer av slike ting frem i lyset. 920 00:46:29,590 --> 00:46:32,460 >> Greit, la oss konkludere med denne prequel 921 00:46:32,460 --> 00:46:36,870 at CS50 team har forberedt for deg i påvente av CS50 Hackathon. 922 00:46:36,870 --> 00:46:39,763 Og på vei ut i en øyeblikket, vil frukt bli servert. 923 00:46:39,763 --> 00:46:40,429 [VIDEO PLAYBACK] 924 00:46:40,429 --> 00:46:43,595 [MUSIC FERGIE, Q TIP, OG GOONROCK, "A LITTLE PARTY ALDRI drept noen (ALL 925 00:46:43,595 --> 00:46:44,373 VI FIKK) "] 926 00:46:44,373 --> 00:48:08,880 927 00:48:08,880 --> 00:48:13,467 >> - [SNORKING] 928 00:48:13,467 --> 00:48:14,300 [END VIDEO PLAYBACK] 929 00:48:14,300 --> 00:48:15,420 DAVID J. MALAN: Det var det for CS50. 930 00:48:15,420 --> 00:48:16,544 Vi ser deg på onsdag. 931 00:48:16,544 --> 00:48:20,670 932 00:48:20,670 --> 00:48:25,840 [MUSIC - Skrillex, "IMMA 'PRØVE DEN UT"] 933 00:48:25,840 --> 00:51:47,776