Ir al contenido principal

Claves para mejorar cifrado de datos de una API

Claves para mejorar cifrado de datos de una API

Una de las funcionalidades principales que aporta un API Manager en nuestra arquitectura de negocio es la capacidad de añadir una capa de seguridad a nuestros backends de forma transparente, con la incorporación de mecanismos de autenticación y autorización de usuarios (api-key, oauth2, jwt, …).

¿Pero y si además de garantizar la seguridad de nuestra comunicaciones es necesario proteger los datos sensibles que se transmiten?. En este caso debemos introducir la confidencialidad como parte de nuestras comunicaciones en la capa de API Manager para proteger la información en tránsito mediante mecanismos de cifrado simétrico o asimétrico como JWE (JSON Web Encription). 

Además, la confidencialidad es la base para el cumplimiento de normas como GDPR, CCPA o HIPAA. Centralizar políticas de confidencialidad en nuestro API Manager nos permite alinear nuestra arquitectura de APIs hacia los marcos regulatorios definidos por el negocio, mejorando la seguridad de nuestras APIs. .

Principales pasos hacia la correcta encriptación de APIs

1.  Aplicar la política JWE (JSON Web Encription)

JSON Web Encription es un estándar IETF (Request for Comments 7516) que realiza una especificación basada en JSON para el cifrado de datos y su intercambio a través de la red, con el propósito de garantizar la confidencialidad de la información.

Al igual que JWT, un token JWE dispone de varias partes codificadas en Base64 y separadas por puntos:

  • header: metadatos relativos a cómo se cifró el token (algoritmo/alg, cifrado/enc, …)
  • encrypted_key: clave de cifrado de contenido (CEK), clave encriptada utilizada para cifrar la carga útil
  • iv: vector de inicialización en el proceso de cifrado para garantizar que dos mensajes idénticos no produzcan el mismo cifrado
  • ciphertext: carga útil (payload) que no es legible sin la clave de descifrado
  • tag: etiqueta de autenticación que garantiza la integridad del mensaje

2. Asegurar la confidencialidad de nuestros datos mediante un API Manager

El API Manager actúa como único punto de entrada y control para nuestras API’s, tanto si son consumidas de forma interna o externa. Nos permite añadir gobierno, mediación, seguridad y análitica entre las comunicaciones de nuestros consumidores de API’s y los servicios de backend expuestos.

Te puede interesar: 11 pasos para construir una estrategia Api Management ganadora 

Podemos añadir confidencialidad a nuestras comunicaciones añadiendo políticas de cifrado en el flujo de mediación de nuestro API Manager. De esta forma, se puede descifrar nuestro payload en el flujo de “request”, enviar la información en bruto a nuestro backend, y volver a cifrar el contenido en el flujo de “response” antes de ser enviada de nuevo a nuestro consumidor. 

Ejemplo de cifrado de datos o encriptación vía api manager

Claves para mejorar cifrado de datos de una API (Screenshot 1)

1. El consumidor cifra la información de nuestro mensaje mediante un token JWEClaves para mejorar cifrado de datos de una API (Screenshot 3)

Claves para mejorar cifrado de datos de una API (Screenshot 2)

2. El consumidor realiza la llamada a nuestra API utilizando el token JWE cifrado

Claves para mejorar cifrado de datos de una API (Screenshot 5)

3. El API Manager recibe la llamada y, mediante una política JWE, descifra el contenido del mensaje haciendo uso de la clave secreta (simétrico) o mediante la clave privada (asimétrico)Claves para mejorar cifrado de datos de una API (Screenshot 4)

4. El API Manager realiza la llamada al backend con la información en bruto

Claves para mejorar cifrado de datos de una API (Screenshot 6)

5. El API Manager recibe la respuesta del backend con la información en bruto y, mediante una política JWE , cifra la información mediante un token JWE haciendo uso de la clave secreta (simétrico) o mediante la clave pública (asimétrico)

Claves para mejorar cifrado de datos de una API (Screenshot 7)

Claves para mejorar cifrado de datos de una API (Screenshot 8)

6. El consumidor recibe el token JWE cifrado y descifra el contenido del mensaje haciendo uso de la clave secreta (simétrico) o mediante la clave privada (asimétrico)

Claves para mejorar cifrado de datos de una API (Screenshot 9)

Conclusión

En este breve caso de uso hemos visto cómo añadir políticas de JWE a nuestro API Manager (Gravitee.io), añadiendo una capa de confidencialidad en las comunicaciones hacia nuestros backends de forma transparente, sin necesidad de refactorizar ninguno de estos servicios.

Sigue aprendiendo: Cómo publicar una API en Gravitee API Management y añadir seguridad con API-KEY

¿Cómo podemos securizar nuestras APIs en Gravitee API Management mediante el estándar OAuth 2.0?

Descubre más detalles sobre Gravitee Api Manager en nuestra web y no te pierdas este webinar.  Si quieres profundizar sobre esta tecnología o como mejorar la seguridad de tus APIs, contacta con nuestro equipo.