Lista blanca de IP para claves API
Correo electrónico
·
19 ago 2015

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?
Los riesgos
Cuando se utiliza cualquier servicio web, si un atacante obtiene tu clave de API, puede actuar en tu nombre y hacer cosas como (en nuestro caso):
enviar su correo electrónico gratis a través de tu cuenta
descargar tu lista de destinatarios y alimentarlos a los spammers (si no son ellos mismos spammers)
editar tus plantillas para inyectar enlaces de phishing
enviar spam o phishing en tu nombre
Cualquiera de estos resultados podría ser muy perjudicial para tu reputación y para tu negocio, y en el caso del phishing, potencialmente dañar directamente a tus usuarios finales. Por eso es extremadamente importante asegurarse de que nadie pueda descubrir tu clave de API.
Las probabilidades
¿Escuché bruteforce? Nuestras claves API son cadenas hexadecimales de 40 caracteres generadas aleatoriamente. Esto hace un total de 1.4615e+48 claves API. Si todos los 3 mil millones de computadoras y smartphones en el mundo intentaran 100 claves API por segundo, asumiendo que nuestros servidores lo permitirían, pasar por todas las posibles claves API tomaría más de 150,000,000,000,000,000,000,000,000,000 años. Así que forzar por fuerza bruta la clave API simplemente no tiene sentido.
¿Cómo puede alguien encontrar tu clave API? Dado que la clave se pasa como un encabezado, puede ser leída con ataques man-in-the-middle, por lo que siempre debes asegurarte de que tu cliente verifique los certificados SSL al conectarse a nuestras APIs (esta es una razón mayor por la que requerimos https para conexiones API). Además, si eres descuidado con tu uso de repositorios de código público como github, tu clave API puede quedar fácilmente expuesta. Esto no es un problema académico: se sabe que hay bots rastreando github para encontrar claves API, y ha habido ataques exitosos a través de ese vector.
La lista blanca de IP al rescate
Ú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 tipo navaja suiza. Esto también te permitiría tener diferentes listas blancas de IP por clave, para una aún mejor separación de preocupaciones
Si trabajas con terceros, no compartas tu clave API sino crea una nueva para ellos, con solo los permisos necesarios, y adjunta a sus IPs
Dado que las claves API solo pueden crearse 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



