Caso práctico

Imaginemos un escenario de comercio electrónico en el que un cliente quiere comprar un producto en una tienda en línea. En este caso, se utilizarán algoritmos de criptografía de clave pública para garantizar la seguridad, la autenticidad y la confidencialidad de la transacción.

Escenario: Compras en línea seguras

Un cliente (Usuario A) desea comprar un producto en una tienda en línea (Servidor B). Para garantizar que la transacción es segura, la tienda en línea utiliza un sistema de criptografía de clave pública para proteger los datos personales y de pago del cliente.

Pasos del proceso:

  1. Intercambio inicial (Autenticación y establecimiento de comunicación segura):

    • El cliente accede al sitio web de la tienda en línea (Servidor B).
    • El servidor B envía su certificado digital al cliente. Este certificado contiene la clave pública del servidor, que está asociada a una entidad de certificación (CA) confiable que garantiza que la clave pertenece realmente al servidor B.
    • El cliente verifica el certificado utilizando la clave pública de la entidad de certificación (CA). Esto asegura que el servidor B es auténtico y que no se está comunicando con un sitio falso (ataque de suplantación de identidad).
  2. Establecimiento de conexión segura (Intercambio de clave simétrica):

    • Una vez que el cliente verifica el certificado y la autenticidad del servidor B, el cliente utiliza la clave pública del servidor B para cifrar un mensaje que contiene una clave simétrica (una clave secreta para cifrar el resto de la conversación). Esta clave simétrica es mucho más eficiente para el cifrado y descifrado de grandes cantidades de datos (por ejemplo, los detalles de la compra, información de la tarjeta de crédito).
    • El servidor B recibe el mensaje cifrado, lo descifra con su clave privada y obtiene la clave simétrica que utilizará para cifrar la comunicación posterior.
  3. Cifrado de la transacción:

    • Ahora que la clave simétrica ha sido intercambiada de manera segura, tanto el cliente como el servidor B cifran todos los datos que intercambian (como los detalles de la tarjeta de crédito del cliente, la dirección de envío, etc.) utilizando esta clave simétrica.
    • De este modo, la información transmitida entre el cliente y el servidor está completamente protegida contra la interceptación.
  4. Firma digital para garantizar la integridad:

    • Para garantizar que el cliente no pueda negar la transacción (no repudio), el servidor B genera una firma digital sobre los detalles de la transacción (por ejemplo, el monto de la compra y los artículos adquiridos) utilizando su clave privada.
    • La firma digital asegura que el servidor B realmente aprobó la transacción. El cliente puede usar la clave pública del servidor (proporcionada en el certificado digital) para verificar que la firma es válida.
  5. Confirmación y cierre de la transacción:

    • Una vez que se realiza el pago y se completa la compra, el servidor B envía un mensaje cifrado de confirmación de la compra, que el cliente puede descifrar con la clave simétrica.
    • Además, la firma digital de la confirmación garantiza que el cliente pueda verificar que el mensaje proviene de la tienda legítima (servidor B) y que no ha sido alterado.

Algoritmo utilizado:

En este caso, el algoritmo de clave pública que se utiliza para la autenticación y el establecimiento de la comunicación segura es RSA (Rivest-Shamir-Adleman) o ECC (Criptografía de Curvas Elípticas). El servidor B utiliza su clave privada para firmar mensajes y para descifrar las claves simétricas que el cliente le envíe. Luego, la comunicación se realiza con cifrado simétrico (por ejemplo, AES) debido a su eficiencia.

¿Cómo usarlo?

  1. RSA o ECC se utiliza para el intercambio seguro de claves entre el cliente y el servidor (intercambio de claves simétricas) y para la firma digital de la transacción.
  2. El algoritmo simétrico (como AES) se utiliza para cifrar los datos sensibles en la comunicación, como la información de la tarjeta de crédito y la dirección de envío, de forma rápida y eficiente.

Flujo del algoritmo:

  1. Cliente (A) y Servidor (B) acuerdan usar RSA/ECC para el intercambio de claves públicas.
  2. Cliente (A) genera una clave simétrica (AES) y la cifra usando la clave pública de Servidor (B).
  3. Servidor (B) recibe el mensaje cifrado, lo descifra con su clave privada y obtiene la clave simétrica.
  4. A partir de aquí, tanto el cliente como el servidor utilizan AES para cifrar y descifrar los datos de la transacción de forma eficiente.
  5. Servidor (B) firma los detalles de la transacción con su clave privada y el cliente verifica la firma utilizando la clave pública proporcionada en el certificado digital del servidor.

Beneficios de este enfoque:

  • Confidencialidad: El uso de clave pública y clave simétrica asegura que la información personal y financiera del cliente está cifrada y protegida contra interceptaciones.
  • Autenticación: El cliente puede verificar la autenticidad del servidor gracias a su certificado digital, y el servidor puede autenticar al cliente con la firma digital.
  • Integridad: Los datos no pueden ser alterados en tránsito sin que se detecte, ya que cualquier modificación en los datos firmados invalidaría la firma digital.

Referencias
Stallings, W. (2018). Criptografía y seguridad de redes (7.ª ed.). Pearson Educación.

Pérez, J., & Rodríguez, F. (2015). Fundamentos de criptografía y seguridad en redes (1.ª ed.). McGraw-Hill.

García, E. (2017). La criptografía de clave pública en la práctica: Fundamentos y aplicaciones. Editorial UOC.

Sánchez, J., & Medina, J. (2016). Criptografía y seguridad informática (3.ª ed.). Editorial Reverte.

Comentarios

Entradas populares de este blog

¿Qué es el criptosistema de clave pública?

¿Cómo funciona y cuáles son sus algoritmos representativos?

Ventajas, desventajas y diferencias con el criptosistema simétrico.