Benchmark: LUKS auf dem HP N54L

Verschlüsselte Platten für den Heimserver

Daten auf einem ver­schlüs­sel­ten Me­di­um zu haben gibt einem ein an­ge­neh­mes Ge­fühl der Si­cher­heit re­spek­ti­ve Pri­vat­sphä­re – jeder, der schon mal eine Fest­plat­te in­ner­halb der Ga­ran­tie­zeit um­tau­schen woll­te, weiß, wovon ich rede. Daher hätte ich gerne auch auf mei­nem Heim­ser­ver ver­schlüs­sel­te Fest­plat­ten. Die of­fe­ne Frage war: Hat der N54L ge­nü­gend „Wumms“ dafür? Die CPU be­sitzt keine AES-In­struk­tio­nen, sämt­li­che Ver­schlüs­se­lung würde in Soft­ware lau­fen…

Zu Test­zwe­cken habe ich eine Par­ti­ti­on mit 10 GB er­zeugt und diese di­rekt als Raw-De­vice be­schrie­ben – schlie­ß­lich woll­te ich die Per­for­mance-Ein­bu­ße durch die Ver­schlüs­se­lung und nicht ir­gend­wel­che File­sys­tem-Be­son­der­hei­ten mes­sen. Test­sys­tem war ein frisch in­stal­lier­tes De­bi­an Sta­ble. Auf einer un­ver­schlüs­sel­ten Par­ti­ti­on sah das ganze fol­gen­der­ma­ßen aus:

# time ( dd if=/dev/zero of=/dev/sdb1 bs=4096 ; sync )

dd: 116 MB/s

real 1m28.476s
user 0m0.264s
sys  0m9.405s

So­weit, so an­stän­dig. So­wohl Ri­jn­da­el (AES) als auch Two­fish las­sen sich per­for­mant im­ple­men­tie­ren (sei­ner­zeit hat Ri­jn­da­el den Zu­schlag als NIST-Stan­dard be­kom­men, da es wohl auf schlan­ker Hard­ware bes­ser per­formt; Two­fish wurde aber schon da­mals der hö­he­re Si­cher­heits-Mar­gin at­tes­tiert), der Ver­gleich bei iden­ti­scher Schlüs­sel­län­ge sieht sehr ähn­lich aus:

# cryptsetup --cipher twofish-xts-plain64:sha256 luksFormat /dev/sdb1
# time ( dd if=/dev/zero of=/dev/mapper/tmp bs=4096 ; sync )

dd: 103 MB/s

real 1m39.020s
user 0m0.052s
sys  0m10.749s

AES zum Ver­gleich:

# cryptsetup --cipher aes-xts-plain64:sha256 luksFormat /dev/sdb1
# time ( dd if=/dev/zero of=/dev/mapper/tmp bs=4096 ; sync )

dd: 103 MB/s

real 1m39.280s
user 0m0.240s
sys  0m10.249s

In einem letz­ten Ex­pe­ri­ment woll­te ich den Ein­fluß der Schlüs­sel­län­ge über­prü­fen:

# cryptsetup --cipher twofish-xts-plain64:sha512 -s 512 luksFormat /dev/sdb1
# time ( dd if=/dev/zero of=/dev/mapper/tmp bs=4096 ; sync )

dd: 109 MB/s

real 1m33.613s
user 0m0.256s
sys  0m10.741s

Mit län­ge­rem Schlüs­sel schnel­ler als mit den kür­ze­ren? Ver­mut­lich im Be­reich der Me­ßun­ge­nau­ig­keit, aber er­höh­te Pa­ra­noia stellt of­fen­bar kei­nen wei­te­ren Ge­schwin­dig­keits­ver­lust dar.

Alles in allem sehen die Zah­len für mich nach einem ver­schmerz­ba­ren Per­for­mance-Ver­lust aus.

Ich habe üb­ri­gens (ver­geb­lich) ver­sucht, den Un­ter­schied deut­li­cher her­vor­zu­he­ben, indem ich die Tests auf einer SSD durch­führ­te. Al­ler­dings habe ich mir da wohl eine eher schrot­ti­ge SSD ein­ge­tre­ten, die Schreib­per­for­mance lag un­ver­schlüs­selt be­reits bei nur 45 MB/s, und auch alle Ver­su­che mit ak­tua­li­sier­ter Firm­ware (ein Aben­teu­er für sich) än­der­te daran nichts. Naja, auf einem Heim­ser­ver braucht man auch keine High-Per­for­mance-SSD…