Una clave de interfaz de programación de aplicaciones (API) es un código único utilizado por una API para identificar una aplicación, una aplicación o un usuario solicitante. Las claves API se utilizan para rastrear y controlar quién usa una API y cómo la usa. También sirven para autenticar y autorizar aplicaciones, de forma similar a cómo funcionan los sistemas con nombres de usuario y contraseñas. Una clave API puede ser una única clave o un conjunto de varias claves. Los usuarios deben seguir las mejores prácticas para mejorar la seguridad general contra el robo de claves API y evitar consecuencias relacionadas con el compromiso de sus claves API.
API vs. Chave 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 CoinMarketCap permite que otras aplicaciones obtengan y utilicen datos de criptomonedas, como precio, volumen y capitalización de mercado.
Una clave API puede adoptar muchas formas diferentes: puede ser una única clave o un conjunto de varias claves. Diferentes sistemas utilizan estas claves para autenticar y autorizar una aplicación, de forma similar a mecanismos que utilizan un nombre de usuario y una contraseña. Un cliente API utiliza una clave API para autenticar una aplicación que realiza la solicitud, es decir, llamar a la API.
Por ejemplo, si Binance Academy desea utilizar la API de 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 es para uso exclusivo de Binance Academy y no debe compartirse ni enviarse a ningún tercero. Compartir esta clave API permitiría a un tercero acceder a CoinMarketCap haciéndose pasar por Binance Academy. En otras palabras, cualquier acción del tercero se tratará como si fuera de Binance Academy.
La API CoinMarketCap también puede utilizar la clave API para confirmar que la aplicación está autorizada para acceder al recurso solicitado. Además, los propietarios de API utilizan claves de API para monitorear la actividad y la información de la API, como el tipo de solicitud, el tráfico y el volumen.
¿Qué es una clave API?
La clave API se utiliza para controlar y rastrear quién utiliza una API en particular y cómo se utiliza. El término "clave API" puede significar diferentes cosas para diferentes sistemas. Algunos sistemas tienen un código único, otros pueden tener varios códigos para una única "clave API".
Por lo tanto, 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 solicitante. Algunos códigos se utilizan para la autenticación, otros se utilizan para crear firmas criptográficas y demostrar la legitimidad de una solicitud.
Estos códigos de autenticación comúnmente se denominan colectivamente "clave API", mientras que los códigos utilizados para las firmas criptográficas tienen varios nombres, como "clave secreta", "clave pública" o "clave privada". El proceso de autenticación tiene como objetivo identificar las entidades involucradas y confirmar que son quienes dicen ser.
La autorización, por otro lado, especifica a qué servicios API se permite acceder. La función de una clave API es similar a la de un nombre de usuario y contraseña; También puede conectarlo a otras funciones de seguridad para mejorar la seguridad general.
Por lo general, 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 solicitud a un punto final de API, que requiere autenticación o autorización del usuario, o ambas, se utiliza la clave correspondiente.
Firmas criptográficas
Algunas claves API utilizan firmas digitales (criptográficas) como capa adicional de verificación. Cuando un usuario desea enviar datos específicos a una API, se puede agregar a la solicitud una firma digital generada por otra clave. Mediante cifrado, 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
Estos implican el uso de una clave secreta para realizar la firma de datos y verificar una firma. Con las claves simétricas, la clave API y la clave secreta normalmente las genera el propietario de la API y el servicio API debe utilizar la misma clave secreta para la verificación de la firma. Las principales ventajas de utilizar una clave única son la velocidad del proceso y la necesidad de menos potencia computacional para generar y verificar la firma. Un buen ejemplo de clave simétrica es HMAC.
Teclas asimétricas
Implican el uso de dos claves: una clave privada y una clave pública, que son diferentes pero vinculadas criptográficamente. La clave privada se utiliza para generar la firma y la clave pública se utiliza para verificar la firma. La clave API la genera el propietario de la API, pero la clave privada y la clave pública las genera el usuario. Para la verificación de firmas, el propietario de la API debe utilizar únicamente la clave pública. Por tanto, la clave privada puede permanecer local y secreta.
La principal ventaja de utilizar claves asimétricas es la mayor seguridad que ofrece separar las claves de generación de firma y de verificación. Esto permite que los sistemas externos verifiquen firmas incluso sin tener la capacidad de generarlas. 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 como compartir una contraseña, lo que significa que no se recomienda ya que pondría en riesgo la cuenta del usuario.
Las claves API suelen ser el objetivo de los ciberataques porque pueden utilizarse para realizar operaciones poderosas en los sistemas, como solicitar información personal o ejecutar transacciones financieras. De hecho, ha habido casos de piratas informáticos que lograron atacar 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 tienen fecha de vencimiento, los atacantes pueden usarlas indefinidamente una vez robadas, hasta que se revoquen las claves respectivas.
Mejores prácticas al utilizar claves API
Debido al acceso a datos confidenciales y la vulnerabilidad general de las claves API, el uso seguro de estas claves es de suma importancia. Al utilizar claves API, puede seguir estas mejores prácticas y mejorar su seguridad:
Si es posible, cambie sus claves API con frecuencia. Para hacer esto, debe eliminar su clave API actual y crear una nueva. Puede generar y eliminar claves API fácilmente en múltiples sistemas. Así como algunos sistemas requieren que cambies tu contraseña cada 30 a 90 días, debes cambiar tus claves API con una frecuencia similar.
Utilice una lista blanca de IP: al crear una clave API, defina una lista de IP autorizadas para usar la clave (lista blanca para direcciones IP). También puede definir una lista de IP bloqueadas (lista negra de direcciones IP). De esta manera, incluso si le roban su clave API, una IP no reconocida no podrá acceder a ella.
Utiliza múltiples claves API: tener múltiples claves y dividir responsabilidades entre ellas reduce los riesgos, ya que tu seguridad no dependerá de una única clave con muchos permisos. También puede definir, para cada clave, diferentes listas blancas de direcciones IP, lo que reduce aún más el riesgo.
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, para mayor seguridad, almacene cada uno mediante cifrado o un administrador y tenga cuidado de no exponerlos accidentalmente.
No compartas tus claves API. Compartir su clave API es como compartir su contraseña. Al hacerlo, le otorga a la otra persona los mismos privilegios de autenticación y autorización que usted tiene. Su clave API puede ser robada y utilizada para piratear su cuenta. Una clave API solo debe usarse entre usted y el sistema que la genera.
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 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.
Consideraciones 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 muchas capas y diferentes aspectos para garantizar el uso seguro de las claves API. En general, una clave API debe tratarse como una contraseña.
Otras lecturas
Principios generales de seguridad
5 estafas comunes con criptomonedas y cómo evitarlas
