Lista blanca de IP para claves API

Pájaro

19 ago 2015

Correo electrónico

1 min read

Lista blanca de IP para claves API

Puntos clave

    • Las API keys son credenciales poderosas: si se ven comprometidas, los atacantes pueden enviar correos electrónicos, robar datos o hacerse pasar por tu marca.

    • Forzar al azar una clave hexadecimal de 40 caracteres es esencialmente imposible; las verdaderas amenazas provienen de la exposición (ataques MITM, repositorios de código inseguros, credenciales filtradas).

    • Siempre usa HTTPS y valida los certificados SSL para evitar la intercepción de tus API keys.

    • La lista blanca de IPs agrega una capa crítica de protección al restringir el uso de una clave a IPs específicas o rangos de IP.

    • Incluso si un atacante roba tu API key, no puede usarla a menos que se conecte desde una IP aprobada.

    • El soporte de CIDR facilita la autorización de redes enteras sin listar cada servidor.

    • Evita incrustar API keys en el código: utiliza variables de entorno o soluciones seguras de gestión de secretos en su lugar.

    • Crea múltiples API keys de alcance limitado en lugar de una única clave "hace-todo" — cada una con permisos limitados y su propia lista blanca.

    • Para integraciones de terceros, crea claves dedicadas con permisos restringidos e IPs restringidas.

    • Habilita 2FA en tu cuenta ya que las API keys solo pueden ser creadas a través de la interfaz de usuario.

    • Revisa, rota y retira regularmente las claves para mantener una seguridad operativa fuerte.

Destacados de Q&A

  • ¿Qué es IP whitelisting?

    Es una característica de seguridad que restringe el uso de la clave API a direcciones IP o rangos de IP específicos.

  • ¿Por qué SparkPost/Bird utiliza claves API para la autenticación?

    Las claves API son simples, están ampliamente adoptadas y funcionan adecuadamente con REST APIs y SMTP.

  • ¿Qué pasa si alguien roba mi API key?

    Podrían enviar correo en tu nombre, descargar listas de destinatarios, modificar plantillas o enviar phishing/spam que dañe tu marca.

  • ¿Se pueden forzar las claves API?

    Prácticamente imposible. Una cadena hexadecimal de 40 caracteres tiene ~1.46e48 combinaciones — forzarla por fuerza bruta llevaría más tiempo que la edad del universo.

  • Entonces, ¿cómo consiguen normalmente los atacantes las claves API?

    Ataques de hombre en el medio (si SSL no está verificado), claves expuestas en repositorios públicos de GitHub, o registros que filtran accidentalmente claves.

  • ¿Cómo ayuda el IP whitelisting?

    Incluso si un atacante roba tu clave, no funcionará a menos que se conecte desde una IP aprobada.

  • ¿Puedo whitelist redes enteras?

    Sí, a través de la notación CIDR — ideal para servidores con balanceo de carga, VPNs o rangos de oficina estáticos.

  • ¿La inclusión en la lista blanca se aplica tanto a REST como a SMTP?

    Sí, la IP de la solicitud entrante debe coincidir con su lista blanca.

  • ¿Cuántas IPs o rangos puedo whitelistear?

    Tantos como necesites — múltiples IPs individuales o bloques.

  • ¿Debería usar una única API key para todo?

    No. Cree claves separadas para diferentes sistemas, equipos o proveedores. Esto mejora la seguridad y facilita la rotación o revocación de claves.

  • ¿Dónde debería almacenar las claves de API?

    Usa variables de entorno — nunca codifiques claves directamente en archivos fuente o en repositorios públicos.

  • ¿Alguna práctica adicional de seguridad?

    Siempre habilite 2FA en su cuenta de SparkPost/Bird y cree claves dedicadas para terceros con permisos mínimos y sus propias listas blancas.

Hay muchas maneras de construir la autenticación en un producto con prioridad en API como SparkPost, y la que elegimos desde el principio es el uso de claves de API. Inyectar tu clave de API como un encabezado de Autorización bruto o a través de HTTP Basic Auth estándar hace que sea muy fácil usar nuestras APIs. Las claves de API como esta son un estándar común para los servicios web, pero ¿qué tan seguro es este sistema?

Hay muchas maneras de construir la autenticación en un producto con prioridad en API como SparkPost, y la que elegimos desde el principio es el uso de claves de API. Inyectar tu clave de API como un encabezado de Autorización bruto o a través de HTTP Basic Auth estándar hace que sea muy fácil usar nuestras APIs. Las claves de API como esta son un estándar común para los servicios web, pero ¿qué tan seguro es este sistema?

Hay muchas maneras de construir la autenticación en un producto con prioridad en API como SparkPost, y la que elegimos desde el principio es el uso de claves de API. Inyectar tu clave de API como un encabezado de Autorización bruto o a través de HTTP Basic Auth estándar hace que sea muy fácil usar nuestras APIs. Las claves de API como esta son un estándar común para los servicios web, pero ¿qué tan seguro es este sistema?

Los riesgos

Cuando se utiliza cualquier servicio web, si un atacante obtiene su clave API, puede actuar en su nombre y hacer cosas como (en nuestro caso):

  • enviar su correo electrónico de forma gratuita a través de su cuenta

  • descargar su lista de destinatarios y enviarla a spammers (si no son ellos mismos spammers)

  • editar sus plantillas para inyectar enlaces de phishing

  • enviar spam o phishing en su nombre

Cualquiera de estos resultados podría ser muy perjudicial para su reputación y para su negocio, y en el caso de phishing, potencialmente dañar directamente a sus usuarios finales. Por esta razón, es extremadamente importante asegurarse de que nadie pueda descubrir su clave API.

Cuando se utiliza cualquier servicio web, si un atacante obtiene su clave API, puede actuar en su nombre y hacer cosas como (en nuestro caso):

  • enviar su correo electrónico de forma gratuita a través de su cuenta

  • descargar su lista de destinatarios y enviarla a spammers (si no son ellos mismos spammers)

  • editar sus plantillas para inyectar enlaces de phishing

  • enviar spam o phishing en su nombre

Cualquiera de estos resultados podría ser muy perjudicial para su reputación y para su negocio, y en el caso de phishing, potencialmente dañar directamente a sus usuarios finales. Por esta razón, es extremadamente importante asegurarse de que nadie pueda descubrir su clave API.

Cuando se utiliza cualquier servicio web, si un atacante obtiene su clave API, puede actuar en su nombre y hacer cosas como (en nuestro caso):

  • enviar su correo electrónico de forma gratuita a través de su cuenta

  • descargar su lista de destinatarios y enviarla a spammers (si no son ellos mismos spammers)

  • editar sus plantillas para inyectar enlaces de phishing

  • enviar spam o phishing en su nombre

Cualquiera de estos resultados podría ser muy perjudicial para su reputación y para su negocio, y en el caso de phishing, potencialmente dañar directamente a sus usuarios finales. Por esta razón, es extremadamente importante asegurarse de que nadie pueda descubrir su clave API.

Las probabilidades

¿Escuché bruteforce? Nuestras claves API son cadenas hexadecimales aleatorias de 40 caracteres. Esto representa un total de 1.4615e+48 claves API. Si los 3 mil millones de computadoras y teléfonos inteligentes en el mundo intentaran 100 claves API por segundo, suponiendo que nuestros servidores lo permitieran, pasar por todas las posibles claves API llevaría más de 150,000,000,000,000,000,000,000,000,000 años. Así que forzar la clave API simplemente no tiene sentido.

Entonces, ¿cómo puede alguien encontrar tu clave API? Debido a que la clave se pasa como un encabezado, puede ser leída con ataques de intermediario, por lo que siempre debes asegurarte de que tu cliente está verificando los certificados SSL al conectarse a nuestras APIs (esta es una razón principal por la que requerimos https para conexiones a la API). Además, si no tienes cuidado con tu uso de repositorios de código público como github, tu clave API puede quedar fácilmente expuesta al público. Este no es un problema teórico: hay bots conocidos escaneando github para encontrar claves API, y ha habido ataques exitosos a través de ese vector.

¿Escuché bruteforce? Nuestras claves API son cadenas hexadecimales aleatorias de 40 caracteres. Esto representa un total de 1.4615e+48 claves API. Si los 3 mil millones de computadoras y teléfonos inteligentes en el mundo intentaran 100 claves API por segundo, suponiendo que nuestros servidores lo permitieran, pasar por todas las posibles claves API llevaría más de 150,000,000,000,000,000,000,000,000,000 años. Así que forzar la clave API simplemente no tiene sentido.

Entonces, ¿cómo puede alguien encontrar tu clave API? Debido a que la clave se pasa como un encabezado, puede ser leída con ataques de intermediario, por lo que siempre debes asegurarte de que tu cliente está verificando los certificados SSL al conectarse a nuestras APIs (esta es una razón principal por la que requerimos https para conexiones a la API). Además, si no tienes cuidado con tu uso de repositorios de código público como github, tu clave API puede quedar fácilmente expuesta al público. Este no es un problema teórico: hay bots conocidos escaneando github para encontrar claves API, y ha habido ataques exitosos a través de ese vector.

¿Escuché bruteforce? Nuestras claves API son cadenas hexadecimales aleatorias de 40 caracteres. Esto representa un total de 1.4615e+48 claves API. Si los 3 mil millones de computadoras y teléfonos inteligentes en el mundo intentaran 100 claves API por segundo, suponiendo que nuestros servidores lo permitieran, pasar por todas las posibles claves API llevaría más de 150,000,000,000,000,000,000,000,000,000 años. Así que forzar la clave API simplemente no tiene sentido.

Entonces, ¿cómo puede alguien encontrar tu clave API? Debido a que la clave se pasa como un encabezado, puede ser leída con ataques de intermediario, por lo que siempre debes asegurarte de que tu cliente está verificando los certificados SSL al conectarse a nuestras APIs (esta es una razón principal por la que requerimos https para conexiones a la API). Además, si no tienes cuidado con tu uso de repositorios de código público como github, tu clave API puede quedar fácilmente expuesta al público. Este no es un problema teórico: hay bots conocidos escaneando github para encontrar claves API, y ha habido ataques exitosos a través de ese vector.

IP whitelisting al rescate

Cuando creas una clave API, ahora puedes especificar una lista de IPs autorizadas para usar esta clave. Puedes especificar varias IP, así como bloques de IP, usando la notación CIDR, para que no tengas que enumerar tus servidores individualmente. Cuando se utiliza la clave API, ya sea para APIs REST o SMTP, compararemos la IP que se conecta con esta lista para permitir o denegar el acceso.

Con esta característica, incluso si tu clave API se encuentra o es robada, solo tus servidores podrán usarla. Dados los riesgos y lo fácil que es configurarlo, recomendamos encarecidamente a todos nuestros clientes que utilicen esta característica.

Cuando creas una clave API, ahora puedes especificar una lista de IPs autorizadas para usar esta clave. Puedes especificar varias IP, así como bloques de IP, usando la notación CIDR, para que no tengas que enumerar tus servidores individualmente. Cuando se utiliza la clave API, ya sea para APIs REST o SMTP, compararemos la IP que se conecta con esta lista para permitir o denegar el acceso.

Con esta característica, incluso si tu clave API se encuentra o es robada, solo tus servidores podrán usarla. Dados los riesgos y lo fácil que es configurarlo, recomendamos encarecidamente a todos nuestros clientes que utilicen esta característica.

Cuando creas una clave API, ahora puedes especificar una lista de IPs autorizadas para usar esta clave. Puedes especificar varias IP, así como bloques de IP, usando la notación CIDR, para que no tengas que enumerar tus servidores individualmente. Cuando se utiliza la clave API, ya sea para APIs REST o SMTP, compararemos la IP que se conecta con esta lista para permitir o denegar el acceso.

Con esta característica, incluso si tu clave API se encuentra o es robada, solo tus servidores podrán usarla. Dados los riesgos y lo fácil que es configurarlo, recomendamos encarecidamente a todos nuestros clientes que utilicen esta característica.

Últimas palabras

Algunas recomendaciones personales sobre seguridad:

  • No mantengas tus claves API en el código. Hay muchos beneficios en mantenerlas como variables de entorno, como hace Heroku

  • Puedes crear una cantidad ilimitada de claves API, y es mejor para la seguridad dividir las responsabilidades entre varias claves API, en lugar de solo una clave multiusos. Esto también te permitiría tener diferentes listas blancas de IP por clave, para una mejor separación de responsabilidades

  • Si trabajas con terceros, no compartas tu clave API, sino crea una nueva para ellos, solo con los permisos necesarios, y vinculada a sus IPs

  • Ya que las claves API solo se pueden crear a través de la interfaz, habilitar la autenticación de dos factores en tu cuenta de SparkPost es imprescindible y solo toma 2 minutos

Algunas recomendaciones personales sobre seguridad:

  • No mantengas tus claves API en el código. Hay muchos beneficios en mantenerlas como variables de entorno, como hace Heroku

  • Puedes crear una cantidad ilimitada de claves API, y es mejor para la seguridad dividir las responsabilidades entre varias claves API, en lugar de solo una clave multiusos. Esto también te permitiría tener diferentes listas blancas de IP por clave, para una mejor separación de responsabilidades

  • Si trabajas con terceros, no compartas tu clave API, sino crea una nueva para ellos, solo con los permisos necesarios, y vinculada a sus IPs

  • Ya que las claves API solo se pueden crear a través de la interfaz, habilitar la autenticación de dos factores en tu cuenta de SparkPost es imprescindible y solo toma 2 minutos

Algunas recomendaciones personales sobre seguridad:

  • No mantengas tus claves API en el código. Hay muchos beneficios en mantenerlas como variables de entorno, como hace Heroku

  • Puedes crear una cantidad ilimitada de claves API, y es mejor para la seguridad dividir las responsabilidades entre varias claves API, en lugar de solo una clave multiusos. Esto también te permitiría tener diferentes listas blancas de IP por clave, para una mejor separación de responsabilidades

  • Si trabajas con terceros, no compartas tu clave API, sino crea una nueva para ellos, solo con los permisos necesarios, y vinculada a sus IPs

  • Ya que las claves API solo se pueden crear a través de la interfaz, habilitar la autenticación de dos factores en tu cuenta de SparkPost es imprescindible y solo toma 2 minutos

Otras noticias

Leer más de esta categoría

A person is standing at a desk while typing on a laptop.

La plataforma completa AI-native que escala con tu negocio.

© 2025 Bird

A person is standing at a desk while typing on a laptop.

La plataforma completa AI-native que escala con tu negocio.

© 2025 Bird