Una clave de interfaz de programación de aplicaciones ( API ) es un identificador único que se utiliza para autenticar y autorizar a un usuario, desarrollador o programa de llamada a una API . [1] Sin embargo, normalmente se utilizan para autenticar y autorizar un proyecto con la API en lugar de un usuario humano. [1] [2]
La clave API a menudo actúa como un identificador único y un token secreto para autenticación y autorización, y generalmente tendrá un conjunto de derechos de acceso a la API asociada a ella. [3]
Las claves API para API basadas en HTTP se pueden enviar de varias maneras: [4]
En la cadena de consulta :
POST /algo?api_key=abcdef12345 HTTP / 1.1
Como encabezado de solicitud :
OBTENER /algo HTTP / 1.1 X-API-Key : abcdef12345
Como galleta :
OBTENER /algo HTTP / 1.1 Cookie : X-API-KEY=abcdef12345
Las claves API generalmente no se consideran seguras; Por lo general, los clientes pueden acceder a ellos, lo que facilita que alguien robe una clave API. Una vez robada la clave, esta no tiene caducidad, por lo que podrá usarse indefinidamente, a menos que el propietario del proyecto revoque o regenere la clave. [2] Dado que las claves API solo deben ser accesibles para el cliente y el servidor, la autenticación mediante claves API solo se considera segura cuando se usa junto con otros mecanismos de seguridad como HTTPS . [4]
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. [5]