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 realiza una llamada 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 se utilicen únicamente para autenticar proyectos, en lugar de usuarios humanos. [ 3 ] [ 4 ]
Uso
API HTTP
Las claves API para las API basadas en HTTP se pueden enviar de varias maneras: [ 5 ]
El token de acceso suele ser un JSON Web Token (JWT) en el encabezado de autorización HTTP:
POST /algo HTTP / 1.1 Autorización : Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...En la cadena de consulta :
POST /algo?api_key=abcdef12345 HTTP / 1.1Como encabezado de solicitud :
GET /algo HTTP / 1.1 X-API-Key : abcdef12345Como una cookie :
GET /algo HTTP / 1.1 Cookie : X-API-KEY=abcdef12345Seguridad
Las claves API generalmente no se consideran seguras; suelen ser accesibles para los clientes , lo que facilita su robo. A menudo, las claves no tienen fecha de caducidad, lo que significa que una clave robada puede usarse indefinidamente a menos que se revoque o se regenere. [ 6 ] Se supone que las claves son un secreto conocido solo por el cliente y el servidor , por lo que no deben comunicarse a través de un canal inseguro y solo se consideran seguras cuando se usan junto con otros mecanismos de seguridad como HTTPS . [ 5 ]
Existen varios escenarios de riesgo al utilizar claves API:
- Los desarrolladores pueden escribir scripts que contengan claves en texto plano . [ 2 ]
- Los desarrolladores pueden codificar claves directamente en el código fuente y olvidarlo cuando publican el código. [ 2 ]
- Tener claves sin protección en aplicaciones móviles es peligroso. [ 2 ]
Estos riesgos generalmente se derivan de que la clave esté en texto plano, lo que potencialmente la hace accesible a los adversarios. [ 2 ]
Incidentes
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 ]
Referencias
- ↑ "Clave API - ¿Qué es una clave API?" . Last Call - Blog de RapidAPI . Consultado el 20 de septiembre de 2019 .
- 1 2 3 4 5 Lu, HongQian 2014. Keeping Your API Keys in a Safe . IEEE 7th International Conference on Cloud Computing. doi : 10.1109/CLOUD.2014.143 .
{{cite conference}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ "¿Qué es una clave API? - Explicación de las claves y tokens API - AWS" . Amazon Web Services, Inc. Consultado el 1 de septiembre de 2024 .
- ↑ "Por qué y cuándo usar claves API | Puntos finales en la nube con OpenAPI" . Google Cloud . Consultado el 1 de septiembre de 2024 .
- 1 2 "Claves API" . Archivado del original el 17/10/2019.
- ↑ "Por qué y cuándo usar claves API | Puntos finales en la nube con OpenAPI" . Google Cloud . Consultado el 20 de septiembre de 2019 .
- ↑ "Cientos de aplicaciones populares de Android contienen claves secretas codificadas" . ZDNet . Consultado el 20 de junio de 2022 .
Fuentes de libros
Enlaces externos
- Por qué y cuándo usar claves API
- Interfaces de programación de aplicaciones
- Esbozos de programación informática