🔐 Guía de Seguridad - Crypto API
🛡️ Medidas de Seguridad Implementadas
Todas las operaciones de hash requieren una clave API válida
Configurar la variable de entorno API_KEY con una clave fuerte
Incluir en headers: X-API-Key: tu-clave-api o Authorization: Bearer tu-clave-api
Máximo 100 requests por IP cada 15 minutos (configurable)
Protección contra ataques de fuerza bruta y DDoS
Headers de respuesta incluyen información sobre límites
Sanitización automática de parámetros
Validación de longitud máxima (token: 1000 chars, accesskey: 100 chars)
Escape de caracteres peligrosos
4. Headers de Seguridad (Helmet.js)
Content Security Policy (CSP)
HTTP Strict Transport Security (HSTS)
X-Frame-Options, X-Content-Type-Options
Referrer Policy
Solo orígenes específicos permitidos
Configurar ALLOWED_ORIGINS para tu dominio
Métodos HTTP limitados a GET y POST
Registro de intentos de autenticación fallidos
Logging de IPs sospechosas
Detección de patrones anómalos
🔧 Configuración de Seguridad
Variables de Entorno Requeridas
# .env
API_KEY=genera-una-clave-super-segura-aqui
ALLOWED_ORIGINS=https://tu-dominio.com,https://otro-dominio-permitido.com
NODE_ENV=production
ENABLE_REQUEST_LOGGING=false
Generación de API Key Segura
# Método 1: OpenSSL
openssl rand -base64 32
# Método 2: Node.js
node -e " console.log(require('crypto').randomBytes(32).toString('hex'))"
# Método 3: Online (usar solo para desarrollo)
# https://www.uuidgenerator.net/api-key-generator
Configuración de Producción
✅ Usar HTTPS siempre
✅ Configurar API_KEY fuerte y única
✅ Restringir ALLOWED_ORIGINS a dominios específicos
✅ Configurar NODE_ENV=production
✅ Deshabilitar logging detallado en producción
✅ Usar proxy reverso (nginx/cloudflare)
✅ Configurar firewall y monitoreo
Indicadores de Compromiso
Múltiples intentos de API key inválida
Requests desde IPs no autorizadas
Patrones de uso anómalos
Parámetros de longitud sospechosa
# Intentos de autenticación fallidos
grep " Invalid API key attempt" logs/
# Requests sospechosos
grep " SECURITY" logs/
# Errores de validación
grep " Validation failed" logs/
Tasa de error de autenticación
Número de IPs bloqueadas por rate limiting
Tiempo de respuesta promedio
Uso de CPU y memoria
🔄 Actualizaciones de Seguridad
Dependencias a Monitorear
# Verificar vulnerabilidades
npm audit
# Actualizar dependencias
npm update
# Verificar dependencias obsoletas
npm outdated
Cambiar API_KEY cada 90 días mínimo
Notificar a clientes con anticipación
Implementar sistema de múltiples claves si es necesario
🚨 Cambiar API_KEY inmediatamente
🔍 Revisar logs de acceso
🚫 Bloquear IPs sospechosas
📧 Notificar a usuarios afectados
🔄 Revisar y actualizar medidas de seguridad