Si trabaja con API o integraciones de marketing, debería entender qué son las claves API, cómo encajan en la seguridad de las API y por qué no deberían ser su única capa de protección. Permítanos explicárselo.
En general, las claves API cumplen dos funciones principales en una solicitud API:
- Autenticación del proyecto: La clave API identifica la aplicación que solicita la API que recibe la petición. Cada proyecto tiene una clave única para distinguirlo de otros proyectos.
- Autorización del proyecto: La clave API indica a la API si la aplicación solicitante tiene permiso para utilizar la API y a qué servicios de la API puede acceder. Incluso si una aplicación puede acceder a una API, es posible que sólo esté autorizada a utilizar un conjunto limitado de servicios de la API.
La API comprueba la clave de API proporcionada en una solicitud en su base de datos de clientes y, a continuación, acepta o deniega la solicitud. Si la solicitud es aceptada, la API concede al cliente acceso a sus datos y funciones en función de los derechos de acceso asociados a la clave de API.
Los propietarios de API también utilizan claves de API para supervisar la actividad de la API, como los tipos y el volumen de solicitudes de clientes individuales. Dado que cada solicitud está asociada a una clave, los propietarios de API pueden filtrar por clave y ver todas las solicitudes de un cliente específico.
Esta capacidad de supervisión es esencial para proteger la API del tráfico malicioso. Los piratas informáticos suelen atacar las API utilizando diversos métodos, como la falsificación de credenciales para inyectar código malicioso o la inundación del servidor API con solicitudes. Una API puede utilizar claves para eliminar el tráfico anónimo de bots o bloquear las peticiones de un usuario concreto si es necesario.
Es importante tener en cuenta que las claves de API se utilizan para identificar solicitudes de proyectos y aplicaciones, no de usuarios individuales. Una clave de API indica a la API desde qué proyecto se originó la solicitud, pero no puede identificar a usuarios específicos con acceso al proyecto. Esta es una limitación de seguridad importante que veremos más adelante.
Cómo utilizar una clave API
Antes de realizar solicitudes, las API suelen exigir a los desarrolladores que obtengan una clave. El proceso debe estar documentado en el sitio web del desarrollador de la API y debe incluir toda la información necesaria para empezar.
En la mayoría de los casos, tendrá que crear una cuenta de desarrollador facilitando una dirección de correo electrónico y otros datos. A continuación, se le pedirá que registre su proyecto y facilite cualquier información del proyecto que los propietarios de la API deban conocer.
Debería recibir al menos una clave API, que es una cadena aleatoria de caracteres asociada a su proyecto. Se parecerá a la siguiente:
Puede que le den dos claves, una denominada "clave pública" y otra "clave privada". Una clave pública tiene un acceso más limitado a los datos y funciones de la API y puede compartirse con colaboradores. Su clave privada no debe compartirse con nadie; sirve como un identificador más permanente para su proyecto y concede acceso a su cuenta de desarrollador, así como a todos sus datos.
Consulte la documentación de la API para saber dónde incluir su clave de API en las solicitudes; normalmente, se encuentra en la cabecera de la solicitud:
O escrito en una cadena de consulta a continuación del método de solicitud:
¿Están protegidas las claves API?
Las API web son un objetivo popular para los ciberataques porque transmiten datos confidenciales entre aplicaciones a través de Internet, como credenciales de inicio de sesión, información personal y transacciones financieras. Para combatir esto, las API web deben ser extremadamente seguras.
Las claves API pueden utilizarse para identificar un proyecto en relación con una API y para especificar a qué recursos puede acceder un proyecto. Sin embargo, los expertos consideran que las claves API no son suficientemente seguras por sí solas. Esto se debe a varios factores:
- Las claves API no pueden autenticar al usuario individual que realiza la solicitud, sólo al proyecto o aplicación que la envía.
- Las claves API son como las contraseñas: sólo son efectivas si el propietario las almacena de forma segura. Si una clave cae en las manos equivocadas, puede ser fácilmente explotada.
- Dado que las claves API rara vez caducan, un pirata informático puede utilizarlas indefinidamente a menos que el propietario de la clave la regenere o la desactive.
Las API más populares hoy en día utilizan la autenticación y autorización de usuarios por estas razones. La autenticación del usuario garantiza que la persona que realiza la solicitud (y no la aplicación) es quien dice ser. La autorización del usuario confirma que esta persona está autorizada a completar su solicitud.
Los tokens de autenticación, más seguros que las claves API, se utilizan para la autenticación y autorización de usuarios. El protocolo OAuth es el estándar actual para la autenticación y autorización de usuarios, ya que les permite autenticarse sin necesidad de proporcionar una contraseña. Es la misma tecnología que el inicio de sesión único, que permite a los usuarios iniciar sesión en una aplicación (como LinkedIn) a través de otra (como Google).
OAuth es un proceso más complejo que merece su propio artículo, así que aquí tienes una explicación de cómo funciona OAuth.
Cómo almacenar claves API de forma segura
A pesar de sus inconvenientes, las claves API siguen siendo populares y valiosas para identificar los proyectos de llamada. Es muy probable que tenga que hacer un seguimiento de una o varias cuando trabaje con una API.
Las claves API funcionan de forma muy parecida a las contraseñas y deben guardarse y protegerse. Estas son algunas medidas básicas que puede tomar para limitar el riesgo de que le roben una clave:
- No escribas tu clave en un lugar público, como una nota adhesiva o un archivo en un ordenador público. Puedes acceder a tu clave de forma segura desde tu cuenta de desarrollador.
- Tenga cuidado de no exponer accidentalmente su clave cuando documente su proyecto, por ejemplo con capturas de pantalla, subiéndola a un repositorio público o en una URL.
- No escriba su clave API directamente en su programa, ya que cualquiera con acceso a sus archivos fuente puede ver su clave.
- Antes de compartir su clave API, regenérela y etiquétela como la clave compartida más reciente.
- No comparta las claves API por correo electrónico.
- Utilice siempre HTTPS/SSL para sus solicitudes de API: algunas API no procesarán su solicitud si no lo hace.
- Asigna una clave API única a cada proyecto y etiquétalos en consecuencia. Si descubres una clave comprometida, puedes regenerarla o desactivarla sin que afecte a tus otros proyectos.
Ejemplos de claves API
He aquí algunos ejemplos de API populares y de cómo aplican las claves de API para la seguridad, con el fin de que esta lección quede clara.
Clave API de Google Maps
Google Maps Platform protege las solicitudes de datos de mapas mediante claves API. Después de crear una cuenta de desarrollador de Google, puedes generar fácilmente una clave de API de Google Maps en tu área de credenciales.
Google también anima a los usuarios a limitar sus claves API a los dominios aceptados, lo que puedes hacer en la sección de credenciales. Además, la API de Google Maps solo acepta solicitudes protegidas por HTTPS.
Google proporciona el siguiente ejemplo de una clave API en una solicitud.
¿Quieres incluir mapas interactivos de Google en tu sitio web o aplicación? Consulta nuestra guía para principiantes sobre las API de Google Maps.
Lo que cavamos:
La API de Google y las claves relacionadas son una opción excelente para iniciarse en el uso de API y claves API debido a su sencillez.
Clave API para Stripe
Stripe, un servicio de procesamiento de pagos, proporciona claves API para cada cuenta de desarrollador con el fin de autenticar las solicitudes a su API. Genera dos tipos de claves API: "publicable", que es tu clave pública que conecta tu cuenta con Stripe, y "secreta", que es tu clave privada confidencial que te permite realizar cualquier petición a Stripe.
Ideal para pruebas:
Stripe genera dos conjuntos de claves publicables y secretas, una para su aplicación en vivo y la otra para las pruebas de la API. Esto hace un total de cuatro claves. La subcadena _test_ aparece en las claves de API de prueba.
Stripe también permite a los usuarios generar claves con restricciones más estrictas si la API se implementa como un microservicio.
¿Cuándo debe utilizar una clave API?
Las Claves API pueden ser muy útiles y te dan más control sobre cómo se utiliza el software de tu aplicación, pero saber cuándo usarlas puede ser difícil. Antes de terminar este post, echa un vistazo a la siguiente lista para ver cuándo podrías querer utilizar una Clave API para tu proyecto.
El tráfico anónimo debe bloquearse porque puede indicar actividad o tráfico potencialmente malicioso. Las claves API pueden utilizarse para identificar el tráfico de aplicaciones y ayudar en la depuración y el análisis de uso.
Control de las llamadas a la API: Limitar las llamadas a la API ayuda a limitar el consumo, el tráfico y el uso para garantizar que solo el tráfico legítimo accede a la API.
Identificar el tráfico de la API: Reconocer los patrones de uso ayuda a detectar actividades maliciosas y problemas en la API.
Filtrar registros: La actividad del servidor API se puede registrar y filtrar en función de la clave API.
Las claves API tienen importantes limitaciones que debe conocer. Aquí tienes una lista de cosas que debes recordar.
Las claves API no deben utilizarse para la autorización segura porque son menos seguras que los tokens de autenticación.
Identificación de creadores o propietarios de proyectos: Las claves API solo pueden identificar el proyecto que realiza la llamada, no quién creó o posee el proyecto.
Identificación de usuarios: Las claves API se utilizan para identificar proyectos, no a los usuarios que acceden a ellos.
Las claves API pueden ayudarle a proteger sus solicitudes.
Aunque las claves de API no son la única medida de seguridad (ni siquiera la mejor), son útiles para los proveedores de API y necesarias para la autenticación de la integración de API.
Una cosa permanecerá constante a medida que las integraciones de API se extiendan a través de nuevas aplicaciones y dispositivos inteligentes: siempre habrá personas que busquen robar y explotar datos personales. Como resultado, cualquier API reputada que transmita información sensible incluirá claves API (y otras medidas de seguridad) en su arsenal.
7521 S Olympia Avenue West #1033
Tulsa, OK. 74132
(866) 595-9823