¿Qué es una clave API y cómo utilizarla de manera segura?
Inicio
Artículos
¿Qué es una clave API y cómo utilizarla de manera segura?

¿Qué es una clave API y cómo utilizarla de manera segura?

Intermedio
Publicación: Jan 6, 2023Actualización: Feb 21, 2023
7m


Una clave de interfaz de programación de aplicaciones (API) es un código único que una API usa para identificar a la aplicación o el usuario que la llama. Las claves API se utilizan con el fin de rastrear y controlar tanto a quien está usando una API como la forma en la que la usa, además de autenticar y autorizar aplicaciones, de forma similar a cómo funcionan los nombres de usuario y las contraseñas. Una clave API puede presentarse en forma de una clave única o de un grupo de varias claves. Los usuarios deben seguir las prácticas recomendadas para mejorar su seguridad general contra el robo de la clave API y evitar las consecuencias que se relacionan con tener claves API vulneradas.

API vs. clave API

Para comprender qué es una clave API, primero debemos saber qué es una API. Una interfaz de programación de aplicaciones o API es un software intermediario que permite compartir información entre dos o más aplicaciones. Por ejemplo, la API de CoinMarketCap les permite a otras aplicaciones obtener y usar datos sobre criptomonedas, tal como el precio, el volumen y la capitalización de mercado.

Por otra parte, una clave API puede adoptar diversas formas. Puede ser una clave única o un grupo de varias claves. Distintos sistemas utilizan estas claves para autenticar y autorizar una aplicación, de manera similar a como se utilizan un nombre de usuario y una contraseña. Un cliente API usa este tipo de claves para autenticar una aplicación al llamar a la API. 

Por ejemplo, si Binance Academy quiere utilizar la API de CoinMarketCap, este último generará una clave API y la usará para autenticar la identidad de Binance Academy (el cliente API), que está solicitando acceso a la API. Cuando Binance Academy accede a la API de CoinMarketCap, debe enviar la clave API a CMC junto con la solicitud. 

Solo Binance Academy debe utilizar esta clave API y no debe compartirla ni enviársela a terceros. Compartir esta clave API permitiría que un tercero acceda a CoinMarketCap como Binance Academy, de modo que cualquier acción que el tercero haga aparecería como si viniera de Binance Academy.

La API de CoinMarketCap también puede utilizar esta clave API para confirmar si la aplicación tiene autorización para acceder al recurso solicitado. Adicionalmente, los propietarios de las API usan claves API para supervisar la actividad de las API, como los tipos, el tráfico y el volumen de solicitudes. 

¿Qué es una clave API? 

Una clave API se utiliza para supervisar y rastrear quién esta usando una API y cómo la usa. El término “clave API” puede referirse a diversas cosas para diferentes sistemas. Algunos sistemas pueden tener un código único, mientras otros pueden tener varios códigos para una sola “clave API”.   

Como tal, una “clave API” es un código único o un grupo de códigos que una API utiliza para autenticar y autorizar al usuario o aplicación que la llama. Algunos códigos se utilizan para la autenticación y otros para crear firmas criptográficas que prueben la legitimidad de una solicitud. 

A estos códigos de autenticación se los llama en conjunto una “clave API”, mientras que los códigos utilizados para firmas criptográficas tienen varios nombres, como “clave secreta”, clave pública” o “clave privada”. La autenticación implica identificar a las entidades involucradas y confirmar que son quienes dicen ser.

La autorización, por otro lado, especifica los servicios de la API a los que se concede acceso. La función de una clave API es similar a la del nombre de usuario y la contraseña de una cuenta. También puede conectarse con otras funciones de seguridad para mejorar la seguridad general. 

El propietario de la API normalmente genera una clave API para una entidad específica (más detalles a continuación) y cada vez que se hace una llamada a un endpoint de la API (que requiere autenticación de usuario, autorización o ambos) se utiliza la clave en cuestión.

Firmas criptográficas

Algunas claves API utilizan firmas criptográficas como una capa de verificación adicional. Cuando un usuario quiere enviar determinados datos a una API, es posible agregar a la solicitud una firma digital generada por otra clave. Mediante la criptografía, el propietario de la API puede corroborar que esta firma digital coincide con los datos enviados.

Firmas simétricas y asimétricas 

Los datos compartidos a través de una API pueden firmarse con claves criptográficas, que entran dentro de las siguientes categorías:

Claves simétricas

Estas implican el uso de una clave secreta para realizar tanto la firma de datos como la verificación de una firma. Con claves simétricas, el propietario de la API a menudo genera la clave API y la clave secreta, y el servicio API debe usar la misma clave secreta para la verificación de la firma. La ventaja principal de utilizar una sola clave es que hacerlo es más rápido y requiere menos potencia computacional para la generación y verificación de la firma. Un buen ejemplo de una clave simétrica es HMAC (Hashed-Based Message Authentication Code, código de autenticación de mensajes basado en hash).

Claves asimétricas

Estas implican el uso de dos claves: una clave privada y una clave pública diferentes, pero vinculadas criptográficamente. La clave privada se usa para generar la firma y la clave pública para verificarla. El propietario de la API genera la clave API, pero es el usuario quien genera el par de clave pública y clave privada. El propietario de la API debe usar únicamente la clave pública para verificar la firma, a fin de que la clave privada permanezca en su lugar y en secreto. 

La ventaja principal de utilizar claves asimétricas es contar con más seguridad al separar las claves de generación y verificación de firmas. Esto permite que sistemas externos verifiquen las firmas sin que puedan generarlas. Otra ventaja es que algunos sistemas de cifrado asimétrico permiten agregar una contraseña a las claves privadas. Un buen ejemplo es un par de claves RSA (Rivest-Shamir-Adelman, la siglas son las iniciales de los apellidos de los creadores). 

¿Las claves API son seguras? 

La responsabilidad de una clave API recae en el usuario. Las claves API se parecen a las contraseñas y deben tratarse con el mismo cuidado. Compartir una clave API es similar a compartir una contraseña y, como tal, no debe hacerse, ya que esto pondría en riesgo la cuenta del usuario. 

Las claves API frecuentemente son objeto de ciberataques, ya que pueden utilizarse para realizar operaciones importantes dentro de un sistema, como solicitar información personal o ejecutar transacciones financieras. De hecho, ha habido casos de buscadores (crawlers) que atacan exitosamente bases de datos con código en línea para robar claves API.

Las consecuencias del robo de una clave API pueden ser desastrosas y conducir a pérdidas financieras considerables. Además, como algunas claves API no expiran, los atacantes pueden utilizarlas indefinidamente, hasta que se revoquen las claves en sí.

Prácticas recomendadas al momento de usar claves API

Debido a su acceso a datos confidenciales y su vulnerabilidad general, usar claves API de forma segura es de fundamental importancia. Puedes seguir las pautas de estas prácticas recomendadas al utilizar claves API para mejorar su seguridad general: 

  1. De ser posible, cambia tus claves API con frecuencia. Esto significa que debes borrar tu clave API actual y crear una nueva. En varios sistemas, es fácil generar y borrar claves API. De manera similar a como algunos sistemas te solicitan cambiar tu contraseña cada 30 o 90 días, debes cambiar tus claves API con una frecuencia semejante de ser posible.

  2. Usa una lista blanca de IP: Cuando creas una clave API, haz una lista de las IP que tienen permitido usar la clave (una lista blanca de IP). También establecer una lista de IP bloqueadas (una lista negra de IP). Así, incluso si roban tu clave API, no será posible utilizarla con una IP no reconocida.

  3. Utiliza varias claves API: Contar con varias claves y dividir responsabilidades entre ellas reducirá el riesgo de seguridad, ya que tu seguridad no dependerá de una clave única con abundantes permisos. También puedes establecer diferentes listas blancas de IP para cada clave, lo que reduce aún más tu riesgo de seguridad. 

  4. Guarda las claves API de forma segura: No guardes tus claves en entornos públicos, en computadoras públicas ni en su formato original de texto simple. En su lugar, guarda cada una por medio de cifrado o de un Secret Manager para contar con mejor seguridad, y ten cuidado de no exponerlas accidentalmente. 

  5. No compartas tus claves API. Compartir tus claves API es similar a compartir tu contraseña. Al hacerlo, le brindas a un tercero los mismos privilegios de autenticación y autorización que tienes tú. Si tus claves son vulneradas, pueden usarse para hackear tu cuenta. Una clave API solo debe utilizarse entre el sistema que la genera y el propietario de la clave.

Si tu clave API es vulnerada, primero debes desactivarla para prevenir más daños. Si ocurre alguna pérdida financiera, saca capturas de pantalla de la información clave relacionada con el incidente, contacta a las entidades relacionadas y presenta una denuncia policial. Esta es la mejor manera de aumentar las posibilidades de recuperar los fondos perdidos. 

Conclusiones

Las claves API proporcionan funciones esenciales de autenticación y autorización, por lo que los usuarios deben gestionar y proteger sus claves cuidadosamente. Existen muchas capas y aspectos con el propósito de garantizar el uso seguro de claves API. Pero, en general, una clave API debe tratarse como una contraseña para acceder a tu cuenta.

Lecturas adicionales