viernes, 2 de junio de 2023

Desarrollo seguro: criptografía

 La criptografía protege la información, garantizando la:

  • Autenticidad.  Se verifica la identidad de las personas y sistemas que acceden a la información.
  • Confidencialidad. Solamente las personas autorizadas pueden acceder a la información.
  • Integridad. Solamente las personas autorizadas podrán alterar la información.


La criptografía se puede usar para generar firmas digitales que aseguren la integridad de los datos, o también para cifrar datos sensibles.


Cifrado

Funciones hash

Un hash se obtiene a través de una función matemática, dando como resultado un resumen de datos de una cantidad siempre fija, independientemente del número de datos de entrada. La probabilidad de que se genere el mismo hash con diferentes datos de entrada (colisión) es muy improbable, lo que ofrece un alto nivel de seguridad. 

Un hash concreto solamente puede obtenerse con la misma función, los mismos datos de entrada y en el mismo orden, lo que es idóneo para almacenar contraseñas o para verificar la integridad (no alteración) de los datos. 


Cifrado simétrico

En este tipo de cifrado protege la confidencialidad en la transmisión y el almacenamiento de los datos, utilizando la misma clave para cifrar y descifrar la información. La ventaja es que fácil y rápido de implementar, pero, por contra, tanto el emisor como el receptor deben compartir la clave, lo que se convierte en un punto débil, especialmente en entornos distribuidos.


Cifrado asimétrico

Este cifrado requiere dos claves diferentes. La clave pública es compartida públicamente y se utiliza para cifrar la información, mientras que la clave privada se mantiene en secreto, y solo puede ser usada para descifrar.

La ventaja de este cifrado es que no es necesario compartir la clave privada para establecer una comunicación segura. La desventaja es que es más lento y difícil de implementar que el cifrado simétrico.


Posibles riesgos

A continuación se describen algunos de los posibles riesgos relativos al uso de información que no esté suficientemente encriptada:
  • Exposición de información sensible. Disponibilidad de esta información para usuarios no autorizados.
  • Robo de credenciales y suplantación de identidad. El acceso a contraseñas permitirían a un atacante suplantar a un usuario.
  • Fuga de datos personales. El robo de datos personales son punibles y sancionables según las regulaciones de cada país.
  • Ataques Man in the Middle (MitM). Se pueden interceptar comunicaciones poco aseguradas y descubrir el flujo de datos que lleve a información útil y valiosa para realizar ataques.
  • Reputación para la organización.

Mejores prácticas

He aquí algunas recomendaciones para elevar la seguridad en la criptografía:
  • Evitar el uso de algoritmos criptográficos antiguos u obsoletos, como DES, MD5 o SHA-1.
  • Usar librerías criptográficas reputadas.
  • Toda información sensible y confidencial debe estar fuertemente cifrada para asegurar la confidencialidad.
  • Los números aleatorios utilizados en ids, códigos, nombres de archivos y cadenas se generan a través de un generador de números aleatorios disponible en una librería criptográfica reputada.
  • Los números aleatorios se deben generar con un nivel entropía adecuado.
  • Aplicar políticas de gestión de claves criptográficas para la generación, distribución, revocación y desactualización.
  • Para evitar ataques de volcado de memoria, sobreescribir con ceros la información crítica que deje de utilizarse.