Fundamentos de Criptografia
Esta aula apresenta os fundamentos da criptografia, abordando os conceitos de criptografia simétrica, assimétrica, funções hash e certificados digitais. O objetivo é fornecer uma base sólida para entender como esses mecanismos garantem confidencialidade, integridade e autenticidade na comunicação digital.
A criptografia é a prática de proteger informações transformando-as em um formato ilegível para terceiros não autorizados. Ela é essencial para a segurança da informação, garantindo confidencialidade, integridade e autenticidade dos dados.
Nesta aula, exploraremos os principais tipos de criptografia: simétrica, assimétrica, funções hash e certificados digitais. Cada um desempenha um papel crucial em diferentes cenários de segurança, desde a proteção de dados em repouso até a verificação de identidade em comunicações online.
Criptografia Simétrica
A criptografia simétrica utiliza a mesma chave para cifrar e decifrar os dados. É um método rápido e eficiente, ideal para grandes volumes de dados. O desafio está na distribuição segura da chave entre as partes envolvidas.
Exemplos de algoritmos simétricos incluem AES (Advanced Encryption Standard) e DES (Data Encryption Standard). O AES é amplamente utilizado por sua segurança e desempenho. No processo, o emissor cifra a mensagem com a chave secreta, e o receptor usa a mesma chave para decifrá-la.
Exemplo conceitual:
Chave: K
Mensagem original: "Olá"
Cifragem: Cifrar("Olá", K) = "Xyz"
Decifragem: Decifrar("Xyz", K) = "Olá"A segurança da criptografia simétrica depende do sigilo da chave. Se a chave for comprometida, todos os dados cifrados com ela podem ser decifrados.
Criptografia Assimétrica
A criptografia assimétrica, também conhecida como criptografia de chave pública, utiliza um par de chaves: uma pública e uma privada. A chave pública pode ser compartilhada livremente, enquanto a privada é mantida em segredo. Dados cifrados com a chave pública só podem ser decifrados com a chave privada correspondente, e vice-versa.
Isso resolve o problema de distribuição de chaves, pois não é necessário compartilhar uma chave secreta. Exemplos incluem RSA e ECC. É comumente usada para estabelecer conexões seguras (como HTTPS) e para assinaturas digitais.
Exemplo conceitual:
Chave pública: Pub
Chave privada: Priv
Cifragem: Cifrar("Olá", Pub) = "Xyz"
Decifragem: Decifrar("Xyz", Priv) = "Olá"A criptografia assimétrica é mais lenta que a simétrica, por isso geralmente é usada para cifrar chaves simétricas ou pequenas quantidades de dados.
Hash
Funções hash são algoritmos que transformam dados de tamanho arbitrário em um valor de tamanho fixo, chamado hash ou digest. Características importantes: são unidirecionais (não é possível reverter o hash para obter o dado original) e resistentes a colisões (é difícil encontrar dois dados diferentes com o mesmo hash).
Hash é usado para verificar integridade de dados, armazenamento de senhas (com sal) e em assinaturas digitais. Exemplos: SHA-256, MD5 (obsoleto por segurança).
Exemplo:
Dado: "Segurança"
Hash SHA-256: 6b88c087247aa2f07ee1c9316b5f3d6e6b5f3d6e6b5f3d6e6b5f3d6e6b5f3d6ePara senhas, recomenda-se usar funções como bcrypt, scrypt ou Argon2, que são propositalmente lentas para dificultar ataques de força bruta.
Certificados Digitais
Certificados digitais são documentos eletrônicos que vinculam uma identidade (pessoa, servidor) a uma chave pública. Eles são emitidos por Autoridades Certificadoras (CAs) e seguem o padrão X.509. O certificado contém informações como nome do titular, chave pública, validade e assinatura digital da CA.
Os certificados são usados em HTTPS para autenticar servidores e estabelecer conexões seguras. Quando você acessa um site seguro, o navegador verifica o certificado do servidor, garantindo que está se comunicando com o site correto e que a comunicação está cifrada.
Estrutura simplificada de um certificado:
- Versão
- Número de série
- Algoritmo de assinatura
- Emissor (CA)
- Período de validade
- Titular (sujeito)
- Chave pública do titular
- Assinatura digital da CAA verificação de um certificado envolve checar a assinatura da CA, a validade e se o certificado não foi revogado (via CRL ou OCSP).
Boas Práticas
Ao implementar criptografia, prefira bibliotecas e protocolos consolidados, como TLS para comunicação segura. Nunca implemente seus próprios algoritmos criptográficos. Use chaves com tamanho adequado (ex.: AES-256, RSA-2048). Mantenha as chaves privadas em local seguro e use rotação periódica de chaves.
Referências
- MDN - Criptografia
- NIST - AES (FIPS 197)
- IETF - RSA (RFC 8017)
- NIST - Hash Functions
- IETF - X.509 Certificates (RFC 5280)
- OpenSSL Documentation
Exercícios
- Explique a principal diferença entre criptografia simétrica e assimétrica.
- Por que funções hash são consideradas unidirecionais? Dê um exemplo de uso.
- Qual é o papel de uma Autoridade Certificadora (CA) em certificados digitais?
- Cite dois algoritmos de criptografia simétrica e dois de criptografia assimétrica.
- O que é uma assinatura digital e como ela difere de uma cifragem?