TL;DR

Una clave de interfaz de programación de aplicaciones (API) es un código único utilizado por una API para identificar la aplicación o el usuario que llama. Las claves API se utilizan para rastrear y controlar quién usa una API y cómo la usa, así como para autenticar y autorizar aplicaciones, de manera similar a cómo funcionan los nombres de usuario y las contraseñas. Una clave API puede tener la forma de una única clave o de un conjunto de varias claves. Los usuarios deben seguir las mejores prácticas para mejorar su seguridad general contra el robo de claves API y evitar las consecuencias relacionadas de que sus claves API se vean comprometidas.

API frente a clave API

Para comprender qué es una clave API, primero debe comprender qué es una API. Una interfaz de programación de aplicaciones o API es un intermediario de software que permite que dos o más aplicaciones compartan información. Por ejemplo, la API de CoinMarketCap permite que otras aplicaciones recuperen y utilicen datos criptográficos, como el precio, el volumen y la capitalización de mercado.

Una clave API viene en muchas formas diferentes: puede ser una clave única o un conjunto de claves múltiples. Diferentes sistemas utilizan estas claves para autenticar y autorizar una aplicación, de forma similar a cómo se utilizan un nombre de usuario y una contraseña. Un cliente API utiliza una clave API para autenticar una aplicación que llama a la API.

Por ejemplo, si Binance Academy desea utilizar la API CoinMarketCap, CoinMarketCap generará una clave API y la utilizará para autenticar la identidad de Binance Academy (el cliente API), que solicita acceso a la API. Cuando Binance Academy accede a la API de CoinMarketCap, esta clave API debe enviarse a CoinMarketCap junto con la solicitud.

Esta clave API solo debe ser utilizada por Binance Academy y no debe compartirse ni enviarse a otros. Compartir esta clave API permitirá que un tercero acceda a CoinMarketCap como Binance Academy, y cualquier acción del tercero aparecerá como si proviniera de Binance Academy.

La API CoinMarketCap también puede utilizar la clave API para confirmar si la aplicación está autorizada para acceder al recurso solicitado. Además, los propietarios de API utilizan claves de API para monitorear la actividad de la API, como los tipos, el tráfico y el volumen de solicitudes.

¿Qué es una clave API?

Una clave API se utiliza para controlar y rastrear quién usa una API y cómo la usa. El término "clave API" puede significar diferentes cosas para diferentes sistemas. Algunos sistemas tienen un código único, pero otros pueden tener varios códigos para una única "clave API".

Como tal, una "clave API" es un código único o un conjunto de códigos únicos utilizados por una API para autenticar y autorizar al usuario o aplicación que llama. Algunos códigos se utilizan para la autenticación y otros para crear firmas criptográficas para demostrar la legitimidad de una solicitud.

Estos códigos de autenticación se denominan comúnmente "clave API", mientras que los códigos utilizados para las firmas criptográficas reciben varios nombres, como "clave secreta", "clave pública" o "clave privada". La autenticación implica identificar las entidades involucradas y confirmar que son quienes dicen ser.

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

Normalmente, el propietario de la API genera cada clave de API para una entidad específica (más detalles a continuación) y cada vez que se realiza una llamada a un punto final de API (lo que requiere autenticación o autorización del usuario, o ambas), se utiliza la clave correspondiente.

Firmas criptográficas

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

Firmas simétricas y asimétricas

Los datos compartidos a través de una API se pueden firmar mediante claves criptográficas, que se clasifican en las siguientes categorías:

Claves simétricas

Implican el uso de una clave secreta para realizar tanto la firma de datos como la verificación de una firma. Con las claves simétricas, la clave API y la clave secreta generalmente las genera el propietario de la API y el servicio API debe utilizar la misma clave secreta para la verificación de la firma. La principal ventaja de utilizar una clave singular es que hacerlo es más rápido y requiere menos potencia computacional para la generación y verificación de firmas. Un buen ejemplo de clave simétrica es HMAC.

Teclas asimétricas

Estos implican el uso de dos claves: una clave privada y una clave pública, que son diferentes pero están vinculadas criptográficamente. La clave privada se utiliza para generar la firma y la clave pública se utiliza para la verificación de la firma. La clave API la genera el propietario de la API, pero el usuario genera el par de clave privada y pública. El propietario de la API solo debe utilizar la clave pública para la verificación de la firma, de modo que la clave privada pueda permanecer local y secreta.

La principal ventaja de utilizar claves asimétricas es la mayor seguridad que supone separar las claves de generación y verificación de firma. Esto permite que los sistemas externos verifiquen firmas sin poder generar firmas. Otra ventaja es que algunos sistemas de cifrado asimétrico admiten agregar una contraseña a las claves privadas. Un buen ejemplo es un par de claves RSA.

¿Son seguras las claves API?

La responsabilidad de una clave API recae en el usuario. Las claves API son similares 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 hacerlo pondría en riesgo la cuenta del usuario.

Las claves API suelen ser el objetivo de los ciberataques porque pueden utilizarse para realizar operaciones potentes en los sistemas, como solicitar información personal o ejecutar transacciones financieras. De hecho, ha habido casos de rastreadores que han atacado con éxito bases de datos de códigos en línea para robar claves API.

Las consecuencias del robo de claves API pueden ser drásticas y provocar pérdidas financieras importantes. Además, como algunas claves API no caducan, los atacantes pueden utilizarlas indefinidamente una vez robadas, hasta que las claves sean revocadas.

Mejores prácticas al utilizar claves API

Debido a su acceso a datos confidenciales y su vulnerabilidad general, el uso seguro de las claves API es de suma importancia. Puede seguir estas pautas de mejores prácticas al utilizar claves API para mejorar su seguridad general:

  1. Rote sus claves API con frecuencia si es posible. Esto significa que debe eliminar su clave API actual y crear una nueva. Con múltiples sistemas, es fácil generar y eliminar claves API. De manera similar a cómo algunos sistemas requieren que cambie su contraseña cada 30 a 90 días, debe rotar sus claves API con una frecuencia similar si es posible.

  2. Utilice la lista blanca de IP: cuando cree una clave API, elabore una lista de IP autorizadas para usar la clave (una lista blanca de IP). También puede especificar una lista de IP bloqueadas (una lista negra de IP). De esta manera, incluso si le roban su clave API, una IP no reconocida aún no podrá acceder a ella.

  3. Utilice varias claves API: tener varias claves y dividir las responsabilidades entre ellas reducirá el riesgo de seguridad, ya que su seguridad no dependerá de una única clave con amplios permisos. También puede configurar diferentes listas blancas de IP para cada clave, lo que reduce aún más el riesgo de seguridad.

  4. Almacene las claves API de forma segura: no almacene sus claves en lugares públicos, en computadoras públicas ni en su formato de texto sin formato original. En su lugar, almacene cada uno de ellos mediante cifrado o un administrador secreto para mayor seguridad, y tenga cuidado de no exponerlos accidentalmente.

  5. Do not share your API keys. Sharing your API key is similar to sharing your password. In doing so, you give another party the same authentication and authorization privileges as you. If they are compromised, your API key can be stolen and used to hack into your account. An API key should only be used between you and the system that generates it.

Si su clave API está comprometida, primero debe desactivarla para evitar daños mayores. Si hay alguna pérdida financiera, tome capturas de pantalla de la información clave relacionada con el incidente, comuníquese con las entidades relacionadas y presente un informe policial. Esta es la mejor manera de aumentar sus posibilidades de recuperar los fondos perdidos.

Pensamientos finales

Las claves API proporcionan funciones básicas de autenticación y autorización, y los usuarios deben administrar y proteger sus claves con cuidado. Existen muchos niveles y aspectos para garantizar el uso seguro de las claves API. En general, una clave API debe tratarse como una contraseña para su cuenta.

Otras lecturas

  • Principios generales de seguridad

  • 5 estafas comunes con criptomonedas y cómo evitarlas