歡迎光臨
每天分享高質量文章

使用 LUKS 加密你的磁碟

LUKS (Linux Unified Key Setup)是 Linux 硬碟加密的標準。 透過提供標準的磁碟格式,它不僅可以促進發行版之間的相容性,還可以提供對多個使用者密碼的安全管理。
— Locez


致謝
轉載自 | http://locez.com/linux/cryptography/encrypt-your-disk/
 作者 | Locez

資料的安全,保密性在現在的生活中顯得越來越重要。隨著數字化的時代的來臨,越來越多的資料被數字化,特別是更多有關於我們隱私的資料在不斷生成,甚至還有我們需要離線儲存的金鑰等。而且通常我們使用磁碟,USB 快閃記憶體,SD 卡等儲存介質進行儲存,即便我們已經離線儲存,仍然不能保證該儲存介質不會丟失,如果丟失那麼對於我們來說有可能是災難性的事件。因此對這些離線儲存的重要資料,再次進行進行加密是非常有必要的,本文將告訴你如何加密你的移動儲存介質。

在此之前先介紹一下 LUKS:

LUKS (Linux Unified Key Setup)是 Linux 硬碟加密的標準。 透過提供標準的磁碟格式,它不僅可以促進發行版之間的相容性,還可以提供對多個使用者密碼的安全管理。 與現有解決方案相比,LUKS 將所有必要的設定資訊儲存在分割槽資訊首部中,使使用者能夠無縫傳輸或遷移其資料。

1. 環境

◈ OS: Gentoo
◈ 核心:4.9.95
◈ 工具:cryptsetup

2. 內核配置(可選)

通常來說,大部分發行版的核心都已經配置了相關的加密部分,因此非 gentoo 使用者可以跳過此部分。

配置 device mapper 和 crypt target:

  1. [*] Enable loadable module support

  2. Device Drivers --->

  3.    [*] Multiple devices driver support (RAID and LVM) --->

  4.         Device mapper support

  5.           Crypt target support

配置加密 API:

  1. [*] Cryptographic API --->

  2.     XTS support

  3.     SHA224 and SHA256 digest algorithm

  4.     AES cipher algorithms

  5.     AES cipher algorithms (x86_64)

  6.     User-space interface for hash algorithms

  7.     User-space interface for symmetric key cipher algorithms

編譯新核心並配置應用,然後重啟:

  1. # make -j9 && make modules_install && make install

3. 安裝軟體

通常的發行版已經預裝了該軟體包,可以直接使用,下麵是 Gentoo 的安裝方法

  1. # emerge --ask sys-fs/cryptsetup

4. 建立加密分割槽

註意,該操作會清空你選擇分割槽或裝置上的所有資料,請謹慎操作,輸入大寫的 YES 確認

  1. # cryptsetup -s 512 luksFormat /dev/sdd

  2. WARNING!

  3. ========

  4. This will overwrite data on /dev/sdd irrevocably.

  5. Are you sure? (Type uppercase yes): YES

  6. Enter passphrase:

  7. Verify passphrase:

5. 利用金鑰檔案加密分割槽

除了密碼之外,還可以選擇使用金鑰檔案解密你的硬碟,也就是相當於一個金鑰,當然可以也可以只使用金鑰檔案或者同時使用密碼與金鑰檔案。

5.1 生成隨機金鑰檔案

  1. # dd if=/dev/urandom of=/root/enc.key bs=1 count=4096

5.2 新增金鑰檔案作為密碼之一

  1. # cryptsetup luksAddKey  /dev/sdd /root/enc.key

  2. Enter any existing passphrase:

6 移除解密密碼

移除普通密碼:

  1. # cryptsetup luksRemoveKey /dev/sdd

  2. Enter LUKS passphrase to be deleted: ...

移除 key file 密碼:

  1. # cryptsetup luksRemoveKey -d /root/enc.key /dev/sdd

註意:千萬不要將所有密碼移除,至少需要留有一個密碼訪問裝置,移除操作不可撤銷

7. 解密與掛載

7.1 密碼解密

  1. # cryptsetup luksOpen /dev/sdd myusb

  2. Enter passphrase for /dev/sdd:

7.2 key file 解密

  1. # cryptsetup luksOpen -d /root/enc.key /dev/sdd myusb

7.3 建立檔案系統

在掛載使用之前,我們仍然需要對裝置建立檔案系統才可以使用,可以選擇任何你喜歡的檔案系統,例如 btrfsext4vfatntfs 等

  1. # mkfs.ext4 /dev/mapper/myusb

  2. mke2fs 1.43.6 (29-Aug-2017)

  3. Creating filesystem with 488448 4k blocks and 122160 inodes

  4. Filesystem UUID: 995e172a-2bc6-432c-a60f-2d4d7093e748

  5. Superblock backups stored on blocks:

  6.    32768, 98304, 163840, 229376, 294912

  7. Allocating group tables: done

  8. Writing inode tables: done

  9. Creating journal (8192 blocks): done

  10. Writing superblocks and filesystem accounting information: done

7.4 掛載

現在可以像正常分割槽一樣掛載我們的加密分割槽裝置了

  1. # mount /dev/mapper/myusb /mnt/

  2. # df -h

  3. /dev/mapper/myusb  1.9G  5.7M  1.7G   1% /mnt

7.5 解除安裝掛載點並關閉加密分割槽

  1. # umount /mnt

  2. # cryptsetup luksClose myusb

8. 總結

在完成整個步驟以後,您現在需要做的就是妥善保管您的加密儲存,可採用同樣的方式加密多個裝置進行備份,因為誰也不能保證這移動裝置會不會在什麼時候丟掉。

贊(0)

分享創造快樂

© 2024 知識星球   網站地圖