Una clave API es un identificador único que se emplea para autenticar software y sistemas que intentan acceder a otro software o sistemas a través de una interfaz de programación de aplicaciones o API.
Una API, o interfaz de programación de aplicaciones, es un conjunto de reglas o protocolos que permiten que las aplicaciones de software se comuniquen entre sí para intercambiar datos, características y funcionalidades. Las API ofrecen a los propietarios de aplicaciones una forma sencilla y segura de poner los datos y las funciones de sus aplicaciones a disposición de los departamentos de su organización. Los propietarios de aplicaciones también pueden compartir o comercializar datos y funciones con socios comerciales o terceros. Las API permiten compartir solo la información necesaria, manteniendo ocultos otros detalles internos del sistema, lo que ayuda a la seguridad del sistema.
Debido a que las API pueden otorgar acceso a datos confidenciales, es importante que puedan validar que la aplicación que realiza la solicitud esté autorizada para hacerlo. El uso de claves API permite al desarrollador de aplicaciones autenticar las aplicaciones que están llamando al backend de una API para asegurarse de que están autorizadas para hacerlo.
Si bien las claves API pueden ser un aspecto para garantizar que las API de una compañía, y los datos que manejan, sean seguros, no son una solución de seguridad de API definitiva. En particular las claves API no son tan seguras como los tokens de autenticación o el protocolo OAuth (autorización abierta). Estas medidas son más adecuadas para autenticar usuarios humanos específicos, brindan a las organizaciones un control más detallado sobre el acceso a las funciones de una API específica y se pueden configurar para que caduquen.
OAuth se puede emplearse con claves API o por sí solo. A veces, una compañía puede usar una clave API para algunos usuarios, pero usar OAuth para otros usuarios. Existen otros métodos para autenticar llamadas a una API, como JSON Sitio web Tokens (JWT), pero no se emplean con tanta frecuencia.
Las claves API siguen siendo un aspecto útil de la seguridad de las API, ya que ayudan a las organizaciones a monitorear las llamadas a las API y a gestionar su consumo, aumentando la seguridad y garantizando que estos programas dispongan de un ancho de banda adecuado.
Una clave API es una cadena alfanumérica única de caracteres generada aleatoriamente que las API emplean para autenticar las aplicaciones que realizan llamadas a una API. Cada clave que emite un proveedor de API está asociada a un cliente de API específico, como un módulo de software. Las claves API permiten que un servidor API identifique qué software y aplicaciones están enviando una llamada a la API. La clave generada se utiliza para cada solicitud realizada desde esa aplicación o proyecto a la API asociada (hasta que la clave se actualiza o elimina).
Cuando una aplicación realiza una llamada a una API para aplicar funciones o datos de otra aplicación, el servidor de API emplea la clave de API para validar la autenticidad de la aplicación. Para aplicaciones web y API REST, la clave se puede enviar como un encabezado, en una cadena de consulta o como una cookie. Si la clave API coincide con una clave aprobada, el servidor devuelve los datos solicitados. Si no lo hace, niega la llamada y envía un mensaje de rechazo.
Los desarrolladores pueden agregar más validaciones y restricciones si es necesario.
Por ejemplo, los desarrolladores pueden configurar derechos de acceso para una aplicación o proyecto que solo permitan el acceso a ciertos tipos de datos o funciones. Los desarrolladores también pueden establecer restricciones de aplicaciones que especifiquen qué sitios web, direcciones IP, aplicaciones (o aplicaciones móviles) y kits de desarrollo de software (SDK) pueden usar una clave API.
Si bien las claves API son parte de la seguridad de las API, no deben ser la única forma en que una organización autentica y valida las llamadas que se realizan a una API. De hecho, aunque las claves API son útiles, no son un método especialmente seguro para autenticar llamadas. Las claves API pueden identificar una aplicación o proyecto específico, pero no pueden validar al usuario individual que está empleando la aplicación que realiza las llamadas. Esto hace que las claves API sean una mala elección para aplicar el control de acceso a las API. Las claves API solo ofrecen identificación y autorización de proyectos, no identificación ni autorización de usuarios.
Piense en una clave API como una contraseña: es una capa de seguridad, pero también un posible punto de falla para una violación de seguridad. Al igual que una contraseña, cualquier persona que tenga acceso a una clave API puede usarla. No hay forma de verificar quién está usando la clave; y las claves rara vez caducan a menos que se regeneren específicamente.
Las claves API empleadas con aplicaciones web no se consideran seguras a través del protocolo de transferencia de hipertexto (HTTP), ya que envían credenciales sin cifrar. Para ser consideradas seguras, las aplicaciones web deben tener una certificación de nivel de sockets seguros (SSL), también conocida como protocolo de transferencia de hipertexto seguro (HTTPS).
Otros métodos de validación para llamadas a API incluyen:
También conocidos como tokens API, los tokens de autenticación agregan un nivel adicional de seguridad a la API porque pueden identificar a un usuario concreto, no sólo a la aplicación que realiza la solicitud. Estos tokens son fragmentos de código que identifican a un usuario ante la API a la que están solicitando los datos. Al tratarse de varias líneas de código en lugar de una única cadena alfanumérica, proporcionan más información a la API sobre qué persona o proyecto está realizando una solicitud. Los tokens API también pueden generarse con un alcance limitado, que sólo conceda acceso a información específica durante un periodo limitado.
El protocolo OAuth (autorización abierta) forma parte del método estándar de la industria para autorizar y autenticar llamadas a una API cuando se emplea con OpenID Connect (OIDC). El protocolo OAuth es el aspecto que otorga a los usuarios acceso a la información solicitada y se utiliza en el proceso más amplio de autenticación de usuarios.
OAuth emplea un tipo de token de API llamado token de acceso. Las API a las que aplicar acceso emiten tokens de acceso a los usuarios. Estos tokens, a través de una serie de comunicaciones entre una API y el usuario, conceden acceso a la información específica que el usuario solicita sin necesidad de compartir credenciales u otra información segura con la API.
OpenID Connect es un protocolo de autenticación construido sobre OAuth, que permite a OAuth autenticar a los usuarios mediante la emisión de tokens de identidad y tokens de acceso. Estos tokens de identidad también incluyen información sobre la cuenta específica que está haciendo la solicitud, en lugar de solo el proyecto. OpenID Connect realiza pequeños ajustes en el flujo de autorización de OAuth al requerir tanto un token de acceso como un token de identidad antes de otorgar acceso a una API.
Las claves API se pueden usar con otras formas de autenticación para llamadas a API, o se pueden usar por separado. Dentro de una empresa, una API puede usar diferentes tipos de autenticación y autorización dependiendo de quién solicite acceso. Algunas partes de una organización, como los desarrolladores, pueden necesitar acceso sin restricciones a una API, mientras que otros departamentos necesitan un acceso más controlado.
Hay dos tipos principales de claves API y ambas desempeñan un papel en la autenticación de las llamadas API. A veces, incluso se emplean en conjunto.
Se trata de claves que proporcionan acceso a datos no confidenciales o a funcionalidades que no requieren autenticación del usuario. Se pueden compartir abiertamente entre desarrolladores y otras partes interesadas que trabajan con una API.
Las claves privadas se emplean para acceder a datos sensibles y también pueden conceder acceso de escritura al usuario de la clave. Las claves de API privadas se pueden usar con una clave pública para agregar un nivel adicional de seguridad.
Aunque las claves de API no deben ser el único método de autenticación de llamadas a la API, el uso de claves públicas y privadas en pares puede proporcionar una capa adicional de seguridad. Cuando se realiza una llamada a una API, se puede emplear una clave privada como una especie de firma digital para clientes específicos que necesitan acceso a funciones específicas de una API. A continuación, la clave pública puede verificar la firma y volver a confirmar que la llamada a la API es legítima.
Las claves API proporcionan funciones útiles dentro de una organización más allá de la simple autenticación. Debido a que estas claves ayudan a determinar el acceso a la API, también se pueden usar para mantener las aplicaciones en funcionamiento y proporcionar datos útiles sobre cómo se están empleando.
Las claves de API son un aspecto importante de la administración de acceso, lo que permite a una organización controlar qué usuarios pueden acceder a sus API. El tráfico anónimo a una API puede ser un indicador de actividad maliciosa. El uso de claves API permite a una organización bloquear el acceso no autorizado a las API, como las llamadas anónimas a las API, lo que puede limitar el alcance de un posible ataque cibernético. Limitar el servicio de API de esta manera también ayuda a evitar que las API sean bombardeadas con peticiones, minimizando las posibilidades de tiempo de inactividad para aplicaciones importantes.
Las claves de API se pueden usar para restringir el tráfico de una API, una medida conocida como limitación de velocidad. La limitación de velocidad permite que una organización controle cuántas solicitudes realiza un cliente a una API durante un periodo específico. El acceso a la API se deniega después de que el tráfico alcanza el límite definido.
Al permitir únicamente el tráfico de aplicaciones dentro de los parámetros definidos, la organización puede optimizar el uso de los recursos y el ancho de banda de la API. Estos ajustes pueden determinarse en la documentación de la API de una organización.
Debido a que las claves API son identificadores únicos, una organización puede usar claves API para rastrear el tráfico y las llamadas realizadas a las API. Mediante el uso de claves API, las organizaciones pueden rastrear cada llamada realizada a una API hasta una aplicación específica. También pueden determinar el número de llamadas que se realizan, el tipo de llamadas, el rango de direcciones IP del usuario, e incluso si están usando iOS o Android.
Analizar los patrones de uso ayuda a una organización a comprender mejor qué partes de una compañía acceden a puntos finales específicos con mayor frecuencia. Monitorear el tráfico y filtrar registros también es útil para la seguridad de la API. En el caso de un ciberataque, verificar la actividad en un servidor API contra claves API específicas puede brindarle a una organización una mayor perspectiva del ataque y qué claves pueden haber sido comprometidas.
Las claves API pueden ayudar a proteger las API, los datos y las redes, pero solo cuando se emplean de forma segura. Muchas organizaciones emplean estos métodos para asegurar que sus claves de API sean seguras y evitar que se conviertan en vectores de un ciberataque.
Las claves de API no son lo suficientemente seguras como para ser la única forma de autenticar las llamadas a la API. No pueden validar a usuarios individuales y pueden verse fácilmente comprometidas. Las claves API pueden agregar una barrera adicional de seguridad al ecosistema API de una organización cuando se usan con otro método de autenticación como OAuth, JSON Web Tokens (JWT) o tokens de autenticación.
No es raro que las organizaciones empleen más de un método de autenticación. Por ejemplo, los desarrolladores pueden usar claves API internamente para proporcionar acceso sin restricciones a las API durante el desarrollo, pero luego usar OAuth para clientes externos porque proporciona tokens que expiran y se pueden configurar para permitir solo el acceso a datos específicos.
Cuando se generan claves, suelen producir en texto plano. Al igual que una contraseña, la seguridad de esa clave depende de cómo y dónde se almacenen. Los profesionales de seguridad recomiendan que estas claves se almacenen como valores verificados en una base de datos para que no sean vulnerables al robo.
La incrustación de claves API en el código fuente o el repositorio también las hace vulnerables a los malos agentes: cuando se publica la aplicación, las claves también pueden quedar expuestas al público. Si es posible, emplee una bóveda de datos segura y encriptada para almacenar las claves API que se hayan generado.
Las claves de API no caducan a menos que los desarrolladores establezcan una fecha de caducidad o si el generador de claves revoca el acceso o regenera la clave. Si un usuario no autorizado obtiene una clave API, podría acceder a datos confidenciales sin que nadie de la organización lo sepa. Después de todo, están usando la clave correcta para obtener los datos que están solicitando.
Rotar y generar nuevas claves de API cada 90 a 180 días puede ayudar a mantener las API seguras. También es una buena idea eliminar las claves de API que ya no están en uso. Para una capa adicional de protección, las organizaciones pueden limitar el alcance de acceso de las claves API que se comparten con los clientes mediante la aplicación de derechos de acceso. Estos derechos dan a los usuarios acceso a los endpoints que necesitan y nada más. Algunas organizaciones automatizan la generación de nuevas claves para asegurar que se roten de manera regular.
La automatización impulsada por IA amplía la agilidad en API, aplicaciones, eventos, archivos y B2B/EDI.
Desbloquee el potencial de negocio con las soluciones de integración de IBM, que conectan aplicaciones y sistemas para acceder a datos críticos de forma rápida y segura.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de asesoramiento en la nube de IBM. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.