Algoritmo criptográfico corrompido ou arriscado

Categoria do OWASP: MASVS-CRYPTO - Criptografia

Visão geral

Apesar do uso generalizado da criptografia para proteger a confidencialidade e a integridade dos dados, um risco significativo surge quando os desenvolvedores implementam inadvertidamente algoritmos criptográficos fracos ou desatualizados. Essa vulnerabilidade decorre das fraquezas inerentes a esses algoritmos, que podem ser exploradas por usuários maliciosos com o poder computacional ou o conhecimento necessário. As consequências desse tipo de exploração podem ser graves, levando a acesso não autorizado, violações de dados e manipulação de informações sensíveis.

Impacto

Dados sensíveis podem ser expostos, modificados ou falsificados. Algoritmos criptográficos quebrados ou arriscados podem levar a vulnerabilidades e ser usados para descriptografar informações sensíveis, adulterar dados ou se passar por entidades legítimas. O impacto da exploração dessas vulnerabilidades pode variar de violações de dados e perdas financeiras a danos à reputação e perda da confiança do usuário.

Risco: funções hash criptográficas fracas ou corrompidas

O uso de funções hash criptográficas fracas ou quebradas (como MD5 ou SHA1) representa um risco significativo para a segurança e a integridade dos dados. As funções hash são projetadas para criar impressões digitais (hashes) exclusivas e de comprimento fixo de dados de entrada, o que as torna úteis para várias finalidades, incluindo verificação de integridade de dados, armazenamento de senhas e assinaturas digitais. No entanto, quando funções de hash fracas ou comprometidas são usadas, várias vulnerabilidades podem surgir:

  • Ataques de colisão: funções de hash fracas estão sujeitas a ataques de colisão, em que um invasor encontra duas entradas diferentes que produzem o mesmo valor de hash. Isso permite que eles substituam dados maliciosos por dados legítimos sem serem detectados, comprometendo a integridade dos dados.
  • Violações de dados: se as senhas forem criptografadas com um algoritmo fraco, uma violação bem-sucedida de um sistema poderá expor as credenciais do usuário. Os invasores podem usar tabelas de arco-íris ou outras técnicas para quebrar as senhas e conseguir acesso não autorizado às contas.
  • Repúdio de assinaturas digitais: funções de hash fracas usadas em assinaturas digitais podem ser exploradas para criar assinaturas falsificadas, dificultando a determinação da autenticidade e integridade de documentos ou mensagens.

Mitigações

Para reduzir esses riscos, é fundamental usar funções hash criptográficas fortes e bem testadas, como SHA-2 ou SHA-3, e mantê-las atualizadas à medida que novas vulnerabilidades são descobertas. Além disso, adotar práticas de segurança, como adicionar sal às senhas e usar algoritmos de hash específicos para senhas, como bcrypt ou Argon2, pode aumentar ainda mais a proteção de dados.


Risco: funções de criptografia criptográfica fracas ou corrompidas

O uso de funções de criptografia criptográfica fracas ou corrompidas (como DES ou RC4) representa riscos graves à confidencialidade de dados sensíveis. A criptografia foi projetada para proteger informações transformando-as em um formato ilegível, mas se o algoritmo de criptografia for falho, essas proteções poderão ser ignoradas:

  • Violações de dados:algoritmos de criptografia fracos estão sujeitos a vários ataques, incluindo ataques de força bruta, de texto simples conhecido e técnicas de criptoanálise. Se forem bem-sucedidos, esses ataques podem expor dados criptografados, permitindo o acesso não autorizado a informações sensíveis, como detalhes pessoais, registros financeiros ou dados comerciais confidenciais.
  • Manipulação e adulteração de dados:mesmo que um invasor não consiga descriptografar totalmente os dados, ele ainda poderá manipulá-los sem ser detectado se o algoritmo de criptografia for fraco. Isso pode levar a modificações não autorizadas de dados, resultando em fraude, deturpação ou outras atividades maliciosas.

Mitigações

Use algoritmos criptográficos fortes em funções de criptografia

Para reduzir esses riscos, é fundamental usar algoritmos criptográficos fortes e bem testados e seguir as práticas recomendadas para gerenciamento de chaves e implementação de criptografia. Atualizar regularmente os algoritmos de criptografia e ficar por dentro das novas ameaças também é essencial para manter uma segurança de dados robusta.

Alguns algoritmos padrão recomendados para usar:

  • Criptografia simétrica:
    • AES-128/AES-256 com o modo GCM
    • Chacha20
  • Criptografia assimétrica:
    • RSA-2048/RSA-4096 com padding OAEP

Use primitivas seguras de uma biblioteca de criptografia para reduzir armadilhas comuns

Embora seja crucial selecionar um algoritmo de criptografia adequado, para minimizar de verdade as vulnerabilidades de segurança, considere usar uma biblioteca de criptografia que ofereça uma API simplificada e enfatize configurações padrão seguras. Essa abordagem não apenas fortalece a segurança dos seus aplicativos, mas também reduz significativamente a probabilidade de introduzir vulnerabilidades por erros de programação. Por exemplo, o Tink simplifica as opções de criptografia oferecendo duas opções distintas: criptografia AEAD e Hybrid, facilitando para os desenvolvedores tomarem decisões de segurança informadas.


Risco: funções de assinatura criptográfica fracas ou corrompidas

O uso de funções de assinatura criptográfica fracas ou quebradas (como RSA-PKCS#1 v1.5 ou as baseadas em funções de hash fracas) representa riscos graves à integridade dos dados e da comunicação. As assinaturas digitais são projetadas para fornecer autenticação, não repúdio e integridade de dados, garantindo que uma mensagem ou um documento seja de um remetente específico e não tenha sido adulterado. No entanto, quando o algoritmo de assinatura subjacente tem falhas, essas garantias podem ser comprometidas:

  • Falsificação de assinaturas: algoritmos de assinatura fracos podem ser vulneráveis a ataques que permitem que pessoas maliciosas criem assinaturas falsificadas. Isso significa que eles podem se passar por entidades legítimas, falsificar documentos ou adulterar mensagens sem serem detectados.
  • Repúdio de assinaturas: se um algoritmo de assinatura for violado, um signatário poderá alegar falsamente que não assinou um documento, prejudicando o princípio de não repúdio e criando desafios legais e logísticos.
  • Manipulação e adulteração de dados: em cenários em que as assinaturas são usadas para proteger a integridade dos dados, um algoritmo fraco pode permitir que invasores modifiquem os dados sem invalidar a assinatura, levando a adulterações não detectadas e possível comprometimento de informações críticas.

Mitigações

Usar algoritmos de assinatura criptográfica fortes

Para mitigar esses riscos, é fundamental usar algoritmos de assinatura criptográfica fortes e bem testados:

  • RSA-2048/RSA-4096 com padding PSS
  • Algoritmo de assinatura digital de curva elíptica (ECDSA) com curvas seguras

Use primitivas seguras de uma biblioteca de criptografia para reduzir armadilhas comuns

Escolher o algoritmo de assinatura certo é essencial, mas para minimizar de verdade as vulnerabilidades de segurança, considere uma biblioteca de criptografia que ofereça garantias de segurança robustas por padrão. O Tink, por exemplo, simplifica as opções de assinatura oferecendo ECDSA com curvas seguras como opção padrão, tudo em uma API simples e abrangente. Essa abordagem não só melhora a segurança, mas também simplifica o desenvolvimento, eliminando a necessidade de configuração ou tomada de decisões complexas.


Recursos