Che cos'è la crittografia dei dati a riposo e in transito?

Aggiornato: ottobre 2026

La crittografia a riposo è un controllo che rende illeggibili senza chiavi i dati archiviati; quella in transito protegge i dati che attraversano le reti. I dati vivono in tre stati – a riposo sull’archiviazione, in transito sul filo e in uso in memoria – e i primi due sono l’obbligo di base di qualunque applicazione: AES-256 per ciò che sta fermo, TLS per ciò che si muove. Il terzo stato (protetto dagli ambienti di esecuzione fidati e, alla frontiera, dalla crittografia omomorfica) è reale ma, per la maggior parte dei team applicativi, è il livello di qualcun altro.

Punti chiave

DomandaRisposta
A riposoAES-256 su dischi, database, backup – contro i supporti rubati
In transitoTLS 1.2+ su ogni connessione – contro intercettazioni e MITM
Il punto ciecoNessuna delle due ferma un’app compromessa – la crittografia non è controllo degli accessi
Il problema veroLa gestione delle chiavi – chiavi conservate accanto ai dati sono teatro
La confusione da mandare in pensioneLe password si sottopongono a hashing (bcrypt/argon2), mai a crittografia

Le due protezioni – e che cosa ferma davvero ciascuna

La tabella dell’onestà che le pagine in classifica omettono – colonna più importante inclusa:

             Standard        Copre                Ferma                     NON ferma
In transito  TLS 1.2+/HTTPS  ogni hop di rete     intercettazioni, MITM,    endpoint compromessi –
                                                  sniffing al bar           il server lo legge senza problemi
A riposo     AES-256 (GCM)   dischi, DB, backup   dischi rubati, backup     credenziali rubate,
                                                  trapelati, bucket aperti  SQL injection, bug applicativi
In uso       TEE             RAM in elaborazione  lettura della memoria     – in gran parte una questione di piattaforma

Nessuna delle due ferma un attaccante di cui l'app stessa si fida. L'app detiene le
chiavi e decifra a richiesta – la crittografia completa il controllo degli accessi, non lo sostituisce.

Come si presentano le impostazioni predefinite dal codice applicativo:

// JavaScript / Node.js — Back4app JS SDK
// Every SDK call rides TLS — and passwords are HASHED, never stored readable
const user = new Parse.User();
await user.signUp({ username: 'ada', password: secret });
// On the wire: TLS 1.2+ (the https serverURL is the whole config)
// At rest: bcrypt hash — even the database never holds the password itself

// Extra-sensitive fields: encrypt server-side in a Cloud Code beforeSave
// so plaintext never reaches storage — AES-256-GCM, key in env, not in code

Come funziona TLS, in un paragrafo

Il trucco elegante: la crittografia asimmetrica è lenta ma non richiede alcun segreto condiviso; quella simmetrica è veloce ma ne richiede uno. Così l’handshake TLS usa la prima per stabilire la seconda – il client verifica il certificato del server (il controllo d’identità che rende rilevabile l’intercettazione), le due parti concordano una nuova chiave di sessione tramite scambio asimmetrico, e tutto ciò che segue viaggia su crittografia simmetrica veloce. TLS 1.3 ha stretto ogni vite: un round trip invece di due, cifrari legacy e scambio di chiavi RSA rimossi, forward secrecy obbligatoria – così il traffico registrato non si può decifrare più tardi nemmeno se la chiave di lunga durata del server trapela. Appendice mobile che i risultati di ricerca saltano: le app possono inoltre fare pinning dei certificati attesi, scambiando la resilienza contro autorità di certificazione canaglia con una maggiore cura operativa al momento della rotazione.

I livelli a riposo: disco vs. database vs. campo vs. applicazione

“Cifrato a riposo” copre quattro promesse molto diverse, ognuna delle quali sconfigge un attaccante diverso:

LivelloComeSconfiggeNon tocca
Disco intero (LUKS/dm-crypt)L’OS cifra il volumeHardware rubato o dismessoChiunque si trovi sul sistema in esecuzione
Trasparente (TDE)Il database cifra i file in scritturaFile di dati e backup rubatiChiunque abbia le credenziali del database
A livello di campo/colonnaColonne specifiche cifrate, le chiavi stanno nell’appDBA curiosi, violazioni più ampie del DBLa compromissione dell’app stessa
A livello applicativoCifrato prima di raggiungere l’archiviazioneTutto ciò che sta sotto l’appL’app e il suo key store
L'envelope encryption (cifratura a busta) tiene le chiavi separate dai datiI dati dell'applicazione sono cifrati con una chiave dati. La chiave dati è a sua volta cifrata da una chiave di cifratura delle chiavi custodita in un servizio di gestione delle chiavi o in un modulo hardware di sicurezza, così un database rubato contiene testo cifrato e chiavi avvolte ma nulla che decifri senza il servizio di chiavi protetto separatamente.

AES-256-GCM

cifra

avvolge

custodisce

ottiene testo cifrato +
chiavi avvolte – nulla si apre

Dati

Testo cifrato
nel database

Chiave dati (DEK)

Chiave di cifratura delle chiavi (KEK)

Servizio di chiavi / HSM
sistema separato, verificato

Ladro con il database in mano

I dati dell'applicazione sono cifrati con una chiave dati. La chiave dati è a sua volta cifrata da una chiave di cifratura delle chiavi custodita in un servizio di gestione delle chiavi o in un modulo hardware di sicurezza, così un database rubato contiene testo cifrato e chiavi avvolte ma nulla che decifri senza il servizio di chiavi protetto separatamente.

La regola che vale per tutta la tabella: i livelli più alti proteggono da più cose e costano di più. La crittografia a livello di campo è il compromesso onesto – le colonne cifrate non si possono indicizzare né cercare normalmente (la crittografia deterministica restituisce le ricerche per uguaglianza, a un certo costo in informazione che trapela) – ed è per questo che resta riservata a ciò che è davvero sensibile: dati sanitari, documenti d’identità, segreti. Ed è qui che vive il classico fallimento da audit: il database cifrato i cui backup partono in chiaro.

La crittografia end-to-end è una promessa diversa

TLS su tutto significa comunque che il server legge tutto: decifra ogni connessione per progetto. La crittografia end-to-end sposta le chiavi sugli utenti: solo mittente e destinatario possono decifrare, e l’operatore serve testo cifrato che non è in grado di aprire. È una decisione di prodotto diversa, non un’impostazione più forte: l’E2EE significa nessuna ricerca lato server, nessuna moderazione dei contenuti, nessun recupero se gli utenti perdono le chiavi. I modelli di minaccia si incastrano con ordine – TLS difende il percorso, la crittografia a riposo difende l’archiviazione, l’E2EE difende dal servizio stesso – e la maggior parte delle applicazioni si ferma correttamente ai primi due, mentre i prodotti di messaggistica e i gestori di segreti giustificano il terzo.

Hashing vs. crittografia

CriterionCrittografiaHashing
ReversibileSì – con la chiaveNo – per progetto
Adatto aDati che vanno rilettiPassword, controlli di integrità
StandardAES-256-GCMbcrypt, scrypt, argon2 (lenti + con salt)
Il fallimentoPerdere le chiavi o farle trapelareHash veloci e senza salt (MD5, SHA-256 semplice)

Un richiamo manda in pensione una confusione diffusa: le password si sottopongono a hashing, mai a crittografia. Nessuno – server incluso – dovrebbe poter recuperare una password; l’accesso confronta hash. Cifrare le password significa che esiste una chiave capace di decifrarle tutte, che è esattamente la catastrofe che l’hashing esiste per escludere.

Casi d’uso tipici

  • Ogni app web e mobile – TLS su tutte le connessioni e archiviazione cifrata sono il minimo per sedersi al tavolo, non delle feature.
  • Dati regolamentati – il GDPR nomina la crittografia tra le misure tecniche appropriate (con un alleggerimento sull’obbligo di notifica delle violazioni), le norme sanitarie la impongono per i dati dei pazienti e gli standard dei pagamenti richiedono numeri di carta illeggibili a riposo e crittografia robusta in transito.
  • Backup e dismissione – backup cifrati e crypto-shredding (distrutta la chiave, i dati muoiono in ogni copia) chiudono il capitolo della copia rubata.
  • Protezione dei campi con dati personali – crittografia a livello applicativo per le colonne la cui fuga è un titolo di giornale, non un incidente.
  • Client mobile su reti ostili – TLS più validazione del certificato come difesa che viaggia con l’utente.

Quale livello serve? Matrice decisionale

SituazioneA cui ricorrere
Qualunque dato, qualunque appTLS su tutto + crittografia a riposo della piattaforma – il pavimento
Incubo del backup rubatoBackup cifrati + chiavi conservate altrove
Colonne sensibili (sanità, documenti)Crittografia a livello di campo o applicativo, chiavi in variabili d’ambiente o in un KMS
”Non dovremmo poterlo leggere nemmeno noi”Crittografia end-to-end – accettandone i costi di prodotto
PasswordHashing (bcrypt/argon2) – mai crittografia
Problemi di accesso, non di furtoACL e sicurezza a livello di riga – la crittografia non aiuta

Limiti e trade-off

  • La crittografia non è controllo degli accessi. Il punto della sicurezza a livelli in una riga: la crittografia a riposo è trasparente per l’app in esecuzione, quindi i permessi – ACL, CLP, policy di riga – restano la difesa contro ogni attaccante munito di credenziali.
  • La gestione delle chiavi è il progetto vero. Le indicazioni del NIST esistono perché generazione, separazione, rotazione e revoca – non la scelta dell’algoritmo – sono il punto in cui i deployment cedono.
  • La crittografia a livello di campo combatte contro il database. Nessun indice, nessuna query LIKE, migrazioni delicate; conviene cifrare i campi che ne hanno bisogno, non lo schema.
  • TLS finisce al terminatore. Proxy e load balancer che decifrano a metà percorso ricreano hop in chiaro; il traffico interno richiede la stessa disciplina del bordo.
  • Conformità ≠ sicurezza. Una crittografia a casella spuntata, con le chiavi accanto ai dati, soddisfa gli auditor e nessun altro; la colonna del modello di minaccia è quella su cui progettare.

Crittografia su Back4app

Back4app è una piattaforma open-source di Backend as a Service (BaaS) che combina database gestito, API REST e GraphQL generate automaticamente, autenticazione, archiviazione di file e funzioni serverless con Cloud Code. Il pavimento lo fornisce la piattaforma: ogni connessione REST, GraphQL e Live Query viaggia su TLS, e dati e backup sono cifrati a riposo – i due livelli di base arrivano come impostazioni predefinite invece che come progetti. La quota che resta a chi sviluppa è esattamente quella che abbozzano le schede di codice: le password passano per l’hash bcrypt di Back4app di serie (mai archiviate, mai recuperabili – la regola dell’hashing imposta per struttura); i campi davvero sensibili ricevono una crittografia a livello applicativo in un beforeSave di Cloud Code, con la chiave nella configurazione lato server invece che nel codice, così il testo in chiaro non raggiunge mai l’archiviazione; e i segreti restano fuori da log, URL e bundle client – la disciplina delle chiavi API applicata ai dati. Poi il pezzo che la crittografia non può fare: le ACL e i permessi di classe governano chi legge che cosa, perché il controllo che ferma un attaccante munito di credenziali non è mai stata la crittografia, ma l’autorizzazione.

Domande frequenti

Che cos'è la crittografia a riposo?

Cifrare i dati archiviati – dischi, database, backup, archiviazione a oggetti – perché chiunque ottenga il supporto di archiviazione senza le chiavi si ritrovi con testo cifrato. Lo standard è AES-256; la protezione riguarda l'hardware rubato, i backup trapelati e i livelli di archiviazione violati.

Che cos'è la crittografia in transito?

Cifrare i dati mentre attraversano le reti, perché il traffico intercettato risulti illeggibile – è il compito di TLS, ossia quello che porta la S di HTTPS. Protegge dalle intercettazioni e dagli attacchi man-in-the-middle su qualunque hop tra client e server.

Qual è la differenza tra crittografia a riposo e in transito?

Stati dei dati diversi, minacce diverse. Quella a riposo difende le copie archiviate dal furto dei supporti e dei backup; quella in transito difende i dati in movimento dalle intercettazioni. Sono complementari, non alternative – ogni framework di sicurezza serio pretende entrambe, perché ciascuna ferma attacchi che l'altra non vede.

HTTPS e TLS sono la stessa cosa?

HTTPS è HTTP trasportato su TLS, il protocollo crittografico che mette in sicurezza la connessione. TLS 1.3 è la versione attuale – handshake più rapidi, cifrari deboli rimossi, forward secrecy obbligatoria; le versioni 1.0 e 1.1 sono formalmente deprecate e vanno disattivate.

Che cos'è AES-256?

L'Advanced Encryption Standard con una chiave da 256 bit – un cifrario simmetrico a blocchi standardizzato dal NIST, di fatto immune alla forza bruta e la scelta de facto per i dati a riposo. In pratica conviene una modalità autenticata come AES-GCM, che oltre a nascondere il contenuto rileva le manomissioni.

Qual è la differenza tra crittografia simmetrica e asimmetrica?

La simmetrica usa una sola chiave condivisa in entrambe le direzioni – veloce, adatta ai grandi volumi di dati (AES). L'asimmetrica usa una coppia di chiavi pubblica/privata – più lenta, adatta allo scambio di chiavi, ai certificati e alle firme. TLS usa entrambe: un handshake asimmetrico concorda una chiave di sessione simmetrica che cifra il traffico vero e proprio.

In che cosa la crittografia end-to-end differisce da quella in transito?

Nel perimetro di fiducia. TLS protegge ogni hop, ma il server decifra e può leggere tutto. La crittografia end-to-end significa che solo gli utenti che comunicano detengono le chiavi – nemmeno l'operatore del servizio può leggere i contenuti. L'E2EE protegge dal server; TLS protegge il percorso che ci porta.

La crittografia a riposo protegge dagli attacchi informatici?

Solo da una categoria precisa: chi mette le mani sull'archiviazione – dischi rubati, backup trapelati, bucket mal configurati. Un attaccante che compromette l'applicazione o ruba credenziali legge i dati senza ostacoli, perché l'app li decifra legittimamente. La crittografia non è controllo degli accessi; completa le ACL, non le sostituisce mai.

Termini correlati

Confronta con

Fonti di approfondimento

Pronto a costruire il tuo backend?

Avvia il tuo progetto su Back4app in pochi minuti: database, autenticazione, API e Cloud Code inclusi. Nessuna carta di credito richiesta.

Scritto e revisionato da Back4app Engineering, Back4app Engineering · Pubblicato il 2026-10-14