GH GambleHub

Cifrado de datos y TLS

1) Mapa de amenazas y objetivos

En el canal (in-transit): interceptar/modificar el tráfico, MitM, downgrade.
En reposo (at-nat): robo de discos/backups, volcado de BD/logs, infiltrados.
Claves: filtraciones de secretos, rotación débil, reutilización.
El objetivo es garantizar la confidencialidad, integridad y autenticidad, con SLO medidos y gestionados por criptoagilancia.

2) Clasificación de datos y política

Clases: Público/Interno/Confidencial/Restringido (PII/Finanzas/PAN).
Etiquetas: 'data. class`, `tenant`, `region`, `retention`.
Medidas obligatorias: para Restricted - cifrado a nivel de campo/objeto, registro de acceso, claves individuales per-tenant/region.

3) Encriptación «en reposo» (at-nat)

3. 1 Encriptación Envelope

DEK (Data Encryption Key) cifra los datos; KEK/CMK (KMS/HSM) cifra DEK.
La rotación KEK no requiere el descifrado de datos - pere-wrap DEK.
DEK es preferible por objeto/lote/tenant con TTL corto.

3. 2 Niveles

Transparant (TDE): disco/espacios de tabla (PostgreSQL/MySQL/SQL Server). Simple, pero sin control granular.
A nivel de aplicación: campos/objetos (PAN, secretos) - mejor para multi-tenant y mínimos de acceso.
Almacenamiento/nubes: S3/GCS SSE-KMS; para datos ACID - FLE (cifrado de campo-nivel) siempre que sea posible.

3. 3 Algoritmos y modos

AEAD: AES-256-GCM o ChaCha20-Poly1305 (en CPU sin AES-NI).
IV/nonce: la singularidad es estrictamente obligatoria; almacenar junto a ciphertext; no repetir.
Hashing: contraseñas - Argon2id (o scrypt/bcrypt) con sal y parámetros de hierro.
MAS/firmas: HMAC-SHA-256 para la integridad, o etiqueta integrada AEAD.

3. 4 Práctica para el DB/archivos

PostgreSQL: pgcrypto/extensiones; en escritura - cifrar campos sensibles en la aplicación.
Mongo/Doc-storage: client-side FLE, claves en KMS.
Backups: claves individuales y disponibles sólo desde el agente CI/CD; copias offsite - siempre cifradas.

4) Administración de claves (KMS/HSM/Vault)

Fuente de la verdad: KMS/HSM; las llaves privadas no abandonan el aparato/servicio.
Versionar: 'kid', 'purpose', 'alg', 'created _ at', 'rotates _ at'.
Acceso: least-privilege; División de responsabilidades (SoD).
Rotación: programada (3-6 meses para la firma), por evento (incidente), rotate-on-use para tokens refresh.
Auditoría: registros inmutables: quién, cuándo, qué firmó/descifró.
Multi-tenant: llaves per-tenant/brand/region; BYOK/HYOK según los requisitos del cliente.

5) Cifrado «en canal» (TLS)

5. 1 Mínimos

TLS 1. 2 +, preferiblemente TLS 1. 3; HSTS en los dominios.
Cifrado: TLS1. 3 - predefinido (AES_256_GCM_SHA384/ CHACHA20_POLY1305_SHA256).
PFS: todos los intercambios clave de Epemern (ECDHE).
ALPN: HTTP/2 y HTTP/3 (QUIC) para incluir conscientemente; vigilar los temporizadores.

5. 2 Certificados, OCSP, pinning

OCSP stapling y cadenas cortas.
Reutilización de sesiones: tickets TLS con TTL corto.
0-RTT (TLS 1. 3): incluir con precaución (sólo GET idempotente).
Pinning: sólo 'public-key pinning via TSP/Key continuity' en aplicaciones/móviles (no HPKP duro).
mTLS: dentro del perímetro/entre servicios y socios; Certificación de SAN.

5. 3 gRPC/HTTP/QUIC

gRPC transmite Deadline y metadatos: compruebe y limite el tiempo de espera per-try.
HTTP/3 (QUIC) acelera el primer byte; compruebe la compatibilidad WAF/balanceadores.

6) mTLS y servicio maestro

SPIFFE/SPIRE o mesh-CA para la emisión automática de certificados cortos (7-30 días).
Políticos: quién habla con quién (SVID→SVID), authZ en el nivel L7.
Rotación - transparente; revoke a través de actualizaciones trust-bundle.

7) Rendimiento y operación

AES-NI: en servidores habilitados - AES-GCM es más rápido. En las CPU móviles/antiguas - ChaCha20-Poly1305.
Afinación TLS: llaves cortas con PFS pero dentro de límites razonables (P-256/25519); caché de apretones de manos.
Batching: minimice las consultas menores; TLS-overhead es proporcional al número de conexiones.
Offload: TLS en el perímetro (Envoy/NGINX), en el interior - mTLS en mesh.

8) Políticas de secretos y registros

Secretos sólo en KMS/Vault; en Kubernetes - encriptación etcd + proveedor KMS.
Prohibición de registros: claves/tokens/PAN/secretos; enmascaramiento.
Snapshots/volcado: encriptar y restringir el acceso; monitorizar las vías de acceso a las llaves.

9) Confecciones y ejemplos

9. 1 NGINX (perfil estricto TLS)

nginx ssl_protocols TLSv1. 2 TLSv1. 3;
ssl_prefer_server_ciphers on;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:P-256;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

9. 2 Envoy (mTLS al upstream, pseudo)

yaml transport_socket:
name: envoy. transport_sockets. tls typed_config:
common_tls_context:
tls_params:
tls_minimum_protocol_version: TLSv1_2 tls_certificate_sds_secret_configs:
- name: service_cert # client certificate validation_context_sds_secret_config:
name: mesh_ca_bundle # trusted roots

9. 3 Ejemplo de uso de AEAD (pseudo)

pseudo nonce = random(12)
ciphertext, tag = AES256_GCM. encrypt(key=DEK, nonce, aad=tenant    object_id, plaintext)
store(nonce    ciphertext    tag)

10) Rotación y claves revocadas

JWKS/' kid 'para JWT; los cortos 'amb'.
Listas 'jti '/' sid' para revocar tokens con TTL.
Secretos de HMAC (webhooks): activo + canario; recepción de ambos hasta la fecha límite.
TLS: alertas de T-30/T-7/T-1, extensión automática, canario seguro.

11) Observabilidad y alertas

Метрики: `tls_handshake_fail_total{reason}`, `tls_version_share`, `cipher_share`, `ocsp_stapling_errors`, `kms_ops_total{op}`, `decrypt_fail_total`, `jwks_kid_share`.
Registros de acceso: protocolo/versión/cifrado (sin secretos).
Alertas: certificados caducados, estallido de 'bad _ record _ mac', crecimiento de 'cadenas desconfiadas', descifrados fallidos.

12) Especificidad de iGaming/finanzas

flujos PAN-safe: tokenización, almacenamiento de sólo tokens; PAN - PSP/token storage.
PCI DSS: cifrado de datos de titulares de tarjetas, restricción de acceso a claves, registro de operaciones de cifrado, segmentación de redes.
Regionalidad: claves y datos en la región del jugador (latencia/soberanía).
Backoffice: mTLS + SSO, sesiones cortas, FIDO2 para administradores.

13) Antipatternas

TLS < 1. 2; cifrados débiles permitidos/RC4/3DES.
Secretos y claves «eternas» comunes sin rotación y 'kid'.
Repetición IV/nonce en GCM (fatal para la seguridad).
Registros con secretos/claves/datos pan.
Sólo TDE sin cifrado de campos sensibles.
Pinning HPKP en la venta (riesgo de «samopropiramiento»).
0-RTT en solicitudes write/no idempotent.

14) Lista de comprobación prod

  • Clasificación de datos y política de cifrado (por-clase).
  • AEAD (AES-GCM/ChaCha20-Poly1305); nonce únicos; Argon2id para contraseñas.
  • Encriptación envelope: DEK por objeto/tenant; KEK в KMS/HSM.
  • TLS 1. 2+/1. 3, HSTS, OCSP stapling; un conjunto razonable de cifrados.
  • mTLS en el interior; emisión/rotación automática de certificados cortos.
  • JWKS/' kid ', corto' amb ', listas' jti '; rotación de secretos/serts con superposición.
  • Los backups y registros están cifrados; se auditan los accesos y las operaciones.
  • Dashboards/alertas por TLS/KMS/JWKS; pruebas de degradación y canario.
  • Documentación: procedimientos de incidentes (compromiso clave/sert).

15) TL; DR

Cifre en todas partes: en el canal - TLS 1. 3/1. 2 con PFS y perímetro estricto; dentro - mTLS. En reposo - envelope (DEK/KEK) con las claves en KMS/HSM, cifrar granularmente los campos sensibles. Controle las claves a través de 'kid '/JWKS y rotación regular con solapamiento, almacene los registros de las operaciones de cifrado. Seleccione AES-GCM (o ChaCha20-Poly1305), no reuse-nonce, cifre los backups/logs. Para iGaming/PAN, la tokenización y la segmentación consciente de PCI.

Contact

Póngase en contacto

Escríbanos ante cualquier duda o necesidad de soporte.¡Siempre estamos listos para ayudarle!

Telegram
@Gamble_GC
Iniciar integración

El Email es obligatorio. Telegram o WhatsApp — opcionales.

Su nombre opcional
Email opcional
Asunto opcional
Mensaje opcional
Telegram opcional
@
Si indica Telegram, también le responderemos allí además del Email.
WhatsApp opcional
Formato: +código de país y número (por ejemplo, +34XXXXXXXXX).

Al hacer clic en el botón, usted acepta el tratamiento de sus datos.