Idag har det blivit farligare än någonsin att lagra viktig data i det klara. Och inte ens så mycket på grund av statlig övervakning (om de vill hittar de 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 artikeln kommer att beskriva exakt kryptografiska verktyg.
Till skillnad från vissa andra operativsystem har Linux många verktyg för kryptografiskt skydd av information – från kryptering av e-postkorrespondens till kryptering av filer och blockenheter. Vi är intresserade av kryptering på nivå med filsystem, filer och blockenheter. Till att börja med är det värt att förstå vad skillnaden är. Kryptering på filsystemnivå involverar ett lager mellan de viktigaste filsystem(såvida inte själva filsystemet stöder kryptering) och användaren.
Fördel av denna typ kryptering - att nycklarna för alla användare är olika. 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 jämnar ut fördelen. Och en sak till - även om namnkryptering är aktiverad kommer tidsstämplarna att förbli desamma. Kryptering av blockenheter sker på en lägre nivå, under filsystemet. Samtidigt vet filsystemet självt förstås inte att det ligger 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 startar/monterar. Den andra nackdelen är att om en angripare under körning får tillgång till filer på krypto-
teiner, allt - skriv bortkastat. Detta är precis vad som skyddar mot offlineattacker. Dessutom, i de allra flesta fall av att spara en kryptocontainer till molnet, måste du ladda upp den helt igen.
Artikeln kommer att beskriva konfigurationen av följande kryptoskyddsmetoder:
dm-krypt/LUKS- skapande av en kryptocontainer med hjälp av device-mapper och CryptoAPI-kärna;
eCryptfs- Kryptering på filsystemsnivå;
EncFS- liknande ovan, men kräver inte laddning av kärnmoduler.
DM-CRYPT/LUKS
Det finns två typer av dm-crypt-inställningar - vanlig och LUKS. Skillnaden är att vid användning av LUKS finns det metadata i början av kryptovolymen som gör att du kan använda flera nycklar och ändra dem. Samtidigt är förekomsten av en sådan titel i vissa fall i sig kompromissande – dock i de flesta liknande fall kommer att vara ett kompromissande område med hög grad av entropi. Ställa in vanlig dm-crypt med en nyckelfil och en lösenordsfras Låt oss se hur man ställer in en kombination av en vanlig dm-crypt-volym krypterad med en nyckelfil i en LUKS-behållare. Till att börja med är det värt att bestämma hur exakt 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. Först av allt, låt oss skapa en LUKS-behållare för att lagra nyckelfilen för att kunna använda den här filen tillsammans med lösenfrasen. 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 containerfilen, det andra skapar denna container, det tredje ansluter, det fjärde genererar nyckelinformation. Det är värt att notera att alternativet --align-payload=1 behövs så att storleken på LUKS-metadata inte är 4096 512-byte block, utan bara 2056. Således återstår 512 byte för den faktiska nyckelinformationen.
Sedan fortsätter vi till skapandet av en kryptotom. Vid denna tidpunkt kan du valfritt fylla disken med pseudoslumpdata för att göra kryptoanalys svårare, om någon. Då kan du redan skapa en kryptotom. Kommandot för detta är följande (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, upprepa samma kommando på andra enheter som kräver kryptering. Sedan kommer vi att skapa LVM på kryptotomer och FS på det:
Låt oss skapa filen /etc/initramfs-tools/hooks/cryptokeys med följande innehåll (servicedelen av skriptet är utelämnad):
Och filen /etc/initramfs-tools/scripts/local-top/cryptokeys (servicedelen igen
eller utelämnad):
# <...> modprobe -b dm_crypt medan! (/sbin/cryptsetup luksÖppna /etc/crypto/key .luks kryptonyckel /dev/disk/by-id/ata-VBOX_HARDDISK_VB05eadebe-f25e8d59 crypto0 && /sbin/cryptsetup plainOpen -- nyckel - file=/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 en initrd:
# 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. I fallet med att använda vanlig dm-crypt finns det en annan möjlighet - ett gemensamt bottenskikt, 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å de avancerade funktionerna för att använda LUKS-behållare. Dessa inkluderar att byta nycklar. Detta är nödvändigt när du kompromissar eller skapar en ny nyckelpolicy. Det första steget för att göra detta är att säkerhetskopiera behållarhuvudet. Jag faller
normalt, efter att ha bytt nyckel, kan den förstöras. Vi gör det, naturligtvis, på en okrypterad partition:
Lägg slutligen till en ny nyckel till systemet:
Överväg 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 det bör du se till att i given fil det finns inga
radslutstecken):
ENCFS
Låt oss se hur du konfigurerar EncFS för att automatiskt monteras vid inloggning. Låt oss först installera de nödvändiga paketen:
När du ställer in i expertläge kommer en rad frågor att ställas: chiffertyp (endast AES och Blowfish är tillgängliga), nyckelstorlek, blockstorlek, hur man krypterar filnamn - blockchiffer (som helt döljer filnamnet, inklusive längden ), streaming (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 ... Vid i slutet kommer ett lösenord att begäras, det måste matcha det som användes för att ange, 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-inloggning kan den privata katalogen användas som lagring av personuppgifter. Det är dock värt att notera att granskningen avslöjade några (ganska allvarliga) säkerhetsproblem, på grund av vilka detta system Det är starkt avskräckt att använda för att lagra riktigt viktig data.
ECRYPTFS
eCryptFS är känt för att användas av Ubuntu som standardverktyg för hemkatalogskydd. Låt oss se hur det fungerar - låt oss skapa en krypterad katalog manuellt. Installera paket:
Skapande av eCryptFS
Och montera FS (under den första monteringen skapas all nödvändig metadata):
$ sudo mount -t ecryptfs /home/rom/ . hemlighet/hem/rom/hemlighet |
En lösenfras kommer att begäras (endast en gång, återinträde är inte implementerat, vilket inte ser särskilt bra ut bra beslut, med tanke på att den borde vara lång), kommer den att fråga efter typen av chiffer (AES, Blowfish, 3DES, Twofish, CAST6 och CAST5), nyckelstorlek, fråga om man vill tillåta eller neka okrypterade filer i katalogen med krypterade, om man ska kryptera filnamn ... och till sist 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 ett korrekt lösenord från ett felaktigt.
Kryptering av användarens hemkatalog
Under den första körningen 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 eller skriva ut lösenfrasen som genereras för kryptering och skyddas i sin tur av användarens lösenord. Detta är nödvändigt för återhämtning i händelse av en nödsituation.
Låt oss se hur man återställer det. Låt oss anta att lösenfrasen inte är inspelad och återställningen kommer från en live-CD. Det antas att FS är monterad. Gå till katalogen home/.ecryptfs/rom/.ecryptfs och skriv kommandot:
dm-verifiera
Modulen dm-verify är utformad för att kontrollera integriteten hos blockenheter. Verifiering utförs med hjälp av ett hashträd, där "löv" är hashsummorna av block och "grenar" är hashsummorna av uppsättningar av "löv". För att verifiera en blockenhet (vare sig det är en partition eller en disk), räcker det alltså att kontrollera endast en kontrollsumma.
Denna mekanism (tillsammans med en digital signatur) används i vissa Android-enheter för att skydda mot modifiering systempartitioner, såväl som i Google Chromium OS.
SLUTSATS
Linux innehåller verkligen en hel del verktyg för kryptografiskt skydd av information. Av de tre beskrivna sätten finns åtminstone ett i alla moderna Linux-distributioner. Men vad ska man välja?
dm-krypt/LUKS 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 klassificerade. I detta fall detta beslut mer än effektivt, särskilt med tanke på att du kan kryptera i en kaskad av godtycklig häckning 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 till molnet. Det ger ganska stark kryptering (även om standardvarianten på 128 bitar har potential att sänka säkerheten med två bitar) och är transparent för slutanvändaren.
EncFS men - en gammal man för ungefär ett decennium 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 verktyg bör du alltid komma ihåg att skyddet måste vara heltäckande.
Kom ihåg att författaren till det här arbetet talar om metoderna för att kryptera diskpartitioner som han själv använder.
Denna manual använder Linux dm-krypt (enhetsmapper) på kärnan 2.6 . Vi kommer att kryptera avsnittet /dev/sdc1, det kan vara vilken partition, disk, USB eller fil som helst som skapats lossetup. Här kommer vi att använda /dev/loop0, se . enhetsmappare använder en etikett för att identifiera ett avsnitt, i detta exempel sdc1, men det kan vara vilken annan sträng som helst.
: - Ryska
Aktiv sidutveckling slutförd
Om det finns något att tillägga, komplettera då avsnitten med ny information. Våra stavfel och fel i artikeln kan redigeras säkert, det finns ingen anledning att rapportera detta via e-post, vänligen observera styling denna sida och använd sektionsavskiljare (grå linjer av varierande tjocklek).
Många tror att du inte behöver kryptera din data. Men i vardagen stöter vi ofta på sådana situationer som "en flash-enhet gick förlorad" eller "en bärbar dator överlämnades för reparation" etc. Om dina data är krypterade behöver du inte oroa dig för det alls: ingen kommer att publicera det på Internet eller använda det på något annat sätt.
Installera nödvändiga komponenter:
# apt-get install cryptsetup/dev/sda2. Låt oss ange kommandot:
# cryptsetup skapa sda2_crypt /dev/sda2Detta kommando kommer att skapa en krypterad anslutning till vår disk. I katalog /dev/mapper en ny enhet kommer att visas med det namn vi begärde: /dev/mapper/sda2_crypt, åtkomst som vi använder krypterad diskåtkomst. I fallet med LUKS skulle namnet vara /dev/mapper/sda2_crypt
Om det redan fanns ett filsystem på disken och vi skulle vilja spara data på det, måste vi kryptera dem för efterföljande användning:
# dd if=/dev/sda2 av=/dev/mapper/sda2_cryptOm en ny disk skapas på en tom partition kan du formatera den:
# mkfs.ext3 /dev/mapper/sda2_cryptSenare kan du montera den här disken var som helst:
# montera /dev/mapper/sda2_crypt /path/to/mount/pointKontrollera dataintegriteten (som vanligt, bäst att använda i omonterat tillstånd):
# fsck.ext3 /dev/mapper/sda2_cryptOch till och med dekryptera tillbaka om vi inte vill använda kryptering längre:
# dd if=/dev/mapper/sda2_crypt of=/dev/sda2Ovanstående steg kan utföras enligt LUKS-standarden
Vi initierar avsnittet:
cryptsetup luksFormat /dev/sda2Vi ansluter till systemet:
cryptsetup luksOpen /dev/sda2 sda2_cryptFormatering:
mkfs.ext4 -v -L DATA /dev/mapper/sda2_cryptVi monterar:
montera /dev/mapper/sda2_crypt /mnt/dataAvsnittet kan inaktiveras manuellt om systemet
cryptsetup luksStäng sda2_cryptFilen används för detta ändamål. krypttab.
För vår disk, skriv följande rad i den:
nano /etc/crypttab # namnmappare enhetsnyckel params/options # Standardsyntax sda2_crypt /dev/sda2 ingen aes-cbc-plain:sha256 # och/eller LUKS standard sda2_crypt /dev/sda2 ingen luksStandard är att kryptera med ett lösenord som angetts av användaren. Således, varje gång du startar din dator kommer systemet att be dig varje gång om ett lösenord för att ansluta varje krypterad partition. Även om dessa avsnitt inte är registrerade i fstab.
Om vi vill montera manuellt, lägg till alternativet bil i fältet "Inställningar/Alternativ".
Montering av en krypterad partition manuellt enligt data från /etc/crypttab
cryptdisks_start msda2_cryptOch avstängning med förmonterad fs.
cryptdisks_stop sda2_cryptFör att automatiskt montera fs på den anslutna krypterade partitionen, lägg till en rad till /etc/fstab
/dev/mapper/sda2_crypt /mnt/data ext4 standardvärden 0 0LUKS-sektionen stöder 8 olika nycklar, som var och en passar i sin egen plats.
Se listan över använda nycklar
cryptsetup luksDump /dev/sda22 typer av nycklar kan användas i LUKS - nyckelfraser och filer.
Du kan lägga till ett nyckelord
cryptsetup luksAddKey /dev/sda2Kan Adda nyckelfil(2048 bitar) och ange åtkomsträttigheter till den.
dd if=/dev/urandom of=/root/ext2.key bs=512 count=4 cryptsetup luksAddKey /dev/sda2 /root/ext2.key chmod 400 /root/sda2.key cryptsetup -d /root/sda2.key luksÖppna /dev/sda2 sda2_cryptFör att ansluta vid start med nyckel, redigera /etc/crypttab
nano /etc/crypttab sda2_crypt /dev/sda2 /root/sda2.key luksDu kan ta bort en lösenfras eller nyckel från ett avsnitt
cryptsetup luksKillSlot /dev/sda2 1Ingen är säker från problem och ibland behöver du komma åt en krypterad partition från en nödsituation LiveCD-skiva.
Vi startar, ansluter partitionen till systemet och monterar fs:
cryptsetup luksOpen /dev/sda2 sda2_crypt mount -t ext4 /dev/mapper/sda2_crypt /mnt/backupEfter arbetet, avmontera fs och koppla bort den krypterade partitionen från systemet
umount /mnt/backup cryptsetup luksStäng sda2_cryptOm rotpartitionen är krypterad, kommer ett meddelande att visas vid avstängning
stoppa tidiga kryptodiskar... misslyckadesDetta är ett tekniskt fel. Vid avstängning demonteras alltid filsystemen först, och först därefter demonteras partitionen. Som ett resultat visar det sig att cryptsetup-verktyget som finns på den omonterade rotpartitionen inte längre är tillgängligt för lansering, vilket INIT berättar om. Utan kryckor kan detta problem inte lösas, eftersom. för detta måste du överväga alternativ med att överföra cryptsetup till en RAM-disk
En liknande situation uppstår när du använder en mjukvaru-RAID som innehåller en rotpartition. 8)
I denna hur krypteringsmetod som beskrivs AES256, andra metoder kan tillämpas på liknande sätt (ersätter namnet på metoden med den lämpliga). Vi behöver följande paket:
# apt-get install loop-aes-utils loop-aes-modules-`uname -r`Notera: om du använder en kärna för vilken de nödvändiga loop-aes-modulerna inte finns i förvaret, kan du installera modulerna med följande kommandon:
# apt-get install module-assistant loop-aes-source # modul-assistant a-i loop-aesPå inledande skede vi förbereder disken för att arbeta med den med kryptering.
Låt oss välja partitionen på disken (eller flashenheten) som vi vill kryptera, till exempel kommer det att bli det /dev/sda2. Låt oss ange kommandot:
# lossetup -e AES256 -T /dev/loop0 /dev/sda2Efter att ha utfört detta kommando kommer alla anrop till enheten /dev/loop0 kommer att krypteras och krypteras och omdirigeras till enheten /dev/sda2. Nu har vi både krypterade och okrypterade kanaler till lagringsenheten. Data krypteras med lösenordet du angav när du körde lossetup.
Nu kan vi till exempel formatera enheten:
# mkfs.ext3 /dev/loop0Vi kan montera den:
# mount /dev/loop0 /path/to/mountvi kan inaktivera kryptering:
# lostup -d /dev/loop0och viktigast av allt, vi kan kryptera partitionen utan dataförlust:
# dd om=/dev/sda2 av=/dev/loop0och även dekryptera om vi beslutar att kryptering inte är vår metod:
# dd if=/dev/loop0 av=/dev/sda2Tja, det bästa är att vi kan kontrollera filsystemets integritet:
# fsck.ext3 /dev/loop0Den här funktionen är inte tillgänglig i alla partitionskrypteringsmetoder.
Om du redan hade en sektionsinlägg /dev/sda2 i din /etc/fstab, då behöver du bara lägga till alternativ, och om inte, skriv något så här:
/dev/sda2 /path/to/mount ext3 loop,kryptering=AES256 0 0Nu när du laddar operativ system du kommer att bli tillfrågad om ett lösenord för att montera.
Om du inte vill att nedladdningsprocessen ska avbrytas av en lösenordsbegäran kan du lägga till alternativ bil,användare på rekord /etc/fstab:
/dev/sda2 /sökväg/till/montera ext3 loop,kryptering=AES256,noauto,användare 0 0Naturligtvis kan du montera manuellt (eller från ett skript):
# mount /dev/sda2 /path/to/mount -o loop,kryptering=AES256Ibland vill man kryptera flera sektioner med data samtidigt, men för att inte ange ett hav av lösenord för varje montera. Du har till exempel en flash-enhet som du bär hemifrån till jobbet, en bärbar hårddisk osv. Eller bara några partitioner/hårddiskar.
Låt oss säga att vi har en krypterad partition /dev/sda2, som vi monterar till katalogen varje gång vi startar /mnt1. Dök upp ny hårddisk /dev/sdb1 och vi vill att den ska monteras automatiskt i katalogen mnt2 vid montering av den första. Du kan självklart skapa gemensamt system på något liknande LVM, men du kan gå den enklare vägen:
föreskriva i fstab som följande rad:
/dev/sda2 /mnt1 ext3 noatime,exec,loop,kryptering=AES256 0 0Systemet, vid start, monterar punkterna i samma ordning som beskrivs i fstab, så om den första partitionen inte är monterad förblir nyckeln för att montera den andra partitionen otillgänglig och den andra partitionen kommer inte heller att monteras.
Lösenordet lagras som oformatterad text detta är verkligen inte särskilt vackert, men det lagras på en krypterad partition (som kan avmonteras). Du kan använda istället gpg-nyckel, detta kommer dock inte att tillföra mycket säkerhet (om de redan kan stjäla nyckeln kommer det inte att göra så stor skillnad vad denna nyckel kommer att vara), krypteringsalternativ med gpg-nyckel som beskrivs i man förlorar, här ska jag bara ge ett exempel på inspelning i fstab:
/dev/sda2 /mnt1 ext3 noatime,exec,loop,kryptering=AES256 0 0För mer information om krypteringsalgoritmer som stöds, se man förlorar, kan du även se en beskrivning av andra programalternativ lossetup.
Om du har problem med att installera AES-moduler, läs då dokumentationen som medföljer paketet loop-aes-källa.
När du installerar en rotpartition på en krypterad disk kan GRUB visa buggar i huvudmenyn. Detta händer eftersom standardteckensnittet /usr/share/grub/unicode.pf2 inte är tillgängligt. Kopiera teckensnittet
cp /usr/share/grub/unicode.pf2 /boot/grub/Ange inställningen
nano /etc/default/grub GRUB_FONT=/boot/grub/unicode.pf2Använder inställningen:
update-grubTrueCrypt underhålls inte längre, men dm-crypt och LUKS är ett bra alternativ med öppen källkod. källkod, som låter dig kryptera och använda krypterad data.
Datasäkerhet har blivit ett av de största problemen bland internetanvändare. Nyheter om datastöld från webbplatser har blivit mycket vanliga, men att skydda din data är inte bara webbplatsernas ansvar, det finns mycket som vi som slutanvändare kan göra för vår egen säkerhet. Till exempel är bara några exempel att använda starka lösenord, kryptera hårddiskarna som finns på våra datorer och använda säkra anslutningar. I synnerhet kryptering hårddiskär på ett bra sätt säkerhet - det kommer inte bara att skydda dig från trojaner som försöker stjäla dina data över nätverket, utan också från fysiska attacker.
I maj i år, utvecklingen av TrueCrypt-applikationen, känd verktyg programvara med öppen källkod för diskkryptering. Som många av er vet var det ett av de mycket pålitliga verktygen för att kryptera enheter. Det är tråkigt att se ett verktyg av den här kalibern försvinna, men sådan är storheten med open source-världen att det finns flera andra open source-verktyg som kan hjälpa dig att uppnå säkerhet med diskkryptering, som också har en hel del konfigurationsinställningar. Vi kommer att betrakta två av dem - dm-crypt och LUKS - som TrueCrypt-alternativ för Linux-plattformen. Låt oss börja med en snabb titt på dm-crypt och sedan LUKS.
Detta är grundläggande information om en enhet som använder LUKS, som anger vilken kryptering som används, krypteringsläget, hashalgoritmen och annan kryptografisk data.
Namnet på applikationen dm-crypt är en förkortning för device mapper-crypt (kryptera när man mappar en enhet). Som namnet antyder är den baserad på ett ramverk för enhetskartläggning. Linux-kärnor, designad för att mappa blockenheter till virtuella blockenheter på högre nivå. När du kartlägger enheter kan du använda flera kärnfunktioner, såsom dm-cache (skapar hybridvolymer), dm-verity (designad för att kontrollera integriteten hos block, är en del av Chrome OS) och även den mycket populära Docker. För kryptografiska ändamål använder dm-crypt Linux Kernel Crypto API-ramverket.
Så, för att sammanfatta, är dm-crypt-applikationen ett krypteringsundersystem på kärnnivå som erbjuder transparent diskkryptering: detta betyder att filerna är tillgängliga direkt efter att disken har monterats - det finns ingen synlig fördröjning för slutanvändaren. För att kryptera med dm-crypt kan du helt enkelt ange ett av de symmetriska chiffrarna, chifferläget, nyckeln (vilken storlek som helst), IV-genereringsläget och sedan skapa en ny blockenhet i /dev. Nu, när du skriver till den här enheten, kommer kryptering att ske, och när den läses kommer den att dekrypteras. Du kan montera ett filsystem på den här enheten som vanligt, eller så kan du använda dm-crypt-enheten för att skapa andra konstruktioner som en RAID- eller LVM-volym. Mappningstabellen för dm-crypt är inställd enligt följande:
Här är värdet för start-sektor vanligtvis 0, värdet på storlek är storleken på enheten i sektorer, och målnamnet är det namn du vill ge den krypterade enheten. Målmappningstabellen består av följande avsnitt:
Som vi såg i föregående steg kan dm-crypt-applikationen kryptera/dekryptera data på egen hand. Men det har några nackdelar - om du använder dm-crypt direkt kommer det inte att skapa metadata på disken, och detta kan vara ett stort problem om du vill säkerställa kompatibilitet mellan olika Linux-distributioner. Applikationen dm-crypt stöder inte heller användningen av flera nycklar, medan det i verkligheten är mycket viktigt att använda flera nycklar.
Det är av dessa skäl som metoden LUKS (Linux Unified Key Setup) föddes. LUKS är Linux-krypteringsstandarden. hårddiskar och standardisering möjliggör interoperabilitet mellan olika distributioner. Flera nycklar och lösenfraser stöds också. Som en del av denna standardisering läggs en LUKS-header till den krypterade datan, och denna header innehåller all information som behövs för konfigurering. När det finns en sådan rubrik med data kan användare enkelt byta till vilken annan distribution som helst. Projektet dm-crypt rekommenderar för närvarande att använda LUKS som det föredragna sättet att ställa in diskkryptering. Låt oss titta på hur man installerar verktyget cryptsetup och hur man använder det för att skapa LUKS-baserade volymer.
Funktionaliteten på kärnnivå som dm-crypt använder är redan tillgänglig i alla Linux-distributioner; vi behöver bara ett gränssnitt till dem. Vi kommer att använda verktyget cryptsetup, som låter dig skapa volymer med dm-crypt, LUKS-standarden och den gamla goda TrueCrypt-applikationen. För att installera cryptsetup på Debian/Ubuntu-distributioner kan du använda följande kommandon:
$ sudo apt-get uppdatering$ sudo apt-get install cryptsetup
Det första kommandot synkroniserar raketindexfiler med innehållet i deras förråd: det får information om senaste versionerna alla tillgängliga paket. Det andra kommandot kommer att ladda ner och installera cryptsetup-paketet på din dator. Om du använder RHEL/Fedora/CentOS-distributionen kan du använda kommandot yum för att installera verktyget cryptsetup.
$ yum installera cryptsetup-luks
Nu när cryptsetup-verktyget har installerats, måste vi skapa en målfil som kommer att hålla LUKS-behållaren. Även om det finns många sätt att skapa en sådan fil, måste ett antal villkor uppfyllas när du skapar den:
När du skapar en fil som uppfyller ovanstående villkor kan kommandot dd hjälpa oss, även om det kommer att fungera relativt långsamt. Använd den bara med den speciella enhetsfilen /dev/random som anges som indata och målfilen som ska anges som utdata. Ett exempelkommando ser ut så här:
$ dd if=/dev/random of=/home/nitish/basefile bs=1M count=128
Detta kommer att skapa en 128 MB fil som heter basefile i katalogen /home/nitish. Observera dock att det här kommandot kan ta lång tid att slutföra; i systemet som vår expert använde tog det en timme.
Efter att du har skapat målfilen måste du skapa en LUKS-sektion i den här filen. Det här avsnittet fungerar som basskiktet på vilket all datakryptering är uppbyggd. Dessutom innehåller rubriken i detta avsnitt (LUKS-huvudet) all information som krävs för kompatibilitet med andra enheter. För att skapa en LUKS-partition, använd kommandot cryptsetup:
$ cryptsetup -y luksFormat /home/nitish/basefile
Efter att du samtyckt till att data inuti basfilen kommer att raderas permanent, skriv in lösenfrasen och bekräfta den, kommer LUKS-partitionen att skapas. Du kan kontrollera detta med följande filkommando:
$filbasfil
Observera att frasen du anger här kommer att användas för att dekryptera data. Det är mycket viktigt att memorera det och lagra det på ett säkert ställe, för om du glömmer det kommer du nästan säkert att förlora all data på den krypterade partitionen.
LUKS-behållaren vi skapade i föregående steg är nu tillgänglig som en fil. I vårt exempel är detta /home/nitish/basefile. Verktyget cryptsetup låter dig öppna en LUKS-behållare som en oberoende enhet. För att göra detta, mappa först behållarfilen till enhetsnamnet och montera sedan enheten. Displaykommandot ser ut så här:
När du har angett lösenordsfras skapat i föregående steg kommer LUKS-behållaren att mappas till volym1. Vad som faktiskt händer är att filen öppnas som en lokal loopback-enhet, så att resten av systemet nu kan behandla filen som om den vore en riktig enhet.
LUKS-behållarfilen är nu tillgänglig på systemet som en vanlig enhet. Innan vi kan använda den för normala operationer måste vi formatera den och skapa ett filsystem på den. Du kan använda vilket filsystem som helst som stöds på ditt system. I mitt exempel använde vi ext4 eftersom det är det senaste filsystemet för Linux-system.
$ mkfs.ext4 -j /dev/mapper/volym1
När enheten väl har formaterats är nästa steg att montera den. Du måste först skapa en monteringspunkt, helst i /mnt (sunt förnuft).
$ mkdir /mnt/filer
Nu monterar vi:
För att krysskontrollera, använd kommandot df –h - du kommer att se enheten "/dev/mapper/volume1" i slutet av listan över monterade enheter. Det kan ses att LUKS-huvudet redan upptar en del utrymme i enheten.
Tack vare detta steg kan du nu använda en LUKS-enhet med ett ext4-filsystem. Använd bara den här fillagringsenheten - allt du skriver till den här enheten kommer att krypteras, och allt du läser från den kommer att dekrypteras och visas för dig.
Vi har följt flera steg för att uppnå detta resultat, och om du inte är så tydlig med hur det hela fungerar, kommer du troligen att bli förvirrad över vad som behöver göras endast en gång (krävs för installation), och det bör göras regelbundet när du använder kryptering. Låt oss överväga följande scenario: du slutförde alla steg ovan och stängde sedan av datorn. Nästa dag, när du startar din dator, kan du inte hitta den monterade enheten - vart tog den vägen? För att hantera allt detta måste du komma ihåg att efter att du har startat systemet måste du montera LUKS-behållaren och avmontera den innan du stoppar datorn.
För att komma åt LUKS-filen, varje gång du slår på din dator, följ dessa steg och stänger sedan filen på ett säkert sätt innan du stänger av din dator:
Öppna LUKS-filen (dvs. /home/nitish/basefile) och ange lösenordet. Kommandot ser ut så här:
$ cryptsetup luksOpen /home/nitish/basefile volume1
När filen är öppen, montera den (om den inte monteras automatiskt):
$ montera /dev/mapper/volume1 /mnt/filer
Nu kan du använda den monterade enheten som en vanlig disk och läsa från eller skriva data till den.
När du är klar, avmontera enheten så här:
$ umount /mnt/filer
Efter framgångsrik avmontering, stäng LUKS-filen:
$ cryptsetup luksStäng volym1
De flesta förluster av data som lagras i en LUKS-behållare beror på korruption av LUKS-huvudet eller nyckelplatserna. Förutom det faktum att LUKS-rubriker kan skadas även på grund av oavsiktlig överskrivning i huvudminnet, i verkliga förhållanden Det är också möjligt att hårddisken misslyckas helt. Det bästa sättet att skydda sig mot sådana problem är säkerhetskopiering. Låt oss se vilka säkerhetskopieringsalternativ som finns tillgängliga.
För att säkerhetskopiera LUKS-huvudfilen, ange parametern luksHeaderBackup i kommandot:
$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile
Eller, om du vill återställa en fil från en säkerhetskopia, ange parametern luksHeaderRestore i kommandot:
$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile
Du kan använda parametern isLuks för att söka efter en LUKS-huvudfil och verifiera att filen du har att göra med motsvarar en verklig LUKS-enhet.
$ sudo cryptsetup -v isLuks /home/nitish/basefile
Vi har redan sett hur man säkerhetskopierar LUKS header-filer, men att säkerhetskopiera en LUKS header skyddar inte riktigt mot ett totalt diskfel, så du måste säkerhetskopiera hela partitionen med följande cat-kommando:
$ cat /home/nitish/basefile > basefile.img
Det finns några andra inställningar som kan vara användbara när du använder dm-crypt LUKS-kryptering. Låt oss ta en titt på dem.
För att dumpa LUKS-huvudet har kommandot cryptsetup alternativet luksDump. Det låter dig ta en ögonblicksbild av LUKS-huvudfilen för enheten du använder. Ett exempelkommando ser ut så här:
$ cryptsetup luksDump /home/nitish/basefile
I början av den här artikeln nämnde vi att LUKS stöder flera nycklar. Låt oss se detta i aktion nu genom att lägga till en ny nyckelfack ( not per.: nyckelfack - nyckelfärdig plats):
$ cryptsetup luksAddKey --Key-slot 1 /home/nitish/basefile
Detta kommando lägger till en nyckel till nyckelfack nummer 1, men först efter att du har skrivit in det aktuella lösenordet (nyckeln som finns i nyckelfack 0). Det finns totalt åtta nyckelplatser, och du kan dekryptera data med vilken nyckel som helst. Om du dumpar rubriken efter att ha lagt till den andra nyckeln, kommer du att se att den andra nyckelplatsen är upptagen.
Du kan ta bort nyckelfack så här:
$ cryptsetup luksRemoveKey /home/nitish/basefile
Detta kommer att ta bort nyckelfacket med det högsta facknumret. Var noga med att inte radera alla platser, annars kommer din data att gå förlorad permanent.
Kryptering av hemkatalogen ger tillförlitligt skydd av data som lagras på en hårddisk eller andra media. Kryptering är särskilt relevant på bärbara datorer, datorer med fleråtkomst och i alla andra miljöer. Hemkatalogkryptering erbjuds när du installerar Linux Mint.
Den främsta haken in fullständig kryptering hemkatalogen är att du måste "flytta" katalogen med krypterad data utanför monteringspunkten.
Prestanda sjunker något, åtminstone inte ännu med SWAP. 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 är också krypterad om du väljer att kryptera din hemkatalog i installationsprogrammet, och viloläget slutar fungera.
Kryptera inte SWAP med en krypterad hemkatalog - potentiellt farligt, eftersom det kan finnas data från krypterade filer i klartext - hela poängen med krypteringen går förlorad. Från och med version 14 av Linux Mint är det under installationen möjligt att 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).
Linux Mint har ett inbyggt verktyg som heter "Lösenord och nycklar" eller Seahorse. Genom att använda dess funktioner kan användaren arbeta med alla nycklar, lösenord och certifikat som finns 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 front-end till GnuPG (ett gratis program för informationskryptering och skapande av digitala signaturer) och är designat för att hantera kryptering nycklar och lösenord. Kom för att ersätta GNOME-nyckelringen, 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 du tidigare behövde göra på kommandoraden och kombinera dem under ett enda gränssnitt:
hantera din säkerhet arbetsmiljö och OpenPGP och SSH-nycklar;
kryptera, expandera och verifiera filer och text;
lägg till och kontrollera 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;
TrueCrypt har ett ganska användarvänligt grafiskt gränssnitt, men tyvärr har utvecklarna integrerat med Nautilus filhanterare i koden.
Olika metoder kan användas för att kryptera data.
Först måste du skapa en så kallad container, som kommer att 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 också skapa en nyckelfil (valfritt) som kommer att användas för att kryptera information. Behållaren ä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 är det fullt möjligt att specificera en fil, till exempel /home/user/test/cryptofile, men i det här fallet kommer det att vara nödvändigt att specificera dess storlek, detta görs med -size= 5G-parametern före parametern -c. Detta exempel kommer att skapa en 5 GB kryptofil. Ibland accepterar TrueCrypt storleken endast 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`.
En redan gjord nyckelfil kommer att användas för kryptering.
När du skapar kommer du att bli ombedd att välja typ av behållare (normal / dold), filsystem (FAT, ext2 / 3/4 eller utan FS), i det här exemplet 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 genom att montera behållaren kan du arbeta med filerna i den som vanligt (öppna/redigera/stäng/skapa/ta bort), vilket är väldigt bekvämt.
En krypterad partition/fil har skapats. Om du nu behöver formatera dess interna filsystem (nedan kallat FS) till önskat, bör du göra följande.
Välj önskad partition med Truecrypt:
truecrypt -k /home/user/test/file /dev/sda9
Som standard kommer den skapade Truecrypt-enheten /dev/mapper/truecrypt0 att användas. Genom att komma åt den här enheten kan du ändra till exempel filsystemet i en krypterad behållare. I det här fallet måste det göras.
sudo mkfs.ext4 -v /dev/mapper/truecrypt0
Genom detta gjordes ext4 FS inuti denna krypterade behållare.
Dessutom, eftersom den här behållaren redan är "ansluten" till /dev/mapper/truecrypt0-enheten, återstår det att helt enkelt 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, kan ingen läsa den dolda informationen.