Crittografia e protezione API: TLS, HSTS, PFS, rotazione dei segreti
1) Immagine delle minacce e degli obiettivi
API sotto attacco di MitM, intercettazioni di traffico, attacchi di downgrade, falsi di token, fuoriuscite di chiavi e abuso di segreti di lunga vita. Obiettivi di protezione:- Riservatezza e integrità (TLS 1. 3 + codici forti).
- Protezione da downgrade/stripping (HSTS, versioni non consentite/cifrati).
- Riduzione dei danni di compromissione (PFS, TTL brevi, rotazione rapida).
- Autenticazione client/servizio (mTLS/token) e tracciabilità.
2) TLS come base (server e servizio-a-servizio)
Versioni e codici:- Per impostazione predefinita, TLS 1. 3; autorizza TLS 1. 2 solo per compatibilità. Disattiva 1. 1/1. 0.
- `TLS_AES_128_GCM_SHA256`, `TLS_AES_256_GCM_SHA384`, `TLS_CHACHA20_POLY1305_SHA256`.
- Per TLS 1. 2: solo ECDHE con firma AES-GCM/ChaCha20 e ECDSA/RSA (es. 'ECDHE-ECDSA-AES128-GCM-SHA256').
- Chiavi server: ECDSA P-256/P-384 (più veloce e più breve) o RSA 2048 +/3072.
- Chiavi client mTLS: ECDSA P-256; rilascio tramite CA o HSM/KMS.
- Includi OCSP stapling, preferibilmente con la bandiera Must-Staple, e ALPN (HTTP/2/3).
- Fornita da scambi effimeri (ECDHE) - Anche se la chiave del server delle anatre non viene decodificata nelle sessioni precedenti.
- Forzare la disattivazione di un accordo FS/RSA statico.
- ECH (Encrypted Client Hello), se supportato da fronte/CDN, nasconde SNI.
- HTTP/2/3 solo con codici forti; Divieto HTTP non protetto, ridiscritto su HTTPS.
3) HSTS contro TLS-stripping
Attivare HTTP Strict Transfer Security sul dominio principale e sui sottotitoli:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preloadPosizionare il dominio nell'elenco HSTS pratoad.
Tieni d'occhio la correttezza prima della pubblicazione.
4) Autenticazione reciproca: mTLS e/o token
mTLS tra microservizi/API interne: certificati bilaterali, rotazione automatica tramite servizio mesh (Istio/Linkerd) o PKI personalizzato.
API (integrazioni mobile/partner): token (OAuth2/OIDC, JWT) opzionale per high-risk.
Per i fronti pubblici: TLS + token OAuth2/OIDC con riferimento al dispositivo/DPoP.
5) Gestione dei certificati e del ciclo di vita
Automazione ACME (ad esempio Let's Encrypt/CA organizzativa) con aggiornamento automatico 30 giorni prima della scadenza.
Breve vita certificati (90 giorni) + monitoraggio tempi, alert e pacchetti canarini.
PKI centralizzato: CA radice/intermedia, CRL/OCSP, controllo di rilascio e richiamo.
Esempio nginx (sezione):nginx ssl_protocols TLSv1. 3 TLSv1. 2;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256;
ssl_prefer_server_ciphers on;
ssl_ecdh_curve X25519:P-256:P-384;
ssl_stapling on; ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;6) Rotazione dei segreti: principi e pattern
Gli obiettivi della rotazione sono limitare il «raggio esplosivo» delle fughe, ridurre i tempi di abuso, garantire il rilascio silenzioso.
Regole di base:- Memorizza i segreti solo nel gestore segreto (KMS/Vault/Cloud SM). Niente segreti su Git/immagini.
- TTL brevi e rotazione automatica: chiavi di firma, password database, API provider.
- Doppia pubblicazione (dual-key window) - Le chiavi più vecchie e nuove sono attive contemporaneamente per il periodo di sovrapposizione.
- Versioning + kid (per JWT/JWKS), finestra grace per la convalida dei vecchi token.
- Chiavi JWT (firma/crittografia), HMAC-segreti Web e callback, Password/account database, crediti alla cache (Redis), token CI/CD, Segreti provider (KYC/AML, fazzoletti, SMS/e-mail), chiavi SSH automatiche.
I trigger della rotazione non programmata includono il sospetto di fuga di notizie, il licenziamento dei dipendenti con accesso, il cambio del fornitore, i requisiti del regolatore.
7) JWT/JWKS - Overlay di ruolo sicuro
Pubblicare JWKS endpoint con la chiave corrente e futura («kid» è obbligatorio).
Procedura di rotazione:1. Generare una nuova chiave e aggiungerla a JWKS come «seconda».
2. Aggiorna i firmatari con una nuova chiave.
3. Aspetta il TTL dei vecchi token, rimuovi la vecchia chiave da JWKS.
Installare i TTL dei token brevi (ad esempio 5-15 minuti) + i thread refresh con controllo aggiuntivo.
8) Segreto-gestione in pratica
KMS + encryption: chiave maestra in HSM/KMS, i dati sono cifrati con DEK avvolto.
Vault/Cloud Secret Manager: crediti dinamici per il database (rilascio di studi con TTL), rotazione periodica.
Kubernetes: External Secrets/Secrets Store CSI; crittografia etcd; RBAC; Vietare la logica dei segreti.
Accesso ai ruoli: IAM/ABAC, privilegi minimi, limiti hardware (HSM, TPM).
Un controllo completo su chi, cosa, quando, perché ha letto/cambiato.
9) Protezione dei trasporti all'interno del perimetro
Non fidarsi dappertutto di «rete interna» (zero-trust).
Servizio mesh automatizza certificati, riavvio e rotazione, osservabilità (mTLS).
Ridurre al minimo le terminazioni TLS, ovvero solo su edge + east-west crittografato o crittografia completa.
10) Criteri di protezione API sopra TLS
Rate limiting/Protezione DoS, convalida la firma dei siti web (HMAC).
Content-Security-Policy/Referrer-Policy/X-Content-Type-Options для фронта.
mTLS per endpoint critici (pagamenti, adminca), IP allow-list per partner.
Protezione replay: timestamp + nonce nelle richieste firmate, finestre non superiori a 5 minuti.
11) Monitoraggio e test
Osservabilità TLS: versioni/cifrature in metriche, alert per i tentativi di downgrade, aumento dei guasti alle strette di mano.
Scanner (a CHI/CD e regolarmente in vendita) - Verifica codici, certificati, HSTS, OCSP supportati.
Esercitazioni Chaos/DR: scadenza del certificato, decadenza del gestore segreto, compromissione della chiave di firma - Verifica i piani di reazione.
12) Procedure di risposta
Compromettere la chiave - Revoca immediata del certificato o rimuove la chiave da JWKS, ruota a riserva, rigenerazione forzata dei token.
Degrado temporaneo (solo traffico interno), reinstallazione automatica dei certificati.
Rapporto incidente, timeline, soggetti coinvolti, tecnologia. Parti che regolano le misure.
13) Foglio di controllo rapido (prod-ready)
- Solo TLS 1. 3 (+ 1. 2 per legasi), una lista rigorosa di codici.
- HSTS с `preload`, OCSP stapling, ALPN.
- ECDHE per PFS ECDSA P-256/384 o RSA 3072.
- mTLS all'interno del cluster/tra i servizi critici.
- JWKS + kid, token TTL corti, piano di rotazione.
- I segreti sono solo in KMS/Vault, la rotazione automatica del database/provider.
- Aggiornamento automatico dei certificati (ACME), alert in 30 giorni.
- Controllo ICI/CD delle intestazioni di sicurezza e dei codici vulnerabili.
- Runbook documentati e: rotazione, recensione, incidenti.
Curriculum
La protezione affidabile dell'API è una combinazione di TLS 1. 3 + HSTS + PFS come minimo obbligatorio e processi maturi per la gestione di chiavi e segreti. Aggiungi un mTLS tra i servizi, automatizzi il rilascio/rotazione tramite KMS/Vault/mesh, tieni la TTL corta e le finestre doppie quando cambi le chiavi - e riduci al minimo i rischi di intercettazione, downgrade e abuso di segreti di ferro senza compromettere la disponibilità e la velocità del prodotto.
