Kryptering av Linux-partitioner. Kryptering av partitioner. Blockera enhetsstack

Hemkatalogkryptering ger tillförlitligt skydd för data som lagras på din hårddisk eller andra lagringsmedia. Kryptering är särskilt viktigt på bärbara datorer, på datorer med flera åtkomst, såväl som i andra förhållanden. Hemkatalogkryptering erbjuds när du installerar Linux Mint.

Den viktigaste haken med full kryptering av hemkatalogen är att du måste "flytta" katalogen med krypterad data bortom monteringspunkten.

Prestanda minskar något, åtminstone tills SWAP används. SWAP är en speciell diskpartition eller fil där operativsystemet flyttar enskilda block av RAM-minne när det inte finns tillräckligt med RAM-minne för att köra applikationer. SWAP krypteras också om du väljer kryptering av hemkatalogen i installationsprogrammet och viloläget slutar fungera.

Att inte kryptera SWAP när hemkatalogen är krypterad är potentiellt farligt, eftersom data från krypterade filer kan hamna där i klartext - hela poängen med krypteringen går förlorad. Från och med version 14 av Linux Mint kan du under installationen välja alternativet att kryptera hela disken. Det här alternativet är mest lämpligt för att lagra personliga data på bärbara enheter (som vanligtvis bara har en användare).

1.3 Kryptering i gnome – Seahorse

Linux Mint har ett inbyggt verktyg för lösenord och nycklar, eller Seahorse. Genom att använda dess kapacitet kan användaren arbeta med alla nycklar, lösenord och certifikat som är tillgängliga i detta operativsystem.

I huvudsak är Seahorse en applikation för GNOME (GNOME är en gratis skrivbordsmiljö för Unix-liknande operativsystem), som är en frontend till GnuPG (ett gratis program för att kryptera information och skapa elektroniska digitala signaturer) och är designat för att hantera krypteringsnycklar och lösenord. Den ersatte GNOME Keyring, som ersattes helt i GNOME 2.22, även om den tillkännagavs redan i GNOME 2.18. Låter dig utföra alla operationer som tidigare behövde göras på kommandoraden och kombinera dem under ett enda gränssnitt:

    hantera säkerheten för din arbetsmiljö och OpenPGP- och SSH-nycklar;

    kryptera, expandera och skanna filer och text;

    lägga till och verifiera digitala signaturer till dokument;

    synkronisera nycklar med nyckelservrar;

    skapa och publicera nycklar;

    reservera nyckelinformation;

    lägg till bilder i valfri GDK som stöds som ett OpenGPG foto-ID;

1.4 TrueCrypt

TrueCrypt har ett ganska bekvämt grafiskt gränssnitt, men tyvärr har utvecklarna hårdkodad integration med Nautilus filhanterare i koden.

Du kan använda olika metoder för att kryptera data.

Först måste du skapa en så kallad container som ska innehålla filmappar avsedda för kryptering. En behållare kan vara en fil med ett godtyckligt namn eller till och med en hel diskpartition. För att komma åt behållaren måste du ange ett lösenord, och du kan även skapa en nyckelfil (valfritt) som informationen kommer att krypteras med. Behållarens storlek är begränsad.

Skapa krypterade partitioner/filer

Skapa en nyckelfil:

truecrypt -create-keyfile /home/user/test/file , där fil är namnet på nyckelfilen.

Skapa en behållare, i det här fallet ett avsnitt:

sudo truecrypt -k /home/user/test/file -c /dev/sda9

Istället för /dev/sda9-partitionen kan du också ange en fil, till exempel /home/user/test/cryptofile, men i det här fallet måste du ange dess storlek, detta görs med parametern -size=5G innan parametern -c. Exemplet ovan kommer att skapa en 5 GB kryptofil. Ibland accepterar TrueCrypt bara storleken i byte, för 5 GB kan du antingen beräkna värdet i förväg och specificera -size=5368709120, eller skriva det så här: -size=`echo 1024^3*5 | bc`.

Den redan skapade nyckelfilen kommer att användas för kryptering.

När du skapar kommer du att erbjudas ett val av behållartyp (normal/dold), filsystem (FAT, ext2/3/4 eller utan FS), i detta exempel valdes läget utan att använda FS. Du kommer också att erbjudas ett val av krypteringsalgoritm (till exempel AES), samt en hashalgoritm (till exempel SHA-1) för kryptering av dataströmmar.

TrueCrypt används för att kryptera data i farten, det vill säga du kan montera en container och arbeta med filerna i den som vanligt (öppna/redigera/stäng/skapa/ta bort), vilket är väldigt bekvämt.

Den krypterade partitionen/filen har skapats. Om du nu behöver formatera dess interna filsystem (nedan kallat FS), bör du göra följande.

Välj önskad sektion med Truecrypt:

truecrypt -k /home/user/test/file /dev/sda9

Som standard kommer den Truecrypt-skapade enheten /dev/mapper/truecrypt0 att användas. Genom att komma åt den här enheten kan du ändra till exempel FS i en krypterad behållare. I det här fallet måste detta göras.

sudo mkfs.ext4 -v /dev/mapper/truecrypt0

Så här skapades ext4 FS inuti denna krypterade behållare.

Sedan, eftersom den här behållaren redan är "ansluten" till enheten /dev/mapper/truecrypt0, återstår bara att montera den till någon katalog. Denna monteringskatalog måste redan finnas på systemet.

sudo mount /dev/mapper/truecrypt0 /mnt/crypto, där /mnt/crypto är katalogen till vilken den krypterade behållaren är monterad.

truecrypt -d

Nu, utan att känna till nyckelfilen och lösenordet, kommer ingen att kunna läsa den dolda informationen.

Idag har det blivit farligare än någonsin att lagra viktig data i klartext. Och inte så mycket på grund av statlig övervakning (om de vill kommer de att hitta något att klaga på och så vidare), utan på grund av de som vill stjäla denna data. I princip finns det många metoder för att skydda information, men den här artikeln kommer att beskriva kryptografiska metoder.


Till skillnad från vissa andra operativsystem har Linux en mängd olika verktyg för kryptografiskt informationsskydd - från kryptering av e-postkorrespondens till kryptering av filer och blockeringsenheter. Vi är intresserade av kryptering på nivå med filsystem, filer och blockenheter. Först är det värt att förstå vad skillnaden är. Kryptering på filsystemsnivå kräver närvaron av ett lager mellan huvudfilsystemet (såvida inte filsystemet i sig självt inte stöder kryptering) och användaren.

Fördel av denna typ kryptering - nycklarna är olika för alla användare. Nackdelen är att om du aktiverar filnamnskryptering kommer längden på det giltiga namnet att minska, dessutom kan användaren spara filen på en annan plats på disken, vilket automatiskt förnekar fördelen. Och en sak till - även om namnkryptering är aktiverad kommer tidsstämplarna att förbli desamma. Blockeringsenhetskryptering sker på en lägre nivå, under filsystemet. I det här fallet vet filsystemet självt naturligtvis inte att det finns på en krypterad volym.

Fördelar den här metoden motsatsen till bristerna i den föregående. Nackdelen är att du måste ange ett lösenord varje gång du laddar ner/monterar det. Den andra nackdelen är att om en angripare under körning får tillgång till filer på kryptokon-
teiner, det är allt - det är förlorat. Det är precis vad skydd mot offlineattacker är. Dessutom, i de allra flesta fall av att spara en kryptobehållare till molnet, måste du ladda upp den helt igen.

Den här artikeln kommer att beskriva hur du ställer in följande kryptografiska skyddsmetoder:
dm-krypt/LUKS- skapa en kryptobehållare med hjälp av device-mapper och CryptoAPI-kärna;
eCryptfs- kryptering på filsystemnivå;
EncFS- liknande det som beskrivs ovan, men kräver inte inläsning av kärnmoduler.

DM-CRYPT/LUKS
Det finns två typer av dm-crypt-konfiguration - vanlig och LUKS. Skillnaden är att när du använder LUKS finns metadata i början av kryptotomen, vilket gör att du kan använda flera nycklar och ändra dem. Samtidigt är förekomsten av en sådan rubrik i vissa fall i sig kompromissande – dock i de flesta liknande fall ett område med en hög grad av entropi kommer också att kompromissa. Ställa in vanlig dm-crypt med en nyckelfil och lösenfras Låt oss se hur man ställer in en kombination av en vanlig dm-crypt-volym krypterad med en nyckelfil, som i sin tur finns i en LUKS-behållare. Först måste du bestämma exakt hur sektionerna ska placeras. Det finns tre huvudalternativ:
bara en kryptovolym;
först en kryptovolym, sedan LVM ovanpå den;
först kryptovolym, sedan RAID och sedan LVM.

Och alla möjliga kombinationer. Låt oss prova det andra alternativet. Det första steget är att skapa en LUKS-behållare för att lagra nyckelfilen så att vi kan använda den här filen tillsammans med nyckelfrasen. I det här fallet reduceras sannolikheten för kryptoanalys av en volym krypterad med vanlig dm-crypt:

# dd if=/dev/zero of=/root/key.luks bs=512 count=2057

# cryptsetup --align-payload=1 luksFormat /root/key.luks

# cryptsetup luksÖppna /root/key.luks kryptonyckel

# dd om=/dev/urandom av=/dev/mapper/krypteringsnyckel

Det första kommandot förbereder behållarfilen, det andra skapar den här behållaren, det tredje ansluter den och det fjärde genererar nyckelinformation. Det är värt att notera att alternativet –align-payload=1 behövs för att säkerställa att storleken på LUKS-metadata inte är 4096 512-byte block, utan endast 2056. Således återstår 512 byte för den faktiska nyckelinformationen.
Sedan går vi vidare till att skapa en kryptotom. Vid denna tidpunkt kan du också valfritt fylla skivan med pseudoslumpdata för att göra krypteringsanalys, om någon, svår. Sedan kan du skapa en kryptotom. Kommandot för detta ser ut så här (naturligtvis, i andra fall kan identifierarna skilja sig, så du måste vara försiktig):

# cryptsetup --cipher=serpent-xts-plain64 --offset=0--key-file=/dev/mapper/cryptokey --key-size=512 öppen --type=plain/dev/disk/by-id/ ata-VBOX_HARDDISK_VB05eadebe-f25e8d59 crypto0


Om det behövs måste du upprepa ett liknande kommando på andra enheter som kräver kryptering. Sedan kommer vi att skapa LVM och FS på kryptovolymerna:

Låt oss skapa en fil /etc/initramfs-tools/hooks/cryptokeys med ungefär följande innehåll (servicedelen av skriptet är utelämnad):

Och filen /etc/initramfs-tools/scripts/local-top/cryptokeys (servicedelen igen
utelämnad):

# <...>

modprobe -b dm_crypt

medan! (/sbin/cryptsetup luksÖppna /etc/crypto/key. luks cryptokey

/dev/disk/by - id /ata - VBOX_HARDDISK_VB05eadebe - f25e8d59 crypto0

&& /sbin/cryptsetup plainOpen -- nyckel - fil = /dev/mapper/cryptokey

/dev/disk/by - id /ata - VBOX_HARDDISK_VBc2414841 - cfeccde5 crypto1

&& /sbin/cryptsetup luksStäng kryptonyckel

); do

echo "Försök igen . . . ”

Gjort

Dessa två filer måste vara körbara. Sedan skapar vi initrd:en:

# update-initramfs -u -k all -v

Nästa gång du startar om kommer du att bli tillfrågad om ett lösenord för LUKS-behållaren. Om du använder vanlig dm-crypt finns det ett annat alternativ - ett vanligt bottenlager, som låter dig göra något som TrueCrypt dolda volymer. Det är lättare att ge ett exempel:

# cryptsetup --cipher=serpent-xts-plain64 --offset=0--size=2097152 --shared open --type=plain/dev/disk/by-id/ata-VBOX_HARDDISK_VBcda8398f-f1f1deec crypto

# cryptsetup --cipher=serpent-xts-plain64 --offset=2097152--size=2097152 --shared open --type=plain/dev/disk/by-id/ata-VBOX_HARDDISK_VBcda8398f-f1f1deec crypto_shared

Storleken och offset anges i 512-byte block.


Avancerade funktioner i LUKS
Låt oss också titta på den avancerade användningen av LUKS-containrar. Dessa inkluderar att byta nycklar. Detta är nödvändigt när man kompromissar eller skapar en nyckelrotationspolicy. Det första steget för att göra detta är att skapa en säkerhetskopia av behållarhuvudet. Jag faller
ok, efter att ha bytt nyckel kan den förstöras. Vi gör det, naturligtvis, på en okrypterad partition:

Slutligen lägger vi till ny nyckel till systemet:

Låt oss också överväga proceduren för att återställa LUKS-volymer. Det enklaste alternativet är förstås när det finns en kopia av rubriken. I det här fallet krävs bara ett kommando för att återställa:

Den längsta sammanhängande linjen kommer att vara huvudnyckeln. Den måste kopieras till en fil på en okrypterad volym och sedan konverteras till binär form (innan du gör detta, se till att den här filen det finns inga
radslutstecken):

ENCFS
Låt oss se hur man konfigurerar EncFS för att montera automatiskt vid inloggning. Låt oss först installera de nödvändiga paketen:

När du ställer in i expertläge kommer du att ställas ett antal frågor: chiffertyp (endast AES och Blowfish är tillgängliga), nyckelstorlek, blockstorlek, hur man krypterar filnamn - blockkryptering (som helt döljer filnamnet, inklusive längden), strömkryptering (som krypterar med närmast möjliga längd, vilket ibland är bekvämt om namnen är för långa och när man använder ett blockchiffer är det ganska stor sannolikhet att överskrida den maximalt tillåtna längden) eller kommer att vara helt frånvarande. .. I slutet kommer du att bli tillfrågad om ett lösenord, det måste matcha det som används för att logga in, annars fungerar inte automontering.

Därefter måste du redigera filen /etc/security/pam_encfs.conf:

Och filen /etc/fuse.conf:

Och lägg till användaren i säkringsgruppen:

$ sudo usermod - a - G säkring $ USER

Efter utloggning och inloggning kan den privata katalogen användas som lagring av personuppgifter. Värt att notera är dock att granskningen avslöjade vissa (ganska allvarliga) säkerhetsproblem, på grund av vilka detta system Det rekommenderas starkt inte att använda det för att lagra riktigt viktig data.

ECRYPTFS
Det är känt att eCryptFS används i Ubuntu som standardverktyg för att skydda hemkataloger. Låt oss se hur det fungerar - låt oss skapa en krypterad katalog manuellt. Låt oss installera paketen:

Skapande av eCryptFS

Och montera filsystemet (under den första monteringen skapas all nödvändig metadata):

$ sudo mount - t ecryptfs / home / rom / . hemlighet/hem/rom/hemlighet

Du kommer att bli ombedd att ange en lösenfras (endast en gång, upprepad inmatning implementeras inte, vilket inte ser särskilt bra ut bra beslut, med tanke på att den måste vara lång), kommer den att fråga efter typen av chiffer (AES, Blowfish, 3DES, Twofish, CAST6 och CAST5), nyckelstorleken, frågan ställs om man ska tillåta eller neka okrypterade filer i katalogen med krypterade, om man ska kryptera filnamn... och till slut kommer den att fråga om vi verkligen vill montera och spara signaturen till en specifik fil. Frågan är inte så dum som den kan tyckas först: i denna programvara, i avsaknad av en signatur, finns det inget sätt att skilja rätt lösenord från det felaktiga.

Krypterar användarens hemkatalog

Under den första lanseringen kan du behöva avsluta flera processer. Efter kryptering måste du omedelbart logga in som användare och du kommer att bli ombedd att skriva ner eller skriva ut lösenfrasen som genereras för kryptering och skyddas i sin tur av användarlösenordet. Detta är nödvändigt för återhämtning i händelse av en nödsituation.


Varning för att komma ihåg din lösenfras

Låt oss se hur man återställer det. Låt oss anta att lösenfrasen inte är inspelad och återställningen är från en live-CD. Det antas att filsystemet är monterat. Gå till katalogen home/.ecryptfs/rom/.ecryptfs och skriv kommandot:

dm-verifiera
Modulen dm-verify är utformad för att verifiera integriteten hos blockenheter. Verifiering utförs med hjälp av ett hashträd, där "löv" är hashsummor av block och "grenar" är hashsummor av uppsättningar av "löv". För att verifiera en blockeringsenhet (oavsett om det är en partition eller en disk), räcker det med att bara kontrollera en kontrollsumma.
Denna mekanism (tillsammans med digital signatur) används i vissa Android-enheter för att skydda mot modifiering av systempartitioner, såväl som i Google Chromium OS.

SLUTSATS
Linux innehåller faktiskt en hel del verktyg för kryptografiskt informationsskydd. Av de tre beskrivna verktygen finns minst ett i alla moderna Linux-distributioner. Men vad ska man välja?
dm-krypt/LUKS Den bör användas i de fall där det är möjligt att snabbt inaktivera en krypterad volym och när säkerhetskopior antingen inte behövs eller på annat sätt är sekretessbelagda. I detta fall detta beslut mer än effektivt, särskilt med tanke på att kryptering kan göras i en kaskad av godtycklig kapsling och typ (till exempel AES-Twofish-AES), - ett riktigt paradis
för den paranoida.
eCryptFS lämplig i de fall du behöver spara krypterad data någonstans - till exempel i molnet. Det ger ganska stark kryptering (även om standardalternativet på 128 bitar har möjlighet att minska den kryptografiska styrkan med två bitar) och är transparent för slutanvändaren.
EncFS men det är en gammal man för ungefär tio år sedan, baserad på ännu äldre verk. Rekommenderas för närvarande inte för användning på grund av potentiella säkerhetshål, men kan användas som ett plattformsoberoende verktyg för att skydda okänslig data i molnen.

Om du behöver använda sådana medel bör du alltid komma ihåg att skyddet måste vara heltäckande.

Disk (a la TrueCrypt). Jag vet att det har varit arbete med att lägga till krypteringsstöd till GRUB2, men det är inte klart än. Några andra alternativ?

(Observera att jag faktiskt menar full diskkryptering här, inklusive /boot)

De flesta av svaren beskriver en installation där /boot inte är krypterad, och några av dem försöker förklara varför en okrypterad /boot ska vara ok.

Utan att gå in i en debatt om varför jag faktiskt behöver /boot för att krypteras, här är en artikel som beskriver exakt vad jag behöver, baserat på en modifierad version av GRUB2:

  • http://xercestech.com/full-system-encryption-for-linux.geek

Problemet är att dessa ändringar inte verkar stödjas i den nuvarande GRUB2-kodbasen (eller så kanske jag missar något).

8 lösningar samlar formulärwebb för "Linux-startladdare som stöder fullständig diskkryptering?"

Jag tror att den nuvarande versionen av GRUB2 inte stöder att ladda och dekryptera LUKS-partitioner på egen hand (den innehåller några chiffer, men jag tror att de bara används för lösenordsstöd). Jag kan inte kontrollera den experimentella utvecklingsgrenen, men det finns några tips på GRUB-sidan om att en del arbete är planerat för att implementera det du vill göra.

Uppdatering (2015) : senaste versionen GRUB2 (2.00) innehåller redan kod för åtkomst till de krypterade LUKS- och GELI-partitionerna. (Länken xercestch.com som OP gav nämner de första korrigeringarna för detta, men de ingår nu i den senaste versionen).

Men om du försöker kryptera hela enheten av säkerhetsskäl, notera att en okrypterad starthanterare (som TrueCrypt, BitLocker eller en modifierad GRUB) inte ger något mer skydd än en okrypterad /boot-partition (som påpekats av SP i kommentaren ovan). Den som har fysisk tillgång till datorn kan lika gärna ersätta den med den anpassade versionen. Det nämns till och med i artikeln på xercestech.com som du länkade till:

För att vara tydlig gör detta inte på något sätt ditt system mindre sårbart för en offlineattack; om en angripare skulle ersätta din starthanterare med sin egen eller omdirigera startprocessen för att ladda sin egen kod, kan ditt system fortfarande äventyras.

Observera att alla mjukvaruprodukter för fullständig kryptering enheter har denna svaghet, oavsett om de använder en okrypterad bootloader eller en okrypterad boot/preboot-partition. Även produkter som stöder TPM-chips (Trusted Platform Module), som BitLocker, kan implementeras utan att ändra hårdvaran.

Ett bättre tillvägagångssätt skulle vara:

  1. dekryptera på BIOS-nivå (i moderkort antingen på en diskadapter eller extern hårdvara [smartkort], med eller utan ett TPM-chip), eller
  2. bär PBA-auktoriseringskoden (/startpartition i det här fallet) på en flyttbar enhet (som ett smartkort eller USB-enhet).

För att göra detta på det andra sättet kan du kolla in Linux Full Disk Encryption (LFDE)-projektet på: http://lfde.org/, som tillhandahåller ett efterinstallationsskript för att flytta /boot-partitionen till en extern USB-enhet, kryptera nyckeln med GPG och lagra den på USB också. På detta sätt är den svaga delen av startsökvägen (den okrypterade /boot-partitionen) alltid med dig (du kommer att vara den enda som har fysisk tillgång till dekrypteringskoden och nyckeln). ( Notera: Denna sida har gått förlorad och författarens blogg har också försvunnit, men du kan hitta de gamla filerna på https://github.com/mv-code/lfde, bara notera att den senaste utvecklingen gjordes för 6 år sedan). Som ett enklare alternativ kan du installera en okrypterad startpartition på en USB-enhet när du installerar operativsystemet.

Med vänlig hälsning, M.V.

Gör din första RAM-disk och /boot-mapp okrypterade.

Detta kommer att ta upp en "minimal" kärna med drivrutiner och stöd för att byta till den "riktiga" roten filsystem, som är krypterad.

Innan du förklarar "det är ett hack", kom ihåg - de flesta (om inte alla) Linux-distributioner laddas som standard idag. Detta tillåter uttryckligen ditt system att starta och ladda rot-FS med moduler som behöver laddas från filsystemet. (Slags ett kyckling- och äggproblem). Till exempel, om ditt rotfilsystem var på en hårdvaru-RAID-volym och du behövde ladda dess drivrutin innan du kunde montera rot-FS.

Jag tittade på länken du postade - även om det inte finns någon startpartition, finns det fortfarande en okrypterad starthanterare på hårddisken som kan nås och äventyras av en skadlig attack. Jag har letat efter ett liknande setup där det inte finns okrypterad data på hårddisken, men hittills har jag bara kommit på att köra bootloadern från en flyttbar enhet.

Jag tror att de flesta av dem, vad du behöver är instruktioner om hur man installerar ett OS med krypterad HD först.

Ubuntu har en bra sida med instruktioner om hur man skapar krypterade partitioner, LMVP, mappar etc., bara din version av din distribution...

Nej, det tror jag inte.

Behöver du verkligen kryptera/ladda ner? Jag misstänker inte. Resten av filsystemet kan krypteras med vanlig Linux-programvara, som finns i initramfs i /boot och uppmanar användaren att följa det.

Du verkar fråga efter något som inte går att göra och jämföra det med Windows lösning, som döljer implementeringen för dig, men gör faktiskt samma sak som Linux gör.

Den närmaste lösningen jag kan tänka mig är att använda HDD, som implementerar lösenordssäkerhet och kryptering. Vissa bärbara Thinkpad-datorer använder dessa hårdvarulösningar.

Svaret beskrivs i artikeln. "Detta är nu möjligt med tillägg till nästa generations GRUB2 bootloader, som har patchats för att stödja inte bara" och "vi vill installera en ny avbildning med luks grub2-stöd senare" och "Vi kommer nu att kompilera GRUB2-källan med LUKS-stöd . "Det verkar som om det finns en fix eller förlängning som du behöver för att skaffa och aktivera med GRUB2 eller en delad GRUB2-källa.

Grub2 version 2.02~beta3 kan göra mycket som Grub2 version 2.02~beta2 inte kan göra, testat av mig:

  1. Startar med en Super Grub 2-disk
  2. Skriv "c" för att gå till kommandoraden
  3. Ange kommandon för att montera den krypterade partitionen jag vill ha
    • insmod lux
    • cryptomount(hd0, #) // där # representerar den krypterade partitionen
  4. Ange en lösenfras och ange några kommandon
    • multiboot (crypto0) /grub/i386-pc/core.img
    • känga

Detta kommer att ladda en annan Grub2 som finns inuti den krypterade partitionen, evil crazy attack har ingen plats här... Jag startar från en CD (skrivskyddad) och monterar sedan den krypterade partitionen (inte lösenfrasen, något!), sedan startar jag inifrån en krypterad partition och startar Grub2 med sin egen meny, etc.

Varning: Grub2 version 2.02~beta2 kan inte göra detsamma eftersom den har några buggar (som verkar vara fixade i Grub2 version 2.02~beta3) relaterade till cryptomount-kommandot...

beta2-fel jag pratar om är:

  1. Den monterar faktiskt inte den krypterade partitionen, så den tillåter dig inte att komma åt (crypto0)/*
  2. Om det finns mer än en krypterad partition, kräver användning av cryptomount -a bara en lösenfras
  3. Efter att ha kört cryptomount när det körs igen, gör ingenting

på beta 3:

  1. Den monterar den krypterade partitionen och låter dig komma åt filer via (crypto0)/* eller (crypto1)/* etc om mer än en är monterad samtidigt
  2. Den frågar efter varje lösenordsfras (en per krypterad sektion)
  3. Detta gör att du kan köra det så många gånger du behöver, du kan installera en, sedan en annan osv.

Sidanteckning: Jag har inte kommit på hur man avmonterar dem annat än att starta om eller starta om en annan eller samma grub2/other etc boot loader.

Hoppas detta hjälper till att reda ut saker och ting, och förhoppningsvis kommer versionen av Grub2 2.02~beta3 att integreras i LiveCD så att vi kan installera den utan att behöva kompilera den själva.

PD: Med Super Grub 2-disken ser jag inget sätt att installera Grub2 version 2.02~beta3 på MBR-partition/boot etc.

Vill du dölja din data från nyfikna ögon? Vi kommer att lära dig hårddiskkrypteringstekniker.

Bakom Förra åretÄmnet om datasäkerhet på Internet kom ofta upp: först i samband med Snowden-avslöjandena, sedan med sårbarheten i OpenSSL (Heartbleed-bugg). Strax före den sista upptäcktes en mindre märkbar bugg i GnuTLS. Som ett resultat började vi ägna mer uppmärksamhet åt säkerheten för raderade data; men hur är det med de som finns lagrade på vår disk?

Blockera enhetsstack

Innan du tittar på kryptering är det viktigt att förstå hur blockenheter fungerar. De är systemgränssnitt till lagringsenheter som /dev/sda! Inuti en blockenhet finns en hårdvarudrivrutin, såsom SATA, och själva hårdvaran. Operativsystemet interagerar sedan med blockenheten för att skapa ett filsystem på den.

Blockenheter anses vanligtvis i denna egenskap, även om de har andra funktioner. I synnerhet kan en sådan enhet vara ett gränssnitt för ett antal andra blockenheter - de kan bilda en stack. Och du har redan gjort detta: du har ett filsystem på /dev/sda1 (diskpartition), och denna blockenhet pekar på /dev/sda (hela disken).

Tekniker som RAID och LVM (Logical Volume Management) är också blockenhetsstackar. Du kanske har LVM överst RAID-array, som i sin tur också finns på blockenheterna på enskilda diskar eller deras partitioner.

Helenhetskryptering med dm-crypt fungerar så här: en blockenhet skapas på basis av ditt lagringsmedium, som krypterar data när den lagras och dekrypterar när den läses. Du monterar sedan ett standardfilsystem ovanpå den krypterade enheten, och det fungerar precis som en vanlig diskpartition.

Många distributioner kan installeras på en krypterad disk, men vi kommer att titta direkt på skapandet och driften av dm-crypt-enheter, utan att beröra den svarta magin som installationsprogrammet utför. Dm-crypt använder kärnenhetens kartläggningsundersystem för att styra blockenheter med kärnkryptografiska funktioner för krypteringsändamål.

Allt görs av kärnan, men på användarnivå behöver vi programvara för att skapa och hantera dm-crypt-enheter; så här standardverktyg står för cryptsetup. Det är förmodligen redan installerat på din distribution; och om inte, så kommer det säkert att finnas i huvudarkiven.

Kryptering

Standardvärdena är vanligtvis mer än tillräckligt, och allt tillgängliga val kan ses med cryptsetup -help Dessa alternativ behövs endast med LuksFormat. När du skapar en säker enhet använder cryptsetup automatiskt korrekta inställningar att öppna den.

Det är bäst att hålla sig till populära chiffer och hash om du inte har en bättre anledning att välja något annat. Metoder som används mindre ofta kan ha dolda brister helt enkelt för att de är mindre testade, vilket är vad som hände nyligen med Whirlpool-hashimplementeringen i libcgrypt-biblioteket som används av cryptsetup. När man gjorde korrigeringar påverkades de system som redan använde defekta hash.

En annan anledning att hålla fast vid konventionella metoder är portabilitet. Detta är inte viktigt för den interna enheten, men om du vill använda den krypterade enheten på ett annat system måste samma hash och chiffer installeras där också.

LUKS

LUKS— Linux Unified Key Setup skapades för att tillhandahålla ett standardformat för plattformsoberoende (trots namnet) för lagring av krypterad data på diskar. Det gäller inte krypteringsmetoder, utan hur information om dem lagras.

Han är också mer på ett tillförlitligt sätt lagra nycklar eller lösenord, eftersom dm-crypt-metoden är känslig för hackning. Eftersom LUKS är plattformsoberoende kan krypterade enheter också nås från Windows med .

Säkerhet och integritet är mycket viktigt för dem som lagrar viktig data på en dator. Din hemdatorär säkert, men med en bärbar dator eller andra bärbara enheter är situationen mycket annorlunda. Om du bär din bärbara dator med dig nästan överallt och obehöriga personer kan ha tillgång till den, uppstår frågan - hur du skyddar din data från andra människors störningar. Det är från fysiska attacker, där vem som helst kan försöka få data från USB-minne eller hårddisk bärbar dator genom att helt enkelt ta bort enheten, eller i fallet med en bärbar dator, ta bort hårddisken och ansluta den till ett annat operativsystem.

Många företag och till och med vanliga användare använd diskkryptering i Linux för att skydda konfidentiell information som: klientinformation, filer, Kontaktinformation och mycket mer. Operativsystemet Linux stöder flera kryptografiska metoder för att skydda partitioner, enskilda kataloger eller hela hårddisken. All data i någon av dessa metoder krypteras och dekrypteras automatiskt i farten.

Kryptering på filsystemnivå:

  • 1. eCryptfs- det här är en kryptografisk fil Linux-system. Den lagrar kryptografisk metadata för varje fil i separat fil, så att filer kan kopieras mellan datorer. Filen kommer att dekrypteras framgångsrikt om du har nyckeln. Denna lösning används ofta för att implementera en krypterad hemkatalog, till exempel i Ubuntu. Även ChromeOS bäddar transparent in dessa algoritmer när de används nätverksenheter för datalagring (NAS).
  • 2.EncFS- tillhandahåller ett krypterat filsystem i användarutrymmet. Den körs utan några ytterligare privilegier och använder säkringsbiblioteket och kärnmodulen för att tillhandahålla ett filsystemsgränssnitt. EncFS är fri programvara och är licensierad under GPL.

Blockkryptering på enhetsnivå:

  • Loop-AES- ett snabbt och transparent filsystem, samt ett paket för att kryptera swap-partitionen i Linux. Källkoden för programmet har inte ändrats på länge. Det fungerar med kärnorna 4.x, 3.x, 2.2, 2.0.
  • TrueCrypt- Det här gratis lösning med öppen källkod för diskkryptering i operationssalar Windows-system 7 / Vista / XP / Mac OS X, samt Linux.
  • dm-krypt+LUKS- dm-crypt är ett transparent delsystem för diskkryptering i kärnan 2.6 och senare. Stöder kryptering av hela diskar, flyttbara media, partitioner, RAID-volymer, programvara, logiska volymer och filer.

I den här handledningen kommer vi att titta på kryptering av en hårddisk på Linux med Linux Unified Key Setup-on-disk-format (LUKS) algoritmen.

Hur fungerar LUKS?

LUKS (Linux Unified Key Setup är ett krypteringsprotokoll för blockenheter. Men vi har hoppat långt fram, för att förstå hur det fungerar måste vi förstå andra teknologier som används i denna metod.

För att utföra kryptering linux disk Kernmodulen dm-crypt används. Denna modul låter dig skapa en virtuell blockenhet i /dev/mapper-katalogen med kryptering som är transparent för filsystemet och användaren. Faktum är att all data finns på en krypterad fysisk partition. Om en användare försöker skriva data till en virtuell enhet krypteras den i farten och skrivs till disk, vid läsning från en virtuell enhet utförs den omvända operationen - data dekrypteras från den fysiska disken och överförs i klartext via virtuell disk till användaren. Vanligtvis används AES-metoden för kryptering, eftersom de flesta av dem är optimerade för det. moderna processorer. Det är viktigt att notera att du kan kryptera inte bara partitioner och diskar utan även vanliga filer genom att skapa ett filsystem i dem och ansluta dem som en loopenhet.

LUKS-algoritmen bestämmer vilka åtgärder och i vilken ordning som kommer att utföras när man arbetar med krypterade media. För att arbeta med LUKS och dm-crypt-modulen, använd verktyget Cryptsetup. Vi kommer att överväga detta ytterligare.

Cryptsetup verktyg

Cryptsetup-verktyget kommer att göra det lättare att kryptera en Linux-partition med dm-crypt-modulen. Låt oss installera det först.

På Debian eller Ubuntu, använd det här kommandot:

apt-get installera cryptsetup

På Red Hat-baserade distributioner kommer det att se ut så här:

yum installera cryptsetup-luks

Syntaxen för att köra kommandot är:

$ cryptsetup options operation options_operations

Låt oss titta på de grundläggande operationerna som kan göras med det här verktyget:

  • luksFormat- skapa en krypterad partition luks linux
  • luksÖppna- anslut en virtuell enhet (dongel krävs)
  • luksStäng- stäng den virtuella luks linux-enheten
  • luksAddKey- lägg till krypteringsnyckel
  • luksRemoveKey- radera krypteringsnyckeln
  • luksUUID- visa partitionens UUID
  • luksDump- skapa säkerhetskopia LUKS rubriker

Parametrarna för operationen beror på själva operationen, vanligtvis är det antingen en fysisk enhet som åtgärden behöver utföras med, eller en virtuell, eller båda. Allt är inte klart än, men med övning tror jag att du kommer att reda ut det.

Linux diskkryptering

Teorin är klar, alla verktyg är klara. Låt oss nu titta på kryptering av linux-partitionen. Låt oss gå vidare till att installera hårddisken. Observera att detta kommer att radera all data från enheten eller partitionen du håller på att kryptera. Så om det finns viktig data där är det bättre att kopiera det till en säkrare plats.

Skapa ett avsnitt

I det här exemplet kommer vi att kryptera /dev/sda6-partitionen, men du kan använda en hel hårddisk istället, eller bara en enda fil fylld med nollor. Skapa en krypterad partition:

cryptsetup -y -v luksFormat /dev/sda6

VARNING!
========
Detta kommer att skriva över data på /dev/sda6 oåterkalleligt.

Är du säker? (Skriv versaler ja): JA
Ange LUKS-lösenfras:
Verifiera lösenordsfras:
Kommandot lyckades.

Detta kommando kommer att initiera partitionen och ställa in initieringsnyckeln och lösenordet. Ange ett lösenord så att du inte glömmer det senare.

Kör följande kommando för att öppna den nyskapade partitionen med dm-crypt-modulen i /dev/mapper, för att göra detta måste du ange lösenordet som luks linux-krypteringen utfördes med:

Ange lösenfras för /dev/sda6

Nu kan du se den nya virtuella enheten /dev/mapper/backup2 skapad med kommandot luksFormat:

ls -l /dev/mapper/backup2

För att se enhetens status, kör:

cryptsetup -v status backup2

/dev/mapper/backup2 är aktiv.
typ: LUKS1
chiffer: aes-cbc-essiv:sha256
nyckelstorlek: 256 bitar
enhet: /dev/sda6
offset: 4096 sektorer
storlek: 419426304 sektorer
läge: läs/skriv
Kommandot lyckades.

Och med följande kommando kan du göra en säkerhetskopia av LUKS-huvudena för säkerhets skull:

cryptsetup luksDump /dev/sda6

Tja, vi kan säga att avsnittet är klart. Och det bästa är att du nu kan använda den precis som vilken vanlig partition som helst i /dev-katalogen. Du kan formatera den med standardverktyg, skriva data till den, ändra eller kontrollera filsystemet, etc. Du kan inte bara ändra storleken. Det vill säga allt är helt transparent, som det står i början av artikeln.

Formatera en partition

Låt oss först formatera disken. För att vara säker, för att radera all data som fanns på denna plats tidigare, kommer vi att skriva över vår krypterade Linux-partition med nollor. Detta kommer att minska sannolikheten för att krypteringen bryts genom att öka mängden slumpmässig information. För att göra detta, kör:

dd if=/dev/noll av=/dev/mapper/backup2

Verktyget kan ta flera timmar att köra; för att kunna övervaka processen, använd pv:

pv -tpreb /dev/noll | dd av=/dev/mapper/backup2 bs=128M

När processen är klar kan vi formatera enheten till vilket filsystem som helst. Till exempel, låt oss formatera det i ext4:

mkfs.ext4 /dev/mapper/backup2

Som du kan se tillämpas alla cryptsetup-kommandon på den fysiska partitionen, medan resten av kommandona för att arbeta med diskar appliceras på vår virtuella.

Montering av en skiljevägg

Nu kan du bara montera det skapade filsystemet:

$ mount /dev/mapper/backup2 /backup2

Inaktiverar en partition

Allt fungerar, men hur man inaktiverar enheten och skyddar data. För att göra detta, kör:

cryptsetup luksStäng backup2

Ommontering

För att kunna arbeta med den krypterade partitionen igen med LUKS Linux måste du öppna den igen:

cryptsetup luksÖppna /dev/sda6 backup2

Nu kan vi montera:

montera /dev/mapper/backup2 /backup2

Kontrollera filsystemet luks

Eftersom efter att ha öppnat en partition med luks linux, denna partition behandlas av systemet som alla andra, kan du helt enkelt använda verktyget fsck:

sudo umount /backup2

$ fsck -vy /dev/mapper/backup2

$ montera /dev/mapper/backup2 /backu2

Ändra lösenordsfras luks

Linux-diskkryptering utförs med en specifik lösenfras, men du kan ändra den. Ännu bättre, du kan skapa upp till åtta olika lösenfraser. För att ändra, kör följande kommandon. Låt oss först säkerhetskopiera LUKS-rubrikerna:

cryptsetup luksDump /dev/sda6

Skapa sedan en ny nyckel:

cryptsetup luksAddKey /dev/sda6

Ange valfri lösenfras:

Ange ny lösenordsfras för nyckelplats:
Verifiera lösenordsfras:

Och radera den gamla:

cryptsetup luksRemoveKey /dev/sda6

Nu måste du ange det gamla lösenordet.

Slutsatser

Det är allt, nu vet du hur man krypterar en partition i Linux, och du förstår också hur det hela fungerar. Dessutom öppnar diskkryptering i Linux med LUKS-algoritmen stora möjligheter för fullständig kryptering av det installerade systemet.

Fördelar:

  • LUKS krypterar hela blockenheten och är därför mycket väl lämpad för att skydda innehållet i bärbara enheter som t.ex. Mobiltelefoner, flyttbara media eller hårddiskar bärbara datorer.
  • Du kan använda NAS på servrar för att skydda dina säkerhetskopior
  • Intel- och AMD-processorer med AES-NI (Advanced Encryption Standard) har en uppsättning kommandon som kan påskynda den dm-crypt-baserade krypteringsprocessen i Linux-kärnan sedan 2.6.32.
  • Fungerar även med swap-partitionen, så att din bärbara dator kan använda viloläge eller viloläge helt säkert.