outubro 9, 2017
Hoje em dia, a Web está muito mais segura se comparada há alguns anos atrás. Ainda assim, ainda ocorrem vazamentos de senhas, acessos não autorizado a sistemas e várias práticas de fraudes e phishing. É preciso criar soluções unificadas para padronizar algumas formas de autenticação e criptografia para prevenir brechas de segurança. Mas o que exatamente está sendo feito para aprimorar a segurança na Web?
Existem vários trabalhos (ativos e outros que já viraram recomendações) do W3C (World Wide Web Consortium) para tornar a Web mais segura. Uma das áreas-chave quando se fala de segurança é a autenticação na Web, quando os dados do usuário (como login e senha) são comparados com os que estão no servidor. Se um login é invadido, a culpa não é necessariamente do usuário: por que o cadastro deixou ele estabelecer uma senha fraca? Por que não houve proteção contra um ataque de força bruta? A senha dele estava devidamente criptografada?
O principal projeto de autenticação no W3C é o Grupo de Trabalho de Autenticação na Web, que visa criar recomendações e, em vários projetos, diminuir a dependência na autenticação baseada em senhas. Com uma autenticação segura e fácil de ser implementada, é possível resolver vários problemas de vazamentos de senhas ou phishing que assolam a Web. É muito importante que esses ataques sejam reduzidos sem muita complicação para o usuário final.
O Grupo de Trabalho de Autenticação na Web também é responsável por trazer as especificações da FIDO Alliance para a Web, por meio das APIs Web FIDO 2.0. Dessa forma, você consegue fazer operações criptográficas fortes direto no navegador da pessoa, sem precisar ficar preso à senha. Por exemplo, é possível que alguém autorize o login em um site no próprio celular, tocando em uma notificação. Por trás dos panos, vários processos de autorização e criptografia acontecem para assegurar que o login seja legítimo.
Outro grande marco para a segurança na Web é o Web Cryptography Working Group. A partir deste outro grupo de trabalho, foi desenvolvida a recomendação que contém a WebCrypto API, que permite a implementação de protocolos de segurança no mesmo nível das aplicações da Web. É possível, por exemplo, manipular e armazenar chaves criptográficas privadas e secretas sem que o cliente tenha acesso aos bits internos das chaves.
É esperado que a adoção da WebCrypto traga muito mais segurança em diversas operações, uma vez que os desenvolvedores não precisam mais criar suas próprias bibliotecas para primitivas criptográficas, ou seja, algoritmos para codificar/decodificar chaves, estabelecer assinaturas digitais e funções hash. Tudo isso rodando na própria Web.
Existem vários cenários nos quais a WebCrypto pode ser útil. Por exemplo, ela permite que duas pessoas conversem em tempo real e de forma totalmente criptografada direto no navegador, ainda com a possibilidade de enviar fotos e outros tipos de mídia. Cada uma dessas pessoas têm chaves públicas e privadas diferentes e podem confirmar suas chaves públicas para confirmar que a conversa é segura. Cada mensagem enviada envolve todo um processo de autenticação e troca de chaves sem a interferência de um terceiro.
Operações bancárias também ficam mais seguras (e práticas), uma vez que bancos podem gerar, direto no navegador, chaves públicas e privadas e armazenar no computador do cliente, sem que essas informações sejam guardadas no servidor – sem precisar instalar programas adicionais! O banco também pode assinar digitalmente um documento, o que pode ser verificado com a chave pública. Além disso, essa chave também serve para descriptografar os documentos enviados, caso a assinatura digital seja válida. O próprio usuário do banco também consegue assinar documentos digitalmente e autorizar pagamentos sem ter problemas com segurança ou muita burocracia, em um cenário ideal.
O Web Cryptography Working Group já encerrou seus trabalhos, pois a WebCrypto API foi elevada com sucesso a uma recomendação do W3C. Os esforços para a segurança continuam no Web Security Interest Group, além do Grupo de Trabalho de Autenticação na Web, que continua publicando rascunhos de seus trabalhos com a intenção de consolidar outras recomendações.
Aprenda mais sobre segurança no workshop de programação segura na Web, realizada por Dionathan Nakamura, analista de Projetos de Segurança no CERT.br/NIC.br. O workshop está dentro da programação da conferência Web.br 2017, um dos principais eventos de desenvolvimento Web do Brasil, que será realizado dias 24 e 25 de outubro, em São Paulo.
inscrições