DAVID J. MALAN: Este é CS50, e este é o início da semana 10. Você deve se lembrar que nós mostramos na tela uma impressora 3D, que é este dispositivo que leva carretéis de plástico e, em seguida, extrude-lo por aquecimento para cima e derretê-lo para que possamos, em seguida, formar exército de Chang elefantes, por exemplo. Então, em Leverett House, no entanto, recentemente, eu estava conversando com um de seus colegas e um amigo de Chang chamada Michelle, que na verdade internado em esta outra empresa no ano passado que tem uma técnica diferente para realmente criação de objetos tridimensionais, como este pequeno elefante aqui. Em particular, a forma como isto funciona é que é um exemplo de algo chamado estereolitografia, pelo qual há essa bacia de resina ou líquido, e, em seguida, um laser que atinge líquido, e, gradualmente, o dispositivo elevadores e ascensores e levanta a coisa que você está imprimindo, como um elefante, como que o líquido se torna sólido. E o resultado, na verdade, é algo que é muito mais robusto do que alguns o plástico brindes alguns de vocês poderia ter tido. E o que Chang gentilmente fez por nós aqui foi fez um time-lapse usando fotografias ao longo de uma hora ou mais, provavelmente, para produzir esse cara aqui. Será que alguém que nunca chegar antes gostaria de vir bater Iniciar este vídeo? Deixe-me ir com, como sobre lá. Vamos lá para cima. Tudo certo. E você é? LUKE: Lucas Meu nome é [inaudível]. DAVID J. MALAN: Oi, Luke. Prazer em conhecê-lo. LUKE: Prazer em conhecê-lo. AUDIÊNCIA: Ele está correndo para UC. DAVID J. MALAN: Eu sei, nós estamos tentando não promover. Tudo bem, então Luke, todos você tem que fazer aqui em CS50 é bater a barra de espaço imprimir este elefante. [REPRODUÇÃO DE VÍDEO] - [MACHINE zumbido] - [CRASH] - [BOOM] - [CRASH] [FIM REPRODUÇÃO DE VÍDEO] DAVID J. MALAN: Assim que é exatamente o que é a impressão 3D. E aqui é o seu elefante. Obrigado por voluntariado. Tudo certo. Então, novamente, por a especificação para o projeto final, este hardware que é disponível para vocês é, por algum motivo, o projeto tem alguma interseção de software e hardware, perceber que estes são agora recursos. Eu queria tirar um momento para tocar em cima de um artigo que saiu carmesim ontem à noite, o que era para anunciam que este homem aqui, David Johnson, que tem sido o idoso preceptor para Ec 10 por algum tempo, abandona Harvard no final do ano lectivo. E eu só queria ter um momento, honestamente, de agradecer a David na frente de CS50. Ele tem sido um mentor sortes para nós ao longo dos anos. E eu sinto que nós, CS50, tem em vez crescido com Ec 10 aqui, uma vez que estão bem diante de nós. E ele e toda a equipe em Ec 10 tem foi maravilhosamente gracioso, francamente, como se arrastar em todos os nossos equipamentos a cada semana, e anos atrás, fornecida uma grande quantidade de conselho como estávamos curioso para saber como eles operam Ec 10. Então, os nossos agradecimentos e admiração David Johnson. [Aplausos] Agora, unrelatedly, assim o fim está realmente próximo. Estamos aqui em 10 semanas. E nós só temos apenas uma par de semanas formais aqui na classe à esquerda, seguido por um par de eventos. Então, para dar-lhe um sentido do que é no horizonte, aqui estamos hoje. Nesta quarta-feira, recall, teremos uma palestra convidado por ninguém menos que Próprio Steve Ballmer, da Microsoft. Se você ainda não tenha ido para cs50.harvard.edu/register, fazê-lo, desde que o espaço será limitado. E eles vão estar verificando IDs na porta hoje. Se você não estivesse aqui na semana passada, eu pensei que seria provocá-lo com um olhar diferente em Steve e da emoção que nos espera na quarta-feira. [REPRODUÇÃO DE VÍDEO] -Passion. -Estamos Vai ser incondicional hardcore--. -Innovator. -Bill Disse, você não obtê-lo. Nós vamos colocar um computador em cada mesa e em cada casa, que se tornou o lema da empresa. Eu juro, Bill inventou naquela noite para realmente dar-me um pouco da visão de por que eu deveria dizer sim. Eu nunca olhei para trás, realmente, depois que. -Fresh Fora da faculdade, ele juntou uma startup incipiente e ajudou a crescer em uma de América a maioria das empresas bem-sucedidas de todos os tempos. A vida de negócios e lições aprendidas ao longo do caminho deixá-lo de volta ao seu paixão de infância e amor. E essas experiências têm preparado ele para seu próximo desafio na vida. -Nada Fica no nosso crescimento maneira--! Continuo incondicional! Vá Clippers! -Este É Steve Ballmer, "In My Own Words". [FIM REPRODUÇÃO DE VÍDEO] DAVID J. MALAN: --este Quarta-feira para CS50. Cabeça de novo para este URL aqui. Quanto ao que mais está no horizonte, na próxima semana, sem aula na segunda-feira. Mas estaremos seguinte ao por questionário um na quarta-feira. Ir para página inicial do CS50 para mais detalhes sobre pessoas, lugares e tempos para todos os vários proctoring logística e semelhantes, bem como sobre a revisão sessões que estão próximas. E então, finalmente, na segunda-feira, o dia antes da semana de pausa Thanksgiving, perceber que será o nosso palestra final. Vamos servir bolo e um grande dose de emoção, nós esperamos. Agora, um par de outras atualizações. Tenha em mente que o estado relatório, que é realmente apenas pretende ser uma interação informal com o TF indicar orgulhosa apenas quão longe juntamente com o seu projeto final que você é, ou, pelo menos, como uma sanidade verificar que você deve ser que se aproxima ponto pouco tempo depois. O Hackathon seguida, segue-se que. Perceba o Hackathon não é uma oportunidade para iniciar seu projeto final, mas pretende ser uma oportunidade para estar no meio de ou em direcção o fim de seu projeto final, com a implementação devido a alguns dias mais tarde, seguido pelo justo CS50. Agora, a produção do CS50 equipe, um par de anos atrás, montar um teaser para a feira CS50 que pensei que ia mostrar-lhe hoje, porque eles têm sido duro no trabalho em um prequel para isso, um novo vídeo que vamos concluir hoje com. Mas aqui está o que você espera por justa CS50 deste ano. [REPRODUÇÃO DE VÍDEO] - [CELULAR TOCANDO] [MUSIC "Theme From Mission: Impossible"] [FIM REPRODUÇÃO DE VÍDEO] DAVID J. MALAN: Assim que é exatamente como fechamos alegações finais do projeto. Um casal de agora teasers-- se você gostaria de se juntar a Nick aqui para o almoço, como de costume, este Sexta-feira, ir para este URL aqui. Além disso, se você gostaria para juntar-se Nick ou este Nick ou este ou qualquer Allison membros da equipe de CS50, percebem que, pouco após o fim do prazo, CS50 já estará recrutando para a equipe do próximo ano, para CAs, TFs, os designers, produtores, pesquisadores e outros cargos CS50 que aqui operam em ambos frente e por trás das cenas. Assim, se este poderia ser de interesse para você, ir para este URL aqui. E os alunos mais confortáveis, menos confortável, e em algum lugar entre iguais são todos bem-vindos e incentivados a se candidatar. Por isso, foi um timing perfeito que, não piada, esta manhã, quando acordei, Eu tive esse aqui o spam na minha caixa de entrada. Ele realmente escorregou através do filtro de spam do Gmail de alguma forma, e acabou na minha caixa de entrada real. E ele diz: "Querido caixa de correio usuário, você está atualmente atualizado para 4 gigabytes de espaço. Por favor, faça login em sua conta a fim de validar E-espaço ". E depois há este agradável azul ligação sedutora lá para clicar em para professores e funcionários, que, em seguida, levou-me para uma página maravilhosamente legítimo, o que pediu-me para dar-lhes o meu nome e endereço de e-mail e, é claro, senha para validar quem eu sou e assim por diante. Mas, claro, como é sempre o caso, você chegar a esta página de destino, e, claro, não há pelo menos um erro de digitação, que parece ser o prego no o caixão de qualquer desses golpes. E nós vamos postar, talvez, algum outro links para esses tipos de capturas de tela no futuro. Mas espero que, a maioria das pessoas em este quarto não têm clicked-- ou mesmo se você clicou esses links como este, você não ter ido tão longe a ponto preencher os formulários e assim por diante. Na verdade, não há problema se você tiver. Vamos tentar corrigir isso hoje, porque, na verdade, a conversa de hoje é sobre segurança. E, de fato, um dos metas de CS50 não é tanto a ensinar você CE ou PHP ou JavaScript ou SQL ou qualquer um destes subjacente detalhes de implementação. Mas é para capacitá-lo como seres humanos apenas para tomar decisões mais inteligentes como ele refere-se a tecnologia para baixo a estrada, de modo que, se você é um engenheiro ou humanista ou cientista ou qualquer outro papel, você está tomando decisões informadas sobre o seu próprio uso de computação, ou se você estiver em um posição de tomada de decisão, na política, em particular, você está fazendo muito, decisões muito melhores do que um monte de seres humanos de hoje ter sido. E nós vamos fazer isso caminho de alguns exemplos. Primeiro, fiquei um pouco surpreso Recentemente, para descobrir o seguinte. Assim, senhas, é claro, são o que a maioria de nós proteger o nosso e-mail data--, bate-papo, e todos os tipos de recursos como esse. E só por um awkward-- não mostra de mãos, mas olhares constrangidos de vergonha, quantos de vocês usam a mesma senha em um monte de sites diferentes? Oh, OK, então vamos fazer as mãos. OK, então um monte de você. Qualquer um que faz isso, só por quê? E o quê? Sim? AUDIÊNCIA: É fácil de lembrar, porque você não tem que se lembrar [inaudível]. DAVID J. MALAN: Sim, é fácil de lembrar. É um perfeitamente razoável, comportamento racional, embora o risco você está colocando a si mesmo em nestes casos é apenas um ou mais desses sites é vulnerável a hackers ou para inseguro ou sua senha é apenas tão danado guessable, qualquer pessoa pode descobrir isso. Não é só uma conta comprometida, mas, em teoria, qualquer contas que você tem na internet. Então, eu sei que eu poderia dizer hoje, não usar a mesma senha em todos os lugares, mas isso é muito mais fácil dizer do que fazer. Mas existem técnicas para mitigar essa preocupação particular. Agora, acontece, por exemplo, a usar um programa chamado 1Password. Outro popular é chamado LastPass. E um monte de CS50 uso pessoal um ou mais destes tipos de ferramentas. E longa história curta, um takeaway para hoje deve ser, sim, você pode ter a mesma senha em todos os lugares, mas é muito fácil de não fazer isso. Por exemplo, hoje em dia, eu sei talvez um dos meus dezenas ou centenas de senhas. Todas as minhas outras senhas são pseudo-aleatoriamente gerado por um desses programas aqui. E em poucas palavras, e até mesmo embora a maioria destes programas tendem a vir com um pouco de custo, seria necessário instalar um programa como este, Você, então, armazenar todos os seus nomes de usuário e senhas dentro deste programa em seu próprio Mac ou PC ou outros enfeites, e, em seguida, seria criptografado no computador com o que é esperançosamente um particularmente longo senha. Então, eu tenho um monte de senhas para sites individuais, e então eu tenho realmente um senha longa que eu usar para desbloquear todos as outras senhas. E o que é agradável sobre software como este é que, quando você visita um site que é pedindo seu nome de usuário e senha, nos dias de hoje, eu não digitar meu nome de usuário e senha, porque, mais uma vez, eu não sei mesmo que a maioria de minhas senhas são. Eu em vez bateu um teclado atalho, cujo resultado é acionar este software para Pede por minha senha mestra. Eu, então, digite que um grande senha no, e em seguida, o navegador preenche automaticamente o que minha senha está. Então, realmente, se você tomar mais nada longe de hoje em termos de senhas, estes são software que valem a pena download ou investimento, por isso que você pode pelo menos pausa esse hábito particular. E se você é do tipo que é usando Post-It ou o como-- e as probabilidades são, pelo menos, um de vocês é-- esse hábito, também, basta dizer que, deve ser quebrado. Agora, aconteceu de eu descobrir, como resultado de usar o software, o seguinte. Eu estava pedindo um arranjo comestível, esta cesta de frutas, recentemente. E eu bati meu teclado especial atalho para fazer login no site. E o software desencadeou uma pop-up que disse, você tem certeza Você quer que eu automaticamente apresentar este nome de usuário e senha? Como a conexão é inseguro. A ligação não está usando HTTPS, por seguro, utilizando esse protocolo conhecido como SSL, Secure Sockets Layer. E, de fato, se você olhar para canto superior esquerdo deste site, é só www.ediblearrangements.com, não HTTPS, o que não é tão bom. Agora, eu estava curious-- talvez isso é apenas um bug no software. Certamente, algum site como isso que muitos de nós conhecemos é, pelo menos, o uso de criptografia ou HTTPS URLs para fazer seu login. Então, eu tenho um pouco curioso, esta manhã. E eu tenho as minhas habilidades CS50, Eu abri Inspector Chrome. Não é mesmo muita habilidade. É só apertar o teclado direito atalho para abrir isso. E aqui está uma grande janela de Inspector do Chrome. Porém, o que era na verdade um pouco trágico e ridículo eram essas duas linhas aqui. Lá em cima, observe a URL para que meu nome de usuário e senha foram submetidos. Deixe-me ampliar. Foi esse aqui. E tudo isso é tipo de desinteressante, exceto para a coisa toda a maneira em a esquerda, que começa com http: //. E então, OK, talvez eles estão apenas enviando meu nome de usuário, o que é não como um grande negócio. Talvez a minha senha é enviada mais tarde. Isso seria uma espécie de decisão interessante design. Mas não tinha. Se, em seguida olhar para o pedido carga, o nome de usuário e senha Eu sent-- e eu zombava estes para o slide-- foram realmente enviados em claro. Então você vai para o site em particular e encomendar um arranjo comestível como esta, e, na verdade, aparentemente, para tudo isso vez que eu fui encomendar a partir deles, seu nome de usuário e senha vai em frente em claro. Então, honestamente, isso é completamente inaceitável. E é tão trivial para evitar coisas assim como o designer de um site e como o programador de um site. Mas o takeaway aqui para nós, como usuários de sites é apenas para perceber que todos que toma é para um projeto estúpido decisão, decisão de projeto injustificável, de modo que, agora, se você sabe que a minha senha está "Carmesim" nesta site, você provavelmente ficou em um monte de outros sites que tenho agora. E não há muito de uma defesa contra o que diferente do que Chang fez esta manhã. Ele foi para arranjos comestíveis, que está localizado na rua em Cambridge e fisicamente comprei este para nós. Isso era muito mais seguro do que usando o site neste caso. Mas o detalhe para manter um olho para fora para é, na verdade, o que está no topo do navegador se lá. Mas mesmo isso pode ser um pouco enganador. Assim, uma outra interessante exemplo e forma de defender contra isto-- e na verdade, vamos não que first-- a maneira de defender contra esta é uma técnica que as pessoas de segurança seria chamar a autenticação de dois fatores. Alguém sabe qual é a solução para problemas como este significa? O que é autenticação de dois fatores? Ou dito de outra forma, como muitos de vocês estão usando? OK, então um par de pessoas tímidas. Mas sim. Eu vi a sua mão subir. O que é autenticação de dois fatores? AUDIÊNCIA: Basicamente, para além para digitar sua senha, você também tem um secundário [inaudível] enviado via mensagem de texto para seu celular no [inaudível]. DAVID J. MALAN: Exatamente. Além de alguma forma primária de autenticação, como uma senha, você está convidado para um secundário fator, que é tipicamente algo que você tem fisicamente em você, apesar de pode ser algo completamente diferente. E que coisa é tipicamente um cellphone estes dias para que você obtenha enviou uma mensagem de texto temporário que diz "O seu código de acesso temporário é 12345." Assim, além de minha password "carmesim," Eu também tem que digitar o que quer o site tem me mandou uma mensagem. Ou se você tem isso com um banco ou uma conta de investimento, Você às vezes tem esses pequenos dongles que realmente ter um pseudo-aleatório- gerador de números construído para eles, mas tanto o dispositivo e o banco saber qual a sua semente inicial é de modo que eles sabem, assim como o pouco código em seu pequeno chaveiro marchas à frente a cada minuto ou dois, a mudança de valores, faz assim que a mudança de valor no servidor do banco de modo que eles podem similarmente autenticar você, não só com a sua senha, mas com que o código temporário. Agora, você pode realmente fazer isso no Google. E, francamente, este é um bom hábito de entrar, especialmente se você estiver usando Gmail todo o tempo em um navegador. Se você vai para este URL aqui, o que está em os slides on-line para hoje, e depois clique em 2-Step Verification, mesma coisa real lá. Você será solicitado para dar eles seu número de telefone celular. E então, a qualquer hora que você entrar em Gmail, você estará não só pediu por sua senha, mas também para uma pouco de código que é enviado para o seu telefone temporariamente. E assim, desde que você tenha os cookies ativados, e contanto que você não explicitamente logout, você só tem fazer isso de vez em quando, como quando você se senta a um novo computador. E a cabeça aqui, também, é que, se você sentar em algum café de estilo internet ou apenas um computador computador do amigo, mesmo se esse amigo maliciosamente ou inconscientemente tem algum keylogger instalado em seu computador, de tal forma que tudo o que você tipo está sendo registrado, pelo menos, que segundo fator, que código temporário, é efêmera. Então ele ou ela ou quem é comprometido o computador não pode entrar em você, posteriormente, mesmo que tudo o resto era vulnerável ou mesmo unencrypted completamente. Facebook tem isso, também, com que a URL aqui, onde você pode clicar em Login Aprovações. Então, aqui, também, se você não quero amigos para picar as pessoas, você não quer ser cutucando no Facebook ou postar atualizações de status para você, autenticação de dois fatores aqui é provavelmente uma coisa boa. E depois há este outra técnica totalmente, apenas auditoria, que é ainda uma coisa boa para nós seres humanos, se de dois fatores prova irritante, que, É certo que pode, ou não é apenas disponível em algum site, minimamente manter um olho sobre se e quando você está registrando em sites, se eles permitem que você, é uma boa técnica também. Assim, o Facebook também lhe dá este notificações de login apresentam, segundo o qual Facebook a qualquer hora percebe, hm, David tem logados em algum computador ou telefone que nós nunca vimos antes de um endereço IP que parece estranho, eles, pelo menos, vou enviar-lhe uma e-mail para qualquer endereço de e-mail você tem no arquivo, dizendo: faz este olhar desconfiado? Se assim for, mude sua senha imediatamente. E assim lá, também, apenas o comportamento da auditoria mesmo depois de ter sido comprometida, pode, pelo menos estreitar a janela durante que você está vulnerável. Tudo bem, todas as perguntas em que o material até agora? Hoje é o dia para obter todas sua paranóia confirmado ou negado. Isso é confirmado na sua maioria, infelizmente. Sim? AUDIÊNCIA: [inaudível] de telefone, E se a sua quebra de telefone, e então é sempre difícil verify-- DAVID J. MALAN: True. AUDIÊNCIA: Ou se você está em um diferente país, e eles não permitem que você entra no sistema porque [inaudível]. DAVID J. MALAN: Absolutamente. E assim que estes são o adicional custos que incorrer. Há sempre este tema de um trade-off, depois de tudo. E então, se você perder seu telefone, em caso de quebra, se você estiver no exterior, ou você simplesmente não têm uma sinal, como um sinal de 3G ou LTE, você não pode realmente ser capaz de autenticar. Então, novamente, estes dois são os trade-offs. E, às vezes, pode criar um muito trabalho para você como resultado. Mas isso realmente depende, então, em qual é o preço esperado para você é de algo ser comprometida por completo. Então, SSL, então, é essa técnica que todos nós geralmente tomamos para concedido ou supor que há, apesar de que claramente não é o caso. E você ainda pode enganar pessoas, no entanto, mesmo com este. Então aqui está um exemplo de um banco. Este é o Bank of America. Há um monte deles em Harvard Square e além. E note que, no topo de da tela, há um, de fato, HTTPS. E é ainda verde e destacou para nós para indicar que este é de fato um site seguro, legitimamente, ou então temos sido treinados para acreditar. Agora, além disso, porém, notar que, se aumentar o zoom, há essa coisa aqui, onde você será solicitado a efetuar login. O que isso significa cadeado certo lá, ao lado de meu nome de usuário pedir? Isso é muito comum em sites, também. O que isso significa cadeado? Você parece que sabe. AUDIÊNCIA: Isso não significa nada. DAVID J. MALAN: É não quer dizer nada. Isso significa que o Bank of America sabe como para escrever HTML com tags de imagem, certo? Ela realmente não significa nada, porque mesmo que, utilizando-se o primeiro dia do nosso olhar em HTML, pode codificar-se uma página com um fundo vermelho e uma imagem, como um GIF ou outros enfeites, que acontece para olhar como um cadeado. E, no entanto, isso é super comum em sites, porque fomos treinados para assumir que, oh, cadeado significa seguro, quando ele realmente significa apenas que você sabe HTML. Por exemplo, de volta ao dia, eu poderia acabamos de colocar isso no meu site, alegando que é seguro, e perguntando, de forma eficaz, nomes de usuários e senhas das pessoas. Então, olhando na URL é pelo menos uma pista melhor, porque que está embutido no Chrome ou qualquer navegador que você está usando. Mas, mesmo assim, às vezes as coisas podem dar errado. E, na verdade, você nem sempre pode veja HTTPS, e muito menos em verde. Algum de vocês já visto uma tela como esta? Você pode ter, na verdade, No início de outubro, quando eu esqueci de pagar por nossa Certificado SSL, como é chamado, e estávamos parecendo isto para uma ou duas horas. Então você provavelmente já viu coisas assim, com uma greve-through, como uma linha vermelha, por meio de o protocolo na URL ou algum tipo de tela que é pelo menos admoestando você por tentar prosseguir. E o Google aqui está convidando que você volte para a segurança. Agora, neste caso, isso só significa que o certificado SSL que estávamos usando, os grandes números, matematicamente úteis que estão associados com o servidor de CS50, já não eram válidos. E, de fato, podemos simular isso, como você pode em seu laptop. Se eu entrar em Chrome aqui, e vamos para facebook.com, e parece que isso é seguro. Mas deixe-me ir em frente agora e clique sobre o cadeado aqui. E deixe-me ir para a conexão, Informações do certificado. E, de fato, o que você vai vê aqui é um bando de detalhes de nível inferior sobre facebook.com que realmente é. Parece que eles pagaram dinheiro para uma empresa chamada talvez DigiCert alta Garantia de que prometeu para dizer ao resto do mundo que, se um browser vê sempre um certificate-- você pode pensar dela literalmente como um certificado que Parece aquela coisa brega no topo left-- então facebook.com é que eles dizem eles são, porque todo esse tempo, quando você visita um site, como cs50.harvard.edu ou facebook.com ou gmail.com que usam HTTPS URLs, nos bastidores, há esse tipo de transação acontecendo automaticamente para você, qual facebook.com, neste caso, está enviando para o seu navegador o seu chamado certificado SSL, ou melhor, sua chave pública, e depois seu navegador está usando a chave pública para enviar posteriormente encriptado tráfego de e para ele. Mas há toda esta hierarquia no mundo das empresas que pagar para que o faça então testemunhar, em um sentido digital, que você é realmente facebook.com ou o servidor é realmente cs50.harvard.edu. E construído em navegadores, como Chrome e IE e Firefox, é uma lista de todos aqueles chamada autoridades de certificação que são autorizadas pela Microsoft e Google e Mozilla para confirmar ou negar que facebook.com é que ele diz que é. Mas o problema é que essas coisas têm prazo de validade. Na verdade, o Facebook parece de que expira em outubro próximo, em 2015. Assim, podemos realmente simular isso se eu ir no meu Mac para meus Preferências do Sistema, e eu entro em data e hora, e Eu entro em Data e hora aqui, e eu desbloquear este aqui-- felizmente, nós não revelar a senha esta tempo-- e agora eu descer de desmarcar esta. E vamos actually-- oops, isso é não tão interessante como fazer isso. Estamos literalmente no futuro agora, o que significa que este é o que 2020 é semelhante. Se eu agora recarregar o página-- vamos fazê-lo em Ingognito mode-- se eu recarregar a página, lá vamos nós. Então, agora, meu computador pensa que é de 2020, mas o meu navegador sabe que esse certificado a partir de Facebook expira, é claro, em 2015. Então, ele está me dando esta mensagem vermelha. Agora, felizmente, os navegadores como o Chrome tem, na verdade, tornou muito difícil proceder, no entanto. Eles realmente querem que eu para voltar para a segurança. Se eu clique aqui no Advance, que é vai me dizer mais alguns detalhes. E se eu realmente quero proceder, eles vão deixar me ir para facebook.com, que é, novamente, inseguro, em que ponto Vou ver a página inicial do Facebook, como este. Mas, então, outras coisas parecem ser de ruptura. O que provavelmente está quebrando neste momento? AUDIÊNCIA: JavaScript. DAVID J. MALAN: Como o JavaScripts e / ou CSS ficheiros são similarmente deparar com esse erro. Portanto, esta é apenas uma situação ruim em geral. Mas o ponto aqui é que, pelo menos, O Facebook realmente tem SSL habilitado para seus servidores, como muitos sites, fazer, mas não necessariamente todos. Mas não é só o takeaway aqui. Acontece que, mesmo SSL Tem sido demonstrado inseguro de alguma forma. Então, eu sou uma espécie de insinuando que SSL, bom. Procure por HTTPS URLs, ea vida é bom, porque todo o tráfego HTTP e cabeçalhos e conteúdo é criptografado. Ninguém pode interceptar no médio, com exceção de um assim chamado homem No meio. Esta é uma técnica geral no mundo da segurança conhecida como um ataque man-in-the-middle. Suponha que você é esta pequena laptop aqui no lado esquerdo, e suponha que você está tentando visitar um servidor lá na direita, como facebook.com. Mas suponhamos que, em entre você e Facebook, é um monte de outros servidores e equipamentos, como switches e roteadores, Servidores DNS, servidores DHCP nenhum dos quais podemos controlar. Ele pode ser controlada pela Starbucks Harvard ou Comcast ou semelhantes. Bem, suponha que alguém maliciosamente, em sua rede, entre você e Facebook, é capaz de dizer-lhe que, você sabe, o endereço IP do Facebook não é o que você pensa que é. É este IP em vez. E assim que seu navegador é enganado e solicitando tráfego de outro computador completo. Bem, suponha que computador simplesmente olha para todos do tráfego que você está solicitando Facebook e todas as páginas da Web que você está solicitando do Facebook. E cada vez que vê em seu tráfego uma URL que começa com HTTPS, dinamicamente, na voar, reescreve-lo como HTTP. E cada vez que vê um local cabeçalho, localização cólon, como nós usamos para redirecionar o utilizador, aqueles, também, pode ser alterado por este homem em meio de HTTPS para HTTP. Assim, mesmo que você mesmo pode acho que você está no verdadeiro Facebook, isso não é tão difícil para um adversário com acesso físico à sua rede simplesmente retornar páginas para você que parecido com o Gmail, que parecido com o Facebook, e de fato a URL é idênticas, porque eles são fingindo ter o mesmo nome de host por causa de alguma exploração de DNS ou algum outro sistema parecido. E o resultado, então, é que nós, humanos, só pode perceber que, OK, isso parece Gmail ou, pelo menos, a versão mais antiga, como é este slide de uma apresentação mais velhos. Mas parece que isto-- http://www.google.com. Então, aqui, também, a realidade é que como muitos de vocês, quando você vai para o Facebook ou o Gmail ou qualquer site e você sabe um pouco de tudo sobre SSL, como muitos de vocês fisicamente digitar https: // e, em seguida, o site nomear, Enter. A maioria de nós basta digitar, como, CS50, pressione Enter, ou F-A para Facebook e pressione Enter, e deixá-lo auto-complete. Mas, nos bastidores, se você vê o seu tráfego HTTP, provavelmente há um grupo inteiro a localização desses cabeçalhos que está enviando-o de Facebook para www.facebook.com para https://www.facebook.com. Então, isso é uma ou mais transações HTTP onde a sua informação é completamente enviado em claro, não criptografia alguma. Agora, isso pode não ser tão grande lidar se tudo que você está tentando fazer é acessar a página inicial, você não está enviando seu nome de usuário e senha. Mas o que é baixo o capô, especialmente para sites baseados em PHP que também é sendo enviado para trás e quando você visitar alguma página da web se que o uso do site, por exemplo, PHP e implementa a funcionalidade como pset7? O que estava sendo enviado de volta e para trás em seus cabeçalhos HTTP que você deu acesso a esse bem Super útil global em PHP? Audiência: Cookies. DAVID J. MALAN: Cookies, especificamente o PHP sess ID do cookie. Então lembro, se formos a, digamos, cs50.harvard.edu novamente, mas desta vez, vamos abrir o Guia Rede, e agora, aqui em cima, vamos literalmente basta ir para http://cs50.harvard.edu e, em seguida, pressione Enter. E, em seguida, olhar para a tela para baixo aqui. Observe que na verdade tem de volta a 301 movido permanentemente mensagem, o que significa que há um cabeçalho de localização aqui, que agora está me redirecionando para HTTPS. Mas o problema é que, se eu já tinha um cookie gravado na minha mão praticamente, como já discutimos antes, e Eu o tipo humano de saber basta visitar o inseguro versão, e meu navegador leva-lo sobre si mesmo para mostrar que selo de mão para o primeiro pedido, que é via HTTP, qualquer homem no meio, qualquer adversário no meio, teoricamente pode apenas ver esses cabeçalhos HTTP, apenas como se estivéssemos olhando para eles aqui. É só quando você estiver falando com um HTTPS URL que isso em si selo mão obter criptografado, a la César ou Vigenere, mas com um algoritmo mais sofisticado completamente. Então, aqui, também, mesmo que sites usam HTTPS, nós, seres humanos foram condicionados, graças às técnicas de auto-completar e outros, para sequer pensar em as potenciais implicações. Agora, existem maneiras de contornar isso. Por exemplo, muitos sites pode ser configurado de modo que, uma vez que você tem esse lado selo, você pode dizer ao navegador, este selo de mão é apenas para conexões SSL. O navegador não deve apresentar que a mim, se é sobre SSL. Mas muitos sites não se preocupe com isso. E muitos sites aparentemente nem sequer se preocupar com SSL em tudo. Então, para saber mais sobre isso, não há, na verdade, ainda mais sujeira nesta apresentação que um colega deu a um chamado preto conferência chapéu um par de anos atrás, onde há ainda outro truques maliciosos pessoas têm usado. Você pode recordar esta noção de um favicon, que é como um pequeno logotipo que é muitas vezes na janela do navegador. Bem, o que tem sido comum entre os bandidos é para tornar ícones fab que se parecem com o que? AUDIÊNCIA: [inaudível]. DAVID J. MALAN: Diga de novo? AUDIÊNCIA: Os sites. DAVID J. MALAN: Não é um website. Então, favicon, minúsculo pequeno ícone. O que seria o mais malicioso, coisa manipuladora você pode fazer o seu site de ícone padrão parecido? Audiência: Um bloqueio verde. DAVID J. MALAN: O que é isso? AUDIÊNCIA: Um pouco de bloqueio verde. DAVID J. MALAN: Como um bloqueio verde, exatamente. Então você pode ter essa estética de um pequeno cadeado verde, insinuando para o mundo, oh, nós somos assegurar, quando, mais uma vez, tudo o que significa é que você sabe um pouco de HTML. Assim, o seqüestro de sessão refere-se exatamente isso. Se você tem alguém que é uma espécie de farejando as ondas neste quarto aqui ou tem acesso físico a um rede e pode ver os seus cookies, ele ou ela pode pegar que PHP sess ID do cookie. E então, se eles são experiente o suficiente para saber como enviar esse cookie como a sua própria selo mão apenas copiando esse valor e enviar os cabeçalhos HTTP, alguém poderia muito facilmente entrar em qualquer do Facebook contas ou contas do Gmail ou contas de Twitter que estão aqui, abertos na sala, se você não estiver usando SSL e se o site é não usar SSL corretamente. Assim, a transição para um outro vamos. Assim, uma outra história verdadeira. E isso só quebrou na notícias uma ou duas semanas atrás. Verizon tem vindo a fazer uma coisa muito mal, e quanto melhores as pessoas podem dizer, desde que pelo menos 2012, segundo a qual, quando você acessar sites através de um Verizon telefone celular, qualquer que seja o fabricante é, eles têm sido soberbamente, como a história vai, injetando toda a sua HTTP tráfego seu próprio cabeçalho HTTP. E esse olha cabeçalho como isto-- X-UIDH. UID é como um único identificador ou ID do usuário. E X significa apenas que este é um costume cabeçalho que não é padrão. Mas o que isso significa é que, se eu puxar para cima, por exemplo, qualquer site no meu telefone aqui- e eu estou usando Verizon como meu carrier-- mesmo que o meu computador não pode estar enviando este HTTP cabeçalho, Verizon, o mais rapidamente como o sinal atinge a sua celular torre em algum lugar, tem sido por algum tempo a injectar este cabeçalho em todo o nosso tráfego HTTP. Por que eles fazem isso? Presumivelmente, por razões de rastreamento, por razões publicitárias. Mas a decisão de design imbecil aqui é que um cabeçalho HTTP, como vocês sabem de pset6, é recebido por qualquer servidor web que você está solicitando o tráfego de. Então todo esse tempo, se você foi visitar Facebook ou Gmail ou em qualquer site que não usa SSL todo o tempo-- e, na verdade, aqueles dois felizmente agora fazer-- mas outros sites que não use SSL todo o tempo, Verizon tem essencialmente plantado, forçosamente, um selo de mão em toda a nossa mãos que ainda não vemos, mas sim, os sites finais fazer. E por isso não tem sido que difícil para qualquer pessoa na Internet executando um servidor web para perceber, ooh, este é David, ou, ooh, este é Davin, mesmo se estamos rigoroso sobre como limpar os nossos cookies, porque não vem de nós. Está vindo de transportadora. Eles fazem uma pesquisa sobre o número de telefone e depois dizer, oh, este é David. Deixe-me injetar um identificador exclusivo para que os nossos anunciantes ou quem puder manter o controle deste. Então, isso é realmente muito, muito, muito ruim e horripilante. E eu gostaria de encorajá-lo a dar uma olhada, por exemplo, neste URL, o que eu deveria assumem Na verdade, eu tentei isso esta manhã. Eu escrevi um pequeno script, colocá-lo neste URL, visitou-lo com minha própria Verizon cellphone após ligar Wi-Fi desligado. Então você tem que ligar o Wi-Fi desligado para que você estiver usando 3G ou LTE ou similares. E então, se você visitar este URL, todos esse script faz para vocês, se você gostaria de jogar, é ele cospe o que os cabeçalhos HTTP o telefone está enviando para o nosso servidor. E eu, na verdade, na justiça, fez não ver isso, esta manhã, que me faz pensar ou local torre de celular que eu estava ligado a ou outros enfeites não está fazendo isso, ou eles têm recuou de fazer isso temporariamente. Mas, para obter mais informações, a cabeça para este URL aqui. E agora a isto-- este cômico pode fazer sentido. Não? Está bem. Tudo certo. Que morreu. Tudo certo. Então vamos dar uma olhada em alguns dos mais ataques, mesmo que apenas para aumentar a conscientização sobre e, então, oferecer um casal possíveis soluções de modo que você é tudo o mais atento. Este falamos sobre o outro dia, mas não deu um nome a ele. É uma falsificação de solicitação entre sites, o que é uma maneira elegante de dizer excessivamente você enganar um usuário a clicar em uma URL como esta, que os truques em algum comportamento que que não tinha a intenção. Neste caso, esta parece estar tentando me enganar em vender minhas ações da Google. E isso terá sucesso se Eu, o programador de pset7, não ter feito o que? Ou melhor, de forma mais geral, no que casos eu sou vulnerável a um ataque se alguém truques outro usuário a clicar em uma URL como esta? Sim? AUDIÊNCIA: Você não distinguem entre GET e POST. DAVID J. MALAN: Good. Se não distinguir entre GET e POST, e, de fato, se permitirmos GET para vender coisas, estamos convidando esse tipo de ataque. Mas ainda pode mitigá-la um pouco. E eu comentei, eu acho, na semana passada que a Amazon pelo menos tenta atenuar esse com uma técnica isso é bastante simples. O que seria uma coisa inteligente fazer estar em seu servidor, ao invés de apenas vender cegamente qualquer que seja símbolo o usuário digita em? AUDIÊNCIA: Confirmação das sortes? DAVID J. MALAN: Uma tela de confirmação, algo que envolve a interação humana de modo que eu sou forçado a fazer o julgamento, mesmo que eu ingenuamente clicou um link que parece com isso e me levou para a tela do celular, em menos me pediu para confirmar ou negar. Mas não um ataque incomum, especialmente nos chamados phishing ou spam-like ataques. Agora, este é um pouco mais sutil. Este é um cross-site scripting ataque. E isso acontece se o seu site não está usando o equivalente a htmlspecialchars. E ele está tomando a entrada do usuário e apenas cegamente injetá-lo em uma página da web, como com impressão ou eco, com-- novamente-- fora chamar algo como htmlspecialchars. Então, suponha que o site em questão é vulnerable.com. E suponha que ele aceita um parâmetro chamado q. Olhe para o que pode acontecer se eu realmente, um cara mau, digitar ou enganar um usuário em visitar uma URL que se parece com isso- q = tag script aberto, fechado tag script. E mais uma vez, eu estou supondo que não é vulnerable.com vai virar perigoso personagens como suportes abertos em entidades HTML, o E comercial, L-T, coisa vírgula que você pode ter visto antes. Mas o que é o script ou código JavaScript Estou tentando enganar um usuário em execução? Bem, document.location refere para o endereço atual do meu navegador. Portanto, se eu faço document.location =, isso me permite redirecionar o usuário em JavaScript para outro site. É como a nossa função PHP redirecionar, mas feito em JavaScript. Onde estou tentando enviar o usuário? Bem, aparentemente, badguy.com/log.php, que é algum script, aparentemente, o bandido escreveu, que leva um parâmetro chamado biscoito. E note, o que eu parecem ser concatenando para o final desse sinal de igualdade? Bem, algo que diz document.cookie. Nós não falamos sobre isso. Mas acontece que, em JavaScript, assim como no PHP, você pode acessar todos os bolinhos que o seu navegador está realmente usando. Assim, o efeito de um presente linha de código, se um usuário é levado a clicar neste link eo site vulnerable.com não escapar com htmlspecialchars, é que você tem apenas de forma eficaz carregado para log.php todos os seus cookies. E isso não é sempre que problemática, salvo se um desses bolinhos é o seu ID da sessão, o seu o chamado selo de mão, que significa badguy.com pode fazer seu próprio Solicitações HTTP, enviando a mesma mão selo, que mesmo cabeçalho de cookie, e registrar em qualquer site você estava visitando, o que, neste caso, é vulnerable.com. É um cross-site scripting ataque no sentido que você está tipo de enganar um local para contar outro site sobre algumas informações não deve, de fato, têm acesso. Tudo bem, pronto para uma outro detalhe preocupante? Tudo bem, o mundo é um lugar assustador, legitimamente assim. Aqui está uma simples Exemplo JavaScript que é no código-fonte de hoje chamado geolocalização 0 e 1. E há um casal walkthroughs on-line para isso. E isso faz o seguinte, se eu abrir esta página web no Chrome. Primeiro, ele não faz nada. OK, vamos tentar isso de novo. Oh. Não, ele deve fazer algo. OK, stand by. Vamos tentar isso mais uma vez. [Inaudível] Ah, OK, não sei por que as-- oh, o aparelho provavelmente perdeu internet acesso por algum motivo. Tudo bem, então acontece comigo também. Tudo bem, então aviso o que está acontecendo aqui. Esta enigmática aparência URL, que é apenas uma das servidor CS50, quer usar o computador de localização, como fisicamente ele significa. E se, na verdade, eu clico em Permitir, vamos ver o que acontece. Aparentemente, esta é a minha latitude atual e longitudinal coordena baixo a um muito bom danado resolução. Assim como eu chegar a essa? Como é que este site, como servidor CS50, saber fisicamente onde no mundo Eu estou, e muito menos com essa precisão. Bem, acontece out-- vamos apenas olhar para source-- da página isso aqui é um monte de HTML em o fundo que tem a primeira isto-- onload corpo = "geograficamente" - apenas uma função que eu escrevi. E eu estou dizendo, no carregamento a página, chamar geograficamente. E então não há nada no corpo, porque na cabeça da página, perceber o que eu tenho aqui. Aqui está a minha função geograficamente. E este é apenas um erro checking-- se o tipo de navigator.geolocation não é indefinido. Então JavaScript tem este mecanismo onde você pode-se dizer, qual é o tipo desta variável? E se não for undefined-- isso significa que é algum value-- Eu vou ligar navigator.geolocation.getCurrentPosition e depois retorno. O que é isso? Assim, em geral, o que é um retorno, só para ficar claro? Você pode ter encontrado este já em pset8. Callback é um genérico prazo para fazer o que? Sinto como se só eu hoje. AUDIÊNCIA: [inaudível]. DAVID J. MALAN: Exatamente, uma função que deve ser chamado apenas quando temos dados. Esta chamada para o navegador, buscar o meu atual posição, pode demorar um milésimo de segundo, isso pode levar um minuto. O que isto significa é que estamos dizendo o método get getCurrentPosition, chamar esta função de retorno de chamada, que eu, literalmente, chamado callback para simplicidade, o que aparentemente, é este aqui. E a maneira getCurrentPosition funciona, simplesmente lendo a documentação para algum código JavaScript on-line, é que ele chama de que a chamada de retorno de chamada função, passa-lo em que um objeto JavaScript, no interior dos quais é .coords.latitude e .coords.longitude, que é exatamente como, então, quando eu recarregar esta página, Eu era capaz de ver a minha localização aqui. Agora, pelo menos, havia uma defesa aqui. Antes que eu visitei esta página, quando ele realmente funcionou, o que eu estava pelo menos solicitada? AUDIÊNCIA: [inaudível]. DAVID J. MALAN: Sim ou Não-- fazer você deseja permitir ou negar isso? Mas acho que, também, sobre os hábitos Vocês provavelmente têm adotado, tanto em seus telefones e seus navegadores. Muitos de nós, eu incluídos, são provavelmente bastante predispostos estes dias-- você ver um pop-up, apenas Enter, OK, Aprovar, Permitir. E cada vez mais, você pode colocar se em risco por essas razões. Então, na verdade, não havia essa maravilhosa bug alguns anos ago-- ou falta de feature-- iTunes que tinha alguns anos atrás, pelo que, se você tivesse um telefone celular, e foi um iPhone, e você deixou a sua casa e, portanto, viajou ao redor do mundo ou do bairro, todo esse tempo, o telefone estava registrando onde você está através do GPS. E, na verdade, esta é divulgada, e as pessoas esperam que este tipo de empresa. O telefone sabe onde você está. Mas o problema era que, quando você estava fazendo backup o telefone para iTunes-- isso foi antes os dias de iCloud, o que é melhor para o ou para worse-- os dados foram armazenados sendo no iTunes, completamente sem criptografia. Então, se você tem uma família ou colegas de quarto ou um vizinho mal-intencionado que é Curioso sobre literalmente todos os GPS coordenar você já foi para, ele ou ela poderia apenas sentar-se no iTunes, execute algum software que foi livremente disponíveis, e produzir mapas como este. Na verdade, isso é o que eu produzido do meu próprio telefone. Eu liguei. E parece que, com base sobre os pontos azuis lá, que é onde a maioria dos as coordenadas GPS foram registrado pelo iTunes que eu foi no Nordeste lá. Mas, aparentemente, viajou ao redor um pouco, mesmo dentro de Massachusetts. Então, isso é o Porto de Boston lá na direita. Esse é um tipo de Cambridge e Boston, onde é mais escura. E, ocasionalmente, eu correria incumbências para uma geografia maior. Mas iTunes, durante anos, teve, como melhor Eu poderia dizer, todos esses dados em mim. Você poderia dizer que, Naquele ano, eu estava realmente viajando muito entre Boston e Nova York, indo e voltando e para trás e para frente. E, de fato, este é me em Amtrak, de volta e para a frente, para trás e para a frente, um pouco. Tudo isso estava sendo registrado e armazenados criptografados no meu computador para qualquer um que pode ter acesso ao meu computador. Esta foi preocupante. Eu não sabia por que eu estava na Pensilvânia, ou porque meu telefone estava na Pensilvânia, aparentemente bastante densa. E então, finalmente, eu olhei na minha Gcal, e, oh, I visitou CMU, Carnegie Mellon, no momento. E ufa, esse tipo de explicou que blip. E então, se você aumentar o zoom a mais, você pode veja visitei San Francisco uma ou mais vezes, em seguida, e eu ainda tinha uma escala em que Eu acho que é Vegas, lá em baixo. Então, tudo isso- apenas um escala, no aeroporto. AUDIÊNCIA: [Risos] Então, isso é só para dizer que estes problemas, honestamente, são onipresentes. E isso só se sente cada vez mais como há mais e mais deste que está sendo divulgado, o que provavelmente é uma coisa boa. Eu ouso dizer, o mundo não é piorando no software de gravação. Estamos ficando cada vez melhor, esperançosamente, em perceber quão ruim determinado software é que estamos usando. E, felizmente, alguns empresas estão começando de ser responsabilizado por isso. Mas que tipos de defesas você pode ter em mente? Portanto, além de gerentes de senha, como 1Password e LastPass e outros, além de apenas mudar suas senhas e chegando com os aleatórios usando o software como disso, você também pode tentar o melhor que puder para criptografar todo o tráfego para, pelo menos, limitar a zona de uma ameaça. Assim, por exemplo, como afiliados de Harvard, tudo que você pode ir para vpn.harvard.edu e faça login com seu ID e PIN Harvard. E isso vai estabelecer um seguro conexão entre você e Harvard. Agora, isso não faz necessariamente protegê-lo contra quaisquer ameaças que estão entre Harvard eo Facebook ou Harvard e Gmail. Mas se você está sentado em um aeroporto ou se você estiver sentado no Starbucks ou você está sentando-se em casa de um amigo, e você realmente não confiar neles ou seu configuração de seu roteador doméstico, pelo menos você pode estabelecer uma conexão segura a uma entidade como este lugar que é provavelmente um pouco melhor garantidos do que algo como um Starbucks ou semelhantes. E o que isso faz é estabelece, mais uma vez, criptografia entre você e ponto final. Mesmo apreciador são coisas como esta. Então, alguns de vocês já pode estar familiarizado com Tor, que é esse tipo de anonimização rede, em que muitas pessoas, se executar este software, rota posteriormente a sua internet tráfego através de um ao outro. Assim, o ponto mais curto é não mais entre A e B. Mas pode ser todo o colocar de modo que você está essencialmente cobrindo uma de faixas e deixando menos de um registro a respeito de onde o HTTP tráfego veio, porque ele vai através de um monte de outras pessoas laptops ou desktops, para melhor ou para pior. Mas mesmo isso não é uma coisa infalível. Alguns de vocês podem se lembrar do ano passado o susto que foi chamado na bomba. E foi rastreada finalmente, para uma usuário que tinha usado esta rede aqui. E a captura lá, se bem me lembro, é, se não há que muitas outras pessoas usando um software como este ou usando esta porta e protocolo, isso não é tão difícil para uma rede de mesmo descobrir quem, com alguma probabilidade, era, na verdade anonimato o seu tráfego. E eu não sei se aqueles eram o dados reais em questão. Mas, certamente, percebe que nenhum dos estas são soluções infalíveis, assim. E o objetivo aqui hoje é para menos você pensar sobre essas coisas e chegando com técnicas de defender-se contra eles. Qualquer dúvida sobre todas as ameaças que esperam por você lá fora, e aqui? Sim? AUDIÊNCIA: Como fazer seguro esperamos que a média [? site para ser,?] como o projeto média CS50? DAVID J. MALAN: O média projecto CS50? É sempre provou que todos os anos alguns projetos finais CS50 não são particularmente seguro. Geralmente, é um companheiro de quarto ou hallmate que os números esta fora enviando pedidos ao seu projeto. Answer-- Curto quantas sites são seguros? Eu estou mexendo com anomalias de hoje. Como se fosse apenas casualidade que eu percebi que este site Fui encomendar estes francamente deliciosos arranjos de-- e eu não tenho certeza que vou parar de usar seu site; Eu só poderia mudar a minha senha mais regularly-- não está claro o quão vulneráveis ​​todos estes various-- este é realmente coberto de chocolate. A resposta curta, eu não posso responder a essa de forma eficaz, além de dizer que Não foi tão difícil para mim encontrar alguns desses exemplos apenas em prol da discussão em aula. E apenas manter um olho em Google News e outros recursos trará ainda mais de estes tipos de coisas à luz. Tudo bem, vamos concluir com este prequel que a equipe de CS50 tem preparado para você em antecipação do CS50 Hackathon. E sobre o caminho para sair de uma momento, a fruta será servido. [REPRODUÇÃO DE VÍDEO] [MUSIC Fergie, Q Tip, E GoonRock, "A Festinha nunca matou NINGUÉM (ALL WE GOT) "] - [Ronco] [FIM REPRODUÇÃO DE VÍDEO] DAVID J. MALAN: Isso é tudo para CS50. Vamos vê-lo na quarta-feira. [MÚSICA - Skrillex, "IMMA" experimentá-lo "]