TPM a kľúč disku
Zariadenie bez TPM čipu je menej bezpečné ako zariadenie s ním. Táto stránka vysvetľuje, čo je TPM, na čo ho LosOS používa a čo stráca zariadenie, ktoré ho nemá.
Čo je TPM
TPM (Trusted Platform Module) je malý bezpečnostný čip na základnej doske. Na väčšine novších počítačov je namiesto samostatného čipu súčasťou firmvéru procesora. Intel to volá PTT a AMD fTPM. Windows 11 vyžaduje TPM 2.0, takže počítač predávaný s Windows 11 ho má. Staršie mini-PC ho často majú tiež, niekedy vypnutý v nastaveniach firmvéru.
Čip uchováva vlastný kľúč, ktorý ho nikdy neopustí. Softvér môže čipu odovzdať tajomstvo na zapečatenie a odpečatiť ho dokáže iba ten istý čip. Zapečatené tajomstvo skopírované na iný počítač alebo prečítané z disku je tam nepoužiteľné.
Presne to potrebuje zariadenie bez obsluhy. Pri každom štarte musí odomknúť svoj šifrovaný disk bez toho, aby pri klávesnici sedel niekto, kto napíše heslo. Kľúč musí byť niekde, kam sa zariadenie dostane samo, a TPM je jediné také miesto, ktoré nie je samotný disk.
Na čo ho LosOS používa
Dátový zväzok (/persist) je na každom zariadení šifrovaný cez LUKS.
Inštalátor vytvorí náhodný kľúč, naformátuje ním zväzok a potom kľúč
zapečatí do TPM pomocou systemd-cryptenroll. Pri štarte si initrd vypýta
kľúč od čipu a otvorí zväzok. Bootovací oddiel nenesie žiadne tajomstvo.
Zariadenie do čipu zapečatí aj dve menšie tajomstvá:
- Tajomstvá, ktoré si zariadenie vytvára samo, napríklad prvé
administrátorské heslo Nextcloudu (
modules/keyring.nix, cezsystemd-creds). - Kľúč, ktorý šifruje adresár úložiska pre mesh (
modules/fscrypt.nix).
Kópia diskového kľúča zostáva aj vnútri šifrovaného zväzku na
/etc/keys/persist-keyfile. losos-ctl grow ju používa na zmenu veľkosti
zväzku. Zvonku zväzok otvoriť nedokáže, pretože je v ňom.
Čo stráca zariadenie bez TPM
Inštalátor zväzok šifruje stále rovnako. Mení sa to, kde je kľúč pri štarte.
Bez čipu inštalátor vloží kľúč do initrd ako /crypto_keyfile.bin. Initrd
leží na bootovacom oddiele (ESP) a bootovací oddiel nie je šifrovaný. Kľúč
leží hneď vedľa zámky.
Má to dva dôsledky.
- Ktokoľvek, kto získa disk, si môže prečítať všetko, čo je na ňom. Platí to
pre disk vybratý zo zariadenia, ukradnuté zariadenie, obraz disku,
zariadenie poslané do opravy aj starý disk predaný alebo vyhodený bez
vymazania. V každom z týchto prípadov si ten, kto ho číta, pripojí ESP,
skopíruje kľúč z initrd a otvorí zväzok. Stačia na to
bežné linuxové nástroje a pár minút. Odhalí to súbory vlastníka
v LosOS cloud, repozitáre v LosOS Git, admin kľúč a zvyšok
/persist. - Vlastné tajomstvá zariadenia prídu o svoj čip. Keyring sa vráti
k hostiteľskému kľúču
systemd-credsa kľúč úložiska pre mesh k obyčajnému súboru na/var/secrets/losos-shared-key. Oba ležia na tom istom zväzku ako dáta, ktoré chránia. Kópia/persist, ktorá opustí zariadenie, si kľúče vezme so sebou, a chyba, ktorá službe dovolí čítať ľubovoľný súbor ako root, prečíta obe polovice.
Sieťová strana sa nemení. LAN guard, prihlasovanie, tunel, hardening a oddelenie oboch účtov fungujú rovnako s čipom aj bez neho.
Pred čím TPM nechráni
LosOS zapečatí kľúč bez naviazania na merania firmvéru (PCR). Zariadenie každú noc aktualizuje svoj bootloader a kernel bez toho, aby na to niekto dohliadal. Kľúč naviazaný na tieto merania by po aktualizácii zamkol zariadenie mimo jeho vlastného disku a zariadenie nemá shell, z ktorého by sa z toho dalo zotaviť.
Čip preto vydá kľúč čomukoľvek, čo sa na tom počítači naštartuje, vrátane USB kľúča zlodeja. TPM zabezpečí, že samotný disk je nečitateľný. Nepomôže však, keď má niekto celé zariadenie. Bezpečnostný model to uvádza ako známe obmedzenie.
Ako zistiť, v akom režime zariadenie je
- Inštalátor vypíše
unlock: TPM2alebounlock: keyfile in the initrda pri ceste s keyfile tesne pred dokončením aj varovanie. - Obrazovka zariadenia zobrazuje varovanie pod jeho adresou.
- Admin stránky zobrazujú varovanie na paneli Nastavenia, Zabezpečenie a v sprievodcovi nastavením, keď je nastavené heslo.
- Nastavenia, Rozšírené uvádza
tpm.enablea hodnotu, s ktorou zariadenie beží.
Presun zariadenia na TPM
Inštalátor zapíše režim odomykania do modules/install-target.nix. Admin
stránky ho zmeniť nemôžu, pretože riadok preň v overrides.nix by sa
dostal do konfliktu s tým od inštalátora. Cesta k TPM vedie cez
preinštalovanie.
- Skopírujte si súbory zo zariadenia. Preinštalovanie disk naformátuje.
- Zapnite TPM v nastaveniach firmvéru. Hľadajte "TPM", "Security Device", "Intel PTT" alebo "AMD fTPM", zvyčajne v časti Security alebo Advanced.
- Preinštalujte z inštalačného ISO. Inštalátor čip nájde
a použije ho.
losos-ctl install --tpmurobí z chýbajúceho čipu chybu namiesto tichej inštalácie s keyfile.
VM potrebuje emulovaný čip pri inštalácii aj pri každom ďalšom štarte. Riadky pre swtpm sú v Inštalácii. Adresár so stavom swtpm uchovávajte spolu s obrazom disku, inak VM svoj disk neodomkne.
Režim s keyfile je v poriadku pre VM, testovacie zariadenie alebo zariadenie, na ktorom nie je nič súkromné. Pre skutočné súbory vlastníka na zariadení, ktoré by niekedy mohlo opustiť domov, použite TPM.