Cara menggunakan fail sebagai kunci peranti luks

Cara menggunakan fail sebagai kunci peranti luks

LUKS adalah akronim Persediaan Utama Unified Linux: ia adalah pelaksanaan penyulitan yang paling banyak digunakan pada sistem Linux dan boleh dikonfigurasikan sebagai alternatif kepada persediaan biasa DM-Crypt. Berbanding dengan yang terakhir ia menyediakan beberapa ciri tambahan seperti hashing dan salting kata laluan dan keupayaan untuk menyimpan kata laluan berganda di header LUKS yang disebut. Dalam tutorial ini saya akan menganggap pembaca mempunyai kebiasaan tertentu dengan luks; Sekiranya anda ingin mengetahui lebih lanjut mengenai subjek ini, anda boleh menyemak panduan asas kami mengenai menyulitkan partisi Linux dengan Luks. Cara yang paling biasa untuk melindungi peranti LUKS adalah dengan menggunakan frasa laluan, namun ia juga mungkin menggunakan fail sebagai kunci; Dalam tutorial ini kita akan melihat bagaimana untuk melakukan ini. Mari pergi!

Dalam tutorial ini anda akan belajar:

  • Cara membuat fail dengan data rawak untuk digunakan sebagai kunci peranti luks
  • Cara Menambah Kunci ke Peranti LUKS
  • Cara menyahsulit peranti Luks secara automatik di boot menggunakan fail sebagai kunci
Cara menggunakan fail sebagai kunci peranti luks

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Mana -mana taburan Linux
Perisian Cryptsetup
Yang lain Kebenaran akar untuk mengakses peranti blok yang disulitkan
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa

Membuat bekas Luks



Demi tutorial ini, kami akan membuat bekas luks pada fail yang diisi dengan sifar yang kami akan menghasilkan menggunakan DD. Untuk membuat fail yang boleh kita jalankan:

$ sudo dd if =/dev/sifar =/luks-container.IMG BS = kiraan 1m = 300 

Dalam contoh di atas kami menggunakan /dev/sifar fail sebagai DD sumber input arahan (/dev/sifar adalah fail "istimewa": setiap kali kita membaca daripadanya, ia mengembalikan 0s) dan /LUKS-CONTAINER.img sebagai destinasi dan hujah DD dari Operand. Kami mengarahkan DD untuk membaca dan menulis 300 blok saiz 1mib menggunakan masing -masing BS dan hitung Operasi. Untuk menggunakan fail sebagai bekas luks, kita mesti menyediakannya menggunakannya Cryptsetup; kita boleh lari:

$ sudo cryptsetup luksformat --Type = luks1 --hash = sha512 --key-size = 512 --cipher = aes-xts-plain64 /luks-container.img 

The luksformat Sub-command of CryptSetup digunakan untuk memulakan bekas Luks dan tetapkan frasa awal. Sebaik sahaja kita menjalankan arahan di atas, akan diberi amaran bahawa operasi itu merosakkan, kerana ia akan menimpa semua data yang ada. Kami akan diminta untuk mengesahkan bahawa kami mahu melaksanakan operasi; kami menulis Ya (huruf besar) dan tekan Enter untuk mengesahkan:

Amaran! ======== Ini akan menimpa data /Luks-Container.IMG tidak boleh ditarik balik. Adakah anda pasti? (Taipkan 'ya' dalam huruf besar): Ya 

Pada ketika ini kami akan diminta untuk menyediakan dan mengesahkan frasa laluan yang akan digunakan sebagai yang pertama dari lapan kunci peranti yang mungkin:

Masukkan Frasa Laluan untuk /Luks-Container.IMG: Sahkan frasa laluan: 


Bekas Luks kami kini sudah siap. Kita boleh menggunakan luksdump Subcommand of Cryptsetup untuk membuang kepala maklumat:

$ sudo cryptsetup luksdump /luks-container.maklumat pengepala img luks untuk /luks-container.Versi IMG: 1 Cipher Nama: AES Cipher Mod: XTS-Plain64 Hash Spec: Sha512 Payload Offset: 4096 MK BIT Garam: F1 03 65 E2 F1 D7 4E 77 99 48 E8 57 75 65 DD 73 A3 EB A4 24 BE 36 9E 84 F7 84 C5 D3 94 2E D8 52 Mk: 79054 UUID: Slot 0: Diaktifkan lelaran: 1108430 Garam: 69 99 95 88 6E 2F E8 B9 D8 9C 91 36 B6 A2 55 C1 35 27 C7 DA 5D 9A 9E F9 8C EC 70 68 DB 41 53 4B Bahan Kunci Offset: 8 Slot Kunci 1: Slot Kunci Dilumpuhkan 2: Slot Kunci Dilumpuhkan 3: Slot Kunci Dilumpuhkan 4: Slot Kunci Dilumpuhkan 5: Slot Kunci Dilumpuhkan 6: Slot Kunci Dilumpuhkan 7: Dilumpuhkan 

Dalam output di atas kita dapat melihat pelbagai maklumat dilaporkan: Nama Cipher dan Mod cipher digunakan untuk peranti, sebagai contoh. Apa yang benar -benar menarik minat kita dalam kes ini, bagaimanapun, adalah Slot utama seksyen. Seperti yang anda lihat, dalam kes ini hanya kunci pertama yang digunakan: ia menyimpan frasa laluan yang kami berikan ketika kami memformat peranti. Dalam kes ini, terdapat sejumlah 8 slot; 7 tersedia untuk menyimpan kunci tambahan. Kami akan menggunakan salah satu daripada mereka untuk menyimpan fail yang akan kami gunakan untuk membuka kunci peranti LUKS.

Membuat fail data rawak untuk digunakan sebagai kunci

Sebarang fail sedia ada boleh digunakan sebagai kunci peranti Luks, namun ia lebih selamat untuk membuat fail khusus untuk tujuan itu, daripada data rawak. Untuk membuat fail, sekali lagi, kami akan menggunakan yang dihormati DD perintah, kali ini menggunakan /dev/urandom sebagai sumber data:

$ sudo dd if =/dev/urandom =/container-key bs = 512 count = 8 8+0 rekod dalam 8+0 rekod keluar 4096 bait (4.1 kb, 4.0 kib) disalin, 0.000631541 s, 6.5 mb/s 


The /dev/urandom fail berfungsi sama seperti /dev/sifar Tetapi ia mengembalikan data rawak setiap kali ia dibaca. Kali ini kita membaca 8 blok 512 bait, membuat fail "diisi" dengan 4096 bait data rawak.

Menambah fail utama ke peranti luks

Sebaik sahaja fail dibuat, kami boleh menambahkannya ke tajuk Luks, dan menggunakannya sebagai kunci. The Cryptsetup sub-komandan yang membolehkan kita melaksanakan tugas ini adalah luksaddkey.

Hujah pertama yang diperlukan ialah peranti LUKS yang kunci harus digunakan; yang kedua, pilihan, adalah jalan a fail utama untuk digunakan sebagai kunci. Sekiranya ditinggalkan pengguna diminta untuk menyediakan frasa laluan. Antara pilihan yang diterima oleh arahan, ada --Kunci-slot: dengan itu, kita dapat menentukan slot utama yang harus digunakan untuk menyimpan kunci. Dalam kes ini kita akan menghilangkan pilihan, jadi slot pertama yang tersedia akan digunakan (dalam kes ini nombor slot 1).

Untuk menambah fail sebagai kunci LUKS, kami menjalankan:

$ sudo cryptsetup luksaddkey /luks-container.IMG /Container-Key 

Kami akan diminta untuk menyediakan satu frasa laluan sedia ada untuk bekas; Setelah kita melakukannya, kunci baru akan ditambah. Selepas arahan di atas berjaya dilaksanakan, jika kita menjalankan luksdump Sekali lagi, kita dapat melihat slot baru kini digunakan:

[...] slot utama 0: INABLE ITERASI: 1108430 SALT: 69 99 95 88 6E 2F E8 B9 D8 9C 91 36 B6 A2 55 C1 35 27 C7 DA 5D 9E F9 8C EC 70 68 DB 41 53 4B Jalur AF: 4000 Slot Utama 1: Diaktifkan Iterasi: 921420 Garam: 62 54 F1 61 C4 D3 8D 87 A6 45 3E F4 E8 66 B3 95 E0 5d 5d 78 18 6A E3 F0 AE 43 6d E2 24 14 BC 97 Bahan Bahan Kunci: 512 Jalur AF: 4000 Slot Utama 2: Slot Kunci Kurang Upaya 3: Slot Kunci Kurang Upaya 4: Slot Kunci Kurang Upaya 5: Slot Utama Kurang Upaya 6: Slot Kunci Kurang Upaya 7: Dilumpuhkan [...] 

Membuka bekas Luks

Untuk mengesahkan bahawa kunci berfungsi, kini kita boleh cuba membuka bekas Luks menggunakannya. Untuk tujuan ini kita menggunakan luksopen Sub-Komando CryptSetup: Ia memerlukan dua hujah wajib:

  1. Peranti LUKS
  2. Nama yang hendak digunakan untuk memetakan peranti apabila dibuka.

Bagaimana kita dapat menentukan bahawa kita mahu menggunakan fail untuk membuka peranti? Mudah! Kami menggunakan
--fail utama pilihan dan lulus jalan ke fail utama sebagai hujahnya. Dalam kita
kes, untuk membuka peranti, arahan lengkap untuk dijalankan adalah:

$ sudo cryptsetup luksopen /luks-container.img luks-container-crypt --key-file =/container-Key 


Sekiranya semuanya berjalan seperti yang diharapkan, kita harus mencari entri untuk bekas yang dibuka di bawah /dev/mapper Direktori, dalam kes ini: /dev/mapper/luks-container-crypt.

Dengan cara ini, kita kini boleh merawat bekas seperti yang kita lakukan dengan mana -mana peranti blok: mungkin kita boleh membuat sistem fail di atasnya dan memasangnya:

sudo mkfs.ext4/dev/mapper/luks-container-crypt && sudo mount/dev/mapper/luks-container-crypt/media 

Buka bekas Luks secara automatik di Boot

Sebaik sahaja kita belajar bagaimana menggunakan fail sebagai kunci kontena luks, kita boleh membuat supaya peranti luks dibuka secara automatik di boot, tanpa interaksi pengguna. Ia dengan sendirinya bahawa ini adalah persediaan yang menimbulkan risiko keselamatan, jadi ia harus digunakan dengan teliti! Sekurang -kurangnya di tempat yang tidak selamat, fail yang digunakan untuk membuka kunci peranti hanya boleh diakses oleh pengguna root, dan harus disimpan sendiri pada sistem fail yang disulitkan, jika tidak, penyulitan menjadi tidak berguna (bersamaan dengan menggunakan kunci lemak besar untuk melindungi a pintu tetapi meninggalkan kunci di mana ia dapat dicapai oleh sesiapa sahaja).

Untuk membuat supaya bekas luks dibuka secara automatik di boot, kita mesti menentukan maklumat yang diperlukan di dalamnya /etc/crypttab fail. Fail ini digunakan untuk menggambarkan peranti blok yang disulitkan yang disediakan semasa boot sistem. Sintaks yang akan digunakan dalam fail agak mudah difahami; Dalam setiap baris yang kita tambahkan, kita perlu menentukan, mengikut urutan:

  1. Nama yang akan digunakan untuk pemetaan peranti (dalam contoh sebelumnya yang kami gunakan LUKS-CONTAINER-CRYPT)
  2. Peranti yang menganjurkan bekas luks yang mesti dibuka
  3. Kata laluan peranti (pilihan)
  4. Pilihan untuk digunakan (pilihan)

Dalam kes ini kita akan memasuki baris ini:

LUKS-CONTAINER-CRYPT /LUKS-CONTAINER.IMG /Container-Key Luks 

Pada boot seterusnya, peranti akan dibuka secara automatik!

Kesimpulan

Dalam tutorial ini kita belajar bagaimana kita boleh menggunakan fail sebagai kunci untuk membuka kunci bekas luks. Walaupun sebarang fail boleh digunakan untuk tujuan itu, kami melihat cara menggunakan DD untuk membuat fail data rawak, dan kami melihat bagaimana untuk menambahkannya ke salah satu daripada 8 slot header LUKS yang ada menggunakan luksaddkey perintah. Akhir /etc/crypttab fail, dan kita melihat mengapa ini boleh mewakili kemungkinan risiko keselamatan.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Cara kata laluan hash di linux
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Pembaca PDF Terbaik untuk Linux
  • Cara Menggunakan Luks Dengan Pengepala Terpisah
  • Bolehkah linux mendapat virus? Meneroka kelemahan Linux ..
  • Penyulitan cakera penuh dengan veracrypt di Ubuntu linux
  • Muat turun linux
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..