07-05-2023, 18:42 door Anoniem: [...]
Net als jij gebruik ik drie externe versleutelde HDD's voor backups. Ik heb voor schijven met stootabsorberende behuizingen gekozen van verschillende merken.
Leuk om te lezen dat meer mensen zo'n strategie gebruiken!
08-05-2023, 11:27 door Anoniem: Ik begrijp waarom je het versleuteld, maar geeft dat aan de andere kant juist niet problemen als er enkele sectoren defect zijn? Er zijn file recovery tools die in ieder geval delen kunnen herstellen, maar die werken dan denk ik niet op een (met Veracrypt) versleutelde schijf?
Als alleen een back-up HDD kapot gaat, is dat geen groot probleem - zolang ik het origineel nog maar heb (naast de andere twee back-ups).
Vervelender is het als er "bad blocks" zouden ontstaan op de SSD in mijn computer (waar ook back-ups van o.a. mijn smartphones op staan, die meegaan in de reguliere back-ups naar de 3 externe HDD's).
Het is dan vooral lastiger te bepalen
in welke files (of mapinhouden) die bad blocks zitten. Ik probeer dat toe te lichten, maar daarbij is het handig als je weet hoe FDE (Full Disk Encryption) werkt.
Full-disk encryption zit eenvoudiger in elkaar dan veel mensen denken: elke "sector" wordt onafhankelijk van de rest versleuteld. Effectief wordt het sectornummer (LBA = Logical Block Address) als "nonce" (number used once) gebruikt voor het bepalen van de "IV" (Initialisatie Vector) voor het te versleutelen blok. Dat zorgt ervoor dat als je twee (onversleutelde) sectors met identieke inhoud hebt, en deze met dezelde encryption-key versleutelt, de versleutelde sectors
niet identiek zijn.
Zonder die, voor elke sector andere, IV zou sprake zijn van "ECB" (Electronic Cookbook Mode) en zou je, bijv. in een versleuteld plaatje van een penguin, kunnen zien dat het om een penguin gaat:
https://words.filippo.io/the-ecb-penguin/ (tip: scroll naar beneden voor mooiere plaatjes!). Veiliger zou het zijn als je, voor elke te versleutelen sector, ergens bijv. 8 bytes opslag zou hebben waar je een random IV in zou kunnen opslaan - maar disks met blokken van 520 (i.p.v. 512) bytes worden, vziw, niet gemaakt. FDE is dus een compromis. Meestal wordt de XTS versleutelingsmodus gebruikt, zie
https://en.wikipedia.org/wiki/Disk_encryption_theory#XEX-based_tweaked-codebook_mode_with_ciphertext_stealing_(XTS) (met verhelderende plaatjes).
En er is nog een probleem: je hebt ook geen extra ruimte voor een cryptografische hash of (H)MAC (per sector, of evt. groep daarvan) om de
integriteit mee te verifiëren. FDE is er dus uitsluitend voor het redelijk garanderen van
vertrouwelijkheid.
Terzijde, essentieel daarbij is natuurlijk dat de gebruikte sleutel niet eenvoudig in verkeerde handen kan vallen. Als die sleutel
onversleuteld, of
zwak versleuteld met een PIN-code, in een kraakbare TPM staat (zie
https://security.nl/posting/795475), dan heb je niet meer dan schijnveiligheid. En bij kortere/zwakke wachtwoorden speelt de gebruikte KDF (Key Derivation Function) en eventuele instellingen daarvan een grotere rol. Recentelijk bleek de eerste versie van LUKS dat, naar de huidige maatstaven, dat niet goed voor elkaar te hebben, zie "PSA: upgrade your LUKS key derivation function" in
https://mjg59.dreamwidth.org/66429.html (bron:
https://www.heise.de/news/Alte-LUKS-Container-unsicher-Ein-kleiner-Update-Ratgeber-8981054.html).
Terug naar "recovery": in elk geval bij oudere harde schijven was het zo dat als je leesfouten had op een sector, de schijf die
niet automatisch remapte - totdat je een schrijfopdracht deed naar die sector. Nb. intern in harddisks zijn sectors groter dan 512 bytes, op z'n minst volgt er een CRC-code (Cyclic Redundancy Check, een "slimme" checksum) maar vaak ECC data (Error Correction Code) om kleine leesfouten on-the-fly te kunnen herstellen. Zonder speciale tools is het, op andere dan stokoude schijven, nauwelijks mogelijk om dat soort informatie van
buiten de HDD uit te lezen, laat staan te wijzigen.
Hoe dan ook, het hangt af van het niveau waarop je recovery wilt doen. Als je bestanden wilt kunnen herstellen (op z'n minst uitvinden
welke bestanden (deels) onleesbaar of beschadigd zijn), zal dit moeten gebeuren terwijl een besturingssysteem
decrypted sectors leest, met de FDE driver actief dus.
Mocht mijn "basis SSD" leesproblemen krijgen met enkele sectors, dan kan ik
zonder FDE driver actief scannen op bad blocks en die blokken proberen te remappen door er nullen (of willekeurige bytes) naar toe te schrijven (decrypted wordt dat sowieso semi-random). Daarna opstarten (FDE driver actief) en uitzoeken welke bestanden zijn gewijzigd of toegevoegd sinds de laatste back-up, en die "handmatig" inspecteren.
Als ik die SSD verder zou willen blijven gebruiken (onwaarschijnlijk) zou ik alle bestanden binair kunnen vergelijken met de laatste back-up, om uit te vinden welke beschadigd zijn; dan zou ik, vanaf die back-up, die bestanden moet terugzetten (en zo de corrupt geraakte versies overschrijven).
Kortom, ik maak mij geen grote zorgen (zolang ik maar vaak genoeg back-ups maak - en dat kan altijd beter ;-).