Diseña claves API como un profesional: guía 2026

Conclusión

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

Si tu empresa maneja APIs (y hoy en día casi todas lo hacen), gestionar claves de forma segura es crítico. Un incident de seguridad por una clave expuesta puede costarte reputación, datos de clientes, y sanciones normativas si manejás información regulada. Cubrimos ese tema en detalle en diferencias entre GitHub y Microsoft.

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

Qué significa para empresas y equipos en Latinoamérica

Si tu empresa maneja APIs (y hoy en día casi todas lo hacen), gestionar claves de forma segura es crítico. Un incident de seguridad por una clave expuesta puede costarte reputación, datos de clientes, y sanciones normativas si manejás información regulada. Cubrimos ese tema en detalle en diferencias entre GitHub y Microsoft.

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

JWT (tokens firmados) es un punto intermedio: podés emitir un JWT con identidad del usuario + permisos, el cliente lo almacena, lo envía en cada request, vos validás la firma sin hacer queries a la BD. Es stateless. Pero tiene la debilidad de que si el token se filtra, es válido hasta expiración, y revocación requiere mantenimiento de listas negras.

Qué significa para empresas y equipos en Latinoamérica

Si tu empresa maneja APIs (y hoy en día casi todas lo hacen), gestionar claves de forma segura es crítico. Un incident de seguridad por una clave expuesta puede costarte reputación, datos de clientes, y sanciones normativas si manejás información regulada. Cubrimos ese tema en detalle en diferencias entre GitHub y Microsoft.

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

JWT (tokens firmados) es un punto intermedio: podés emitir un JWT con identidad del usuario + permisos, el cliente lo almacena, lo envía en cada request, vos validás la firma sin hacer queries a la BD. Es stateless. Pero tiene la debilidad de que si el token se filtra, es válido hasta expiración, y revocación requiere mantenimiento de listas negras.

Qué significa para empresas y equipos en Latinoamérica

Si tu empresa maneja APIs (y hoy en día casi todas lo hacen), gestionar claves de forma segura es crítico. Un incident de seguridad por una clave expuesta puede costarte reputación, datos de clientes, y sanciones normativas si manejás información regulada. Cubrimos ese tema en detalle en diferencias entre GitHub y Microsoft.

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

API keys vs OAuth y otros métodos de autenticación

¿Cuándo usar API keys vs OAuth vs Bearer tokens vs JWT? Depende del caso.

MétodoComplejidadMejor paraLimitaciones
API KeysBajaAPIs server-to-server, aplicaciones internas, acceso de terceros confiablesSin expiración nativa (requiere rotación manual), permiso de grano grueso, difícil revocar en tiempo real en alta escala
OAuth 2.0AltaAplicaciones web de terceros que piden autorización del usuario final, delegación de permisosFlujo complejo (authz code, token refresh, etc.), requiere redirects y manejo de estado, overhead de implementación
Bearer Tokens (JWT)MediaAPIs REST modernas, arquitecturas de microservicios, autorización statelessSi se filtra, es válido hasta que expire (aunque sea 1 hora, es tiempo); requiere issuer confiable y validación de firma
Basic Auth (user:password en Base64)Muy bajaAPIs heredadas, scripts simples, testingInseguro si no usa HTTPS, requiere almacenar contraseñas reales, sin delegación de permisos
diseño de claves api diagrama explicativo

Aquí va la regla de oro: si es un servicio que usá vos (tu aplicación backend hablando con OpenAI, Stripe, AWS), usá API keys. Generá una, almacenala en tu .env, transmitila por HTTPS, lista. Si es un servicio donde terceros necesitan autorización sin que se apropien de tus credenciales (un usuario autorizando a una app a acceder a su Gmail), usá OAuth.

JWT (tokens firmados) es un punto intermedio: podés emitir un JWT con identidad del usuario + permisos, el cliente lo almacena, lo envía en cada request, vos validás la firma sin hacer queries a la BD. Es stateless. Pero tiene la debilidad de que si el token se filtra, es válido hasta expiración, y revocación requiere mantenimiento de listas negras.

Qué significa para empresas y equipos en Latinoamérica

Si tu empresa maneja APIs (y hoy en día casi todas lo hacen), gestionar claves de forma segura es crítico. Un incident de seguridad por una clave expuesta puede costarte reputación, datos de clientes, y sanciones normativas si manejás información regulada. Cubrimos ese tema en detalle en diferencias entre GitHub y Microsoft.

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

API keys vs OAuth y otros métodos de autenticación

¿Cuándo usar API keys vs OAuth vs Bearer tokens vs JWT? Depende del caso.

MétodoComplejidadMejor paraLimitaciones
API KeysBajaAPIs server-to-server, aplicaciones internas, acceso de terceros confiablesSin expiración nativa (requiere rotación manual), permiso de grano grueso, difícil revocar en tiempo real en alta escala
OAuth 2.0AltaAplicaciones web de terceros que piden autorización del usuario final, delegación de permisosFlujo complejo (authz code, token refresh, etc.), requiere redirects y manejo de estado, overhead de implementación
Bearer Tokens (JWT)MediaAPIs REST modernas, arquitecturas de microservicios, autorización statelessSi se filtra, es válido hasta que expire (aunque sea 1 hora, es tiempo); requiere issuer confiable y validación de firma
Basic Auth (user:password en Base64)Muy bajaAPIs heredadas, scripts simples, testingInseguro si no usa HTTPS, requiere almacenar contraseñas reales, sin delegación de permisos
diseño de claves api diagrama explicativo

Aquí va la regla de oro: si es un servicio que usá vos (tu aplicación backend hablando con OpenAI, Stripe, AWS), usá API keys. Generá una, almacenala en tu .env, transmitila por HTTPS, lista. Si es un servicio donde terceros necesitan autorización sin que se apropien de tus credenciales (un usuario autorizando a una app a acceder a su Gmail), usá OAuth.

JWT (tokens firmados) es un punto intermedio: podés emitir un JWT con identidad del usuario + permisos, el cliente lo almacena, lo envía en cada request, vos validás la firma sin hacer queries a la BD. Es stateless. Pero tiene la debilidad de que si el token se filtra, es válido hasta expiración, y revocación requiere mantenimiento de listas negras.

Qué significa para empresas y equipos en Latinoamérica

Si tu empresa maneja APIs (y hoy en día casi todas lo hacen), gestionar claves de forma segura es crítico. Un incident de seguridad por una clave expuesta puede costarte reputación, datos de clientes, y sanciones normativas si manejás información regulada. Cubrimos ese tema en detalle en diferencias entre GitHub y Microsoft.

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

4. Falta de revocación rápida. Si alguien reporta “creo que se filtró mi clave”, deberías poder marcarla como inválida en segundos. Si tu sistema tarda 10 minutos en procesar la revocación, el atacante tiene 10 minutos para hacer daño. Implementá un flag is_revoked en la BD y revisalo en cada validación.

5. No monitorear uso. ¿Alguien está usando una clave desde un país diferente al del usuario registrado? ¿Hizo 10.000 requests en 1 minuto? ¿Accedió a un endpoint que no había usado antes? Estos son red flags. Loguea cada uso de clave, incluyendo IP, timestamp, endpoint, resultado. Alertá si detectás anomalías.

Dato: según documentación de OpenAI sobre mejores prácticas, aproximadamente el 35% de las claves API expuestas públicamente (halladas en repositorios) siguen activas y siendo explotadas meses después de la exposición inicial. Eso es porque la mayoría de los usuarios no las revoca, no las rota, no las monitorea.

API keys vs OAuth y otros métodos de autenticación

¿Cuándo usar API keys vs OAuth vs Bearer tokens vs JWT? Depende del caso.

MétodoComplejidadMejor paraLimitaciones
API KeysBajaAPIs server-to-server, aplicaciones internas, acceso de terceros confiablesSin expiración nativa (requiere rotación manual), permiso de grano grueso, difícil revocar en tiempo real en alta escala
OAuth 2.0AltaAplicaciones web de terceros que piden autorización del usuario final, delegación de permisosFlujo complejo (authz code, token refresh, etc.), requiere redirects y manejo de estado, overhead de implementación
Bearer Tokens (JWT)MediaAPIs REST modernas, arquitecturas de microservicios, autorización statelessSi se filtra, es válido hasta que expire (aunque sea 1 hora, es tiempo); requiere issuer confiable y validación de firma
Basic Auth (user:password en Base64)Muy bajaAPIs heredadas, scripts simples, testingInseguro si no usa HTTPS, requiere almacenar contraseñas reales, sin delegación de permisos
diseño de claves api diagrama explicativo

Aquí va la regla de oro: si es un servicio que usá vos (tu aplicación backend hablando con OpenAI, Stripe, AWS), usá API keys. Generá una, almacenala en tu .env, transmitila por HTTPS, lista. Si es un servicio donde terceros necesitan autorización sin que se apropien de tus credenciales (un usuario autorizando a una app a acceder a su Gmail), usá OAuth.

JWT (tokens firmados) es un punto intermedio: podés emitir un JWT con identidad del usuario + permisos, el cliente lo almacena, lo envía en cada request, vos validás la firma sin hacer queries a la BD. Es stateless. Pero tiene la debilidad de que si el token se filtra, es válido hasta expiración, y revocación requiere mantenimiento de listas negras.

Qué significa para empresas y equipos en Latinoamérica

Si tu empresa maneja APIs (y hoy en día casi todas lo hacen), gestionar claves de forma segura es crítico. Un incident de seguridad por una clave expuesta puede costarte reputación, datos de clientes, y sanciones normativas si manejás información regulada. Cubrimos ese tema en detalle en diferencias entre GitHub y Microsoft.

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

Almacenamiento y transmisión segura de API keys

Una vez que generaste la clave y se la entregaste al usuario, ¿cómo la guardan de forma segura? Acá hay reglas que mucha gente ignora.

  • Nunca en el código fuente. Si está en un archivo .py, .js, .env que después se commitea a GitHub o una nube sin control, ya está comprometida (sí, alguien la va a encontrar, y bots automáticos scanean repos públicos buscando esto).
  • Siempre en variables de entorno. Si tu aplicación corre en un servidor, las claves viven en .env que no se commitea, o en variables de entorno del sistema operativo, o en un vault como HashiCorp Vault o AWS Secrets Manager.
  • Transmisión por HTTPS obligatoria. Si la clave viaja en un request HTTP sin encripción, alguien en la red puede sniffarla. HTTPS no es negociable.
  • Almacenaje hasheado en la BD. Como mencioné antes, guardás el hash SHA-256 de la clave, no la clave misma. Así si tu BD se filtra, las claves no están ahí (aunque el atacante tenga los hashes, con suficiente compute time podría crackearlos, pero al menos no están directamente útiles).
  • Rotación periódica. Las claves deberían expirar o renovarse cada 6-12 meses. Si una clave tiene 3 años en uso y se filtra, un atacante tiene 3 años de acceso retroactivo.
  • Indexación rápida. La BD debería indexar sobre algún identificador único de la clave (no el hash completo, que es lento de buscar) para validarlas rápidamente sin hacer full scans.

El ciclo completo entonces sería: generar → hashear → almacenar hash → usuario guarda clave en su .env → usuario envía clave en HTTPS → vos hasheás lo que recibes → comparás con el hash almacenado → acceso o rechazo.

Errores comunes en la implementación de API keys

1. Exponer claves en cliente-side (navegador o mobile). Si incluís la clave API en JavaScript que corre en el navegador, cualquiera con DevTools la ve. Cualquiera. Entonces, si tu clave tiene permisos para escribir datos o hacer acciones en tu API, acabás de darle esos permisos a todo el mundo. La única forma de hacer “public keys” desde el navegador es con restrict de origen (CORS) y permisos muy limitados (lectura, sin crear/actualizar). Mejor todavía: creá un backend intermedio que haga de proxy y que valide requests del navegador.

2. Claves sin expiración. Una clave generada en 2024 que sigue válida en 2026 es un riesgo. Si se filtra, está vigente. Implementá expiración: define que cada clave expire después de N meses, y obliga al usuario a renovarla. Si lo hace, genera una nueva, hashea, almacena. La vieja queda inválida. Ya lo cubrimos antes en herramientas de IA que requieren autenticación.

3. Permisos demasiado amplios. Una clave debería tener el menor privilegio necesario. Si el cliente solo necesita leer datos, ¿por qué la clave puede crear y eliminar? Implementá scopes: read:users, write:posts, delete:comments. Al validar, revisá que la acción solicitada esté en los scopes de la clave.

4. Falta de revocación rápida. Si alguien reporta “creo que se filtró mi clave”, deberías poder marcarla como inválida en segundos. Si tu sistema tarda 10 minutos en procesar la revocación, el atacante tiene 10 minutos para hacer daño. Implementá un flag is_revoked en la BD y revisalo en cada validación.

5. No monitorear uso. ¿Alguien está usando una clave desde un país diferente al del usuario registrado? ¿Hizo 10.000 requests en 1 minuto? ¿Accedió a un endpoint que no había usado antes? Estos son red flags. Loguea cada uso de clave, incluyendo IP, timestamp, endpoint, resultado. Alertá si detectás anomalías.

Dato: según documentación de OpenAI sobre mejores prácticas, aproximadamente el 35% de las claves API expuestas públicamente (halladas en repositorios) siguen activas y siendo explotadas meses después de la exposición inicial. Eso es porque la mayoría de los usuarios no las revoca, no las rota, no las monitorea.

API keys vs OAuth y otros métodos de autenticación

¿Cuándo usar API keys vs OAuth vs Bearer tokens vs JWT? Depende del caso.

MétodoComplejidadMejor paraLimitaciones
API KeysBajaAPIs server-to-server, aplicaciones internas, acceso de terceros confiablesSin expiración nativa (requiere rotación manual), permiso de grano grueso, difícil revocar en tiempo real en alta escala
OAuth 2.0AltaAplicaciones web de terceros que piden autorización del usuario final, delegación de permisosFlujo complejo (authz code, token refresh, etc.), requiere redirects y manejo de estado, overhead de implementación
Bearer Tokens (JWT)MediaAPIs REST modernas, arquitecturas de microservicios, autorización statelessSi se filtra, es válido hasta que expire (aunque sea 1 hora, es tiempo); requiere issuer confiable y validación de firma
Basic Auth (user:password en Base64)Muy bajaAPIs heredadas, scripts simples, testingInseguro si no usa HTTPS, requiere almacenar contraseñas reales, sin delegación de permisos
diseño de claves api diagrama explicativo

Aquí va la regla de oro: si es un servicio que usá vos (tu aplicación backend hablando con OpenAI, Stripe, AWS), usá API keys. Generá una, almacenala en tu .env, transmitila por HTTPS, lista. Si es un servicio donde terceros necesitan autorización sin que se apropien de tus credenciales (un usuario autorizando a una app a acceder a su Gmail), usá OAuth.

JWT (tokens firmados) es un punto intermedio: podés emitir un JWT con identidad del usuario + permisos, el cliente lo almacena, lo envía en cada request, vos validás la firma sin hacer queries a la BD. Es stateless. Pero tiene la debilidad de que si el token se filtra, es válido hasta expiración, y revocación requiere mantenimiento de listas negras.

Qué significa para empresas y equipos en Latinoamérica

Si tu empresa maneja APIs (y hoy en día casi todas lo hacen), gestionar claves de forma segura es crítico. Un incident de seguridad por una clave expuesta puede costarte reputación, datos de clientes, y sanciones normativas si manejás información regulada. Cubrimos ese tema en detalle en diferencias entre GitHub y Microsoft.

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

Una clave API es un token único que genera el servidor para que un cliente se autentique y acceda a sus recursos sin necesidad de sesiones. Funciona como un identificador seguro: el cliente envía la clave en cada request, el servidor la valida contra su base de datos, y si es válida, concede acceso. Según investigación publicada en abril de 2026, la estructura de una API key típicamente incluye un prefijo identificador (como sk_live en Stripe o gh en GitHub), seguido de caracteres aleatorios hexadecimales que garantizan unicidad criptográfica.

En 30 segundos

  • Una API key es un token que autentica solicitudes sin necesidad de mantener sesiones activas en el servidor.
  • Su estructura típica incluye un prefijo identificador (sk_test, sk_live, pk_) más caracteres aleatorios hexadecimales para garantizar unicidad.
  • El prefijo permite identificar rápidamente el tipo de clave (producción vs testing) y su ambiente, útil tanto para desarrolladores como para usuarios.
  • Deben generarse con secrets module (Python) o equivalente criptográfico, nunca con random() ni manualmente.
  • Nunca deben estar en código fuente, siempre en variables de entorno, y transmitirse únicamente por HTTPS con hashing previo al almacenaje.

Qué es una clave API y cómo funciona

Ponele que configuraste un servidor que atiende peticiones HTTP. Un usuario quiere acceder a tu API sin que le obligues a hacer login tradicional cada vez. Ahí entra la clave API. Es un token, una cadena única de caracteres que el servidor genera específicamente para ese usuario y que él puede usar para autenticarse en cada request sin pasar credenciales de usuario/contraseña.

El flujo es directo: el cliente envía la clave (generalmente en un header como Authorization: Bearer <API_KEY>), el servidor busca esa clave en su base de datos, valida que exista y que tenga permisos para la acción solicitada, y entonces concede acceso. Si la clave no existe, está revocada o no tiene suficientes permisos, rechaza la solicitud. Sin sesiones. Sin cookies. Sin estados que mantener en memoria.

Eso sí, hay una diferencia importante con la autenticación tradicional: las API keys son más débiles en algunos sentidos (si se filtra una clave, un tercero tiene acceso completo a esa API hasta que se revoque) pero más simples de implementar. No necesitás mantener sesiones activas, gestionar timeouts o worries de CSRF. Solo validar cadenas en cada request.

Componentes y estructura de una API key

Ahora viene lo interesante. Una clave API no es simplemente una cadena aleatoria. Tiene estructura. Según el análisis publicado por Vjaylakshman en abril de 2026, las claves bien diseñadas incluyen tres partes distintas:

1. El prefijo. Los primeros caracteres que identifican el tipo de clave. GitHub usa gh, Stripe usa sk_live (secret key, producción) o sk_test (secret key, testing). CloudFlare tiene pk_ para public keys. Este prefijo es metadata que ayuda al usuario a entender qué clave es cuál, y al developer a filtrar rápidamente en logs. Si tu aplicación genera un error con una clave que empieza con sk_test, ya sabés que se probó contra el ambiente de testing.

2. La secuencia aleatoria hexadecimal. Es la carne del token. Caracteres aleatorios generados criptográficamente que garantizan que cada clave sea única y prácticamente imposible de adivinar. Generalmente tiene entre 16 y 40 caracteres, dependiendo del nivel de seguridad que requieras. Lo explicamos a fondo en ejecutar agentes sin necesidad de API.

3. El hash almacenado en la BD. Acá viene lo que muchos olvidan: nunca almacenás la clave completa en la base de datos. Almacenás un hash criptográfico de ella (SHA-256, bcrypt, similar a cómo hasheas contraseñas). Cuando el cliente te envía la clave, vos hasheás lo que recibes y comparás con el hash almacenado. Si coincide, válida. Si no, rechazada.

El formato completo entonces se ve como: prefijo + caracteres_aleatorios_hex. Ejemplo real (ficticio): sk_live_4f8a9c2b7e1d3a5f8c6e9b2d4a7f1e3c. Eso se hashea y el hash es lo que queda guardado en la BD.

El rol del prefijo en las claves API

¿Por qué los prefijos? Parecen innecesarios, pero no lo son. Mirá, si vos sos un usuario con 30 claves API en diferentes servicios, ¿cómo sabés cuál es cuál sin abrirlas todas? El prefijo te lo dice de una. Además, para el developer, el prefijo permite:

  • Identificar el ambiente. sk_test vs sk_live te avisa si es producción o pruebas. Un error común es usar la clave de testing en producción, y si tenés prefijos claros, es mucho más fácil cazarlo en una auditoría o en logs.
  • Distinguir tipos de permisos. Una clave de lectura podría empezar con pk_ (public key), una de escritura con sk_ (secret key). El prefijo es un rápido hint sobre qué puede hacer esa clave.
  • Mejorar legibilidad en logs y alertas. Si tu aplicación logguea “Se usó la clave sk_live_4f8a...“, es mucho más fácil rastrear dónde se usó que si la clave fuera completamente aleatoria desde el inicio.

La gracia está en que el prefijo no suma complejidad (son solo 3-8 caracteres) pero agrega harto valor operativo. Si es que eso cuenta como mejora, obvio que cuenta.

Generación criptográficamente segura de claves API

Acá es donde muchos se mandan cagadas. Si vas a generar una clave API, NUNCA uses random() de Python. Nunca. random es predecible. Alguien con paciencia (o una IA con paciencia) podría eventualmente adivinarte la clave.

Usá secrets, el módulo criptográfico de Python. Genera números aleatorios que son verdaderamente impredecibles. Así: Tema relacionado: consideraciones de seguridad y privacidad.

import secrets; key = secrets.token_hex(32)

Eso te devuelve una cadena hexadecimal de 64 caracteres (32 bytes × 2), criptográficamente segura. Luego le agregás el prefijo al frente: sk_live_ + key. Y eso es lo que devolvés al usuario.

En otros lenguajes es similar: crypto.randomBytes() en Node.js, random_bytes() en PHP, SecureRandom en Java. La idea es la misma: generador criptográfico, no un random común.

Almacenamiento y transmisión segura de API keys

Una vez que generaste la clave y se la entregaste al usuario, ¿cómo la guardan de forma segura? Acá hay reglas que mucha gente ignora.

  • Nunca en el código fuente. Si está en un archivo .py, .js, .env que después se commitea a GitHub o una nube sin control, ya está comprometida (sí, alguien la va a encontrar, y bots automáticos scanean repos públicos buscando esto).
  • Siempre en variables de entorno. Si tu aplicación corre en un servidor, las claves viven en .env que no se commitea, o en variables de entorno del sistema operativo, o en un vault como HashiCorp Vault o AWS Secrets Manager.
  • Transmisión por HTTPS obligatoria. Si la clave viaja en un request HTTP sin encripción, alguien en la red puede sniffarla. HTTPS no es negociable.
  • Almacenaje hasheado en la BD. Como mencioné antes, guardás el hash SHA-256 de la clave, no la clave misma. Así si tu BD se filtra, las claves no están ahí (aunque el atacante tenga los hashes, con suficiente compute time podría crackearlos, pero al menos no están directamente útiles).
  • Rotación periódica. Las claves deberían expirar o renovarse cada 6-12 meses. Si una clave tiene 3 años en uso y se filtra, un atacante tiene 3 años de acceso retroactivo.
  • Indexación rápida. La BD debería indexar sobre algún identificador único de la clave (no el hash completo, que es lento de buscar) para validarlas rápidamente sin hacer full scans.

El ciclo completo entonces sería: generar → hashear → almacenar hash → usuario guarda clave en su .env → usuario envía clave en HTTPS → vos hasheás lo que recibes → comparás con el hash almacenado → acceso o rechazo.

Errores comunes en la implementación de API keys

1. Exponer claves en cliente-side (navegador o mobile). Si incluís la clave API en JavaScript que corre en el navegador, cualquiera con DevTools la ve. Cualquiera. Entonces, si tu clave tiene permisos para escribir datos o hacer acciones en tu API, acabás de darle esos permisos a todo el mundo. La única forma de hacer “public keys” desde el navegador es con restrict de origen (CORS) y permisos muy limitados (lectura, sin crear/actualizar). Mejor todavía: creá un backend intermedio que haga de proxy y que valide requests del navegador.

2. Claves sin expiración. Una clave generada en 2024 que sigue válida en 2026 es un riesgo. Si se filtra, está vigente. Implementá expiración: define que cada clave expire después de N meses, y obliga al usuario a renovarla. Si lo hace, genera una nueva, hashea, almacena. La vieja queda inválida. Ya lo cubrimos antes en herramientas de IA que requieren autenticación.

3. Permisos demasiado amplios. Una clave debería tener el menor privilegio necesario. Si el cliente solo necesita leer datos, ¿por qué la clave puede crear y eliminar? Implementá scopes: read:users, write:posts, delete:comments. Al validar, revisá que la acción solicitada esté en los scopes de la clave.

4. Falta de revocación rápida. Si alguien reporta “creo que se filtró mi clave”, deberías poder marcarla como inválida en segundos. Si tu sistema tarda 10 minutos en procesar la revocación, el atacante tiene 10 minutos para hacer daño. Implementá un flag is_revoked en la BD y revisalo en cada validación.

5. No monitorear uso. ¿Alguien está usando una clave desde un país diferente al del usuario registrado? ¿Hizo 10.000 requests en 1 minuto? ¿Accedió a un endpoint que no había usado antes? Estos son red flags. Loguea cada uso de clave, incluyendo IP, timestamp, endpoint, resultado. Alertá si detectás anomalías.

Dato: según documentación de OpenAI sobre mejores prácticas, aproximadamente el 35% de las claves API expuestas públicamente (halladas en repositorios) siguen activas y siendo explotadas meses después de la exposición inicial. Eso es porque la mayoría de los usuarios no las revoca, no las rota, no las monitorea.

API keys vs OAuth y otros métodos de autenticación

¿Cuándo usar API keys vs OAuth vs Bearer tokens vs JWT? Depende del caso.

MétodoComplejidadMejor paraLimitaciones
API KeysBajaAPIs server-to-server, aplicaciones internas, acceso de terceros confiablesSin expiración nativa (requiere rotación manual), permiso de grano grueso, difícil revocar en tiempo real en alta escala
OAuth 2.0AltaAplicaciones web de terceros que piden autorización del usuario final, delegación de permisosFlujo complejo (authz code, token refresh, etc.), requiere redirects y manejo de estado, overhead de implementación
Bearer Tokens (JWT)MediaAPIs REST modernas, arquitecturas de microservicios, autorización statelessSi se filtra, es válido hasta que expire (aunque sea 1 hora, es tiempo); requiere issuer confiable y validación de firma
Basic Auth (user:password en Base64)Muy bajaAPIs heredadas, scripts simples, testingInseguro si no usa HTTPS, requiere almacenar contraseñas reales, sin delegación de permisos
diseño de claves api diagrama explicativo

Aquí va la regla de oro: si es un servicio que usá vos (tu aplicación backend hablando con OpenAI, Stripe, AWS), usá API keys. Generá una, almacenala en tu .env, transmitila por HTTPS, lista. Si es un servicio donde terceros necesitan autorización sin que se apropien de tus credenciales (un usuario autorizando a una app a acceder a su Gmail), usá OAuth.

JWT (tokens firmados) es un punto intermedio: podés emitir un JWT con identidad del usuario + permisos, el cliente lo almacena, lo envía en cada request, vos validás la firma sin hacer queries a la BD. Es stateless. Pero tiene la debilidad de que si el token se filtra, es válido hasta expiración, y revocación requiere mantenimiento de listas negras.

Qué significa para empresas y equipos en Latinoamérica

Si tu empresa maneja APIs (y hoy en día casi todas lo hacen), gestionar claves de forma segura es crítico. Un incident de seguridad por una clave expuesta puede costarte reputación, datos de clientes, y sanciones normativas si manejás información regulada. Cubrimos ese tema en detalle en diferencias entre GitHub y Microsoft.

En Latinoamérica, especialmente en Argentina, Colombia y Brasil, la regulación de datos está apretando. LGPD en Brasil, y regulaciones similares en otros países, castigan fugas de datos. Si una clave se filtra y alguien accede a datos personales, la responsabilidad es tuya. Por eso, invertir en implementar API keys seguras no es feature, es obligación.

Preguntas Frecuentes

¿Cómo funcionan las claves API?

¿Cuál es la mejor forma de generar claves API?

¿Qué es el prefijo en una API key y para qué sirve?

¿Cómo proteger mis claves API de forma segura?

¿Debo usar API keys u OAuth para mi API?

Conclusión

Fuentes

Similar Posts