Datenverschlüsselung und TLS
1) Bedrohungskarte und Ziele
Im Kanal (in-transit): Abfangen/Modifizieren von Verkehr, MitM, Downgrade.
In Ruhe (at-rest): Diebstahl von Festplatten/Backups, DB/Log-Dumps, Insidern.
Schlüssel: Leck Geheimnisse, schwache Rotation, Wiederverwendung.
Ziel ist es, Vertraulichkeit, Integrität und Authentizität zu gewährleisten, mit messbaren SLOs und überschaubarer Krypto-Agilität.
2) Datenklassifizierung und Politik
Die Klassen: Public / Internal / Confidential / Restricted (die PII/Finanzen/PAN).
Tags: 'data. class`, `tenant`, `region`, `retention`.
Obligatorische Maßnahmen: für Restricted - Verschlüsselung auf Feld-/Objektebene, Zugriffsprotokoll, separate Schlüssel per-tenant/region.
3) Verschlüsselung „in Ruhe“ (at-rest)
3. 1 Envelope-Verschlüsselung
DEK (Data Encryption Key) verschlüsselt die Daten; KEK/CMK (KMS/HSM) verschlüsselt DEK.
Die Rotation von KEK erfordert keine Entschlüsselung der Daten - per-wrap DEK.
DEK bevorzugt per Objekt/Party/Tenant mit kurzer TTL.
3. 2 Ebenen
Banner (TDE): Laufwerk/Tabellenräume (PostgreSQL/MySQL/SQL Server). Einfach, aber ohne granulare Kontrolle.
Auf Anwendungsebene: Felder/Objekte (PAN, Secrets) - besser für Multi-Tenant und Access-Minima.
Speicher/Cloud: S3/GCS SSE-KMS für ACID-Daten - FLE (Field-Level Encryption) wo möglich.
3. 3 Algorithmen und Modi
AEAD: AES-256-GCM oder ChaCha20-Poly1305 (auf einer CPU ohne AES-NI).
IV/nonce: Einzigartigkeit ist unbedingt erforderlich; in der Nähe von ciphertext aufbewahren; nicht zu wiederholen.
Hashing: Passwörter - Argon2id (oder scrypt/bcrypt) mit Salz und Parameter auf der Hardware.
IAS/Signaturen: HMAC-SHA-256 für Integrität oder AEAD eingebettete Beschriftung.
3. 4 Praxis für DB/Dateien
PostgreSQL: pgcrypto/Erweiterungen; auf write - Verschlüsseln Sie sensible Felder in der Anwendung.
Mongo/Doc-Speicher: Client-Side FLE, Schlüssel im KMS.
Backups: separate Schlüssel und nur vom CI/CD-Agent verfügbar; Offsite-Kopien - immer verschlüsselt.
4) Schlüsselverwaltung (KMS/HSM/Vault)
Quelle der Wahrheit: KMS/HSM; private Schlüssel verlassen das Gerät/den Dienst nicht.
Versionierung: 'kid', 'purpose', 'alg', 'created _ at', 'rotates _ at'.
Zugang: least-privilege; Aufgabenteilung (SoD).
Rotation: nach Zeitplan (3-6 Monate für die Unterschrift), nach Ereignis (Vorfall), rotate-on-use für refresh-Token.
Audit: Unveränderliche Protokolle: wer, wann, was signiert/entschlüsselt.
Multi-Tenant: Schlüssel per-tenant/brand/region; BYOK/HYOK auf Kundenwunsch.
5) Verschlüsselung „im Kanal“ (TLS)
5. 1 Tiefs
TLS 1. 2 +, vorzugsweise TLS 1. 3; HSTS auf Domains.
Verschlüsselungen: TLS1. 3 - vordefiniert (AES_256_GCM_SHA384/ CHACHA20_POLY1305_SHA256).
PFS: Alle wichtigen Börsen sind epemern (ECDHE).
ALPN: HTTP/2 und HTTP/3 (QUIC) bewusst einbeziehen; Überwachen Sie die Timer.
5. 2 Zertifikate, OCSP, pinning
OCSP Stapeln und kurze Ketten.
Wiederverwendung von Sitzungen: TLS-Tickets mit kurzer TTL.
0-RTT (TLS 1. 3): vorsichtig einschalten (nur idempotente GETs).
Pinning: nur 'public-key pinning via TSP/Key continuity' in Apps/Mobilgeräten (kein hartes HPKP).
mTLS: innerhalb des Perimeters/zwischen Diensten und Partnern; SAN-Zertifizierung.
5. 3 gRPC/HTTP/QUIC
gRPC überträgt Deadline und Metadaten - per-try Timeout prüfen und einschränken.
HTTP/3 (QUIC) beschleunigt first-byte Überprüfen Sie die Kompatibilität der WAF/Balancer.
6) mTLS und Service-Mash
SPIFFE/SPIRE oder mesh-CA für die automatische Ausstellung von Kurzzertifikaten (7-30 Tage).
Politiker: Wer mit wem spricht (SVID→SVID), authZ auf L7-Niveau.
Rotation - transparent; revoke durch trust-bundle-Updates.
7) Leistung und Betrieb
AES-NI: Auf Servern mit Support - AES-GCM ist schneller. Auf mobilen/alten CPUs - ChaCha20-Poly1305.
TLS-Tuning: kurze Schlüssel mit PFS, aber in vernünftigen Grenzen (P-256/25519); Handshake-Cache.
Batching: Minimieren Sie kleine Anfragen; TLS-overhead ist proportional zur Anzahl der Verbindungen.
Offload: TLS am Perimeter (Envoy/NGINX), innen mTLS im Mesh.
8) Richtlinien für Geheimnisse und Protokolle
Geheimnisse nur in KMS/Vault; in Kubernetes - Verschlüsselung etcd + KMS-Anbieter.
Logverbot: Schlüssel/Token/PAN/Geheimnisse; Maskieren.
Snapshots/Dumps: Verschlüsseln und beschränken Sie den Zugriff; Schlüsselzugriffe überwachen.
9) Configs und Beispiele
9. 1 NGINX (TLS strenges Profil)
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 zum 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 Beispiel für die Verwendung von AEAD (Pseudo)
pseudo nonce = random(12)
ciphertext, tag = AES256_GCM. encrypt(key=DEK, nonce, aad=tenant object_id, plaintext)
store(nonce ciphertext tag)
10) Rotation und zurückgerufene Schlüssel
JWKS/" kid' für JWT; kurz „exp“.
Listen 'jti '/' sid' für den Widerruf von Token mit TTL.
Geheimnisse von HMAC (Webhooks): aktiv + kanarienartig; Empfang von beiden vor dem letzten Termin.
TLS: T-30/T-7/T-1 Alerts, automatische Verlängerung, sicheres Canary.
11) Beobachtbarkeit und Warnungen
Метрики: `tls_handshake_fail_total{reason}`, `tls_version_share`, `cipher_share`, `ocsp_stapling_errors`, `kms_ops_total{op}`, `decrypt_fail_total`, `jwks_kid_share`.
Zugriffsprotokolle: Protokoll/Version/Chiffre (keine Geheimnisse).
Alerts: auslaufende Zertifikate, ein Anstieg von 'bad _ record _ mac', das Wachstum von 'ungläubigen Ketten', fehlgeschlagene Entschlüsselungen.
12) Spezifität von iGaming/Finanzen
PAN-Safe-Streams: Tokenisierung, Speicherung nur von Token; PAN - PSP/Token-Speicher.
PCI DSS: Verschlüsselung von Karteninhaberdaten, Beschränkung des Schlüsselzugriffs, Krypto-Betriebsprotokoll, Netzwerksegmentierung.
Regionalität: Schlüssel und Daten in der Region des Spielers (Latenz/Souveränität).
Backoffice: mTLS + SSO, kurze Sitzungen, FIDO2 für Admins.
13) Antipatterns
TLS < 1. 2; erlaubte schwache Chiffren/RC4/3DES.
Gemeinsame „ewige“ Geheimnisse und Schlüssel ohne Rotation und „Kind“.
Wiederholung IV/Nonce in GCM (fatal für die Sicherheit).
Protokolle mit Geheimnissen/Schlüsseln/Pan-Daten.
Nur TDE ohne Verschlüsselung empfindlicher Felder.
HPKP-Pinning in Proda (Gefahr der „Selbsthemmung“).
0-RTT auf write/nicht-identische Anfragen.
14) Checkliste Prod-Ready
- Datenklassifizierung und Verschlüsselungsrichtlinie (per-class).
- AEAD (AES-GCM/ChaCha20-Poly1305); einzigartige nonce; Argon2id für Passwörter.
- Envelope-Verschlüsselung: DEK pro Objekt/Tenant; KEK в KMS/HSM.
- TLS 1. 2+/1. 3, HSTS, OCSP stapling; eine vernünftige Reihe von Chiffren.
- mTLS intern; automatische Ausstellung/Rotation von Kurzzertifikaten.
- JWKS/" kid', kurz "exp", Listen "jti"; Rotation von Geheimnissen/Serts mit Überlappung.
- Backups und Protokolle sind verschlüsselt; Zugriffe und Vorgänge werden geprüft.
- Dashboards/Warnungen nach TLS/KMS/JWKS; Abbautests und Canary.
- Dokumentation: Incident procedures (Key/Sert Compromise).
15) TL; DR
Verschlüsseln Sie überall: im Kanal - TLS 1. 3/1. 2 mit PFS und strengem Perimeter; im Inneren - mTLS. Im Ruhezustand - envelope (DEK/KEK) mit Schlüsseln im KMS/HSM, empfindliche Felder granular verschlüsseln. Verwalten Sie Schlüssel über 'kid'/JWKS und regelmäßige Rotation mit Überlappung, speichern Sie Protokolle von Krypto-Transaktionen. Wählen Sie AES-GCM (oder ChaCha20-Poly1305), keine Reuse-Nonce, verschlüsseln Sie Backups/Protokolle. Für iGaming/PAN - Tokenisierung und PCI-bewusste Segmentierung.