DAVID J. MALAN: Dette er CS50, og dette er begyndelsen af ​​uge 10. Du husker måske, at vi har vist på skærmen en 3D-printer, som er denne enhed, tager spoler af plast og derefter ekstruderer den ved opvarmning op og smelte det, så vi derefter kan danne Chang hær af elefanter, f.eks. Så på Leverett House, Men for nylig, I chatter med en af ​​dine klassekammerater og en ven af ​​Changs navngivet Michelle, som faktisk interneret på dette andet selskab det seneste år, at har en anden teknik til faktisk skabe tredimensionale genstande, ligesom dette lille bitte elefant her. Navnlig den måde, dette virker er, at det er et eksempel på noget kaldet stereolitografi, hvorved der er denne bassin af harpiks eller væske, og derefter en laser slår at væske, og gradvist, enheden elevatorer og lifte og løfter ting at du udskriver, som en elefant, som væsken bliver fast. Og resultatet, faktisk, er noget, der er meget mere robust end nogle af plast foræring nogle af jer kunne have haft. Og hvad Chang venligt gjorde for os her var gjorde en time-lapse hjælp fotografier i løbet af en time eller mere, sandsynligvis, at producere denne fyr her. Ville en person, der aldrig kommer op før gerne komme hit Start på denne video? Lad mig gå med, hvor omkring der. Kom nu op. Ok. Og du er? LUKE: Mit navn er Luke [uhørligt]. DAVID J. MALAN: Hej, Luke. Rart at møde dig. LUKE: Rart at møde dig. PUBLIKUM: Han kører for UC. DAVID J. MALAN: Jeg ved, vi forsøger ikke at fremme. Okay, så Lukas, alle du skal gøre her i CS50 er ramt mellemrumstasten at udskrive denne elefant. [VIDEO PLAYBACK] - [MACHINE snurrende] - [CRASH] - [BOOM] - [CRASH] [END VIDEO PLAYBACK] DAVID J. MALAN: Så det er præcis hvad det vil sige at 3D-print. Og her er din elefant. Tak for frivilligt arbejde. Ok. Så igen, pr specifikationen for det endelige projekt, dette hardware, der er til rådighed for jer er en eller anden grund, Deres projekt har nogle vejkryds af software og hardware, indse, at disse nu er ressourcer. Jeg ønskede at tage et øjeblik til at røre på en Crimson artikel, der kom ud sent i aftes, som var til meddele, at denne fyr her, David Johnson, der har været senior guru for EF 10 i temmelig lang tid, forlader Harvard på udgangen af ​​det akademiske år. Og jeg ville bare tage et øjeblik, ærligt, at takke David foran CS50. Han har været en mentor for slags til os gennem årene. Og jeg mener, ligesom vi, CS50, har snarere vokset op med EF 10 i her, da de er lige foran os. Og han og hele holdet i EF 10 har været vidunderligt elskværdig, helt ærligt, som vi slæbe i alt vores udstyr hver eneste uge, og år siden, forudsat en stor del af råd, som vi var spændt på, hvordan de fungerer EF 10. Så vores tak og beundring for David Johnson. [Applaus] Nu unrelatedly, så enden er faktisk tæt. Vi er her i uge 10. Og vi har kun lige en par formelle uger her i klassen til venstre, efterfulgt af et par arrangementer. Så for at give dig en fornemmelse af, hvad der er i horisonten, er vi her i dag. Denne onsdag, tilbagekaldelse, vi får en gæsteforelæsning af ingen ringere end Microsofts egen Steve Ballmer. Hvis du endnu ikke har gået til cs50.harvard.edu/register, gøre det, da rum vil være begrænset. Og de vil være kontrol ID'er på døren denne dag. Hvis du ikke var her i sidste uge, jeg troede, jeg havde drille dig med et andet udseende på Steve og den spænding, venter os på onsdag. [VIDEO PLAYBACK] -Passion. -We're Vil være hardcore-- hardcore. -Innovator. -Bill Sagde, at du ikke får det. Vi kommer til at sætte en computer på hvert skrivebord og i ethvert hjem, der blev mottoet for virksomheden. Jeg sværger, Bill opfandt det den nat til virkelig at give mig nogle af visionen om hvorfor jeg skal sige ja. Jeg har aldrig set tilbage, virkelig, efter at. -Frisk Ud af college, han sluttede en spirende start og hjalp det vokse ind i en af ​​Amerikas mest succesfulde virksomheder nogensinde. Det liv og erhvervslivet erfaringer undervejs lad ham tilbage til hans barndom lidenskab og kærlighed. Og disse erfaringer har forberedt ham for hans næste udfordring i livet. -Intet får i vores way-- boom! Holde kom hardcore! Gå Clippers! -Det Er Steve Ballmer, "I mine egne ord." [END VIDEO PLAYBACK] DAVID J. MALAN: --this Onsdag til CS50. Hovedet igen til denne webadresse her. Med hensyn til hvad der ellers er på horisonten, næste uge, ingen foredrag på mandag. Men vi vil følge, at ved quiz én på onsdag. Gå til CS50 hjemmeside for detaljer om mennesker, steder og tidspunkter for alle de forskellige proctoring logistik og lignende, samt om anmeldelse sessioner, der er forestående. Og så, endelig, på mandag, dagen før uge af Thanksgiving break, indser det vil være vores sidste forelæsning. Vi vil tjene kage og en stor deal af spænding, håber vi. Nu et par andre opdateringer. Husk på, at status Rapporten, som er virkelig bare betød at være en afslappet interaktion med din TF til stolthed konstatere bare hvor langt sammen med din afgangsprojekt du er, eller i det mindste som en fornuft kontrollere, at du bør der nærmer sig peger kort tid derefter. Den hackathon følger da, at. Erkend hackathon er ikke en mulighed at starte din endelige projekt, men menes at være en mulighed at være i midten af ​​eller mod slutningen af ​​din endelige projekt, med implementeringen på grund et par dage senere, efterfulgt af CS50 fair. Nu CS50 produktion team, et par år siden, sammensætte en teaser til CS50 fair, at vi troede, vi ville vise dig i dag, fordi de har været på hårdt arbejde på en prequel til det, en ny video at vi vil afslutte i dag med. Men her er hvad der venter dig for dette års CS50 fair. [VIDEO PLAYBACK] - [CELL telefonen ringer] [MUSIC "tema fra Mission: Impossible"] [END VIDEO PLAYBACK] DAVID J. MALAN: Så det er præcis, hvordan vi lukker afsluttende indlæg projekt. Et par nu teasers-- hvis du gerne vil tilslutte Nick her til frokost, som sædvanlig, dette Fredag ​​hovedet til denne URL her. Desuden, hvis du gerne vil at slutte sig til Nick eller denne Nick eller dette Allison eller medlemmer af CS50 team, indser, at kort tid efter sigt udgang, CS50 vil allerede være at rekruttere til næste års hold, til CAS, TFS designere, producenter, forskere og andre stillinger der her fungerer CS50 både i foran og bag kulisserne. Så hvis dette kunne være af interesse til dig, hovedet til denne URL her. Og de studerende mere komfortabelt, mindre behagelig, og et sted i mellem både er alle velkommen og opfordres til at søge. Så det var perfekt timing, at ingen joke, her til morgen, da jeg vågnede, Jeg havde denne her spam i min indbakke. Det faktisk gled gennem Gmails spamfilter en eller anden måde og endte i min egentlige indbakke. Og det siger, "Kære postkasse bruger, du i øjeblikket opgraderet til 4 gigabyte. Skal du logge ind på din konto med henblik på at validere E-space. " Og så er der denne nice blå lokkende link der til at klikke på for fakulteter og personale, som derefter førte mig til et vidunderligt legitim side, som bad mig om at give dem mit navn og e-mail-adresse og, selvfølgelig, adgangskode for at validere hvem jeg er, og så videre. Men selvfølgelig, som det altid er tilfældet, du ankommer på denne landing page, og selvfølgelig er der mindst én typo, som synes at være søm i kiste nogen af ​​disse svindelnumre. Og vi vil sende, måske nogle andre links til disse former for skærmbilleder i fremtiden. Men forhåbentlig, de fleste mennesker i Dette værelse har ikke clicked-- eller endda hvis du har klikket på sådanne links som dette, du ikke er gået så langt som til at udfylde disse formularer og så videre. Faktisk er det er OK, hvis du har. Vi vil prøve at løse det i dag, fordi, ja, dagens samtale om sikkerhed. Og ja, en af ​​de mål CS50 er ikke så meget at lære dig CE eller PHP eller JavaScript eller SQL eller nogen af ​​disse underliggende implementering detaljer. Men det er at give dig som mennesker at bare gøre smartere beslutninger, som det angår teknologi ned vejen, så uanset om du er ingeniør eller humanist eller videnskabsmand eller anden rolle, du vil lave kvalificerede beslutninger om dit eget forbrug computing, eller hvis du er i en beslutningsprocessen position, i politik, i særdeleshed, du laver meget, langt bedre beslutninger end en masse mennesker i dag har været. Og vi vil gøre dette ved måde af nogle få eksempler. Først var jeg temmelig overrasket nylig at opdage følgende. Så passwords, selvfølgelig, er, hvad de fleste af os bruge til at beskytte vores data-- email, chat, og alle former for ressourcer som. Og blot ved en awkward-- ikke vise af hænder, men forlegne udseende af skam, hvor mange af jer bruger den samme adgangskode i en masse forskellige hjemmesider? Åh, OK, så vi vil gøre hænderne. OK, så en masse af jer gør. Enhver, der gør dette, bare hvorfor? Og hvad? Ja? PUBLIKUM: Det er let at huske, fordi du behøver ikke at huske [uhørligt]. DAVID J. MALAN: Ja, det er let at huske. Det er et helt rimeligt, rationel adfærd, selvom risikoen du sætter dig selv på i disse tilfælde er bare en eller flere af disse websteder er sårbare over for hacking eller usikker eller dit kodeord er bare så pokkers guessable, alle kan finde ud af det. Ikke alene er en konto kompromitteret, men i teorien, enhver konti, du har på internettet. Så jeg ved, jeg kan sige i dag, ikke bruge den samme adgangskode overalt, men det er meget nemmere sagt end gjort. Men der er teknikker til formindske denne særlig bekymring. Nu, jeg ske, for eksempel, at bruge et program kaldet 1Password. En anden populær en kaldes LastPass. Og en flok CS50 personale brug én eller flere af disse former for værktøj. Og lang historie kort, en takeaway for i dag bør være, ja, du har måske den samme adgangskode overalt, men det er meget nemt at der ikke længere gøre det. For eksempel, i disse dage, jeg kender måske en af ​​mine snesevis eller hundredvis af passwords. Alle mine andre adgangskoder er pseudo-tilfældigt genereret af et af disse programmer her. Og i en nøddeskal, og selv selvom de fleste af disse programmer tendens til at komme lidt af en pris med, du vil installere et program som dette, ville du så gemme alle dine brugernavne og adgangskoder inde i dette program på din egen Mac eller pc eller whatnot, og derefter vil det være krypteret på din computer med hvad der er forhåbentlig en særlig lang adgangskode. Så jeg har en hel bunke af adgangskoder til individuelle websteder, og så har jeg en rigtig lang adgangskode, som jeg bruge til at låse op for hele disse øvrige adgangskoder. Og hvad er rart om software som dette er at, når du besøger et websted, der er beder om dit brugernavn og password, disse dage, jeg ikke skrive i mit brugernavn og password, fordi, igen, jeg ved ikke engang, hvad de fleste af mine passwords er. I stedet ramte et tastatur genvej, hvis resultat er at udløse denne software til Spørg mig efter hovedadgangskode. Jeg skriver så, at en stor adgangskode, og derefter browseren udfylder automatisk hvad mit password er. Så virkelig, hvis du tager intet andet væk fra i dag i form af passwords, disse er software, der er værd downloade eller investere i så at du kan i det mindste pause at særlig vane. Og hvis du er den type, der er ved hjælp af post-it noter eller like-- og odds er mindst én af jer is-- at vane, også er det tilstrækkeligt at sige, skulle være brudt. Nu jeg tilfældigvis at opdage, som et resultat for at bruge softwaren, følgende. Jeg bestiller en spiselig arrangementet, denne kurv af frugt, for nylig. Og jeg ramte min særlige tastatur genvej til at logge ind på hjemmesiden. Og softwaren udløste en pop-up, der er sagt, er du sikker du vil have mig til automatisk indsende dette brugernavn og password? Fordi forbindelsen er usikker. Forbindelsen er ikke ved hjælp af HTTPS, for sikker, ved hjælp af denne protokol er kendt som SSL, Secure Sockets Layer. Og ja, hvis man ser på øverst til venstre på denne hjemmeside, det er bare www.ediblearrangements.com, ingen HTTPS, hvilket ikke er så god. Nu var jeg curious-- måske dette er bare en fejl i softwaren. Sikkert, nogle hjemmeside som dette, at en masse af os kender i det mindste ved hjælp af kryptering eller HTTPS webadresser for at logge dig ind. Så jeg fik lidt nysgerrig her til morgen. Og jeg fik mine CS50 færdigheder, Jeg åbnede op Chrome Inspector. Det er ikke engang meget af en færdighed. Det er bare ramt det rigtige tastatur genvej til at åbne det op. Og her er et stort vindue af Chromes Inspector. Men hvad var faktisk en lidt tragisk og latterligt var disse to linjer her. Oppe på toppen, mærke URL'en til som mit brugernavn og password blev fremlagt. Lad mig zoome ind. Det var denne her. Og alt dette er slags uinteressant, bortset fra ting hele vejen på venstre, der starter med http: //. Og så så, OK, måske de er bare at sende mit brugernavn, som er ikke sådan en big deal. Måske min adgangskode bliver sendt senere. Det ville være sådan en interessant design beslutning. Men nej. Hvis man så se på anmodning nyttelast, brugernavn og adgangskode Jeg sent-- og jeg hånet disse op til slide-- rent faktisk blev sendt i den klare. Så du går til denne særlige hjemmeside og bestille en Spiselige arrangement som dette, og faktisk tilsyneladende for alt dette gang, jeg har bestilling fra dem, dit brugernavn og password går på tværs i det klare. Så helt ærligt, det er helt uacceptabelt. Og det er så trivielt at undgå ting ligesom dette som designeren af ​​en hjemmeside og som programmøren af ​​et websted. Men takeaway her os som brugere af websites bare at forstå, at alle det kræver er for en dum design beslutning, uberettiget design beslutning, så der nu, hvis du kender mit password er "Crimson" på dette hjemmeside, har du sandsynligvis lige kommet ind i en hel masse andre hjemmesider, jeg har nu. Og der er ikke meget af et forsvar mod at andet end hvad Chang gjorde i morges. Han gik til Edible Arrangements, som ligger ned ad gaden i Cambridge, og fysisk købte dette for os. Det var meget mere sikker end bruge hjemmesiden i denne sag. Men detaljer at holde øje med er faktisk, hvad der er i browseren op øverst der. Men selv det kan være lidt misvisende. Så en anden interessant eksempel og måde at forsvare mod denne-- og faktisk, lad os ikke, at first-- vejen for at forsvare mod dette er en teknik at sikkerhed folk ville call to-faktor-autentificering. Er der nogen vide, hvad løsningen til problemer som dette betyder? Hvad er to-faktor-autentificering? Eller sagt på en anden måde, hvordan mange af jer bruger det? OK, så et par generte mennesker. Men ja. Jeg så din hånd gå op. Hvad er to-faktor-autentificering? AUDIENCE: Grundlæggende desuden at skrive i din adgangskode, du også har en sekundær [uhørligt] sendes via SMS til din telefon på [uhørligt]. DAVID J. MALAN: Præcis. Ud over nogle primære form af autentificering, som en adgangskode, du bliver bedt om en sekundær faktor, som typisk er noget du har fysisk på dig, selv om det kan være noget helt andet. Og at ting er typisk en Mobiltelefon i disse dage, hvor du får sendt en midlertidig tekstbesked, der siger "Din midlertidige adgangskode er 12345." Så ud over min password "Crimson" Jeg også nødt til at skrive i uanset hjemmesiden har tekstet mig. Eller hvis du har dette med en bank eller en investeringskonto, du nogle gange har disse små dongles som faktisk har en pseudo-random nummer generator indbygget i dem, men både enheden og banken vide, hvad din første frø er så de ved, selv da lille kode på din lille nøglering marcherer fremad hvert minut eller to, skiftende værdier, så gør det værdiændring på bankens server så de ligeledes kan godkende dig, ikke alene med din adgangskode, men med den midlertidige kode. Nu kan du faktisk gøre dette i Google. Og helt ærligt, det er en god vane at komme ind, især hvis du bruger Gmail hele tiden på en browser. Hvis du går til denne webadresse her, hvilket er i dias online for i dag, og derefter klik på 2-Step Verifikation, samme faktiske ting. Du vil blive bedt om at give dem dit mobilnummer. Og så, hver gang du logger ind Gmail, vil du blive ikke kun bedt for din adgangskode, men også for en lille kode, der bliver sendt til din telefon midlertidigt. Og så længe du har cookies aktiveret, og så længe du ikke udtrykkeligt logge ud, vil du kun have at gøre det én gang i et stykke tid, ligesom når du sidder ned på en ny computer. Og opadrettede også her er, hvis du sidde ned på nogle internet cafe stil computeren eller blot en vens computer, selv hvis denne ven skadelig eller ubevidst har nogle keyboard logger installeret på sin computer, sådan at alt hvad du art, der logges, mindst det anden faktor, at midlertidig kode, er flygtig. Så han eller hun eller hvem er kompromitteret computer kan ikke logge ind i dig efterfølgende, selv hvis alt andet var sårbar eller endda ukrypteret helt. Facebook har også dette, med denne webadresse her, hvor du kan klikke på Log godkendelser. Så her, også, hvis du ikke gør ønsker venner til at stikke folk, du ikke ønsker at blive stikke på Facebook eller udstationering statusopdateringer for dig, to-faktor-autentificering her er sandsynligvis en god ting. Og så er der dette anden teknik helt, bare revision, som er endnu en god ting for os mennesker, hvis to-faktor viser irriterende, som, ganske vist kan det, eller er det bare ikke findes på nogle hjemmeside, minimalt holde øje med, hvis og når du logger ind på websteder, hvis de giver dig mulighed for, er en god teknik, også. Så Facebook giver dig også dette login-notifikationer funktionen, hvorved anytime Facebook indser, hm, David har logget på fra nogle computer eller telefon at vi aldrig har set før fra en IP-adresse, der ser ukendte, de vil i det mindste sende dig en e-mail til enhver e-mailadresse du har registreret, og sagde: betyder det ser mistænkeligt? Hvis det er tilfældet, skal du ændre din adgangskode med det samme. Og så der, også, bare revision adfærd selv efter du har været kompromitteret, kan i det mindste indsnævre vinduet under som du er sårbar. Okay, nogen spørgsmål på at stuff hidtil? I dag er dagen for at få alle Deres paranoia bekræftet eller benægtet. Det er hovedsageligt bekræftet, desværre. Ja? PUBLIKUM: [uhørligt] telefon, hvad hvis din telefon går i stykker, og så er det altid vanskeligt at verify-- DAVID J. MALAN: Sandt. PUBLIKUM: Eller hvis du er i en anden land, og de ikke lade dig logge ind, fordi [uhørligt]. DAVID J. MALAN: Absolut. Og så disse er yderligere omkostninger, du pådrager. Der er altid dette tema af et trade-off, trods alt. Og så, hvis du mister din telefon, hvis det bryder, hvis du er i udlandet, eller du bare ikke har en signal, ligesom en 3G eller LTE-signal, du måske faktisk ikke være i stand til at godkende. Så igen, disse to er trade-offs. Og nogle gange, kan det skabe en masse arbejde for dig som et resultat. Men det afhænger i virkeligheden, derefter på hvad den forventede pris til dig er af noget væsen kompromitteret helt. Så SSL, så er denne teknik, vi alle generelt tager for givet eller påtage sig er der, selvom det er tydeligvis ikke tilfældet. Og du kan stadig vildlede mennesker, men selv med denne. Så her er et eksempel på en bank. Dette er Bank of America. Der er en hel bunke af disse i Harvard Square og videre. Og bemærk, at på selve toppen af skærmen, er der en, ja, HTTPS. Og det er endda grønt og fremhævet for os indikerer, at dette faktisk er et legitimt sikkert websted, eller så har vi været uddannet til at tro. Nu, udover det, selv om, bemærke, at hvis vi zoomer ind, der er denne ting her, hvor du bliver bedt om at logge ind. Hvad betyder dette hængelås betyder ret der, ved siden af ​​mit brugernavn spørge? Dette er temmelig almindelig på hjemmesider, også. Hvad betyder dette hængelås betyder? Du virker som om du ved. PUBLIKUM: Det betyder ikke noget. DAVID J. MALAN: Det betyder ikke noget. Det betyder, at Bank of America ved hvordan at skrive HTML med billede tags, right? Det betyder virkelig ingenting, fordi selv vi, ved hjælp af den første dag i vores udseende ved HTML, kan kode en side med en rød baggrund og et billede, som et GIF eller whatnot, at sker at ligne en hængelås. Og alligevel er det super almindelig i hjemmesider, fordi vi er blevet trænet til at påtage sig at, åh, hængelås betyder sikker, når det virkelig bare betyder, at du kender HTML. For eksempel, tilbage i dag, kunne jeg har lige sætte dette på min hjemmeside, hævdede, at det er sikkert, og spørger, effektivt, for folks brugernavne og adgangskoder. Så ser i webadressen er mindst en bedre clue, fordi der er indbygget i Chrome eller hvad browser du bruger. Men selv da, undertiden ting kan gå galt. Og i virkeligheden, kan du ikke altid se HTTPS, endsige i grønt. Har nogen af ​​jer nogensinde set en skærm som denne? Du har måske, faktisk, tidligere i oktober, når jeg har glemt at betale for vores SSL-certifikat, som det hedder, og vi ledte ligesom dette for en time eller to. Så du har sikkert set ting som dette, med en strike-through, som en rød linje gennem protokollen i URL'en eller anden form for skærm, der er mindst formane dig for at forsøge at gå videre. Og Google her er indbydende dig til at gå tilbage til sikkerheden. Nu, i dette tilfælde, det bare betydet, at SSL certifikat, som vi bruger, de store, matematisk nyttige telefonnumre der er forbundet med CS50 server, ikke længere var gyldige. Og i virkeligheden, kan vi simulere dette, som du kan på din bærbare computer. Hvis jeg går ind i Chrome her, og lad os gå til facebook.com, og det ser ud til dette er sikkert. Men lad mig gå videre nu, og klik på hængelåsen her. Og lad mig gå til Connection, Certificate Information. Og ja, hvad du vil se her er en flok af lavere niveau detaljer om der facebook.com egentlig er. Det forekommer, at de har betalt penge til et firma kaldet måske DigiCert High Sikkerhed for, at der er lovet til at fortælle resten af ​​verden at hvis en browser nogensinde ser en certificate-- du kan tænke af det bogstaveligt talt som et certifikat, ser gerne, at osteagtig ting øverst left-- så facebook.com er hvem de siger de er, fordi al den tid, hvor du besøger et websted, ligesom cs50.harvard.edu eller facebook.com eller gmail.com, der bruger HTTPS Webadresser, bag kulisserne, der er denne form for transaktion sker automatisk for dig, hvorved facebook.com, i dette tilfælde, sender til din browser sin såkaldt SSL-certifikat, eller rettere, sin offentlige nøgle, og så vil din browser bruger den offentlige nøgle for efterfølgende at sende krypterede trafik til og fra den. Men der er hele dette hierarki i verden af ​​virksomheder at du betaler penge til hvem vil derefter vidne i en digital forstand, at du er facebook.com eller din server er faktisk cs50.harvard.edu. Og bygget ind i browsere, ligesom Chrome og IE og Firefox, er en liste over alle de såkaldte nøglecentre der er godkendt af Microsoft og Google og Mozilla at be- eller afkræfte, facebook.com er hvem det siger, det er. Men fangsten er, at disse ting udløbe. Faktisk Facebooks ligner den udløber næste oktober i 2015. Så vi kan faktisk simulere dette, hvis jeg gå i min Mac til mine Systemindstillinger, og jeg går ind i dato og klokkeslæt, og Jeg går ind i dato og tid her, og låser jeg denne her-- heldigvis, vi ikke afsløre et password denne time-- og nu vil jeg gå ned at du fjerner denne. Og lad os actually-- Ups, det er ikke så interessant som at gøre dette. Vi er bogstaveligt talt i fremtiden nu, hvilket betyder, dette er, hvad 2020 ud. Hvis jeg nu genindlæse page-- lad os gøre det i Ingognito mode-- hvis jeg genindlæse siden, der vi gå. Så nu, min computer tænker det er 2020, men min browser ved, at dette certifikat fra Facebook udløber, naturligvis i 2015. Så det giver mig denne røde budskab. Nu, heldigvis, browsere ligesom Chrome har faktisk gjort det temmelig svært at fortsætte alligevel. De faktisk vil have mig at gå tilbage til sikkerheden. Hvis jeg klikker her på Advance, det er vil fortælle mig nogle flere detaljer. Og hvis jeg virkelig ønsker at fortsætte, vil de lade mig gå til facebook.com, som er, igen, usikre på hvilket tidspunkt Jeg vil se Facebook hjemmeside, ligesom dette. Men så andre ting synes at være brud. Hvad er sandsynligvis bryde på dette punkt? PUBLIKUM: JavaScript. DAVID J. MALAN: Ligesom JavaScripts og / eller CSS filer er tilsvarende støder denne fejl. Så dette er bare en dårlig situation generelt. Men pointen her er, at mindst Facebook har faktisk SSL aktiveret for deres servere, som mange hjemmesider, gøre, men ikke nødvendigvis alle. Men det er ikke alene takeaway her. Viser sig, at selv SSL er blevet påvist at være usikker i nogle måde. Så jeg slags vink, at SSL, godt. Kig efter HTTPS webadresser, og livet er god, fordi alle din HTTP-trafik og headere og indhold er krypteret. Ingen kan opfange det i midten, bortset fra en såkaldt mand i midten. Dette er en generel teknik i verden af ​​sikkerhed kendt som en man-in-the-middle-angreb. Antag, at du er denne lille laptop herovre til venstre, og formoder, du forsøger at besøge en server derovre til højre, ligesom facebook.com. Men formoder, at der i mellem dig og Facebook, er en hel bunke af andre servere og udstyr, ligesom switches og routere, DNS-servere, DHCP-servere, hvoraf ingen vi kontrollerer. Det kan styres ved Starbucks eller Harvard eller Comcast eller lignende. Nå, formoder, at nogen skadeligt, på dit netværk, i mellem dig og Facebook, er i stand til at fortælle dig at, ved du hvad, IP-adressen på Facebook er ikke hvad du tror det er. Det er denne IP stedet. Og så din browser er narret til at anmode trafik fra en anden computer helt. Nå, formoder, at computer blot ser på alle af den trafik, du anmoder fra Facebook og alle de websider at du anmoder fra Facebook. Og helst den ser i din trafik en webadresse, der begynder med https, dynamisk, på flyve, omskriver det som HTTP. Og helst det ser en placering header, placering colon, ligesom vi bruger til at omdirigere brugeren, der også kan ændres af denne mand i midten fra HTTPS til HTTP. Så selvom du selv måske Tror du er på den reelle Facebook, er det ikke så svært for en modstander med fysisk adgang til dit netværk til blot returnere sider for dig, at ligner Gmail, at ligner Facebook, og faktisk webadressen er identiske, fordi de er foregiver at have den samme værtsnavn på grund af nogle udnyttelse af DNS eller et andet system som dette. Og resultatet, så er at vi mennesker måske kun indse, at, OK, det ligner Gmail eller i det mindste den ældre version, som er dette dias fra en ældre præsentation. Men det ligner denne-- http://www.google.com. Så også her er virkeligheden er, at hvor mange af jer, når du går til Facebook eller Gmail eller nogen hjemmeside, og du kender lidt noget om SSL, hvor mange af jer fysisk indtaste https: // og derefter hjemmesiden Navn, indtast. De fleste af os bare skrive, ligesom, CS50, trykke Enter, eller F-A for Facebook og tryk på Enter, og lad den auto-komplet. Men bag kulisserne, hvis du ser din HTTP-trafik, der er sikkert en hel masse af disse lokation headers der sender dig fra Facebook til www.facebook.com til https://www.facebook.com. Så det er en eller flere HTTP transaktioner hvor dine oplysninger er helt som sendes klart, ingen kryptering overhovedet. Nu kan der ikke være sådan en stor beskæftige hvis alle du forsøger at gøre er adgang til hjemmesiden, er du ikke sende dit brugernavn og password. Men hvad er det nedenunder hætten, især til PHP-baserede hjemmesider, der er også bliver sendt frem og tilbage, når du besøge nogle webside hvis at hjemmeside bruger, siger, PHP og implementerer funktionalitet som pset7? Hvad blev sendt frem og tilbage i dine HTTP-headers, der gav dig adgang til denne smukke nyttige super global i PHP? Publikum: Cookies. DAVID J. MALAN: Cookies, specifikt PHP sess ID cookie. Så husker, hvis vi går til, sige, cs50.harvard.edu igen, men denne gang, lad os åbne Fanen Netværk, og nu, op her, lad os bogstaveligt talt bare gå til http://cs50.harvard.edu og derefter trykke på Enter. Og så se på skærmen hernede. Bemærk, at vi faktisk fik tilbage en 301 permanent flyttet besked, hvilket betyder, at der er en placering header her, som nu omdirigere mig til HTTPS. Men fangsten er, at hvis jeg allerede havde en cookie stemplet på min hånd næsten, som vi har diskuteret før, og I den menneskelige slags ubevidst bare besøge usikre versionen, og min browser tager det sig selv at vise, at hånd stempel til den første anmodning, der er via HTTP, enhver mand i midten, enhver Modstanderen i midten, kan i teorien bare se disse HTTP-headers, bare ligesom vi kigger på dem her. Det er kun, når du er taler med en HTTPS URL betyder, at hånd stempel selv får krypteret, a la Cæsar eller Vigenere, men med en mere avanceret algoritme helt. Så også her, selvom hjemmesider bruger HTTPS, vi mennesker har været konditioneret, tak til auto-komplette og andre teknikker, at ikke engang tænke på de mulige konsekvenser. Nu er der måder omkring dette. For eksempel mange websites kan konfigureres således, at når du har denne hånd stempel, kan du fortælle browseren, denne hånd stempel er kun for SSL-forbindelser. Browseren skal ikke præsentere det til mig, medmindre det er over SSL. Men mange websites ikke gider med det. Og mange hjemmesider tilsyneladende ikke engang gider med SSL overhovedet. Så for mere om det, er der faktisk endnu mere snavs i denne præsentation at en kollega gav ved en såkaldt sort hat konference for et par år siden, hvor der er endda andre ondsindede tricks folk har brugt. Du husker muligvis denne forestillingen om en favicon, som er ligesom et lille logo, der er ofte i browserens vindue. Nå, hvad har været udbredt blandt skurkene er at gøre Fab ikoner, der ligner hvad? PUBLIKUM: [uhørligt]. DAVID J. MALAN: Sig igen? PUBLIKUM: De websites. DAVID J. MALAN: Ikke en hjemmeside. Så favicon, lillebitte ikon. Hvad ville være den mest ondsindet, manipulerende ting du kan gøre dit websted standard ikon se ud? PUBLIKUM: En grøn lås. DAVID J. MALAN: Hvad er det? PUBLIKUM: En lille grøn lås. DAVID J. MALAN: Like en grøn lås, nøjagtigt. Så du kan have denne æstetiske af en lille grøn hængelås, hentyder til verden, åh, vi er sikre, når igen, alt det betyder er, at du kender nogle HTML. Så sessionskapring refererer til netop dette. Hvis du har nogen, der er lidt sniffing æteren i dette rum her eller har fysisk adgang til en netværk og kan se dine cookies, han eller hun kan få fat i det PHP sess ID cookie. Og så, hvis de er kyndige nok til at vide hvordan man kan sende, at cookie som deres egen hånd stempel blot ved at kopiere denne værdi og sende HTTP-headers, nogen kunne meget nemt logge ind nogen af ​​Facebook konti eller Gmail-konti eller Twitter konti, der er her, åbne i Værelset, hvis du ikke bruger SSL og hvis hjemmesiden er ikke korrekt ved hjælp af SSL. Så lad os overgang til en anden. Så en anden sand historie. Og dette blot brød i nyheder for en uge eller to siden. Verizon har gjort en meget ond ting, og som bedste folk kan fortælle, siden mindst 2012, hvor, når du adgang til websteder via en Verizon mobiltelefon, uanset producent er det, de har været formasteligt, Som historien går, indsprøjtning i al din HTTP trafik egen HTTP header. Og at header udseende ligesom denne-- X-UIDH. UID er ligesom en unik id eller bruger-id. Og X betyder blot dette er en brugerdefineret header det er ikke standard. Men hvad det betyder er, at hvis jeg trækker op, for eksempel, enhver hjemmeside på min telefon her-- og jeg bruger Verizon som min carrier-- selvom min browser måske ikke sende denne HTTP Header, Verizon, så snart som signalet når deres mobiltelefon tårn eller andet sted, har været i nogen tid injicere dette header ind i alle vores HTTP trafik. Hvorfor gør de det? Formentlig til sporing af grunde, til reklameformål årsager. Men den åndssvage design beslutning her er, at en HTTP header, som du fyre kender fra pset6, modtages af alle web-server at du anmoder om trafik. Så al denne tid, hvis du har været på besøg Facebook eller Gmail eller ethvert websted der ikke bruger SSL alle time-- og faktisk dem, to heldigvis nu do-- men andre hjemmesider, ikke bruger SSL hele tiden, Verizon har i det væsentlige været plantning, med magt, en hånd stempel på alle vores hænder, der selv ser vi ikke, men snarere, de endelige hjemmesider gør. Og så det har ikke været at svært for alle på internettet kører en web-server til indse, ooh, det er David, eller, ooh, dette er Davin, selvom vi er streng om at rydde vores cookies, fordi det ikke kommer fra os. Det kommer fra bæreren. De gør et opslag på dit telefonnummer og derefter sige, åh, det er David. Lad mig indskyde en entydig identifikator, så at vores annoncører eller hvem kan holde styr på dette. Så det er faktisk meget, meget, meget dårlig og gruopvækkende. Og jeg vil opfordre dig til at tage et kig, for eksempel, på denne webadresse, som jeg skulle dementi Jeg faktisk prøvet dette her til morgen. Jeg skrev et lille script, sætte det på denne webadresse, besøgte det med min egen Verizon Mobiltelefon efter vender Wi-Fi fra. Så du er nødt til at slå Wi-Fi fra, så du bruger 3G eller LTE eller lignende. Og så, hvis du besøger denne webadresse, alt dette script gør for jer, hvis du gerne vil spille, er det spytter hvad HTTP headers telefonen sender til vores server. Og jeg faktisk, i retfærdighed, gjorde ikke se dette her til morgen, som gør mig mener enten lokalt mobiltelefon tårn jeg var tilsluttet eller whatnot er ikke at gøre det, eller de har bakket ud af at gøre dette midlertidigt. Men for mere information, til hovedet til denne URL her. Og nu til denne-- dette tegneserie kan give mening. Nej? OK. Ok. Der døde. Ok. Så lad os tage et kig på et par mere angreb, hvis blot at øge bevidstheden om og derefter tilbyde et par mulige løsninger så du er desto mere opmærksomme. Denne ene, vi talte om den anden dag, men gav ikke et navn til den. Det er en cross-site request forfalskning, som er en alt for fancy måde at sige du narre en bruger til at klikke på en URL som denne, hvilke tricks dem i nogle adfærd, de ikke havde til hensigt. I dette tilfælde synes dette at være at forsøge at narre mig til at sælge mine aktier i Google. Og det vil lykkes, hvis Jeg, programmøren af ​​pset7, ikke har gjort hvad? Eller rettere, mere generelt, i hvilken sager er jeg sårbar over for et angreb hvis nogen tricks anden brugers til at klikke på en URL som denne? Ja? PUBLIKUM: Du behøver ikke skelner mellem GET og POST. DAVID J. MALAN: God. Hvis vi ikke skelner mellem GET og POST, og faktisk, hvis vi tillader GET for at sælge ting, vi invitere denne form for angreb. Men vi kunne stadig afbøde det noget. Og jeg kommenterede, tror jeg, sidste uge, at Amazon mindst forsøger at afhjælpe dette med en teknik det er temmelig ligetil. Hvad ville en smart ting at gøre være på din server, snarere end blot blindt at sælge uanset symbol brugeren skriver i? PUBLIKUM: Bekræftelse slags? DAVID J. MALAN: En skærm bekræftelse, noget der involverer menneskelig interaktion så jeg er tvunget til foretage dommen opkaldet, selvom jeg har naivt klikkede et link, der ser sådan her ud og førte mig til skærmen cellen, ved mindst bad mig om at bekræfte eller benægte. Men ikke en usædvanlig angreb, især i såkaldt phishing eller spam-lignende angreb. Nu, dette ene er lidt mere subtil. Dette er en cross-site scripting angreb. Og dette sker, hvis din hjemmeside bruger ikke svarende til htmlspecialchars. Og det tager brugerinput og bare blindt indsprøjte det i en webside, som med print eller ekko, med-- igen-- ud kalde noget ligesom htmlspecialchars. Så formoder hjemmesiden Spørgsmålet er vulnerable.com. Og formoder, det accepterer en parameter kaldet q. Se på, hvad der kan ske hvis jeg faktisk, en dårlig fyr, skrive eller narre en bruger til besøge en webadresse, der ligner denne-- q = åben script tag, lukket script tag. Og igen, jeg antager at vulnerable.com er ikke kommer til at vende farlig tegn som tomme parenteser i HTML-entiteter, den -tegn, L-T, semikolon ting som du måske har set før. Men hvad er scriptet eller JavaScript-kode Jeg forsøger at narre en brugeren til at udføre? Nå, document.location refererer til min browsers nuværende adresse. Så hvis jeg gør document.location =, dette tillader mig at omdirigere brugeren i JavaScript til en anden hjemmeside. Det er ligesom vores PHP funktion omdirigere, men udført i JavaScript. Hvor jeg forsøger at sende brugeren? Nå, tilsyneladende, badguy.com/log.php, som er nogle script, tilsyneladende, den dårlige fyr skrev, der tager en parameter kaldet cookie. Og varsel, hvad gør jeg synes at være sammenkæde på enden af ​​det lighedstegnet? Nå, noget der siger document.cookie. Vi har ikke talt om dette. Men det viser sig, i JavaScript, ligesom i PHP, du kan få adgang til alle de cookies at din browser faktisk bruger. Så virkningen af ​​denne ene linje kode, hvis en bruger narret til at klikke på dette link og hjemmesiden vulnerable.com ikke undslippe det med htmlspecialchars, er, at du lige har effektivt uploadet til log.php alle dine cookies. Og det er ikke altid så problematisk, undtagen hvis én af disse cookies er din session-id, din såkaldte hånd stempel, som betyder badguy.com kan gøre hans eller hendes egen HTTP-anmodninger, sende den samme hånd stempel, at samme cookie header, og logge ind uanset website du var på besøg, som i dette tilfælde er vulnerable.com. Det er en cross-site scripting angreb i den forstand at du slags snyder et websted i at fortælle en anden hjemmeside om nogle oplysninger bør det ikke i virkeligheden, har adgang til. Okay, er klar til en andre bekymrende detalje? Okay, verden er en skræmmende sted, legitimt så. Her er et simpelt JavaScript eksempel, der er i dagens kildekode kaldet geolocation 0 og 1. Og der er et par walkthroughs online for dette. Og det gør følgende, hvis jeg åbne denne webside i Chrome. Det første gør ingenting. OK, vi vil prøve det igen. Oh. Nej, det gør noget. OK, stå ved. Lad os prøve det en gang mere. [Uhørligt] Ah, OK, ikke sikker på, hvorfor til-- oh, apparatet sandsynligvis mistet internet adgang til en eller anden grund. Okay, så sker for mig, også. Okay, så varsel hvad der foregår her. Denne kryptiske udseende webadresse, som er blot én af CS50-server, ønsker at bruge min computer placering, ligesom fysisk betyder det. Og hvis, ja, jeg klikker på Tillad, lad os se hvad der sker. Tilsyneladende, dette er min nuværende breddegrad og langsgående koordinater ned til en temmelig lidt god opløsning. Så hvordan har jeg får på dette? Hvordan denne hjemmeside, ligesom CS50-server, vide fysisk hvor i verden Jeg, endsige med præcision. Nå, vender out-- lad os bare se på sidens source-- at her er en masse HTML på bunden, der først har denne-- organ onload = "geolokation" - bare en funktion jeg skrev. Og jeg siger, ved lastning siden, kalder Lokaliser. Og så er der ikke noget i kroppen, fordi i hovedet på siden, mærke til, hvad jeg har her. Her er min Lokaliser funktion. Og dette er blot nogle fejl checking-- hvis den type navigator.geolocation er ikke defineret. Så JavaScript har dette mekanisme, hvor man kan sige, hvad der er den type af denne variabel? Og hvis det ikke er undefined-- det betyder, at det er nogle value-- Jeg har tænkt mig at ringe til navigator.geolocation.getCurrentPosition og derefter tilbagekald. Hvad er dette? Så i almindelighed, hvad der er en tilbagekald, bare for at være klar? Du har måske stødt dette allerede i pset8. Tilbagekald er en generisk sigt for at gøre hvad? Føles bare mig i dag. PUBLIKUM: [uhørligt]. DAVID J. MALAN: Præcis, en funktion, der skal kaldes kun når vi har data. Denne indkaldelse til browseren, få min nuværende position, kan tage et millisekund, det kan tage et minut. Hvad dette betyder er, vi fortæller GET getCurrentPosition metode, kalder denne callback funktion, som jeg bogstaveligt talt navngivet tilbagekald for enkelhed, som tilsyneladende er denne ene her. Og den måde getCurrentPosition fungerer, blot ved at læse den dokumentation for nogle JavaScript-kode online, er at det opkald, som såkaldt callback funktion, passerer det ind det et JavaScript objekt, inderside er .coords.latitude og .coords.longitude, hvilket er præcis, hvordan, da, når jeg genindlæses denne side Jeg var i stand til at se min placering her. Nu der var mindst et forsvar her. Før jeg besøgte denne side, når det rent faktisk arbejdede, hvad var jeg i det mindste bedt om? PUBLIKUM: [uhørligt]. DAVID J. MALAN: Ja eller no-- gøre du vil tillade eller nægte dette? Men tænk også om vaner jer har sikkert vedtaget, både på din telefon og dine browsere. Mange af os, mig selv inkluderet, er sandsynligvis pretty disponerede disse days-- dig se en pop-up, bare Enter, OK, godkende, Tillad. Og i stigende grad, kan du sætte dig selv i fare for disse grunde. Så i virkeligheden, var der denne vidunderlige bug et par år ago-- eller mangel på feature-- at iTunes havde et par år siden, hvorved hvis du havde en mobiltelefon, og det var en iPhone, og du forlod dit hjem og derfor rejste rundt omkring i verden eller nabolaget, al denne tid, telefonen var logget hvor du er via GPS. Og dette er faktisk beskrevet, og folk slags forventer nu. Telefonen ved, hvor du er. Men problemet var, at da du var sikkerhedskopiering telefonen til iTunes-- dette var før de dage af iCloud, hvilket er bedre eller for worse-- data blev gemt i iTunes, helt ukrypteret. Så hvis du har en familie eller bofæller eller en ondsindet nabo, der er nysgerrig bogstaveligt talt hver GPS koordinere, du nogensinde har været til, han eller hun kunne bare sidde ned på iTunes, køre noget software, der var frit til rådighed, og producere kort som dette. I virkeligheden, dette er hvad jeg produceret af min egen telefon. Jeg tilsluttet det. Og det ser ud, baseret på de blå prikker der, det er, hvor de fleste af GPS koordinater var logget af iTunes, som jeg var i det nordøstlige der. Men jeg åbenbart rejste rundt en smule, selv inden Massachusetts. Så det er Boston Harbor der til højre. Det er slags Cambridge og Boston, hvor det er mørkest. Og lejlighedsvis, ville jeg køre ærinder til en større geografi. Men iTunes i årevis, havde, som bedst Jeg kunne fortælle, alt dette data på mig. Du kan fortælle, at det år, jeg var faktisk rejser meget mellem Boston og New York, går frem og tilbage og frem og tilbage. Og ja, det er mig på Amtrak, tilbage og tilbage, frem og tilbage, ganske lidt. Alt dette blev logget og lagret krypteret på min computer for alle, der måtte have adgang til min computer. Det var bekymrende. Jeg vidste ikke hvorfor jeg var i Pennsylvania eller hvorfor min telefon var i Pennsylvania, tilsyneladende temmelig tæt. Og så, endelig, kiggede jeg på min Gcal, og, åh, jeg besøgte CMU, Carnegie Mellon, på det tidspunkt. Og pyh, den slags forklarede, at blip. Og så, hvis du zoomer længere ud, kan du ser jeg besøgte San Francisco én eller flere gange derefter, og jeg havde selv en ventetid i hvad Jeg tror er Vegas, dernede. Så alle denne-- bare en ventetid i lufthavnen. PUBLIKUM: [Latter] Så dette er kun at sige, at disse problemer, helt ærligt, er allestedsnærværende. Og det kun føles stigende grad som om der er mere og mere af dette bliver videregivet, som sandsynligvis er en god ting. Jeg daresay, verden er ikke værre ved at skrive software. Vi bliver bedre, forhåbentlig ved bemærke hvor slemt bestemt software er, at vi bruger. Og heldigvis, nogle virksomheder er begyndt at blive holdt ansvarlig for dette. Men hvad slags forsvar kan du have i tankerne? Så udover adgangskode ledere, ligesom 1Password og LastPass og andre, udover blot at ændre dine adgangskoder og kommer op med tilfældige dem ved hjælp af software som det, kan du også prøve så godt du kan, for at kryptere al din trafik mindst indsnævre zone af en trussel. Så for eksempel, som Harvard søsterselskaber, du kan alle gå til vpn.harvard.edu og log ind med dit Harvard-id og PIN-kode. Og dette vil etablere en sikker forbindelse mellem dig og Harvard. Nu, der ikke gør nødvendigvis beskytte dig mod enhver trussel, der er mellem Harvard og Facebook eller Harvard og Gmail. Men hvis du sidder i en lufthavn eller du er sidder i Starbucks eller du er sidder ved en vens sted, og du ikke rigtig har tillid til dem eller deres konfiguration af deres hjem router, i det mindste du kan oprette en sikker forbindelse til en enhed, som dette sted, der er sandsynligvis lidt bedre sikret end noget som en Starbucks eller lignende. Og hvad det betyder er det etablerer igen, kryptering mellem dig og endpoint. Selv amatør er ting som dette. Så nogle af jer måske allerede være bekendt med Tor, der er denne form for anonymisering netværk, hvor masser af mennesker, hvis de køre denne software, rute efterfølgende deres internet trafik gennem hinanden. Så den korteste punkt er ikke længere mellem A og B. Men det kan være over hele plads, så du er i det væsentlige omfatter et spor og forlader mindre af en rekord som til hvor din HTTP trafik kom fra, fordi det vil gennem en hel bunke af andres bærbare eller stationære computere, for bedre eller værre. Men selv dette er ikke en surefire ting. Nogle af jer husker måske sidste år den bombetrussel, der blev kaldt ind. Og det blev sporet i sidste ende til en bruger, som havde brugt dette netværk her. Og fangsten der, så vidt jeg husker, er, hvis der ikke er så mange andre mennesker ved hjælp af en software som dette, eller bruger denne port og protokol, det er ikke så svært for et netværk til endnu finde ud af hvem, med en vis sandsynlighed, faktisk var anonymerseringsoverlægningsnetværk hans eller hendes trafik. Og jeg ved ikke, om det var de faktiske pågældende oplysninger. Men sikkert indse, at ingen af disse er surefire løsninger, så godt. Og målet her i dag er at mindst få dig til at tænke over disse ting og kommer op med teknikker til forsvare dig selv mod dem. Eventuelle spørgsmål om alle de trusler der venter dig derude, og i her? Ja? PUBLIKUM: Hvor sikkert gøre vi forventer gennemsnittet [? hjemmeside skal være,?] ligesom den gennemsnitlige CS50 projektet? DAVID J. MALAN: The gennemsnitlig CS50 projekt? Det er altid vist sig hvert år, nogle CS50 endelige projekter er ikke særlig sikker. Normalt det er nogle roommate eller hallmate at tallene denne ud ved at sende anmodninger til dit projekt. Kort answer-- hvor mange hjemmesider er sikre? Jeg plukke på nutidens anomalier. Ligesom det var bare en tilfældighed at jeg indså, at denne hjemmeside Jeg har bestilling disse ærligt lækre arrangementer from-- og jeg er ikke sikker på jeg vil stoppe med at bruge deres hjemmeside; Jeg kunne bare ændre min adgangskode mere regularly-- Det er ikke klart, hvor sårbar alle disse various-- dette er chokolade-dækket faktisk. Det korte svar, kan jeg ikke svare på effektivt, andet end at sige det var ikke så svært for mig at finde nogle af disse eksempler blot af hensyn til diskussion i forelæsning. Og bare at holde øje med Google News og andre ressourcer vil bringe desto mere af den slags ting til at lyse. Okay, lad os afslutte med denne prequel at CS50 team har forberedt for dig i forventning om CS50 hackathon. Og på din vej ud i en øjeblik, vil frugt blive serveret. [VIDEO PLAYBACK] [MUSIC FERGIE, Q TIP OG GOONROCK, "A LITTLE PART dræbte aldrig INGEN (ALL Vi fik) "] - [Snorken] [END VIDEO PLAYBACK] DAVID J. MALAN: Det er det for CS50. Vi vil se dig på onsdag. [MUSIC - Skrillex, "IMMA 'Prøv det"]