Principios de seguridad fundamentales de Mpcium

Mpcium implementa un esquema de firma de umbral con prácticas de seguridad estándar de la industria para proteger las operaciones criptográficas:

  1. Confianza distribuida: ninguna entidad individual posee claves privadas completas
  2. Criptografía de umbral: se requieren t+1 nodos para participar en las operaciones de firma
  3. Verificación de extremo a extremo: todas las comunicaciones se firman y verifican
  4. Defensa en profundidad: múltiples capas de cifrado y verificación

Identidad y autenticación

Gestión de la identidad de los nodos

  • Pares de claves Ed25519: cada nodo posee un par de claves Ed25519 único como identidad
  • Generación de identidad: creación segura de identidades con el comando generate-identity:
    go run cmd/mpcium-cli/main.go generate-identity --node=node0 --peers=peers.json --encrypt
    
  • Seguimiento de metadatos: cada identidad incluye información de creación, detalles de la máquina y marcas de tiempo
  • Verificación de identidad: todas las operaciones requieren una prueba criptográfica de identidad

Autenticación de mensajes

Cada mensaje en la red de Mpcium pasa por una verificación rigurosa:

// Messages are signed before transmission
signature, err := s.identityStore.SignMessage(&tssMsg)
if err != nil {
    s.ErrCh <- fmt.Errorf("failed to sign message: %w", err)
    return
}
tssMsg.Signature = signature

// Messages are verified upon receipt
if !s.verifyMessageSignature(message) {
    return fmt.Errorf("invalid message signature")
}
  • Firmas deterministas: los mensajes se canonicalizan antes de firmarse para garantizar la consistencia
  • Verificación del Party ID: el protocolo TSS garantiza que todos los nodos participantes tengan identidades válidas
  • Verificación de firmas: todos los mensajes entrantes pasan por una verificación de firma antes de procesarse

Tecnologías de cifrado

Cifrado de claves privadas

Las claves privadas se protegen mediante varios mecanismos:

  1. Cifrado con Age:

    • Herramienta de cifrado de archivos de última generación basada en X25519
    • Derivación de claves con Scrypt para el cifrado basado en contraseña
    • Cifrado autenticado que garantiza la resistencia a la manipulación
    # Decrypt private key for use
    age --decrypt -o event_initiator.key event_initiator.key.age
    
  2. Requisitos de contraseña:

    • Generadas con alta entropía:
      < /dev/urandom tr -dc 'A-Za-z0-9!@#$^&\*()-\_=+[]{}|;:,.<>?/~' | head -c 16; echo
      
    • Se solicita a los usuarios la contraseña mediante métodos de entrada seguros que no la muestran en pantalla

Cifrado del almacenamiento local

Todos los datos sensibles locales de cada nodo están cifrados:

// BadgerDB with mandatory encryption
	badgerKv, err := kvstore.NewBadgerKVStore(
		dbPath,
		[]byte(viper.GetString("badger_password")),
	)
  • Error si falta la clave: el sistema se niega a iniciar si no se proporcionan las claves de cifrado
  • Índice cifrado: tanto los datos como los metadatos están cifrados
  • Compresión ZSTD: los datos se comprimen antes del cifrado para mayor eficiencia

Seguridad de red

Implementación de TLS

Todas las comunicaciones en producción usan TLS:

nats:
  url: tls://127.0.0.1:4222 # Required TLS for production
  username: ""
  password: ""

consul:
  address: https://consul.example.com # Required HTTPS for production
  • Verificación de certificados: las conexiones a Consul y NATS verifican los certificados del servidor
  • TLS mutuo: tanto el cliente como el servidor se autentican mutuamente
  • Suites de cifrado robustas: solo se usan suites de cifrado modernas y seguras

Arquitectura de mensajería segura

La infraestructura de mensajería NATS proporciona:

  • Aislamiento de temas: cada sesión usa temas únicos
  • Mensajería directa: comunicaciones seguras punto a punto
  • Durabilidad con JetStream: los mensajes críticos persisten con cifrado
  • Gestión de colas: procesamiento distribuido de colas con autenticación

Seguridad del protocolo de firma de umbral

Computación multipartita

La implementación de la firma de umbral incluye:

  • Recompartición de claves: soporte para la rotación de claves manteniendo la misma clave pública
  • Flexibilidad del umbral: umbral configurable según los requisitos de seguridad
  • Verificación del protocolo: los mensajes incluyen verificación de ronda y de protocolo

Seguridad de las sesiones

Cada sesión de firma o de generación de claves implementa:

  • Aislamiento de sesiones: identificadores únicos evitan la interferencia entre sesiones
  • Manejo de tiempos de espera: las sesiones expiran si no se completan dentro de un plazo
  • Propagación de errores: manejo seguro de errores para evitar fugas de información
  • Verificación de rondas: cada ronda del protocolo valida las entradas esperadas

Seguridad operativa

Distribución de nodos

  • Despliega los nodos en diferentes:
    • Proveedores de nube
    • Regiones geográficas
    • Segmentos de red
    • Dominios administrativos

Gestión de claves

  • Material de claves separado: almacena las claves cifradas por separado de las contraseñas
  • Seguridad por hardware: considera la integración con HSM para despliegues en producción
  • Rotación de claves: establece procedimientos periódicos de rotación de claves
  • Seguridad de las copias de respaldo: mantén copias de respaldo seguras y cifradas de todo el material de claves

Endurecimiento de la red

  • Reglas de firewall: restringe la comunicación solo a los puertos necesarios
  • Lista blanca de IP: limita las conexiones a direcciones IP conocidas
  • Protección contra DDoS: implementa mitigación de DDoS para los componentes expuestos al público
  • Monitoreo de red: monitorea patrones de tráfico inusuales

Seguridad continua

  • Escaneo de dependencias: escanea y actualiza las dependencias con regularidad
  • Pruebas de penetración: realiza evaluaciones de seguridad periódicas
  • Registro de auditoría: mantén registros de auditoría completos de todas las operaciones
  • Respuesta a incidentes: desarrolla y prueba procedimientos de respuesta a incidentes de seguridad