Una clave de interfaz de programación de aplicaciones ( API ) es un identificador único secreto que se utiliza para autenticar y autorizar a un usuario, desarrollador o programa que llama a una API . [1] [2]
Los proveedores de computación en la nube como Google Cloud Platform y Amazon Web Services recomiendan que las claves API solo se utilicen para autenticar proyectos, en lugar de usuarios humanos. [3] [4]
Las claves API para API basadas en HTTP se pueden enviar de varias maneras: [5]
En la cadena de consulta :
POST /algo?api_key=abcdef12345 HTTP / 1.1
Como encabezado de solicitud :
GET /algo HTTP / 1.1 Clave X-API : abcdef12345
Como una galleta :
GET /algo HTTP / 1.1 Cookie : X-API-KEY=abcdef12345
Las claves API no suelen considerarse seguras; normalmente, los clientes pueden acceder a ellas , lo que hace que sea fácil robarlas. Las claves no suelen tener fecha de caducidad, lo que significa que una clave robada se puede utilizar indefinidamente a menos que se revoque o regenere. [6] Se supone que las claves son un secreto que solo conocen el cliente y el servidor , por lo que no deben comunicarse a través de un canal inseguro y solo se pueden considerar seguras cuando se utilizan junto con otros mecanismos de seguridad como HTTPS . [5]
Existen varios escenarios de riesgo al utilizar claves API:
Estos riesgos generalmente se deben a que la clave está en texto simple, que es potencialmente accesible para los adversarios. [2]
En 2017, Fallible, una empresa de seguridad con sede en Delaware, examinó 16.000 aplicaciones de Android e identificó más de 300 que contenían claves API codificadas para servicios como Dropbox , Twitter y Slack . [7]