Nell'ambito della sicurezza informatica, il Linux Unified Key Setup, abbreviato LUKS, è un metodo di cifratura dei dischi rigidi. Le sue specifiche sono state scritte da Clemens Fruhwirth nel 2004 ed è stato originariamente pensato per Linux.
Mentre la maggior parte dei software di crittografia di dischi hanno implementazioni e formati diversi e incompatibili, e spesso non documentati, lo standard LUKS è indipendente dalla piattaforma e può essere utilizzato per cifrare dischi in un'ampia varietà di strumenti. Questo non solo assicura piena compatibilità e interoperabilità tra software diversi, ma garantisce che la gestione delle password avvenga in una modalità sicura e documentata.
LUKS è l'implementazione di riferimento per Linux; è basato su una versione migliorata di cryptsetup che usa il processo di cifratura chiamato dm-crypt. Può essere usato anche su Microsoft Windows mediante FreeOTFE.
Gli header sono compatibili con le vecchie versioni; le nuove versioni di LUKS possono leggere gli header delle vecchie versioni.
| Offset | Data type | Description | |
|---|---|---|---|
| 0 | 0hex | char[6] | Magic number {'L', 'U', 'K', 'S', 0xBA, 0xBE } |
| 6 | 6hex | uint16_t | Versione di LUKS (0x0001 per LUKS1) |
| 8 | 8hex | char[32] | Algoritmo di cifratura (ad es. "twofish", "aes") |
| 40 | 28hex | char[32] | Modalità di cifratura (ad es. "cbc-essiv:sha256") |
| 72 | 48hex | char[32] | Funzione crittografica di hash (ad es. "sha1", "ripemd160") |
| 104 | 68hex | uint32_t | Offset del payload (posizione dei dati crittografati) in incrementi di 512 byte |
| 108 | 6Chex | uint32_t | Numero di byte chiave |
| 112 | 70hex | char[20] | Checksum della chiave principale PBKDF2 |
| 132 | 84hex | char[32] | Parametro salt della chiave master PBKDF2 |
| 164 | A4hex | uint32_t | Numero di iterazioni della chiave master PBKDF2 (predefinito: 10) |
| 168 | A8hex | char[40] | UUID of the partition (ad es. "504c9fa7-d080-4acf-a829-73227b48fb89") |
| 208 | D0hex | (48 Bytes) | Keyslot 1 |
| … | |||
| 544 | 220hex | (48 Bytes) | Keyslot 8 |
| 592 byte in totale | |||
| Offset | Data type | Description |
|---|---|---|
| 0 | uint32_t | Stato del keyslot: Active=0x00AC71F3; Disabled=0x0000DEAD |
| 4 | uint32_t | Parametro di iterazione di PBKDF2 |
| 8 | char[32] | Parametro salt di PBKDF2 |
| 40 | uint32_t | Settore iniziale della chiave |
| 44 | uint32_t | Numero di strisce anti-forensi (Impostazione predefinita: 4000) |
| 48 byte in totale | ||