A criptografia é uma maneira de converter informações em códigos impossíveis de serem lidos, os chamados textos cifrados, criptogramas ou ciphertexts, em inglês. O objetivo da criptografia é ocultar dados de pessoas não autorizadas, fazendo com que usuários não autorizados não possam ler o que está escrito, protegendo assim as informações.
Boa parte dos sistemas, aplicativos e sites utilizam algum método de criptografia para transmitir dados de forma segura pela internet. Porém, sabemos que esse tema pode levantar muitas dúvidas. Sendo assim, vamos explicar, de forma totalmente simples, como a criptografia funciona, qual a importância dela na internet, como um todo, e quais os diferentes tipos de criptografia e algoritmos utilizados nas plataformas digitais e que também podem ser usadas em seu site ou blog.
O que é criptografia?
A criptografia é a técnica de codificar informações de forma que apenas pessoas autorizadas possam compreendê-las, protegendo a confidencialidade e a segurança dos dados.
Portanto, criptografia é um método de proteção de informações em que os dados ficam impossíveis de serem lidos, exceto caso se tenha a chave para descriptografá-los. Essa técnica de segurança é muito importante para assegurar a segurança de dados que devem ser confidenciais, como senhas, informações financeiras de clientes e comunicações online.
Como a criptografia funciona?
A criptografia utiliza uma chave criptográfica (ou apenas chave, como também é conhecida) que codifica e o embaralha, transformando todo o conteúdo do arquivo em um código “estranho” e impossível de ser lido.
Quanto maior for o tamanho ou comprimento da chave criptográfica, normalmente medida em bits, maior é a segurança, porque maiores são as possíveis variações para essa chave.
Do mesmo modo, quanto menor for o tamanho ou comprimento de uma chave, menor é a segurança, porque são poucas combinações diferentes para a chave.
Toda e qualquer pessoa que tenha a chave criptográfica consegue descriptografar um arquivo e ler o conteúdo dele. Por causa disso, para evitar que pessoas mal intencionadas façam isso, é preciso seguir práticas recomendadas de gerenciamento das chaves, como dar vida útil para elas, proteger o armazenamento, restringir seu uso e acesso e criar logs de acesso às chaves.
Todas as recomendações acima são bem técnicas e se tratando do seu site ou blog, não são realmente necessárias, uma vez que há vários plugins e recursos do servidor de hospedagem que trazem o poder da criptografia de uma forma simples para você.
Por que a criptografia é importante?
Porque, levando em consideração todas as tecnologias e recursos de proteção, a criptografia é uma das formas mais eficientes para assegurar que apenas você (e quem você queira) tenha acesso aos seus dados.
Por exemplo, o certificado SSL de um site utiliza criptografia para embaralhar os dados enviados entre um usuário e um servidor de determinado site. Sem isso, qualquer pessoa poderia interceptar as informações e ler informações sigilosas. Em uma loja virtual sem criptografia, ou seja, sem o SSL, se alguém interceptar os dados de compra de um cliente, verá o número do cartão de crédito, a senha, a data de validade e muitos outros dados.
Porém, se esses dados forem criptografados pelo SSL, mesmo que a comunicação entre servidor e navegador seja interceptada, ninguém conseguirá ler aquela informação, fazendo com que os dados do usuário estejam seguros.
Não podemos esquecer também da importância da criptografia para que seu negócio, digital ou não, cumpra todos os requisitos solicitados pela LGPD, a Lei Geral de Proteção de Dados. Ter um site, com dados sensíveis, sem criptografia, pode acarretar problemas legais e muito dinheiro gasto em sanções ou multas.
Quais os tipos de criptografia?
Existem dois métodos de criptografia: simétrico e assimétrico. Os nomes parecem ser confusos, mas o conceito é extremamente simples, já que eles se baseiam no número de chaves utilizadas durante a comunicação.
Criptografia simétrica
Na criptografia simétrica, o emissor e receptor dos dados usa a mesma chave para codificar e decodificar as informações enviadas. Como é a mesma chave, o processo utilizado é feito de forma bem mais rápida. Porém, por essa agilidade, se perde um pouco da segurança.
Portanto, a criptografia simétrica é interessante nas situações em que desempenho é a prioridade. Muitas empresas, por exemplo, usam esse tipo específico de criptografia para arquivos e dados estacionários, ou seja, arquivos que ficam parados ou pouco modificados, como contratos, métodos e manuais.
Criptografia assimétrica
A criptografia assimétrica, também chamada de criptografia de chave pública, utiliza duas chaves diferentes, mas associadas matematicamente: a chave pública e a chave privada.
Para ter uma ideia de como as duas chaves funcionam, vamos a um pequeno exemplo: Imagine que João e Maria querem se comunicar de forma segura pela internet. Cada um deles possui um par de chaves: a chave pública, compartilhada com todos, e a chave privada, mantida em sigilo.
Quando João deseja enviar uma mensagem para Maria de forma segura, ele a criptografa usando a chave pública de Maria. Isso significa que apenas a chave privada de Maria pode descriptografar a mensagem.
Qual a vantagem disso? A vantagem é que mesmo que alguém intercepte a mensagem, ela permanecerá ilegível, pois só a chave privada pode decifrá-la.
Além de criptografar mensagens, a criptografia assimétrica também é usada para criar assinaturas digitais. Para isso, se encripta um resumo (hash) da mensagem com a chave privada. Quando o receptor receber a mensagem e a assinatura, é possível usar a chave pública para verificar se a assinatura corresponde de verdade à mensagem original, assegurando que a mensagem não foi adulterada e realmente veio do emissor.
A criptografia assimétrica é usada de forma ampla nos sistemas de internet. Ela protege, por exemplo, transações em plataformas digitais de bancos, comunicações sensíveis, autenticação de usuários e outras aplicações. Para se ter ideia, criptografia assimétrica é a base para a tecnologia SSL/TLS que torna mais seguras as conexões HTTPS.
Lembrando que, assim como a criptografia simétrica era mais rápida e menos segura, a criptografia assimétrica é o contrário. Ela é muito mais segura, mas tende a não ser rápida em comparação com a outra.
Por último, é crucial destacar que a chave privada deve ser guardada com o máximo de proteção, pois se for comprometida, toda a aplicação ou sistema corre risco.
O que é um algoritmo de criptografia?
Um algoritmo de criptografia é, basicamente, uma fórmula matemática que converte os dados em ciphertexts (ou seja, em texto criptografado). O mesmo algoritmo, por exemplo, possibilita tanto a encriptação quanto a desencriptação de determinado conteúdo, a depender, claro, do método utilizado.
Quais os algoritmos de criptografia mais utilizados?
Existem diversos algoritmos de criptografia amplamente usados em aplicações de segurança. Vamos apresentar alguns dos mais conhecidos:
RSA
Provavelmente um dos algoritmos de criptografia assimétrica mais populares na atualidade. É usado para encriptação e para assinaturas digitais. Se baseia no desafio que é fatorar grandes números inteiros em seus primos constituintes.
AES (Advanced Encryption Standard - Padrão de encriptação avançada)
Outro algoritmo de criptografia simétrica usado de forma abrangente. Ele funciona com blocos de dados e dá suporte a chaves de tamanhos variados como 128, 192 e 256 bits. É usado em muitas aplicações, incluindo proteção de dados em trânsito e armazenados.
DES (Data Encryption Standard - Padrão de encriptação de dados)
Não é considerado o método mais seguro, principalmente levando em consideração algoritmos mais modernos. Ainda assim, ele possui seu valor por ser um dos primeiros algoritmos adotados para criptografia simétrica. Foi substituído naturalmente pelo AES (que falamos no tópico anterior) devido à sua vulnerabilidade a ataques de força bruta.
Triple DES (3DES)
Um upgrade do DES original, o 3DES faz o algoritmo DES três vezes consecutivas com chaves diferentes. Por isso, é bem mais seguro que o DES tradicional, mas também está sendo substituído pelo AES de forma gradual.
Diffie-Hellman
Algoritmo de troca de chaves para estabelecer uma chave compartilhada de forma segura, mesmo em um canal não seguro. É usado com frequência servindo de ajuda a outros algoritmos de criptografia para, dessa forma, criar uma comunicação segura.
ECC (Elliptic Curve Cryptography)
Método de criptografia assimétrica que usa curvas elípticas ao invés de números inteiros. De forma geral, oferece níveis de segurança similares aos algoritmos de chave mais longa. Porém, com chaves mais curtas, fazendo ele ser bem mais eficiente.
Blowfish
Algoritmo de criptografia de bloco simétrico feito para unir muita segurança e alto desempenho. Foi muito usado no passado, mas também está sendo substituído gradualmente pelo AES.
SHA (Secure Hash Algorithm - Algoritmo de hash seguro)
O SHA não é exatamente um algoritmo de criptografia. Podendo ser considerado um “algoritmo de hash”. Ele é usado para criar resumos (hashes) de dados, usados em assinaturas digitais, senhas seguras e muito mais, servindo como um auxiliar de outros algoritmos.
RC4
Algoritmo de criptografia de fluxo que foi amplamente usado em protocolos de segurança, como SSL e WEP (muito utilizado em roteadores de internet antigamente). Entretanto, devido às vulnerabilidades, não é mais considerado seguro e é desencorajado.
Twofish
Algoritmo de criptografia de bloco simétrico, tido como a evolução do Blowfish. É bem mais seguro e rápido que seu antecessor, mas não foi amplamente adotado quanto o AES.
Camellia
Outro algoritmo de criptografia de bloco simétrico feito pelo Japão e Coreia do Sul. É seguro e usado em várias aplicações, especialmente em segurança de dados em comunicações.
HMAC (Hash-based Message Authentication Code - código de autenticação de mensagem baseada em hash)
Embora não seja realmente um algoritmo de criptografia, é mais um daqueles algoritmos auxiliares. O papel dele é autenticar dados e verificar sua integridade com funções de hash criptográfico, como o SHA.
PGP (Pretty Good Privacy - privacidade muito boa)
Um pacote de criptografia que possui algoritmos como RSA e Diffie-Hellman para encriptação de e-mails e assinaturas digitais. É usado comumente para assegurar privacidade e autenticidade das comunicações via correio eletrônico.
Lattice-based Cryptography (criptografia baseada em rede)
Partindo para um campo mais científico, a Lettice-based criptography utiliza estruturas matemáticas chamadas reticulados para a criação de algoritmos de criptografia pós-quântica. Esses algoritmos são desenvolvidos para resistir a ataques de computadores quânticos.
Perguntas frequentes
É uma técnica utilizada por criminosos para quebrar senhas ou chaves criptográficas através da tentativa repetitiva de todas as combinações possíveis até que se encontre a correta. É um ataque de abordagem exaustiva que pode demorar, mas sem a devida proteção, acaba conseguindo seus objetivos.
A criptografia transforma dados sensíveis em um formato ilegível reversível usando uma chave e a tokenização substitui os dados por tokens não reversíveis.
A criptografia mantém a capacidade de recuperar os dados originais com a chave correta, enquanto a tokenização não permite a recuperação dos dados originais.
A criptografia é usada em protocolos de segurança, como HTTPS, enquanto a tokenização é comum em sistemas de pagamento, onde os números de cartão são substituídos por tokens para proteção adicional (para que nem mesmo quem possua acesso consiga descobrir seus dados).
É impossível definir o método universalmente o mais seguro, porque a segurança depende de diversos outros fatores, como o uso correto da técnica e a robustez do algoritmo.
Atualmente, os algoritmos de criptografia assimétrica, como RSA e algoritmos de chave simétrica, como AES, são considerados amplamente seguros quando usados com chaves longas e boas práticas de segurança.
Conclusão
No artigo de hoje mostramos o mundo impressionante da criptografia e de como ela permite que possamos nos proteger de um número elevado de ameaças. Com o conteúdo, esperamos ter mostrado com exatidão a grande relevância dos algoritmos de encriptação. Sem eles, não teríamos internet banking, redes sociais da maneira que temos hoje e nem aplicações mais robustas.
Esperamos que o conteúdo tenha sido bem esclarecedor, mas caso tenha qualquer dúvida, pode entrar em contato na seção dos comentários que responderemos.
Obrigado por ler até aqui. Um forte abraço!