From DiskCryptor wiki
Jump to: navigation, search

Format der verschlüsselten Partition

Eine mit DiskCryptor verschlüsselte Partition enthält weder eine sichtbare Signatur noch Daten, die sie als verschlüsselte Partition identifizieren liesse. Ohne Kenntnis des Passwortes erscheint sie als gefüllt mit zufälligen Werten, und die Struktur innerhalb der Partition ist erst mit dem korrekten Passwort ersichtlich. Eine verschlüsselte Partition enthält zwei Bereiche mit internen Daten der Applikation, einen am Anfang und einen am Ende der Partition.

Zwischen diesen beiden Bereichen befinden sich die (verschlüsselten) Benutzerdaten.

DiskCryptor — Format der verschlüsselten Partition

Volume header

Am Anfang der Partition (2048 Bytes) ist der Volume Header abgelegt. Dieser beinhaltet die Informationen über die Partition und die Schlüssel, welche zum Entschlüsseln der Benutzerdaten gebraucht werden. Der Volume Header ist mittels AES-256 im XTS-Modus verschlüsselt, wobei die Schlüssel aus dem Passwort abgeleitet werden. Die Nutzerdaten, die sich ursprünglich in den 2048 Bytes befunden haben werden in einen speziellen Bereich verschoben, der aus aufeinander folgenden Sektoren basiert.

Format des Volume Headers

typedef struct _dc_header {
	u8  salt[PKCS5_SALT_SIZE]; /* pkcs5.2 salt */
	u32 sign;                  /* signature 'DCRP' */
	u32 hdr_crc;               /* crc32 of decrypted volume header */
	u16 version;               /* volume format version */
	u32 flags;                 /* volume flags */
	u32 disk_id;               /* unique volume identifier */
	int alg_1;                 /* crypt algo 1 */
	u8  key_1[DISKKEY_SIZE];   /* crypt key 1  */
	int alg_2;                 /* crypt algo 2 */
	u8  key_2[DISKKEY_SIZE];   /* crypt key 2  */

	u64 stor_off;    /* temporary storage offset */
	u64 use_size;    /* user available volume size */
	u64 tmp_size;    /* temporary part size      */
	u8  tmp_wp_mode; /* data wipe mode */

	u8  reserved[1422 - 1];
} dc_header;
Offset Grösse Verschlüsselt Beschreibung
0 64 Nein Salt. Zufallswert, welcher für die Schlüsselableitung verwendet wird.
64 4 Ja Signatur von DiskCryptor. Enthält den Wert 0x50524344 (ascii 'DCRP').
68 4 Ja CRC32 Checksumme über die entschlüsselten Schlüsseldaten (Bytes 72-2047).
72 2 Ja Version des Volume-Formats. Enthält den Wert 1 für das Format DiskCryptor 0.5.
74 4 Ja Volume Flags. Wird zum Festhalten des Volume Status verwendet.
78 4 Ja Unique Volume Identifier. Wird gebraucht, um die Partition zu finden, falls beim Booten das Starten ab ausgewählter Partition verwendet wird.
82 4 Ja Encryption Identifier. Wird zur Anzeige des verwendeten Verschlüsselungsalgorithms verwendet.
86 256 Ja Verschlüsselungsschlüssel für die Benutzerdaten der Partition.
342 4 Ja Encryption Identifier. Wird zur Anzeige des vorher verwendeten Verschlüsselungsalgorithmus bei Änderung des Verschlüsselungsverfahrens benutzt.
346 256 Ja Zusätzlicher Verschlüsselungsschlüssel für die Benutzerdaten der Partition. Wird zur Anzeige des vorher verwendeten Verschlüsselungsalgorithmus bei Änderung des Verschlüsselungsverfahrens benutzt.
602 8 ja Offset, um den die ersten 2048 Bytes der Nutzerdaten verschoben sind.
610 8 Ja Größe der Zone der Nutzdaten.
618 8 Ja Grösse des verschlüsselten Bereichs. Ist nur bei Partitionen definiert, die noch nicht vollständig verschlüsselt sind.
626 1 Ja Partition Wipe Mode, der bei der Verschlüsselung eingesetzt wird. Ist nur bei Partitionen definiert, die noch nicht vollständig verschlüsselt sind.
627 1421 Ja Reserviert. Gefüllt mit Nullen.

Relocation area

Relocation area — is a contiguous sequence of sectors where the first 2048 bytes of partition are stored.

Currently there are two methods of placement of this area that are being used: in $dcsys$ file, or at the end of partition. On encryption of partition that has data on it, this area is being placed in $dcsys$ file, which is located in a contiguous sequence of clusters. On formatting a new partition, this area is being placed at the end of partition, after user data.

In order to protect the $dcsys$ file from being deleted, fragmented or moved, its access is forbidden by the driver.

Language: English  • Deutsch • русский