Skip to content
IRC-CodingIRC-Coding
API KeysGestión de clavesSeguridad de APIKey RotationSecret ManagementLeast Privilege

API Key Management: Generación, Almacenamiento y Rotación

Aprende gestión de API Keys: generación, almacenamiento, rotación, revocación, scopes y buenas prácticas de seguridad.

S

schutzgeist

6 min read
API Key Management: Generación, Almacenamiento y Rotación

Gestión de claves API

Las claves API son credenciales de acceso simples, pero solo resultan seguras cuando se generan, almacenan, utilizan y renuevan correctamente.

Descripción general

La gestión de claves API abarca todo el ciclo de vida de las claves: desde su generación, almacenamiento y uso hasta su rotación y revocación. Las claves API son cadenas secretas que los clientes utilizan para identificarse y, en parte, autorizarse ante una API. Son fáciles de implementar, pero entrañan riesgos si se exponen, copian o permanecen sin cambios durante largo tiempo. Una gestión adecuada genera claves fuertes y únicas, las almacena solo en forma de hash, las transmite por TLS, limita su validez y permisos, facilita su rotación y permite una revocación inmediata. Además, las claves deben configurarse con permisos mínimos y su uso debe supervisarse mediante registros y monitoreo.

Componentes clave

Generación de claves API

Las claves API deben generarse de forma criptográficamente segura y aleatoria. Deben ser lo suficientemente largas y únicas para prevenir ataques de fuerza bruta. Una longitud mínima de 32 bytes y el uso de caracteres como letras, números y símbolos especiales aumentan la seguridad. Las claves no deben ser predecibles ni basarse en datos de usuario.

Almacenamiento de claves API

En el servidor, las claves API nunca deben almacenarse en texto plano. En su lugar, guarda un hash de la clave, por ejemplo con SHA-256 o bcrypt, junto con una referencia para asociar la clave al usuario. La clave en texto plano se muestra al usuario solo una vez durante la generación. En el cliente, las claves no deben terminar en repositorios, registros ni configuraciones accesibles públicamente.

Transmisión y transporte

Las claves API siempre deben transmitirse por HTTPS. Evita incluirlas en URLs, ya que pueden aparecer en el historial del navegador, registros y encabezados referrer. El encabezado Authorization o un encabezado dedicado como X-API-Key son opciones más seguras.

Ámbitos y permisos

Las claves API deben configurarse con permisos mínimos. Una clave para acceso de solo lectura no debe permitir operaciones de escritura. Los ámbitos como read:users o write:orders ayudan a limitar los derechos y reducen el riesgo en caso de que la clave se vea comprometida.

Rotación de claves API

La rotación significa emitir nuevas claves de forma periódica o cuando se sospeche una compromisión, invalidando las antiguas. Permitir múltiples claves activas por cliente facilita la rotación, porque la clave anterior sigue funcionando mientras se distribuye la nueva. Después de un período de transición, se desactiva la clave anterior.

Revocación y desactivación

Las claves API deben poder revocarse en cualquier momento sin reiniciar todo el servicio. Una clave desactivada se rechaza en la siguiente solicitud. Los paneles de control o las APIs deben permitir bloquear rápidamente las claves si se han expuesto.

Registros y monitoreo

El uso de claves API debe registrarse. La información importante incluye marca de tiempo, dirección IP, clave utilizada, punto final y resultado. El monitoreo detecta patrones de uso inusual, como picos repentinos de tráfico, anomalías geográficas o acceso a puntos finales inusuales.

Gestión de secretos

Para aplicaciones que utilizan claves API, deben emplearse soluciones de gestión de secretos como HashiCorp Vault, AWS Secrets Manager o Azure Key Vault. Estas herramientas almacenan secretos cifrados, permiten la rotación y evitan que las claves terminen en código o configuraciones.

Comunicación de filtraciones

Si una clave API se ha expuesto, debe revocarse inmediatamente. Además, debe verificarse si se han realizado acciones fraudulentas. Los clientes y equipos internos deben ser informados y la clave debe reemplazarse.

Documentación y políticas

Las directrices claras para la generación, uso, rotación y manejo de claves API son esenciales. Los desarrolladores y clientes deben saber cómo almacenar claves de forma segura, cómo reportar filtraciones y qué consecuencias tiene incumplir las políticas.

Ejemplo práctico

Un proveedor SaaS ofrece claves API a clientes que desean acceder a la API de pedidos.

Generación de una nueva clave:

POST /api/v1/api-keys
Authorization: Bearer USER_TOKEN
Content-Type: application/json

{
  "name": "Integration Warehouse",
  "scopes": ["read:orders", "write:shipments"]
}

Respuesta:

HTTP/1.1 201 Created
Content-Type: application/json

{
  "keyId": "key-abc-123",
  "key": "sk_live_51H8x...9zA2",
  "scopes": ["read:orders", "write:shipments"],
  "createdAt": "2026-07-01T10:00:00Z",
  "expiresAt": "2027-07-01T10:00:00Z"
}

La clave en texto plano se muestra solo una vez. En el servidor se almacena solo un hash de la clave. El cliente utiliza la clave:

GET /api/v1/orders
Authorization: Bearer sk_live_51H8x...9zA2

Si la clave se expone, el cliente puede revocarla inmediatamente en el panel de control y generar una nueva. El permiso anterior deja de ser válido al instante.

Preguntas frecuentes: Gestión de claves API

1. ¿Qué es una clave API?

Una clave API es una cadena secreta que un cliente utiliza para identificarse y autorizarse ante una API. Las claves API son simples, pero menos seguras que los procedimientos basados en tokens.

2. ¿Cómo debe generarse una clave API?

Una clave API debe generarse de forma criptográficamente segura y aleatoria, ser larga y única, y no basarse en patrones predecibles. Se recomienda una longitud mínima de 32 bytes.

3. ¿Debe almacenarse una clave API en texto plano?

No, en el servidor solo debe almacenarse un hash de la clave. La clave en texto plano se muestra al usuario solo una vez durante la generación.

4. ¿Qué es la rotación de claves API?

La rotación es el reemplazo de una clave API por una nueva. Se realiza de forma periódica o cuando se sospeche una compromisión para garantizar la seguridad.

5. ¿Por qué debe ser posible revocar claves API?

La revocación es importante si una clave se expone o se roba. Una revocación inmediata previene el uso fraudulento sin necesidad de reiniciar todo el servicio.

6. ¿Qué son los ámbitos en claves API?

Los ámbitos limitan los permisos de una clave API. Por ejemplo, una clave puede permitir solo acceso de lectura a pedidos pero no de escritura. Los ámbitos reducen el riesgo en caso de compromisión.

7. ¿Dónde deben almacenarse las claves API en el cliente?

Las claves API nunca deben estar en repositorios públicos, código del lado del cliente ni en localStorage del navegador. Las aplicaciones del lado del servidor deben utilizar herramientas de gestión de secretos.

8. ¿Qué es una herramienta de gestión de secretos?

Una herramienta de gestión de secretos almacena secretos como claves API de forma cifrada y gestiona su acceso, rotación y supervisión. Ejemplos incluyen HashiCorp Vault, AWS Secrets Manager y Azure Key Vault.

9. ¿Cómo detectar el uso inusual de una clave API?

Detectas el uso inusual mediante registros y monitoreo. Son indicios picos repentinos de tráfico, anomalías geográficas, acceso fuera del horario habitual o acceso a puntos finales inusuales.

10. ¿Qué ocurre cuando se filtra una clave API?

En caso de filtración, la clave debe revocarse inmediatamente, debe generarse una nueva y deben informarse los clientes. Además, debe verificarse si se han realizado acciones fraudulentas.

11. ¿Deben tener fecha de vencimiento las claves API?

Sí, las fechas de vencimiento fuerzan la rotación periódica y reducen el riesgo de claves antiguas olvidadas o no utilizadas. El usuario puede renovar la clave antes de que expire.

12. ¿Cuál es la diferencia entre una clave API y un token OAuth2?

Una clave API es simple y generalmente válida a largo plazo. Un token OAuth2 es de corta duración, se emite desde un servidor de autorización y permite permisos detallados y acceso basado en el usuario.

13. ¿Qué es un prefijo de clave?

Un prefijo de clave es el inicio reconocible de una clave API, como sk_live_ o sk_test_. Ayuda a distinguir claves visualmente y evita su uso accidental en el entorno equivocado.

14. ¿Qué es un hash en el contexto de claves API?

Un hash es una función unidireccional que convierte la clave API en un valor irreversible. El servidor compara el hash de la clave entrante con el hash almacenado, sin necesidad de guardar la clave misma.

15. ¿Por qué las claves API no deben estar en URLs?

Las claves API en URLs pueden aparecer en registros del servidor, historial del navegador y encabezados referrer. Es mejor transmitirlas en el encabezado Authorization o en un encabezado dedicado por HTTPS.

Fuentes

  1. https://owasp.org/API-Security/editions/2023/en/0x11-t10/
  2. https://cheatsheetseries.owasp.org/cheatsheets/Key_Management_Cheat_Sheet.html
  3. https://www.vaultproject.io/

Recomendaciones de libros sobre seguridad en APIs

Si quieres profundizar en gestión de claves API, Secret Management y seguridad en APIs, te recomendamos los siguientes libros:

Keine Bücher für Kategorie "security" gefunden.

Volver al blog
Share:

Entradas relacionadas