Crittografia dei dati per applicazioni sanitarie

Perché hai bisogno della crittografia a livello di record e come ti aiuta Chino.io

Crittografia dei Dati

Panoramica

La crittografia dei dati comporta la codifica dei tuoi dati utilizzando una chiave e una funzione crittografica. Il testo cifrato (ciphertext) risultante può essere letto solo con la chiave corretta per decifrarlo. I dati possono essere crittografati a riposo (at rest, ovvero in archiviazione) o in transito (in flight, ovvero durante la trasmissione su Internet).

I Dati a riposo includono tutti i dati memorizzati sul dispositivo di un utente e tutti i dati nel tuo backend. Questi dati sono molto vulnerabili agli attacchi e devono essere protetti utilizzando una crittografia adeguata.

La Crittografia a livello di disco (Disk-level encryption) implica la crittografia dell'unità disco fisica. Ciò protegge i tuoi dati dall'accesso nel caso in cui un ladro rubi l'unità. Tuttavia, ogni volta che il server è in funzione, i dati sono accessibili.

La Crittografia a livello di database (Database-level encryption) implica la crittografia dell'intero database utilizzando una singola chiave. In genere, questo è ciò che viene offerto dai fornitori cloud. Il problema è che la perdita di quella singola chiave compromette tutti i tuoi dati. Inoltre, spesso vediamo persone che archiviano la chiave in un file di configurazione in testo semplice sotto l'account amministratore.

La Crittografia a livello di applicazione o di record (Application- or record-level encryption) implica la crittografia di ogni record all'interno del database individualmente. In pratica, ogni istanza dell'applicazione (utente) ha una chiave che viene utilizzata per crittografare i dati relativi a quell'utente. Ciò richiede la gestione delle chiavi, ma è l'approccio più sicuro se devi accedere o elaborare i dati sul tuo backend.

La Crittografia E2E (end-to-end) (E2e encryption) implica la crittografia di tutti i dati all'interno dell'applicazione. Il backend non ottiene alcun accesso ai dati. Questo è estremamente sicuro, ma è utile solo se non hai bisogno di elaborare i dati sul backend.

Crittografia dei Dati

Panoramica

La crittografia è il processo di conversione (cifratura) dei dati in una forma codificata in modo che sia difficile/impossibile per una terza parte leggerli. Questo processo viene eseguito utilizzando un algoritmo matematico per mescolare i dati tramite una chiave. Nella crittografia simmetrica (tradizionale), i dati possono essere recuperati (decrittografati) utilizzando la stessa chiave. Nella crittografia asimmetrica (a chiave pubblica), le chiavi sono fornite in coppia. Una chiave viene utilizzata per la cifratura (la chiave pubblica) e una chiave diversa (privata) viene utilizzata per la decifratura.

Quali sono le forme standard di crittografia?

L'attuale standard de facto per la crittografia simmetrica è AES (Advanced Encryption Standard). Questo utilizza più cicli di crittografia e hashing. Poiché è così ampiamente utilizzato, le CPU includono algoritmi hardware per accelerare la crittografia AES.

La forma usuale di crittografia asimmetrica è RSA (Rivest–Shamir–Adleman). Questo è ampiamente utilizzato da strumenti come SSH. Si basa sul fatto che la fattorizzazione di numeri grandi è facile, ma recuperare i numeri dai fattori è un problema difficile. La crittografia basata su chiave pubblica tende a essere lenta e quindi non è adatta quando si archiviano grandi quantità di dati in tempo reale. Tuttavia, è ideale per la crittografia E2E (end-to-end) dei messaggi.

Cosa significano 128-bit o 256-bit?

Potresti aver sentito parlare di sicurezza a 128-bit o sicurezza a 256-bit. Questo si riferisce semplicemente alla lunghezza della chiave in bit binari. Più lunga è la chiave, maggiore è la sicurezza. Per dare un'idea del perché, con una chiave a 32-bit ci sono $2^{32}$ chiavi possibili (4.294.967.296), ma per 128-bit questo aumenta a $2^{128}$, ovvero 340.282.366.920.938.463.463.374.607.431.768.211.456 chiavi possibili.

Sebbene possa sembrare allettante essere paranoici e crittografare tutto con chiavi a 8192-bit, questo non è necessario. Inoltre, più lunga è la chiave, più tempo è necessario per crittografare e decrittografare i dati. Questo perché le operazioni di crittografia non possono essere eseguite in modo efficiente dai computer. Ma le CPU moderne possono eseguire una crittografia hardware veloce per il cifrario a blocchi AES. Qui a Chino.io usiamo AES-256 per la nostra crittografia. Questo perché AES-256 rappresenta un buon equilibrio tra sicurezza e velocità di crittografia.