Desmistificando a Criptografia

Desde as revelações do Snowden sobre o programa de espionagem do governo americano, a criptografia tem sido tema de debate em diversos espaços e não mais apenas dentro do círculo de especialistas em segurança da informação. Em muitos desses debates, a criptografia é tratada como a única solução possível tanto para a garantia da privacidade no uso da Internet quanto para se proteger da espionagem. Porém, ainda há muitas dúvidas sobre o que ela seria e o quais são as suas limitações.

A palavra criptografia vem de palavras gregas que significam “escrita secreta”. O primeiro esquema de criptografia data de antes de Cristo e é conhecida como a cifra de César. Nessa cifra, cada letra era substituída por outra que estivesse algumas posições a frente. Por exemplo, todas as letras "As" do texto eram substituídas por "Ds", todos os "Bs" por "Es", e assim por diante. É um algoritmo bastante simples e descobrindo-se a regra é facilmente desvendada a mensagem.

Pode-se dizer que a criptografia é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (detentor da "chave secreta"), o que a torna difícil de ser lida por agentes não autorizados. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade.

De acordo com Tanembaum e Wetherall (2011), as mensagens a serem criptografadas, denominadas como texto simples, são transformadas por meio de uma função parametrizada por uma chave. Em seguida, a saída do processo de criptografia, conhecida como texto cifrado, é transmitida. Stallings (2015) diz que o processo de converter um texto claro em um texto cifrado é conhecido como cifração ou encriptação, enquanto a restauração do texto claro a partir do texto cifrado é chamada de decifração ou decriptação.

Atualmente, existem diversas técnicas e algoritmos para cifração. Uma das formas de classificar sistemas criptográficos se refere ao número de chaves utilizadas no processo. Se tanto o emissor quanto o receptor utilizarem a mesma chave, o sistema é classificado como encriptação simétrica; já se o emissor e o receptor usarem chaves diferentes, o sistema é classificado como encriptação assimétrica ou de chave pública (STALLINGS, 2015).

Stallings (2015) afirma que não existe algoritmo de encriptação que seja incondicionalmente seguro. O que se pode obter é um esquema de encriptação considerado computacionalmente seguro, em que o algoritmo atende a pelo menos um dos critérios: (1) o custo para quebrar uma cifra ultrapassa o valor da informação encriptada e (2) o tempo exigido para quebrar a cifra supera o tempo útil da informação. Ou seja, em princípio se você tiver tempo e poder computacional infinitos é possível quebrar qualquer algoritmo criptográfico e descobrir a informação.

Uma das formas mais conhecidas para se descobrir uma informação cifrada de forma não autorizada, como por exemplo senhas de usuários, é o ataque por força bruta. Esse ataque consiste em utilizar o processamento computacional para descobrir a informação por meio de tentativas e erros. O tempo necessário para a descoberta pode variar de acordo com a quantidade possível de tentativas por segundo (capacidade computacional) e a probabilidade de acerto (número de combinações diferentes possíveis) (CERT.BR, s.d.).

Apesar do que se possa pensar inicialmente, Tanembaum e Wetherall (2011) enfatizam a importância do caráter não sigiloso do algoritmo de encriptação a ser utilizado. A estratégia, conhecida como "segurança pela obscuridade", em que se tenta manter o algoritmo secreto, não é aconselhada. Ao tornar o algoritmo público, inúmeros criptólogos podem tentar decodificar o sistema e caso muitos tenham tentado isso durante cinco anos após a sua publicação e nenhum tenha conseguido, há uma grande probabilidade de que o algoritmo seja sólido (TANEMBAUM E WETHERALL, 2011). Na verdade, o sigilo deve estar na chave, e seu tamanho é uma questão muito importante no projeto de um algoritmo de encriptação. De forma geral, quanto maior for o tamanho da chave, mais segura estará a informação cifrada.

Outra vantagem do algoritmo criptográfico ser aberto é a de que se pode verificar que não há a existência de backdoors. Uma backdoor é um método, muitas vezes secreto, de transpor a autenticação normal para um produto, sistema de computador, criptosistema ou algoritmo etc. Backdoors são freqüentemente usadas para assegurar acesso remoto não autorizado a um computador ou obter acesso a textos em sistemas criptográficos. Um cenário em que pode ser útil é na espionagem de pessoas e/ou instituições. Porém, a sua utilização fragiliza o mecanismo de segurança da informação e é desencorajada, pois pode ser explorada por atacantes para diversos fins, como roubo e alteração de dados, etc.

Com o advento de aplicativos de comunicação via celular, o uso de algoritmos criptográficos migrou para essa plataforma a fim de garantir uma comunicação sigilosa ponta a ponta. Nesse cenário, há um grande desafio que é a distribuição segura das chaves através da Internet. Segundo Stallings (2015), a força de qualquer sistema criptográfico está na técnica de distribuição de chave, um termo que se refere aos meios de entregar uma chave a duas partes que querem trocar dados, sem permitir que outros vejam a chave. Isso porque para que a encriptação simétrica funcione, as duas partes precisam compartilhar a mesma chave, que precisa ser protegida contra o acesso por outras partes sem permissão.

A distribuição de chave pode ser feita de várias maneiras, sendo que o uso de um centro de distribuição de chaves (CDC) tem sido bastante adotado (STALLINGS, 2015). Ele é responsável por distribuir chaves a pares de usuários conforme a necessidade. Cada usuário precisa compartilhar uma chave exclusiva com o CDC, para fins de distribuição delas. De acordo com Stallings (2015), a utilização de um CDC é baseada no uso de uma hierarquia de chaves com, no mínimo, dois níveis. A comunicação entre as pontas é encriptada usando uma chave temporária, normalmente referenciada como uma "chave de sessão", que normalmente é usada pela duração de uma conexão lógica e depois descartada. Cada chave de sessão é obtida a partir do CDC e transmitida em formato encriptado, usando uma chave mestra exclusiva, que é compartilhada pelo centro e o usuário final (STALLINGS, 2015). Pode-se adicionar mais um nível na hierarquia de chaves, em que a encriptação de chave pública é usada apenas para atualizar a chave mestra entre um usuário e o CDC. O acréscimo dessa camada oferece um meio seguro e eficiente de distribuir chaves mestras. Esse esquema de CDC é usado, por exemplo, em aplicativos como o WhatsApp.

Apesar da criptografia ser uma área de estudo consolidada, ela é bastante dinâmica. A todo momento são lançados novos algoritmos criptográficos para serem testados por criptólogos a fim de descobrirem falhas, enquanto algoritmos já consolidados se tornam obsoletos devido ao aumento do poder de processamento dos computadores. Os estudos mais atuais dentro dessa área são os de criptografia pós-quântica que se refere a algoritmos criptográficos considerados seguros contra um ataque de um computador quântico.

Os algoritmos de chave pública mais populares atualmente podem ser quebrados de modo eficiente por um computador quântico grande o suficiente. A segurança dos algoritmos atuais se baseia em um dos três problemas matemáticos difíceis de serem solucionados pelos computadores eletrônicos: o problema de fatoração de inteiros, o problema de logaritmo discreto ou o problema de logaritmo discreto de curva elíptica. Porém, todos eles podem ser facilmente resolvidos em um computador quântico potente o suficiente executando o algoritmo de Shor, que é um algoritmo para fatoração de números inteiros (informalmente ele resolve o seguinte problema: dado um número inteiro N, encontre os fatores primos dele). Ainda que os computadores quânticos atuais conhecidos sejam muito pequenos para atacar qualquer algoritmo criptográfico real, muitos criptólogos estão projetando novos algoritmos para se preparar para quando a computação quântica se torne uma realidade e uma ameaça.

Bibliografia

CERT.BR. Cartilha de Segurança para a Internet. Disponível em: < http://cartilha.cert.br/ataques/ >. Acessado em 26 mar. 2017.

STALLINGS, W. Criptografia e Segurança de Redes: Princípios e Práticas – 6ª edição. São Paulo: Pearson. 2015. ISBN 978-8543005898.

TANENBAUM, A. S.; WETHERALL, D.  Redes de Computadores - 5ª Edição. São Paulo: Pearson. 2011. ISBN  857605924X.

WIKIPEDIA. Criptografia. Disponível em: < https://pt.wikipedia.org/wiki/Criptografia >. Acesso em: 26 mar. 2017.

WIKIPEDIA. Post-quantum cryptography. Disponível em: < https://en.wikipedia.org/wiki/Post-quantum_cryptography >. Acesso em: 26 mar. 2017.