DAVID J. MALAN: Dette er CS50, og dette er starten på uke 10. Du husker kanskje at vi har vist på skjermen en 3D-printer, som er denne enheten som tar sneller plast og deretter ekstruderer det ved å oppvarme det opp og smelter det slik at vi kan deretter danne Chang hær av elefanter, for eksempel. Så på Leverett House, skjønt, nylig, jeg chattet med en av dine klassekamerater og en venn av Chang heter Michelle, som faktisk internert på dette andre selskapet det siste året som har en annen teknikk for faktisk skape tredimensjonale objekter, som dette bitte liten elefant her. Spesielt måten dette fungerer er at det er et eksempel på noe kalt stereolitografi, der det er dette bassenget av harpiks eller væske, og deretter en laser streik som væske, og gradvis, vil enheten heiser og heiser og løfter ting at du skriver ut, som en elefant, som at væsken blir solid. Og resultatet, faktisk, er noe som er mye mer robust enn noen av plasten giveaways noen av dere kan ha hatt. Og hva Chang ber gjorde for oss her var gjorde en time-lapse bruke bilder i løpet av en time eller mer, sannsynligvis, for å produsere denne fyren her. Ville noen som aldri har kommet opp før liker å komme hit på Start på denne videoen? La meg gå med, hva med det. Kom opp. OK. Og du er? LUKE: Jeg heter Luke [uhørbart]. DAVID J. MALAN: Hei, Luke. Hyggelig å møte deg. LUKE: Hyggelig å møte deg. PUBLIKUM: Han kjører for UC. DAVID J. MALAN: jeg vet, vi prøver ikke å fremme. All right, så Lukas, alle du trenger å gjøre her i CS50 er truffet på mellomromstasten å skrive ut denne elefant. [VIDEO PLAYBACK] - [MACHINE surrende] - [CRASH] - [BOOM] - [CRASH] [END VIDEO PLAYBACK] DAVID J. MALAN: Så det er akkurat hvordan det er å 3D-print. Og her er din elefant. Takk for frivillig arbeid. OK. Så igjen, i henhold til spesifikasjon for det endelige prosjektet, denne maskinvaren som er tilgjengelig for dere er en eller annen grunn, prosjektet har noen skjærings av programvare og maskinvare, innse at disse er nå ressurser. Jeg ønsket å ta en stund å røre på en Crimson artikkel som kom ut sent i går kveld, som var å kunngjøre at denne karen her, David Johnson, som har vært senior veileder for Ec 10 for en stund, forlater Harvard på slutten av studieåret. Og jeg ville bare ta et øyeblikk, ærlig, å takke David foran CS50. Han har vært en mentor for sorterer til oss gjennom årene. Og jeg føler at vi, CS50, har heller vokst opp med Ec 10 her, siden de er rett foran oss. Og han og hele teamet i Ec 10 har vært fantastisk nådig, ærlig, som vi slepe i alt utstyret vårt hver eneste uke, og år siden, gitt mye av råd som vi var nysgjerrig på hvordan de opererer Ec 10. Så vår takk og beundring til David Johnson. [APPLAUSE] Nå unrelatedly, så Til slutt er faktisk nær. Vi er her i uke 10. Og vi har bare bare en par formelle uker her i klassen igjen, etterfulgt ved et par hendelser. Så for å gi deg en følelse av hva som er i horisonten, her vi er i dag. Denne onsdagen, husker, vi vil ha en gjesteforelesning av ingen ringere enn Microsofts egen Steve Ballmer. Hvis du ennå ikke har gått til cs50.harvard.edu/register, gjøre det, siden plass vil være begrenset. Og de skal sjekke IDer på døren denne dagen. Hvis du ikke var her i forrige uke, jeg trodde jeg hadde erte deg med et annet utseende på Steve og spenningen som venter oss på onsdag. [VIDEO PLAYBACK] -Passion. -Vi Kommer til å være hardcore-- hardcore. -Innovator. -Bill Sagt, du får ikke det. Vi kommer til å sette en datamaskin på hver pult og i hvert hjem, som ble mottoet for selskapet. Jeg sverger, Bill oppfant den den kvelden for å virkelig gi meg noen av visjonen om hvorfor jeg skulle si ja. Jeg har aldri sett seg tilbake, virkelig, etter det. -Friske ut av college, han ble med en fledgling oppstart og hjalp den vokse til en av USAs de fleste vellykkede bedrifter noensinne. Livet til og næringsliv erfaringene underveis la ham tilbake til hans barndom lidenskap og kjærlighet. Og disse opplevelsene har forberedt ham for hans neste utfordring i livet. -Ingenting kommer i vår måte-- boom! Stadig vender hardcore! Gå Clippers! -Dette Er Steve Ballmer, "In My Own Words». [END VIDEO PLAYBACK] DAVID J. MALAN: --this Onsdag til CS50. Hodet igjen til denne nettadressen her. Som for hva annet er på horisonten, neste uke, ingen forelesning på mandag. Men vi vil følge at etter quiz en på onsdag. Gå til CS50 hjemmeside for mer informasjon på personer, steder og tider for alle de ulike proctoring logistikk og lignende, så vel som om en vurdering sesjoner som er forestående. Og så, til slutt, på mandag, dagen før uken av Thanksgiving pause, skjønner det vil være vår siste forelesning. Vi vil servere kake og en stor livet spennende, håper vi. Nå, et par andre oppdateringer. Husk at status Rapporten, som egentlig bare er ment å være en uformell interaksjon med TF å stolt staten bare hvor langt sammen med din siste prosjektet du er, eller i det minste som en mental helse sjekk at du bør bli nærmer seg peke kort tid etterpå. Den Hackathon følger da at. Innse Hackathon er ikke en mulighet å starte det endelige prosjektet, men er ment å være en mulighet å være i midten av eller mot slutten av det endelige prosjektet, med gjennomføringen skyldes noen dager senere, etterfulgt av CS50 rettferdig. Nå CS50 produksjon team, et par år siden, sette sammen en teaser for CS50 rettferdig at vi tenkte vi skulle vise dere i dag, fordi de har vært vanskelig på jobben på en prequel for at en ny video at vi vil konkludere i dag med. Men her er hva som venter deg for årets CS50 rettferdig. [VIDEO PLAYBACK] - [CELL telefonen ringer] [MUSIC "tema fra Mission: Impossible"] [END VIDEO PLAYBACK] DAVID J. MALAN: Så det er nøyaktig hvordan vi lukker endelige prosjekt innleveringer. Et par nå teasers-- hvis du ønsker å bli med Nick her til lunsj, som vanlig, dette Fredag, hodet til denne nettadressen her. Videre, hvis du ønsker å bli med Nick eller denne Nick eller denne Allison eller noen medlemmer av CS50 team, innser at, kort tid etter term slutt, CS50 vil allerede være å rekruttere for neste års team, for instanser, TFS, designere, produsenter, forskere og andre stillinger at her opererer CS50 både i foran og bak kulissene. Så hvis dette kan være av interesse til deg, hodet til denne nettadressen her. Og studentene mer komfortable, mindre komfortable, og et sted i mellom alike er alle velkommen og oppfordres til å søke. Så det var perfekt timing at, nei spøk, i morges, da jeg våknet, Jeg hadde dette her spam i innboksen min. Det faktisk gled gjennom Gmails spamfilter en eller annen måte, og endte opp i min faktiske innboks. Og det står: "Kjære postkasse bruker, er du for tiden oppgradert til 4 gigabyte med plass. Vennligst logg inn på din konto for å validere E-space. " Og så er det denne fine blå frist link der til å klikke på for lærere og ansatte, som deretter førte meg til en fantastisk legitim side, som ba meg om å gi dem mitt navn og e-postadresse, og, selvfølgelig, passord for å validere hvem jeg er og så videre. Men selvfølgelig, er som alltid tilfelle, du kommer til denne destinasjonssiden, og selvfølgelig, det er minst en skrivefeil, som synes å være spikeren i kisten til noen av disse svindel. Og vi vil legge ut, kanskje, noen andre linker til slike skjermbilder i fremtiden. Men forhåpentligvis, de fleste i Dette rommet har ikke clicked-- eller selv om du har klikket slike koblinger som dette, du ikke har gått så langt som å fylle ut disse skjemaene og så videre. Faktisk, det er OK hvis du har. Vi skal prøve å fikse det i dag, fordi, ja, er dagens samtale om sikkerhet. Og ja, en av de mål av CS50 er ikke så mye å lære deg CE eller PHP eller Javascript eller SQL eller en hvilken som helst av disse underliggende gjennomføring detaljer. Men det er å styrke deg som mennesker å bare ta smartere avgjørelser som det gjelder teknologi nedover veien slik at, uansett om du er ingeniør eller humanist eller forsker eller noen annen rolle, du gjør informerte beslutninger om din egen databehandling bruk, eller hvis du er i en beslutningsposisjon, i politikken, i særdeleshet, du gjør mye, mye bedre beslutninger enn en Mange mennesker i dag har vært. Og vi vil gjøre dette ved å hjelp av noen eksempler. Først var jeg ganske overrasket nylig å oppdage følgende. Så passord, selvfølgelig, er hva de fleste av oss bruke for å beskytte vår data-- e-post, chat, og alle slags ressurser sånn. Og bare ved en awkward-- Ikke vis av hender, men flau ser av skam, hvor mange av dere bruker det samme passordet i en rekke forskjellige nettsteder? Oh, OK, så vi vil gjøre hendene. OK, så mange av dere gjør. Alle som gjør dette, bare hvorfor? Og hva? Yeah? PUBLIKUM: Det er lett å huske, fordi du trenger ikke å huske [uhørbart]. DAVID J. MALAN: Yeah, det er lett å huske. Det er en helt rimelig, rasjonell atferd, Selv om risikoen du setter deg selv ved i disse tilfeller er bare ett eller flere av disse nettstedene er sårbar for hacking eller usikre eller passordet ditt er bare så darn guessable, hvem som helst kan finne ut av det. Ikke bare er én konto kompromittert, men i teorien, noe kontoer du har på internett. Så jeg vet jeg kan si i dag, gjør ikke bruke samme passord overalt, men det er mye lettere sagt enn gjort. Men det finnes teknikker for formildende at særlig bekymring. Nå, i skje, for eksempel, å bruke et program som heter 1Password. En annen populær heter Lastpass. Og en haug med CS50 ansatte bruke ett eller flere av disse typer verktøy. Og lang historie kort, en takeaway for dag bør være, ja, du kan ha det samme passordet overalt, men det er veldig lett å ikke lenger gjøre det. For eksempel, i disse dager, jeg vet kanskje en av mine dusinvis eller hundrevis av passord. Alle mine andre passord er pseudo-tilfeldig generert av et av disse programmene her. Og i et nøtteskall, og selv selv om de fleste av disse programmene en tendens til å komme med en bit av en kostnad, du vil installere et program som dette, du vil da lagre alle brukernavn og passord innsiden av dette programmet på din egen Mac eller PC eller whatnot, og da ville det være krypteres på din PC med hva som er forhåpentligvis en særlig langt passord. Så jeg har en hel haug med passord for individuelle nettsteder, og så har jeg en virkelig langt passord som jeg bruke til å låse opp alle de andre passord. Og hva er fint om programvare som dette er at når du besøker et nettsted som er spør etter brukernavn og passord, disse dager, vet jeg ikke skrive i mitt brukernavn og passord, fordi, igjen, jeg vet ikke engang hva de fleste av mine passord er. Jeg i stedet traff et tastatur snarvei, hvor resultatet er å utløse denne programvaren til å spør meg om mitt hovedpassord. Jeg deretter skriver at en stor passord i, og deretter leseren automatisk fyller inn hva passordet er. Så virkelig, hvis du tar ingenting annet bort fra i dag i form av passord, disse er programvare som er verdt laste ned eller å investere i så som du kan i det minste pause det bestemt vane. Og hvis du er den typen som er ved hjelp av Post-it lapper eller like-- og oddsen er minst en av dere er-- som vane, også, det er nok å si, bør være brutt. Nå kom jeg til å oppdage, som et resultat for å bruke programvaren, følgende. Jeg var bestiller en spiselig Arrangement, denne kurv med frukt, nylig. Og jeg traff min spesielt tastatur snarvei for å logge deg på nettsiden. Og programvaren utløste en pop-up som sagt, er du sikker du vil ha meg til å automatisk sende inn dette brukernavnet og passordet? På grunn av at forbindelsen er usikker. Tilkoblingen er ikke bruker HTTPS for sikker, ved hjelp av den protokollen som kalles SSL, Secure Sockets Layer. Og ja, hvis du ser på øverst til venstre på denne nettsiden, det er bare www.ediblearrangements.com, no HTTPS, som ikke er så bra. Nå var jeg curious-- kanskje dette er bare en feil i programvaren. Sikkert, noen nettside som dette at mange av oss vet om er i det minste ved hjelp av kryptering eller HTTPS for å logge deg inn. Så fikk jeg litt nysgjerrig morges. Og jeg fikk ut min CS50 ferdigheter, Jeg åpnet opp Chrome Inspector. Det er ikke engang mye av en ferdighet. Det er bare treffer den rette tastaturet snarvei for å åpne dette opp. Og her er et stort vindu av Chrome Inspector. Men hva var egentlig en litt tragisk og latterlig var disse to linjer her. Opp på toppen, legge merke til nettadressen til som mitt brukernavn og passord ble sendt inn. La meg zoome inn. Det var denne her. Og alt dette er slags uinteressant, med unntak av noe helt på venstre, som starter med http: //. Og så da, OK, kanskje de er bare å sende mitt brukernavn, som er ikke en så big deal. Kanskje mitt passord blir sendt senere. Det ville være slag av en interessant design beslutning. Men nope. Hvis du da ser på forespørsel nyttelast, brukernavn og passord Jeg sent-- og jeg spottet disse opp for slide-- faktisk ble sendt i klartekst. Så du gå til denne nettsiden og bestille en spiselig Arrangement som dette, og ja, tilsynelatende, for alt dette gang jeg har vært bestilling fra dem, brukernavn og passord går over i klartekst. Så ærlig, er dette helt uakseptabelt. Og det er så trivielt å unngå ting sånn som designer av et nettsted og som programmerer av et nettsted. Men takeaway her for oss som brukere av nettsteder er bare å sette pris på at alle det tar er for en dum konstruksjon beslutning, uforsvarlig utforming avgjørelse, slik at nå, hvis du vet at passordet mitt er "Crimson" på denne nettside, har du sannsynligvis bare fikk inn en hel haug med andre nettsteder som jeg nå har. Og det er ikke mye av et forsvar mot at annet enn hva Chang gjorde i morges. Han gikk til Edible Arrangements, som ligger nedover gaten i Cambridge, og fysisk kjøpte dette for oss. Det var mye mer sikker enn bruke nettstedet i dette tilfellet. Men detaljene for å holde et øye med er faktisk hva som er i nettleseren opp toppen der. Men selv det kan være litt villedende. Så en annen interessant eksempel og måte å forsvare mot dette-- og faktisk, la oss gjør at first-- veien for å forsvare mot dette er en teknikk at sikkerhets folk ville ringe to-faktor autentisering. Vet noen hva løsningen til problemer som dette betyr? Hva er to-faktor autentisering? Eller sagt på en annen måte, hvordan mange av dere bruker det? OK, så et par sjenerte folk. Men ja. Jeg så hånden din gå opp. Hva er to-faktor autentisering? PUBLIKUM: I utgangspunktet, i tillegg å skrive inn passordet ditt, du har også en sekundær [uhørbart] sendes via tekstmelding til telefonen din på [uhørbart]. DAVID J. MALAN: Nettopp. I tillegg til noen primære form autentisering, som et passord, du blir bedt om en sekundær faktor, noe som er typisk noe du har fysisk på deg, selv om det kan være noe helt annet. Og at ting er vanligvis en mobiltelefon i disse dager som du får sendte en midlertidig tekstmelding som sier "Midlertidig pass koden er 12345." Så i tillegg til min password "Crimson," Jeg også må skrive inn hva nettstedet har tekstet meg. Eller hvis du har dette med en bank eller en investering konto, du noen ganger har disse små dongler som faktisk har en pseudo-tilfeldig tall-generator bygget inn i dem, men både enheten og banken vet hva din første frø er slik at de vet, likesom liten kode på din lille nøkkel fob marsjerer foran hvert minutt eller to, endre verdier, så gjør at verdiendring på bankens server slik at de kan likeledes autentisere deg, ikke bare med ditt passord, men med at midlertidig kode. Nå kan du faktisk gjøre dette i Google. Og ærlig talt, dette er et god vane å komme inn, spesielt hvis du bruker Gmail hele tiden på en nettleser. Hvis du går til denne nettadressen her, som er i lysbildene online for i dag, og deretter klikk på 2-trinns bekreftelse, samme faktiske ting der. Du vil bli bedt om å gi dem mobilnummeret ditt. Og så, når du logger inn Gmail, blir du ikke bare spurt for passordet, men også for en lite kode som blir sendt til telefonen midlertidig. Og så lenge du har cookies aktivert, og så lenge du ikke eksplisitt logge ut, vil du bare ha å gjøre det en gang i en stund, som når du setter deg ned på en ny datamaskin. Og oppsiden her, også er, hvis du sitte ned på noen internet cafe stil Datamaskinen eller bare en venns datamaskin, selv hvis den vennen skadelig eller ubevisst har noen tastatur logger installert på sin datamaskin, slik at alt du type blir logget, minst at andre faktoren, som midlertidig kode, er flyktig. Slik at han eller hun eller hvem er kompromittert datamaskin kan ikke logge inn i deg senere, selv om alt annet var sårbare eller ukryptert helt. Facebook har også dette med at nettadressen her, hvor du kan klikke på Logg inn godkjenninger. Så her, også, hvis du ikke gjør det ønsker venner å rote mennesker, trenger du ikke ønsker å bli poking på Facebook eller legge ut statusoppdateringer for deg, to-faktor autentisering her er trolig en god ting. Og så er det dette annen teknikk helt, bare revisjon, som er enda en god ting for oss mennesker, hvis to-faktor beviser irriterende, som, Riktignok kan det, eller er det bare ikke tilgjengelig på noen nettside, minimalt holde et øye med hvis og når du logge inn på nettsteder, hvis de tillate deg, er en god teknikk, også. Så Facebook gir deg også denne innloggings varslinger har der når som helst Facebook innser, hm, har David logget inn fra noen datamaskin eller telefon som vi aldri har sett før fra en IP-adresse som ser ukjente, de vil i det minste sende deg en e-post til hva e-postadresse du har registrert, og sa: ser dette mistenkelig? I så fall endre passordet umiddelbart. Og så det også, bare revisjon atferd selv etter at du har vært kompromittert, kan i det minste begrense vinduet under som du er sårbar. Greit, noen spørsmål på at ting så langt? I dag er dagen for å få alle din paranoia bekreftet eller avvist. Det har stort sett bekreftet, dessverre. Yeah? PUBLIKUM: [uhørlig] telefon, hva om telefonen pauser, og da er det alltid vanskelig å verify-- DAVID J. MALAN: Sann. PUBLIKUM: Eller hvis du er i en annen landet, og de trenger ikke la deg logg inn fordi [uhørbart]. DAVID J. MALAN: Absolutt. Og så disse er det ekstra kostnader som du pådrar deg. Det er alltid dette temaet av en trade-off, tross alt. Og så, hvis du mister telefonen din, hvis det bryter, hvis du er i utlandet, eller du bare ikke har en signalet, som en LTE eller 3G-signal, du kanskje ikke egentlig være i stand til å godkjenne. Så igjen, disse to er avveininger. Og noen ganger, kan det skape en mye arbeid for deg som resultat. Men det er egentlig avhengig, da, på hva forventet pris til deg er av noe vesen kompromittert helt. Så SSL, da er denne teknikken som vi alle vanligvis tar for gitt eller antar er der, selv om det er åpenbart ikke tilfelle. Og du kan fortsatt villede folk, men selv med dette. Så her er et eksempel på en bank. Dette er Bank of America. Det er en hel haug av disse i Harvard Square og utover. Og legg merke til at det på toppen av skjermen, det er en, ja, HTTPS. Og det er enda grønn og understreket for oss for å vise at dette faktisk er et legitimt sikkert nettsted, eller så vi har blitt opplært til å tro. Nå, i tillegg til det, men Legg merke til at, hvis vi zoomer inn, det er denne tingen her, hvor du blir bedt om å logge inn. Hva betyr dette hengelås mener rett der, ved siden av brukernavnet mitt be? Dette er ganske vanlig på nettsteder, også. Hva betyr dette hengelås mener? Du virker som om du vet. PUBLIKUM: Det betyr ikke noe. DAVID J. MALAN: Det betyr ikke noe. Det betyr at Bank of America vet hvordan å skrive HTML med bilde-koder, ikke sant? Det betyr virkelig ingenting, fordi selv vi, ved hjelp av den første dagen av vår utseende på HTML, kan kode opp en side med en rød bakgrunn og et bilde, som en GIF eller whatnot, at skjer for å se ut som en hengelås. Og likevel, dette er super vanlig i nettsteder, fordi vi har blitt opplært til å anta det, oh, betyr hengelås sikker, når det egentlig bare betyr vet du HTML. For eksempel, tilbake i dag, kunne jeg har bare sette dette på min hjemmeside, hevder det er sikkert, og spør, effektivt, for folks brukernavn og passord. Så ser i URL-er minst en bedre ledetråd, fordi det er innebygd i Chrome eller hva nettleser du bruker. Men selv da iblant ting kan gå galt. Og faktisk, kan du ikke alltid se HTTPS, la alene i grønt. Har noen av dere noen gang sett en skjerm som dette? Du har kanskje, faktisk, tidligere i oktober, når jeg glemte å betale for vår SSL-sertifikat, som det heter, og vi var ute som dette for en time eller to. Så du har sikkert sett ting som dette, med en strike-gjennom, som en rød tråd gjennom protokollen i URL eller annen form for skjerm som er minst formaner deg for å prøve å fortsette videre. Og Google her er innbydende deg å gå tilbake i sikkerhet. Nå, i dette tilfellet, er dette bare ment som SSL-sertifikatet som vi brukte, de store, matematisk nyttige tall som er forbundet med CS50 server, ikke lenger var gyldig. Og faktisk, kan vi simulere dette, som du kan på den bærbare datamaskinen. Hvis jeg går inn i Chrome her, og la oss gå til facebook.com, og det ser ut som dette er sikker. Men la meg gå videre nå og klikk på hengelåsen her. Og la meg gå til Connection, Sertifikatinformasjon. Og ja, hva du vil se her er en haug av lavere nivå detaljer om som facebook.com egentlig er. Det virker som de har betalt penger til et firma som heter kanskje DigiCert Høy Assurance som har lovet å fortelle resten av verden at dersom en nettleser gang ser en certificate-- du kan tenke av det bokstavelig talt som et sertifikat som ser ut som at cheesy ting på toppen left-- deretter facebook.com er hvem de sier de er, fordi hele denne tiden, når du besøker en nettside, som cs50.harvard.edu eller facebook.com eller gmail.com som bruker HTTPS Webadresser, bak kulissene, det er denne typen transaksjon skjer automatisk for deg, der facebook.com, i dette tilfellet sender til nettleseren din sin såkalte SSL-sertifikat, eller rettere sagt, sin offentlige nøkkel, og deretter din nettleser bruker den offentlige nøkkelen til senere å sende kryptert trafikk til og fra den. Men det er hele dette hierarkiet i verden av selskaper at du betaler penger til hvem som skal deretter vitne, i en digital forstand, at du faktisk er facebook.com eller serveren er faktisk cs50.harvard.edu. Og bygget inn nettlesere, som Chrome og IE og Firefox, er en liste over alle de såkalte sertifiseringsinstanser som er autorisert av Microsoft og Google og Mozilla for å bekrefte eller benekte at facebook.com er som den sier at den er. Men fangsten er at disse tingene utløper. Faktisk ser Facebooks liker den utløper neste oktober, i 2015. Så vi kan faktisk simulere dette hvis jeg gå i min Mac til mine Systemvalg, og jeg går inn dato og klokkeslett, og Jeg går inn dato og klokkeslett her, og jeg låse opp denne her-- heldigvis, vi ikke avsløre et passord denne tid-- og nå går jeg ned for å fjerne merket for dette. Og la oss actually-- oops, det er ikke så interessant som å gjøre dette. Vi er bokstavelig talt i fremtiden nå, noe som betyr at dette er hva 2020 er like. Hvis jeg nå laste page-- la oss gjøre det i Ingognito mode-- hvis jeg laste siden på nytt, det vi går. Så nå, mener min datamaskin det er 2020, men nettleseren min vet at dette sertifikatet fra Facebook utløper, selvfølgelig, i 2015. Så det gir meg denne røde meldingen. Nå, heldigvis, nettlesere som Chrome har faktisk gjorde det ganske vanskelig å fortsette likevel. De faktisk vil ha meg å gå tilbake til sikkerhet. Hvis jeg klikker her på Advance, er det kommer til å fortelle meg noen flere detaljer. Og hvis jeg virkelig ønsker å fortsette, vil de la meg gå til facebook.com, som er, igjen, usikre, og da Jeg vil se Facebook hjemmeside, som dette. Men så andre ting synes å være breaking. Hva er trolig bryte på dette punktet? PUBLIKUM: Javascript. DAVID J. MALAN: I likhet med Javascripts og / eller CSS filene er på samme måte opplever denne feilen. Så dette er bare en dårlig situasjon generelt. Men poenget her er at minst Facebook har faktisk SSL aktivert for sine servere, så mange nettsteder, gjør, men ikke nødvendigvis alle. Men det er ikke alene takeaway her. Det viser seg at selv SSL har blitt demonstrert å være usikre på noen måte. Så jeg liksom antydet at SSL, bra. Se etter HTTPS, og livet er bra, fordi alle dine HTTP-trafikk og overskrifter og innhold er kryptert. Ingen kan snappe den i midten, med unntak av en såkalt mann i midten. Dette er en generell teknikk i verden av sikkerhet kjent som et man-in-the-middle angrep. Anta at du er denne lille laptop over her til venstre, og anta at du prøver å besøke serveren der borte til høyre, som facebook.com. Men anta at i mellom deg og Facebook, er en hel haug med andre servere og utstyr, som svitsjer og rutere, DNS-servere, DHCP-servere, noe som vi kontrollerer. Det kan være styrt av danse eller Harvard eller Comcast eller lignende. Vel, antar at noen skadelig, på nettverket, i mellom deg og Facebook, er i stand til å fortelle deg det, vet du hva, IP-adressen Facebook er ikke hva du tror det er. Det er denne IP i stedet. Og så nettleseren din er lures til å be om trafikk fra en annen datamaskinen helt. Vel, antar at datamaskinen bare ser i det hele tatt av trafikken du ber om fra Facebook og alle web-sider at du ber om fra Facebook. Og hver gang den ser i trafikken en URL som starter med HTTPS, Det dynamisk, på den fly, omskriver det som HTTP. Og hver gang den ser en plassering header, plassering tykktarm, som vi bruker til å omdirigere brukeren, de også, kan endres av denne mannen i midten fra HTTPS til HTTP. Så selv om du selv kanskje Tror du er på den virkelige Facebook, det er ikke så vanskelig for en motstander med fysisk tilgang til nettverket for å rett og slett returnere sider til deg som se ut som Gmail, som ser ut som Facebook, og faktisk webadressen er identiske, fordi de er later til å ha den samme vertsnavn på grunn av noen utnyttelse av DNS eller et annet system som det. Og resultatet er altså at vi mennesker kanskje bare innse at, OK, dette ser ut som Gmail eller i det minste den eldre versjonen, så er dette lysbildet fra en eldre presentasjon. Men det ser ut som dette-- http://www.google.com. Så også her, virkeligheten er at hvor mange av dere, når du går til Facebook eller Gmail eller noen nettside og du vet litt noe om SSL, hvor mange av dere fysisk skrive https: // og så nettsiden navn, Enter. De fleste av oss bare skrive, som, CS50, trykk Enter, eller F-A for Facebook og trykk Enter, og la det autofullfør. Men bak kulissene, om du ser på din HTTP-trafikk, Det er sannsynligvis en hel haug av disse location overskrifter som sender deg fra Facebook til www.facebook.com til https://www.facebook.com. Så det er en eller flere HTTP-transaksjoner hvor informasjonen er fullstendig sendes i klartekst, ingen kryptering overhodet. Nå, som kanskje ikke er en så stor håndtere hvis alt du prøver å gjøre er tilgang på hjemmesiden, er du ikke sende ditt brukernavn og passord. Men hva er det under panseret, spesielt for PHP-baserte nettsteder som også blir sendt frem og tilbake når du besøke noen nettside hvis at nettstedet bruker, si, PHP og implementerer funksjonalitet som pset7? Hva som ble sendt frem og tilbake i din HTTP-hoder som ga deg tilgang til denne vakre nyttig super global i PHP? Målgruppe: Cookies. DAVID J. MALAN: Cookies, spesielt PHP sess ID cookie. Så husker, hvis vi går til, si, cs50.harvard.edu igjen, men denne gangen, la oss åpne opp Network-kategorien, og nå, her oppe, la oss bokstavelig talt bare gå til http://cs50.harvard.edu og trykk Enter. Og deretter se på skjermen her nede. Legg merke til at vi faktisk fikk tilbake en 301 flyttet permanent melding, noe som betyr at det er et sted header her, som nå omdirigere meg til HTTPS. Men fangsten er at hvis jeg allerede hadde en cookie stemplet på hånden min så godt, som vi har diskutert før, og Jeg menneske slags uvitende bare besøke usikre versjon, og nettleseren min tar det på seg for å vise at håndstempel for den første forespørsel, som er via HTTP, noen mann i midten, noe motstander i midten, kan teoretisk bare se disse HTTP-hoder, bare som vi ser på dem her. Det er bare når du er å snakke med en HTTPS URL gjør at håndstempel i seg selv får kryptert, a la Cæsar eller Vigenère, men med en mer avansert algoritme helt. Så også her, selv om bruke nettsteder HTTPS, vi mennesker har vært betinget, takk til auto-komplette og andre teknikker, å ikke engang tenke på de potensielle implikasjoner. Nå, det finnes måter rundt dette. For eksempel, mange nettsteder kan konfigureres slik at når du har denne hånden stempel, kan du fortelle leseren, denne hånden stempel er bare for SSL-tilkoblinger. Nettleseren skal ikke presentere det til meg med mindre det er over SSL. Men mange nettsteder ikke bry deg med det. Og mange nettsteder tilsynelatende ikke engang bry med SSL i det hele tatt. Så for mer om det, er det faktisk enda mer skitt i denne presentasjonen at en fyr holdt på et såkalt svart lue konferanse for et par år siden, hvor det er enda andre ondsinnede triks folk har brukt. Dere husker kanskje at dette oppfatningen av en favicon, som er som en liten logo som er ofte i nettleservinduet. Vel, hva som er vanlig blant skurkene er å gjøre fab ikoner som ser ut som hva? PUBLIKUM: [uhørlig]. DAVID J. MALAN: Si det igjen? PUBLIKUM: Det nettsteder. DAVID J. MALAN: Ikke en nettside. Så favicon, bitte liten ikon. Hva ville være den mest ondsinnet, manipulerende ting du kan gjøre nettstedet ditt er standardikon se ut? PUBLIKUM: En grønn lås. DAVID J. MALAN: Hva er det? PUBLIKUM: En liten grønn lås. DAVID J. MALAN: Like en grønn lås, akkurat. Så du kan ha denne estetiske av en liten grønn hengelås, hinter til verden, oh, vi er sikre, da, igjen, alt det innebærer er at du vet litt HTML. Så session hijacking refererer til akkurat det. Hvis du har noen som er litt sniffing eteren i dette rommet her eller har tilgang til en fysisk nettverk og kan se dine cookies, han eller hun kan hente den PHP sess ID cookie. Og så, hvis de er smarte nok til å vite hvordan du sender at cookie som sine egne håndstempel bare ved å kopiere denne verdien og sende HTTP-hoder, noen kunne veldig lett logge inn i noen av Facebook kontoer eller Gmail-kontoer eller Twitter-kontoer som er her, åpne i rommet, hvis du ikke bruker SSL og hvis nettsiden er ikke bruker SSL riktig. Så la oss overgang til en annen. Så en annen sann historie. Og dette bare brøt i nyheter en uke eller to siden. Verizon har gjort en svært ond ting, og som beste folk kan fortelle, siden minst 2012, hvorved, når du tilgang til nettsteder via en Verizon mobiltelefon, uansett produsent det er, de har vært overmodig som historien går, injisere i all din HTTP trafikken sin egen HTTP header. Og at header utseende som dette-- X-UIDH. UID er som en unik identifikator eller bruker-ID. Og X betyr bare dette er en skikk header som ikke er standard. Men hva dette betyr er at hvis jeg trekker opp, for eksempel hvilken som helst nettside på telefonen min her-- og jeg bruker Verizon som min carrier-- selv om nettleseren min kanskje ikke være å sende dette HTTP header, Verizon, snarest som signalet har nådd sin mobiltelefon tårnet et sted, har vært i noen tid å injisere dette header inn alle våre HTTP-trafikk. Hvorfor gjør de dette? Formodentlig for sporing grunner, for reklame grunner. Men moronic utforming avgjørelse her er at en HTTP-header, som dere vet fra pset6, mottas av alle web-server at du ber om trafikk av. Slik at hele denne tiden, hvis du har vært på besøk Facebook eller Gmail eller hvilken som helst nettside som ikke bruker SSL all tid-- og faktisk, de to heldigvis nå do-- men andre nettsteder som ikke bruk av SSL hele tiden, Verizon har i hovedsak plantet, med makt, en hånd stempel på alle våre hender at selv ikke vi ser, men snarere ende nettsteder gjør. Og slik har det ikke vært så vanskelig for hvem som helst på internett kjører en web server til realisere, ooh, dette er David, eller, ooh, dette er Davin, selv om vi er streng om tømming våre cookies, fordi det kommer ikke fra oss. Det kommer fra transportøren. De gjør et oppslag på telefonnummer og så si, oh, dette er David. La meg injisere en unik identifikator slik at våre annonsører eller den som kan holde styr på dette. Så dette er faktisk veldig, veldig, veldig dårlig og skremmende. Og jeg vil oppfordre deg til ta en titt, for eksempel, på denne nettadressen, som jeg burde fraskriver Jeg faktisk prøvd dette i morges. Jeg skrev et lite script, sette det på denne nettadressen, besøkte det med min egen Verizon mobiltelefon etter å slå Wi-Fi av. Så du må slå Wi-Fi av slik at du bruker 3G eller LTE eller lignende. Og så, hvis du besøker denne nettadressen, alt dette skriptet gjør for dere, hvis du ønsker å spille, er den spytter ut hva HTTP-hoder telefonen sender til vår server. Og jeg faktisk, i rettferdighet, gjorde ikke se dette i morges, som gjør at jeg tror enten det lokale mobiltelefon tårnet jeg var koblet til eller whatnot ikke gjør det, eller de har støttet av av å gjøre dette midlertidig. Men for mer informasjon, å hodet til denne nettadressen her. Og nå til dette-- dette tegneserie kan være fornuftig. Nei? OK. OK. Som døde. OK. Så la oss ta en titt på et par mer angrep, hvis bare for å øke bevisstheten om og deretter tilby et par mulige løsninger slik at du er enda mer oppmerksom. Dette snakket vi om den andre dag, men ikke gi den et navn. Det er en cross-site request forfalskning, som er en overdrevent fancy måte å si du lure en bruker til å klikke på en URL som dette, hvilke triks dem inn i noen atferd som de ikke har tenkt. I dette tilfellet, synes dette å være å prøve å lure meg til å selge mine aksjer i Google. Og dette vil lykkes hvis Jeg, programmerer av pset7, har ikke gjort det? Eller rettere sagt, mer generelt, i det som tilfeller er jeg utsatt for et angrep hvis noen lurer en annen brukers til å klikke en URL som dette? Yeah? PUBLIKUM: Du trenger ikke skille mellom GET og POST. DAVID J. MALAN: Good. Hvis vi ikke skille mellom GET og POST, og ja, hvis vi tillater GET for å selge ting, vi invitere denne type angrep. Men vi kan fortsatt redusere det noe. Og jeg kommenterte, tror jeg, forrige uke at Amazon minst forsøker å redusere dette med en teknikk det er ganske grei. Hva ville en smart ting å gjøre er å være på serveren din, snarere enn bare blindt å selge uansett symbol brukeren skriver inn? PUBLIKUM: Bekreftelse av former? DAVID J. MALAN: En bekreftelse på skjermen, noe som involverer menneskelig samhandling slik at jeg er nødt til å gjøre vurderingssak, selv om jeg har naivt klikket en link som ser slik ut og førte meg til mobilskjermen på Minst ba meg om å bekrefte eller benekte. Men ikke en uvanlig angrep, spesielt i såkalte phishing eller spam-lignende angrep. Nå er dette en litt mer subtil. Dette er en cross-site scripting-angrep. Og dette skjer hvis din Nettstedet er ikke bruker tilsvarende htmlspecialchars. Og det tar brukerundersøkelser og bare blindt injisere det i en web-side, som med print eller ekko, with-- igjen-- ut kalle noe som htmlspecialchars. Så antar nettsiden i Spørsmålet er vulnerable.com. Og antar at det aksepterer en parameter som heter q. Se på hva som kan skje hvis jeg faktisk, en bad guy, skrive inn eller lure en bruker til besøke en nettadresse som ser ut som dette-- q = åpen script tag, lukket skriptmerket. Og igjen, jeg antar at vulnerable.com er ikke kommer til å slå farlig figurer som åpne brak inn HTML enheter, den -tegn, L-T, semikolon ting som du kanskje har sett før. Men hva er skriptet eller Javascript-kode Jeg prøver å lure en brukeren til å utføre? Vel, refererer document.location til nettleseren min nåværende adresse. Så hvis jeg gjør document.location =, Dette tillater meg å omdirigere brukeren i Javascript til en annen nettside. Det er som vår PHP-funksjonen omdirigere, men gjøres i Javascript. Hvor jeg prøver å sende brukeren? Vel, tydeligvis, badguy.com/log.php, som er noen manus, tilsynelatende, slemmingen skrev, som tar en parameter som heter cookie. Og legg merke til, hva gjør jeg synes å være sammenkjeding på enden av at likhetstegnet? Vel, noe som sier document.cookie. Vi har ikke snakket om dette. Men det viser seg, i Javascript, akkurat som i PHP, du får tilgang til alle cookies at nettleseren din er faktisk bruker. Slik at effekten av denne ene linje med kode, hvis en bruker blir lurt til å klikke på denne linken og nettstedet vulnerable.com ikke unnslippe den med htmlspecialchars, er at du har bare effektivt lastet opp til log.php alle dine informasjonskapsler. Og det er ikke alltid så problematisk, bortsett fra hvis en av disse informasjonskapslene er din session-ID, din såkalte håndstempel, som betyr badguy.com kan lage sin egen HTTP-forespørsler, sende den samme hånden stempel, det samme cookie header, og logg inn i hva nettstedet du var på besøk, noe som i dette tilfellet er vulnerable.com. Det er en cross-site scripting angrep i den forstand at du liksom lure ett område til å fortelle et annet nettsted om noen informasjon den bør ikke i virkeligheten har tilgang til. All right, klar for en annen bekymringsfull detalj? Greit, er verden et skummelt sted, legitimt det. Her er en enkel Javascript eksempel som er i dagens kildekode kalt geolocation 0 og 1. Og det er et par walkthroughs på nettet for dette. Og det gjør følgende hvis jeg åpne denne websiden i Chrome. Det gjør ingenting først. OK, vi skal prøve dette igjen. Oh. Ingen, bør det gjør noe. OK, stå ved. La oss prøve dette på nytt. [Uhørbart] Ah, OK, ikke sikker på hvorfor the-- oh, apparatet sannsynligvis mistet internett tilgang for en eller annen grunn. All right, så skjer for meg også. All right, så varsel hva som skjer her. Denne kryptiske utseende URL, som er bare ett av CS50 server, ønsker å bruke datamaskinen min beliggenhet, like fysisk det betyr. Og hvis, ja, jeg klikker på Tillat, la oss se hva som skjer. Angivelig, dette er min nåværende breddegrad og lengdekoordinater ned til en ganske darn god oppløsning. Så hvordan jeg får på dette? Hvordan virker dette nettstedet, som CS50 server, fysisk vet hvor i verden Jeg er, enn si med at presisjon. Vel, viser out-- la oss bare se på sidens source-- at her er en haug med HTML på bunnen som først har dette-- body onload = "Lokalisere geografisk" - bare en funksjon jeg skrev. Og jeg sier, på lasting siden, kaller Lokalisere geografisk. Og så er det ingenting i legemet, fordi i hodet på siden, Legg merke til hva jeg har her. Her er min Lokalisere geografisk funksjon. Og dette er bare noen feil checking-- hvis den type navigator.geolocation er ikke definert. Så Java har dette mekanisme hvor du kan si, hva er type av denne variabel? Og hvis det ikke er undefined-- det betyr at det er noen value-- Jeg kommer til å ringe navigator.geolocation.getCurrentPosition og deretter tilbakeringing. Hva er dette? Så generelt, hva er en tilbakeringing, bare for å være klar? Du har kanskje støtt dette allerede i pset8. Callback er en generisk begrep for å gjøre hva? Føles som bare meg i dag. PUBLIKUM: [uhørlig]. DAVID J. MALAN: Akkurat, en funksjon som skal bli kalt bare når vi har data. Denne samtalen til nettleseren, får min nåværende posisjon, kan ta ett millisekund, det kan ta et minutt. Hva dette betyr er at vi forteller get getCurrentPosition metoden, kalle denne tilbakeringingsfunksjonen, som jeg bokstavelig talt heter tilbakeringing for enkelhets skyld, som tilsynelatende er denne her. Og måten getCurrentPosition fungerer, rett og slett ved å lese dokumentasjonen for noen Javascript-kode på nettet, er at det kaller det såkalte tilbakeringing funksjon, passerer det inn i det en Javascript-objekt, innsiden av som er .coords.latitude og .coords.longitude, som er nøyaktig hvordan, da, når jeg reloaded denne siden, Jeg var i stand til å se min posisjon her. Nå, i det minste var det et forsvar her. Før jeg besøkte denne siden når det faktisk fungerte, hva var jeg i hvert fall bedt om? PUBLIKUM: [uhørlig]. DAVID J. MALAN: Ja eller no-- gjøre du vil tillate eller nekte dette? Men tenk også om vaner dere har sikkert vedtatt, både på telefoner og nettlesere. Mange av oss, meg selv inkludert, er trolig ganske disponert disse days-- deg se en pop-up, bare Enter, OK, Godkjenn, Tillat. Og i økende grad, kan du sette deg selv i fare for disse grunner. Så faktisk, det var denne fantastiske bug noen år ago-- eller mangel på feature-- at iTunes hadde for noen år siden, der, hvis du hadde en mobiltelefon, og det var en iPhone, og du forlot hjem og derfor reist verden rundt eller nabolaget, hele denne tiden, telefonen ble logging hvor du er via GPS. Og dette er faktisk avslørt, og folk slags forventer dette nå. Telefonen vet hvor du er. Men problemet var at, når du var å sikkerhetskopiere telefonen til iTunes-- dette var før dagene av iCloud, som er for bedre eller for worse-- at data ble lagret i iTunes, helt ukryptert. Så hvis du har en familie eller romkamerater eller en ondsinnet nabo som er nysgjerrig på bokstavelig talt alle GPS koordinere du noen gang har vært på, han eller hun kunne bare sitte ned på iTunes, kjøre noen programvare som var fritt tilgjengelig, og produsere kart som dette. Faktisk, dette er hva jeg produsert av min egen telefon. Jeg plugget den inn. Og det ser ut som, basert på de blå prikker der, det er der det meste av GPS-koordinatene var logget av iTunes som jeg var i nordøst der. Men jeg tydeligvis reist rundt en bit, selv innenfor Massachusetts. Så det er Boston Harbor det til høyre. Det er slags Cambridge og Boston, hvor det er mørkest. Og av og til, ville jeg kjøre ærender til en større geografi. Men iTunes, i mange år, hadde som beste Jeg kan si, alt dette data på meg. Du kan fortelle at, det året, var jeg faktisk reiser mye mellom Boston og New York, går frem og tilbake og frem og tilbake. Og ja, dette er meg på Amtrak, rygg frem og tilbake, frem og tilbake, ganske mye. Alle som ble logget og lagret kryptert på datamaskinen min for alle som kan ha tilgang til datamaskinen min. Dette var bekymringsfull. Jeg visste ikke hvorfor jeg var i Pennsylvania eller hvorfor telefonen min var i Pennsylvania, tilsynelatende ganske tett. Og så, endelig, så jeg på min Gcal, og, oh, jeg besøkt CMU, Carnegie Mellon, på den tiden. Og puh, den slags forklarte at blip. Og så, hvis du zoomer ut videre, kan du ser jeg besøkte San Francisco én eller flere ganger og deretter, og jeg selv hadde en layover i hva Jeg tror er Vegas, der nede. Så alle dette-- bare en layover, på flyplassen. PUBLIKUM: [latter] Så dette er bare for å si at disse problemer, ærlig, er allestedsnærværende. Og det bare føles stadig liker det mer og mer av dette blir avslørt, som sannsynligvis er en god ting. Jeg daresay, verden er ikke blir verre på å skrive programvare. Vi får bedre, forhåpentligvis, ved å merke hvor ille bestemt programvare er at vi bruker. Og heldigvis, noen selskaper er i ferd å bli holdt ansvarlig for dette. Men hva slags forsvar kan du ha i tankene? Så i tillegg til passord ledere, som 1Password og Lastpass og andre, dessuten bare å endre passordene dine og kommer opp med tilfeldige seg ved hjelp av programvare som det, kan du også prøve som best du kan for å kryptere alt av trafikken å i det minste å begrense sonen av en trussel. Så for eksempel, som Harvard tilknyttede selskaper, du kan alle gå til vpn.harvard.edu og logg deg på med Harvard-ID og PIN-kode. Og dette vil etablere en sikker forbindelse mellom deg og Harvard. Nå gjør det ikke nødvendigvis beskytte deg mot eventuelle trusler som er mellom Harvard og Facebook eller Harvard og Gmail. Men hvis du sitter på en flyplass eller du er sitter i Starbucks eller du er sitter på en venns sted, og du egentlig ikke stole på dem eller deres konfigurasjon av deres hjem router, minst kan du opprette en sikker tilkobling til en enhet som dette sted som er trolig litt bedre sikret enn noe som en Starbucks eller lignende. Og hva dette betyr er den etablerer, igjen, kryptering mellom deg og endepunkt. Selv mer avansert er ting som dette. Så noen av dere kanskje allerede være kjent med Tor, som er denne slags anonymisering nettverk, der mange mennesker, hvis de kjøre denne programvaren, rute senere deres Internett trafikk gjennom hverandre. Så den korteste punktet er ikke lenger mellom A og B. Men det kan være over hele plasser slik at du er i hovedsak dekker ens spor og forlate mindre av en rekord med hensyn til hvor din HTTP trafikken kom fra, fordi det kommer gjennom en hel haug med andre menneskers bærbare eller stasjonære PCer, for bedre eller verre. Men selv dette er ikke en sikker ting. Noen av dere kanskje husker i fjor bomben skremme som ble kalt inn. Og det ble sporet til slutt til et Brukeren som hadde brukt dette nettverket her. Og fangsten der, som jeg husker, er, hvis det ikke er så mange andre mennesker ved hjelp av en programvare som dette eller bruker denne porten og protokoll, det er ikke så vanskelig for et nettverk å selv finne ut hvem, med en viss sannsynlighet, var faktisk anonymiteringsnettverk hans eller hennes trafikk. Og jeg vet ikke om de var faktiske opplysninger i spørsmålet. Men sikkert, innser at ingen av disse er Surefire løsninger, så vel. Og målet her i dag er å minst få deg å tenke på disse tingene og kommer opp med teknikker for forsvare deg mot dem. Eventuelle spørsmål om alle truslene som venter deg der ute, og her inne? Yeah? PUBLIKUM: Hvor trygge gjøre vi forventer at gjennomsnittlig [? nettsted for å være,?] som gjennomsnittlig CS50 prosjektet? DAVID J. MALAN: The gjennomsnittlig CS50 prosjektet? Det er alltid vist seg hvert år som noen CS50 endelige prosjektene er ikke spesielt sikker. Vanligvis er det noen kollektiv eller hallmate at tall ut dette ved å sende forespørsler til prosjektet. Kort answer-- hvor mange nettsteder er trygge? Jeg plukker på dagens anomalier. Som det var bare tilfeldigheter at jeg innså at denne nettsiden Jeg har vært bestiller disse ærlig deilige ordninger from-- og jeg er ikke sikker på at jeg skal slutte å bruke deres hjemmeside; Jeg kan bare endre min passord mer regularly-- Det er ikke klart hvor sårbare alle disse various-- dette er sjokolade dekket faktisk. Det korte svaret, kan jeg ikke svare på det effektivt, annet enn å si det var ikke så vanskelig for meg å finne noen av disse eksemplene bare av hensyn til diskusjon i forelesning. Og bare å holde et øye med Google News og andre ressurser vil bringe enda mer av slike ting frem i lyset. Greit, la oss konkludere med denne prequel at CS50 team har forberedt for deg i påvente av CS50 Hackathon. Og på vei ut i en øyeblikket, vil frukt bli servert. [VIDEO PLAYBACK] [MUSIC FERGIE, Q TIP, OG GOONROCK, "A LITTLE PARTY ALDRI drept noen (ALL VI FIKK) "] - [SNORKING] [END VIDEO PLAYBACK] DAVID J. MALAN: Det var det for CS50. Vi ser deg på onsdag. [MUSIC - Skrillex, "IMMA 'PRØVE DEN UT"]