Benchmark: LUKS auf dem HP N54L

Verschlüsselte Platten für den Heimserver

Daten auf einem verschlüsselten Medium zu haben gibt einem ein angenehmes Gefühl der Sicherheit respektive Privatsphäre – jeder, der schon mal eine Festplatte innerhalb der Garantiezeit umtauschen wollte, weiß, wovon ich rede. Daher hätte ich gerne auch auf meinem Heimserver verschlüsselte Festplatten. Die offene Frage war: Hat der N54L genügend „Wumms“ dafür? Die CPU besitzt keine AES-Instruktionen, sämtliche Verschlüsselung würde in Software laufen…

Zu Testzwecken habe ich eine Partition mit 10 GB erzeugt und diese direkt als Raw-Device beschrieben – schließlich wollte ich die Performance-Einbuße durch die Verschlüsselung und nicht irgendwelche Filesystem-Besonderheiten messen. Testsystem war ein frisch installiertes Debian Stable. Auf einer unverschlüsselten Partition sah das ganze folgendermaß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

Soweit, so anständig. Sowohl Rijndael (AES) als auch Twofish lassen sich performant implementieren (seinerzeit hat Rijndael den Zuschlag als NIST-Standard bekommen, da es wohl auf schlanker Hardware besser performt; Twofish wurde aber schon damals der höhere Sicherheits-Margin attestiert), der Vergleich bei identischer Schlüssellänge sieht sehr ähnlich 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 Vergleich:

# 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 letzten Experiment wollte ich den Einfluß der Schlüssellänge überprü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ängerem Schlüssel schneller als mit den kürzeren? Vermutlich im Bereich der Meßungenauigkeit, aber erhöhte Paranoia stellt offenbar keinen weiteren Geschwindigkeitsverlust dar.

Alles in allem sehen die Zahlen für mich nach einem verschmerzbaren Performance-Verlust aus.

Ich habe übrigens (vergeblich) versucht, den Unterschied deutlicher hervorzuheben, indem ich die Tests auf einer SSD durchführte. Allerdings habe ich mir da wohl eine eher schrottige SSD eingetreten, die Schreibperformance lag unverschlüsselt bereits bei nur 45 MB/s, und auch alle Versuche mit aktualisierter Firmware (ein Abenteuer für sich) änderte daran nichts. Naja, auf einem Heimserver braucht man auch keine High-Performance-SSD…