Web Segura: HTTPS em todo o sítio
Durante vários anos fomos habituados a ver a adopção do HTTPS como uma necessidade das entidades comerciais que lidam com dados sensíveis, sendo os dados pessoais e financeiros os principais motivadores. O protocolo de comunicação da Web Segura que em anos recentes veio a ser adoptado por cada vez mais entidades—comerciais e não só—tem geralmente passado despercebido pelos utilizadores que protege. Para quem mantém websites, historicamente tem sido visto como um custo adicional, tanto a nível monetário, como em desempenho e em tempo.
No entanto, o principal sistema que mantém a Web segura tem mais importância do que muitos reconhecem, e serve para mais do que apenas proteger informação privada.
A Web em protocolos: HTTP & HTTPS
A norma HTTP, ou HyperText Transfer Protocol, foi publicada pela primeira vez no início dos anos 90, tendo chegado oficialmente à primeira versão em 1996. A Web, que assenta inteiramente sobre este protocolo, ganhou popularidade durante esta década e tornou-se um dos principais usos da Internet—sendo para muitas pessoas dois termos sinónimos.
Tal como muitos outros protocolos criados para a Internet, o HTTP não foi desenhado inicialmente tendo a segurança como prioridade, sendo por isso vulnerável. Poucos anos depois da normalização do HTTP, a sua versão segura foi apresentada.
O HTTPS, ou HTTP Secure, foi inicialmente criado em 1994, e formalizado já na mudança de milénio, em 2000. Não é um protocolo completamente novo, mas sim o protocolo já existente, HTTP, envolvido numa camada de segurança—um protocolo inicialmente chamado SSL, Secure Sockets Layer, tendo evoluído a partir do fim da década de 90 com a denominação TLS, Transport Layer Security.
HTTPS em todo o sítio
Nos últimos anos, o incentivo em tornar a Web completamente segura tem sido cada vez mais forte, e bastante promovido por diversas entidades.
Em 2010 a Google propôs um novo protocolo para a Web chamado SPDY, cuja principal característica é tornar as comunicações mais rápidas e eficientes através de modificações ao HTTP. O SPDY (lê-se speedy) propunha também a utilização do protocolo TLS—o mesmo que o HTTPS usa—para ter segurança desde o primeiro momento. O SPDY foi utilizado como ponto de partida para o desenvolvimento do HTTP/2, a versão mais recente do protocolo da Web e a maior actualização do protocolo em mais de 15 anos.
Também em 2010 foi amplamente divulgada uma extensão para o Mozilla Firefox, Firesheep, que trivializava o processo de roubar cookies (o mecanismo de “memória” para o HTTP) passadas em comunicações feitas por redes sem fios inseguras, como algumas redes WiFi em cafés. Esta extensão veio chamar à atenção uma vulnerabilidade grave já conhecida há vários anos, permitindo ao atacante aceder às contas de outros utilizadores em vários sites que não comunicavam sobre HTTPS com as cookies roubadas. Esta foi a gota de água para muitas organizações na Web, que responderam oferecendo comunicação exclusivamente em HTTPS aos seus utilizadores, o que os protegia do ataque feito com o Firesheep.
Em 2014 a Google anunciou que o seu motor de busca passou a usar a acessibilidade por HTTPS como um factor para a ordenação de resultados nas páginas de pesquisa, ainda que tenha pouca influência inicialmente.
No entanto, nem todos os websites têm um sistema de login com contas para os seus utilizadores, nem lidam com dados confidenciais. Muitas das páginas na Web são artigos, tal como este. A Wikipedia é um exemplo de um website muito popular cuja esmagadora maioria dos utilizadores utiliza apenas de forma passiva, lendo a informação contida nas páginas, sem qualquer outra interacção.
Qual é o motivo deste incentivo a que a Web passe a 100% segura? Para percebermos isso precisamos de perceber como funciona a Internet.
De mão em mão: A comunicação na Internet
A comunicação pela Internet—seja ela Web, correio electrónico, ou qualquer outro formato—envolve que todo o conteúdo no trajecto entre o remetente e o destinatário da comunicação passe por um diverso número de redes—as que formam a Internet. Estas redes são operadas por várias organizações que asseguram a comunicação entre si de forma a que qualquer ponto da internet seja acessível por qualquer outro.
Comunicações tal como HTTP são transmitidas em claro, visíveis por qualquer pessoa no canal por onde passam. Se, por um lado, nestas redes é possível observar o que passa—e tal é necessário para poder transmitir a informação até ao seu destino—também é possível que o conteúdo da comunicação possa ser alterado caso esta não seja protegida. Em qualquer dos casos, alterando ou não, podem ser efectuados ataques à comunicação.
Importância dos Ataques
É comum ouvir ou ler argumentos que minimizam a importância de ataques, alegando não se ser importante o suficiente para se ser um alvo, mas cada vez mais se verifica que essa justificação não é coerente com a realidade em que os atacantes não são necessariamente indivíduos que atacam uma vítima com precisão, mas sim sistemas automatizados que atacam todas as comunicações possíveis numa espécie de “arrastão”.
Os ataques que apenas inspecionam os conteúdos das comunicações, chamados ataques passivos, permitem obter informação considerada privada: desde informação de identidade pessoal a números de cartões de crédito e outras informações financeiras, mas também conversas privadas ou mesmo—como no caso do Firesheep—as cookies que identificam individualmente os utilizadores num site, e que ao serem obtidas por um terceiro permitem-lhe fazer-se passar pela vítima.
Mas também existem ataques em que o conteúdo da mensagem é alterado, chamados ataques activos, sendo especialmente apetecíveis para explorar vulnerabilidades em Web Browsers como o Google Chrome ou Mozilla Firefox. Estes ataques podem ser usados para introduzir elementos que permitem que o utilizador seja seguido por todos os locais que visita na Web, ou mesmo para fins maliciosos de infectar computadores e outros dispositivos.
Por tornar toda a comunicação mais segura, tanto do ponto de vista da privacidade das comunicações como também para evitar ataques, o HTTPS tornou-se um protocolo de vital importância para a Web.
Mas o que é que, e como, faz este protocolo? Primeiro, vamos visitar o que significa Secure em HTTPS.
Secure—no seu contexto inesperado
A palavra secure tem um significado que não corresponde às expectativas do utilizador menos técnico—e talvez até de alguns mais técnicos. Não se trata de um problema de tradução, mas sim de interpretação.
Durante grande parte das últimas duas décadas em que os computadores se tornaram ferramentas comuns e diárias, o internauta esteve exposto a um problema de segurança que o afecta directamente: o malware (ou vírus, ainda que esta descrição seja redutora). Mas não é desta ausência de malware que se trata quando falamos de segurança em HTTPS.
A segurança, no contexto deste protocolo em que a Web assenta, é diferente, relacionando-se com três princípios simples para proteger comunicações: privacidade, integridade e autenticação. Comecemos pelo mais popular.
Privacidade
Entre as três partes que compõem HTTPS, a privacidade tem sempre um especial destaque.
A privacidade é oferecida por cifras com o objectivo de tornar o conteúdo da comunicação incompreensível para terceiros, sendo perceptível apenas pelas partes que comunicam. Trata-se de uma função importante, sem dúvida, especialmente desde os dias em que a Web era usada por comércio online e entidades bancárias para proteger as comunicações com os seus clientes. Esta confidencialidade permitiu à Web ser um meio comercial com sucesso, o que reforçou a sua popularidade.
Mas uma conexão segura é igualmente importante para comunicações que não têm particular necessidade de privacidade. É aqui que entram a integridade e a autenticação.
Integridade
A segunda componente, que em geral não tem tanta atenção quando se fala no protocolo da Web Segura, é a garantia da integridade da comunicação.
Ao saber que nenhum byte foi alterado entre as duas partes que comunicam, podemos ter a certeza que a informação que chegou do outro lado do canal de comunicação é exactamente a que foi enviada. Na viagem da informação entre quem a envia até quem a recebe é possível que hajam alterações—intencionais ou não—do conteúdo enviado, tornando-o incompreensível, ou pior ainda, transformando-o em algo inesperado e malicioso (os ataques).
Sabendo que a comunicação chegou tal como foi enviada, podemos ter a certeza que nenhum terceiro manipulou a comunicação a meio.
Mas tanto a integridade como a privacidade da comunicação precisam de assentar sobre alguma confiança sobre com quem estamos a comunicar—de outra forma poderíamos falar com um impostor sem saber. É essa a função da autenticação.
Autenticação
A autenticação passa muitas vezes como um assunto secundário (e inconveniente) quando se fala em HTTP Seguro. O objectivo desta componente é estabelecer a confiança que as partes envolvidas na comunicação são quem dizem ser, e desta forma garantir que não há um terceiro a meio da ligação.
Na esmagadora maioria dos casos em que HTTPS é usado, a autenticação é apenas feita num sentido: o website apresenta um certificado—uma prova que é verificada pelo receptor contra uma lista de entidades certificadoras—e a sua autenticidade é verificada ou rejeitada conforme haja confiança no signatário do certificado.
Esta componente é essencial para que a privacidade e integridade da comunicação sejam garantidas, pois de outra forma um terceiro poderia colocar-se a meio da ligação fazendo-se passar, por um lado, pelo servidor a que nos estamos a ligar, mas também pelo cliente que o servidor real espera que esteja no outro lado, mesmo que existisse privacidade e integridade.
O processo de transição
Esta ambição de tornar toda a Web segura, ainda que nobre, está dependente de uma transição sempre demorada e que nunca ficará concluída a 100%.
Existem diversos incentivos, desde os que são mais próximos aos operadores dos sítios Web como a segurança dos seus utilizadores, até aos mais institucionais como o “bónus” que é dado pelos motores de busca nas suas páginas de resultados. E existem cada vez menos razões para não se transitar para a oferta de conexões seguras aos utilizadores da Web: o impacto no desempenho dos websites é negligenciável (ou até benéfico como provado pelo SPDY e HTTP/2), e os custos em tempo e dinheiro são cada vez menores com a existência de diversos recursos gratuitos que ajudam todos os operadores a transitar as suas propriedades para serem servidas por HTTPS.
Mas sem dúvida que quanto mais ubíqua for a Web segura, melhor será para todos nós, utilizadores dela, que aumentamos em número de hora para hora.