¿Qué es una clave API? {Definición, casos de uso y mejores prácticas}

29 de septiembre de 2022

Introducción

Las API permiten a los desarrolladores compartir datos sin problemas entre aplicaciones e introducir funciones de terceros en sus propias aplicaciones. Cuando API se introdujeron por primera vez, hubo una necesidad inmediata de restringir el acceso a los datos. Esto condujo al desarrollo de claves API.

Esta guía tiene como objetivo aclarar el concepto de claves API, presentar los casos de uso más comunes y recomendar las mejores prácticas de seguridad.

Una clave de API que se utiliza para realizar una llamada a la API.

¿Qué son las claves API?

Las claves de API son códigos que genera un servidor para las aplicaciones de los clientes, lo que les da acceso a la API del servidor y a otros recursos, como la documentación de la API.

No proporcionar una clave de API al enviar un Llamada a la API a un servidor protegido da como resultado un código de error HTTP: 401 no autorizado.

¿Para qué se utilizan las claves API?

Si bien las claves API identifican principalmente los programas de los clientes y el contenido de control, también sirven para otros fines. A medida que avanzan las claves API, también lo hace su implementación. Hoy en día, las claves API también se utilizan para las siguientes operaciones.

Controlar el número de llamadas realizadas a una API

Límite de velocidad se refiere a controlar la cantidad de llamadas a la API que un usuario puede realizar y la cantidad de datos a los que puede acceder. 

Las formas de limitación de velocidad que realizan las claves API son: 

  • Estrangulamiento – La API evalúa la importancia de cada solicitud y utiliza la información para crear una cola. Si la API experimenta una sobrecarga, se ignoran las llamadas de menor prioridad. Una forma común de asignar prioridad a las solicitudes es generar diferentes claves API para usuarios gratuitos y de pago. Una solicitud realizada con una clave de API paga siempre tendrá prioridad sobre una clave de API gratuita. 
  • Ventana fija El propietario de la API establece la cantidad máxima de llamadas a la API que puede realizar cada clave de API única y la cantidad máxima de datos que puede transferir. 
  • Limitación del número de proyectos registrados – Los métodos de autenticación y autorización de API generalmente se obtienen al registrar una aplicación de proyecto con el propietario de la API. El propietario de la API puede restringir la cantidad de proyectos registrados y, por lo tanto, reducir la cantidad de claves de API o tokens de acceso en circulación. 

Filtrado de registros 

Las API se pueden configurar para registrar cada solicitud que reciben y procesan. Si una API requiere una clave para un conjunto específico de solicitudes, las claves de API se pueden usar para filtrar estos registros.  

Una clave API está asociada con todas las solicitudes procesadas con esa clave y etiquetadas con un par clave-valor. El par clave-valor luego se usa como una herramienta de filtrado para recuperar las solicitudes enviadas usando la clave API asociada con él. 

Sin embargo, es importante tener en cuenta que esta no es una práctica estándar debido a problemas de seguridad. Si el propietario de una API distribuye claves de API de igual prioridad, cualquier persona con una clave de API podría acceder a los registros de API y a la información confidencial. Una solución a este problema es distribuir claves con diferentes niveles de acceso. 

Identificación de patrones de uso 

El filtrado de registros permite un análisis de uso de la API más sencillo y ayuda a identificar distintos patrones de uso. 

Los patrones de uso de la API se clasifican de acuerdo con los siguientes criterios: 

  • El tipo de solicitud más frecuente realizada. 
  • El sistema operativo más común utilizado por los clientes. 
  • El número promedio de solicitudes diarias. 
  • Las veces que la API experimenta la mayor parte del tráfico. 

La identificación de patrones de uso es importante porque facilita la detección de actividades sospechosas de los clientes. La información que proporciona este proceso se puede utilizar para optimizar una API. 

Claves API y seguridad

¿Son seguras las claves API?

Las claves API se utilizan para obtener tokens de acceso que otorgan acceso a información confidencial. Por lo tanto, las claves API son un mecanismo de seguridad API. Pero, ¿qué tan seguras son las claves API? 

¿Son seguras las claves API?

Las claves de API en su estado original (sin medidas de seguridad) no se consideran seguras, por lo que se utilizan como una herramienta de autenticación y no una herramienta de autorización. 

Si se robara una clave API, sucedería lo siguiente: 

  1. El ladrón obtendría acceso a información sensible. 
  2. El propietario de la API no tendría forma de saber que la clave se está utilizando indebidamente hasta que el propietario de la clave original se lo notifique. 
  3. En el momento en que el propietario de la API revoque el acceso a la clave, el ladrón podría haber accedido a datos confidenciales y causado daños masivos al servidor y al usuario de la clave original. 

Proteger las claves de la API significa proteger los tokens de acceso y todo el entorno de la API. Por lo tanto, tanto los propietarios de API como los clientes deben mantener altos estándares de seguridad de datos.

Protección de claves de API: prácticas recomendadas

Estas son las mejores formas de proteger el servidor de infracciones y las claves API de robo y uso indebido. 

Implementar medidas de seguridad 

Las medidas de seguridad son medidas que protegen una API. Algunas protecciones se ejecutan automáticamente, mientras que otras requieren que el cliente realice acciones adicionales. 

Algunos de los mecanismos de seguridad de las API más utilizados son: 

  • Autenticación del cliente
  • autorización del cliente
  • Solicitar validación
  • Límite de velocidad
  • Métodos de detección de ataques de API
  • Implementación de claves API temporales (claves API seguras)
  • Cifrado

Nunca codifique claves API

La codificación dura se refiere a incrustar datos en el código fuente de un programa en lugar de generarlo al iniciarlo u obtenerlo de una fuente de terceros. En el pasado, los desarrolladores codificaban claves de API y tokens en una aplicación. Sin embargo, esta práctica plantea un importante problema de seguridad. 

Los piratas informáticos pueden aplicar ingeniería inversa a una aplicación y localizar los secretos incrustados. Dependiendo del nivel de acceso que tenga el secreto, los piratas informáticos pueden acceder potencialmente a la base de datos de usuarios completa de una aplicación. El daño que se produciría es irreparable. 

El curso de acción recomendado es almacenar claves en variables de entorno, lo que permite un fácil acceso pero no las expone al público. 

Verifique el código para las credenciales sin cifrar antes de compartir en los repositorios

Compartir código con credenciales expuestas se considera un riesgo de seguridad. Si las credenciales expuestas pasan desapercibidas, se desarrollarán nuevas versiones del código con esas credenciales aún integradas, lo que aumenta la gravedad del riesgo de seguridad. 

Para evitar que esto suceda: 

  • Uso ignorar para especificar los archivos que Git no debe cargar. 
  • Hash de credenciales antes de cargar el código. 
  • Eliminar las credenciales por completo. 

Utilice un servicio de administración de cifrado de API

An servicio de gestión de cifrado es un tipo de software diseñado para almacenar de forma segura secretos, claves, tokens y otros datos confidenciales. El uso de la gestión de cifrado garantiza la seguridad, el cumplimiento y proporciona un sistema centralizado para gestionar datos cifrados.  

¿Cómo obtener una clave API? 

Por lo general, los propietarios de API distribuyen claves al solicitar al usuario clave que registre la aplicación que enviará solicitudes a la API. 

Sin embargo, el proceso de obtener una clave de API no es universal, por lo que se recomienda a los futuros usuarios de API que consulten la documentación de la API para obtener instrucciones.  

Por ejemplo, CCBill requiere que los comerciantes registren su aplicación. Una vez registrados, los Comerciantes reciben una ID de aplicación de comerciante y una clave API. Estas credenciales se utilizan para generar un token pasándolas al API de pago de CCBill servidor de autorización. 

Conclusión

Las API son una herramienta poderosa cuando se diseñan teniendo en cuenta las mejores prácticas de seguridad. Las claves de API son el componente más sensible del sistema de seguridad de una API porque se usan regularmente para autenticar aplicaciones. Por eso es fundamental implementar estrictas medidas de seguridad para garantizar la seguridad de estas credenciales. 

Acerca del autor.
Mirjana Fodora
Mirjana Fodora es escritora técnica con experiencia en diseño y desarrollo web. A pesar de ser uno de los miembros más jóvenes de CCBill, sus habilidades de escritura y aptitud técnica la ayudan a producir contenido fáctico, informativo y fácil de usar. Si no está escribiendo o aprendiendo una nueva habilidad, la encontrará atracándose de fintech y videos de marketing o juegos.
Hable con un especialista en asistencia comercial