Fórum Root.cz
Hlavní témata => Software => Téma založeno: vit20 15. 08. 2019, 16:40:10
-
Zdravím,
vlastním ne příliš výkonný notebook Lenovo G50-30 (https://www.czc.cz/lenovo-ideapad-g50-30-cerna_5/162212/produkt (https://www.czc.cz/lenovo-ideapad-g50-30-cerna_5/162212/produkt)), a to konkrétně variantu s CPU Intel Celeron N2840, který nepodporuje AES-NI, které, pokud vím, dost zrychluje a energeticky zefektivňuje celodiskové šifrování.
Vzhledem k tomu, že budu v bližší době více cestovat, tak bych si rád disk zašifroval, jak by se to koneckonců již asi dnes mělo dělat.
Výstup z openssl speed -evp ... byl následující:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-256-cbc 33247.45k 35885.33k 36844.03k 37109.08k 37035.46k 37191.68k
aes-128-cbc 44227.27k 49953.92k 51867.05k 52265.30k 52540.76k 52565.33k
aes-256-gcm 27313.59k 30827.07k 106178.10k 119189.85k 122251.95k 122721.09k
aes-128-gcm 35532.99k 41337.38k 137120.75k 155539.07k 159965.92k 159993.32k
chacha20-poly1305 84451.91k 181450.77k 237042.26k 254834.01k 261215.57k 260712.44k
Jako systém budu používat Ubuntu Mate, který má používat AES-256, nicméně nevím, jestli ve variantě CBC, GCM nebo nějaké úplně jiné. Přitom podle OpenSSL by to na rychlost i efektivitu mohlo mít velký pozitivní dopad, kdyby se použila GCMková šifra. CHACHA20 zvládne údajně bezpečně zašifrovat pouze 256GB dat, takže ta jde asi z kola ven (HDD má 500GB).
Na notebooku budu používat Firefox, Libreoffice, LaTeX a Atom na programování, výhradně zatím full-stack webových stránek. Žádné hry ani jiné 3D programy na tom provozovat nebudu (koneckonců na baytrailovské Intel HD s výkonem 6800 GT by to byl docela masochismus :-) ).
Nejvíce by mě zajímalo to, zda-li to bude mít nějaký velký dopad na baterii/výkon, popřípadě jaký?
Rád bych použil možnost asistovaného rozdělení při instalaci Ubuntu, protože se úplně něcítím na to, abych si disk nakonfiguroval sám, nicméně pokud nebude jiná možnost, půjdu do toho.
Předem děkuji za odpovědi.
-
Nainstalujte "cryptsetup" a hodte sem vypis prikazu:
cryptsetup benchmark
GeekBench 3 (AES single core) ukazuje, ze ma 60MBps, takze z toho baterie nebude mit vubec radost, vcetne zpomaleni HDD pri narustu datovych toku.
-
určitě použij mód šifra-xts-plain64 buď s klíčem 256b nebo 512b, teda třeba aes-xts-plain64 a šifruj pomocí cryptsetup luksFormat
šifry můžeš zkusit jak jsou rychlé přímo v cryptsetup:
cryptsetup benchmark -c aes-xts -s 256
cryptsetup benchmark -c aes-xts -s 512
cryptsetup benchmark -c twofish-xts -s 256
cryptsetup benchmark -c twofish-xts -s 512
cryptsetup benchmark -c xchacha12,aes-adiantum
cryptsetup benchmark -c xchacha20,aes-adiantum
taky koukni na cryptsetup benchmark
ty poslední šifry Adiantum https://www.root.cz/zpravicky/nova-sifra-adiantum-od-google-pro-slabsi-cpu/ (https://www.root.cz/zpravicky/nova-sifra-adiantum-od-google-pro-slabsi-cpu/) by měly být rychlejší než aes bez AES-NI, ale ne o tolik jako na ARM
navíc potřebuješ celkem nový kernel (>=5.0) a nový cryptsetup (>=2.0.5), třeba Ubuntututu 18.04.4 LTS první splňuje, ale cryptsetup má jen 2.0.2
jestli teda Ubuntu s Adiantum, tak DiscoDingo 19.04 ten by měl mít oboje a pak přejít na LTS
-
Nainstalujte "cryptsetup" a hodte sem vypis prikazu:
cryptsetup benchmark
GeekBench 3 (AES single core) ukazuje, ze ma 60MBps, takze z toho baterie nebude mit vubec radost, vcetne zpomaleni HDD pri narustu datovych toku.
Vystup je zde:
# Algoritmus | Klíč | Šifrování | Dešifrování
aes-cbc 128b 77,0 MiB/s 103,3 MiB/s
serpent-cbc 128b 31,0 MiB/s 106,9 MiB/s
twofish-cbc 128b 79,3 MiB/s 97,1 MiB/s
aes-cbc 256b 68,3 MiB/s 79,7 MiB/s
serpent-cbc 256b 41,2 MiB/s 106,9 MiB/s
twofish-cbc 256b 97,1 MiB/s 97,1 MiB/s
aes-xts 256b 88,2 MiB/s 106,4 MiB/s
serpent-xts 256b 90,9 MiB/s 103,2 MiB/s
twofish-xts 256b 87,4 MiB/s 93,9 MiB/s
aes-xts 512b 84,0 MiB/s 77,0 MiB/s
serpent-xts 512b 103,0 MiB/s 103,1 MiB/s
twofish-xts 512b 93,0 MiB/s 93,8 MiB/s
určitě použij mód šifra-xts-plain64 buď s klíčem 256b nebo 512b, teda třeba aes-xts-plain64 a šifruj pomocí cryptsetup luksFormat
šifry můžeš zkusit jak jsou rychlé přímo v cryptsetup:
cryptsetup benchmark -c aes-xts -s 256
cryptsetup benchmark -c aes-xts -s 512
cryptsetup benchmark -c twofish-xts -s 256
cryptsetup benchmark -c twofish-xts -s 512
cryptsetup benchmark -c xchacha12,aes-adiantum
cryptsetup benchmark -c xchacha20,aes-adiantum
taky koukni na cryptsetup benchmark
ty poslední šifry Adiantum https://www.root.cz/zpravicky/nova-sifra-adiantum-od-google-pro-slabsi-cpu/ (https://www.root.cz/zpravicky/nova-sifra-adiantum-od-google-pro-slabsi-cpu/) by měly být rychlejší než aes bez AES-NI, ale ne o tolik jako na ARM
navíc potřebuješ celkem nový kernel (>=5.0) a nový cryptsetup (>=2.0.5), třeba Ubuntututu 18.04.4 LTS první splňuje, ale cryptsetup má jen 2.0.2
jestli teda Ubuntu s Adiantum, tak DiscoDingo 19.04 ten by měl mít oboje a pak přejít na LTS
Vzhledem k tomu, ze Disco pouzivam uz ted, samozrejmne vcetne kernelu 5.0 a cryptsetup 2.1.0, nebude problem Adiantum pouzit. Diky za tip.
Vystup mate zde:
cryptsetup benchmark -c aes-xts -s 256
# Testy jsou počítány jen z práce s pamětí (žádné I/O úložiště).
#Algoritmus | Klíč | Šifrování | Dešifrování
aes-xts 256b 107,0 MiB/s 106,1 MiB/s
cryptsetup benchmark -c aes-xts -s 512
# Testy jsou počítány jen z práce s pamětí (žádné I/O úložiště).
#Algoritmus | Klíč | Šifrování | Dešifrování
aes-xts 512b 83,5 MiB/s 81,4 MiB/s
cryptsetup benchmark -c twofish-xts -s 256
# Testy jsou počítány jen z práce s pamětí (žádné I/O úložiště).
#Algoritmus | Klíč | Šifrování | Dešifrování
twofish-xts 256b 91,6 MiB/s 93,7 MiB/s
cryptsetup benchmark -c twofish-xts -s 512
# Testy jsou počítány jen z práce s pamětí (žádné I/O úložiště).
#Algoritmus | Klíč | Šifrování | Dešifrování
twofish-xts 512b 92,6 MiB/s 93,6 MiB/s
cryptsetup benchmark -c xchacha12,aes-adiantum
# Testy jsou počítány jen z práce s pamětí (žádné I/O úložiště).
# Algoritmus | Klíč | Šifrování | Dešifrování
xchacha12,aes-adiantum 256b 209,8 MiB/s 210,9 MiB/s
cryptsetup benchmark -c xchacha20,aes-adiantum
# Testy jsou počítány jen z práce s pamětí (žádné I/O úložiště).
# Algoritmus | Klíč | Šifrování | Dešifrování
xchacha20,aes-adiantum 256b 164,2 MiB/s 164,7 MiB/s
Skutecne to vypada, ze Adiantum je dost rychle.
PS: Ten HDD je v takove kondici, ze stejne vic jak v nejlepsim +- 50MB/s nezvlada. Nicmene dopad na baterku by tu byl, to bezpochyby.
-
Jinak pokud je to Adiantum založeno na ChaCha, tak podle Wikipedie (https://en.wikipedia.org/wiki/Salsa20#ChaCha20_adoption (https://en.wikipedia.org/wiki/Salsa20#ChaCha20_adoption)) není možné bezpečně pomocí ChaCha20 zašifrovat více než 256GiB dat, což by byl v případě 500GB disku problém:
Because of the reduced block counter, the maximum message length that can be safely encrypted by the IETF's variant is 232 blocks of 64 bytes (256 GiB). For applications where this is not enough, such as file or disk encryption, RFC 7539 proposes using the original algorithm with 64-bit nonce.
Opravuje Adiantum tento nedostatek (právě třeba použitím RFC 7539) nebo je to skutečně bezpečné jenom na menších discích?
-
Jinak pokud je to Adiantum založeno na ChaCha, tak podle Wikipedie (https://en.wikipedia.org/wiki/Salsa20#ChaCha20_adoption (https://en.wikipedia.org/wiki/Salsa20#ChaCha20_adoption)) není možné bezpečně pomocí ChaCha20 zašifrovat více než 256GiB dat, což by byl v případě 500GB disku problém:
Because of the reduced block counter, the maximum message length that can be safely encrypted by the IETF's variant is 232 blocks of 64 bytes (256 GiB). For applications where this is not enough, such as file or disk encryption, RFC 7539 proposes using the original algorithm with 64-bit nonce.
Opravuje Adiantum tento nedostatek (právě třeba použitím RFC 7539) nebo je to skutečně bezpečné jenom na menších discích?
To je maximální délka zprávy, kterou jde zašifrovat. Pochybuju, že by se celý disk tvářil jako jedna zpráva. Šifruje se po samostatných blocích, takže pokud jeden blok nepřekročí 256 GiB (LUKS má 512 B bloky), tak to myslím problém nebude.
-
Výstup z openssl speed -evp ... byl následující
cryptsetup benchmark bude lepší, implementace v openssl a v kernelu se mohou lišit.
CHACHA20 zvládne údajně bezpečně zašifrovat pouze 256GB dat, takže ta jde asi z kola ven (HDD má 500GB).
To bude limit na délku keystreamu s jedním klíčem/IV. Takhle disk nikdo nešifruje (když bys chtěl rozšifrovat data na pozici 100 GB, musel bys rozšifrovat i všechno před tím). Disk se šifruje po 512/4096B blocích.
-
ano, chacha20 je stream šifra, kdežto xchacha20,aes-adiantum je bloková šifra
použiješ teda cryptsetup luksFormat --type luks2 --sector-size 4096 -c xchacha20,aes-adiantum-plain64 -s 256
případně místo 20 dáš 12, nebo 8 což je rychlejší, ale asi trochu slabší
-
Děkuji všem za odpovědi, zkusím tedy podle nich něco vymyslet a nasadit.
-
To že jsem paranoidní, neznamená, že po mě nejdou, ale dá se věřit šifře od googlu? Není to něco jako věřit jisté skupině lidí, aby mi pohlídala na hlavním nádraží notebook (pokud to nebude tedy packard bell)?