使用 LUKS 加密你的磁碟

使用 LUKS 加密你的磁碟

來自專欄 Linux

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

在此之前先介紹一下 LUKS:

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

1. 環境

  • OS: Gentoo
  • 內核:4.9.95
  • 工具:cryptsetup

2. 內核配置(可選)

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

配置 device mapper 和 crypt target:

[*] Enable loadable module supportDevice Drivers ---> [*] Multiple devices driver support (RAID and LVM) ---> <*> Device mapper support <*> Crypt target support

配置加密 API:

[*] Cryptographic API ---> <*> XTS support <*> SHA224 and SHA256 digest algorithm <*> AES cipher algorithms <*> AES cipher algorithms (x86_64) <*> User-space interface for hash algorithms <*> User-space interface for symmetric key cipher algorithms

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

# make -j9 && make modules_install && make install

3. 安裝軟體

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

# emerge --ask sys-fs/cryptsetup

4. 創建加密分區

注意,該操作會清空你選擇分區或設備上的所有數據,請謹慎操作,輸入大寫的 YES 確認

# cryptsetup -s 512 luksFormat /dev/sddWARNING!========This will overwrite data on /dev/sdd irrevocably.Are you sure? (Type uppercase yes): YESEnter passphrase: Verify passphrase:

5. 利用密鑰文件加密分區

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

5.1 生成隨機密鑰文件

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

5.2 添加密鑰文件作為密碼之一

# cryptsetup luksAddKey /dev/sdd /root/enc.keyEnter any existing passphrase:

6 移除解密密碼

移除普通密碼:

# cryptsetup luksRemoveKey /dev/sddEnter LUKS passphrase to be deleted: ...

移除 key file 密碼:

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

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

7. 解密與掛載

7.1 密碼解密

# cryptsetup luksOpen /dev/sdd myusbEnter passphrase for /dev/sdd:

7.2 key file 解密

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

7.3 創建文件系統

在掛載使用之前,我們仍然需要對設備創建文件系統才可以使用,可以選擇任何你喜歡的文件系統,例如 btrfsext4vfatntfs

# mkfs.ext4 /dev/mapper/myusbmke2fs 1.43.6 (29-Aug-2017)Creating filesystem with 488448 4k blocks and 122160 inodesFilesystem UUID: 995e172a-2bc6-432c-a60f-2d4d7093e748Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Allocating group tables: doneWriting inode tables: doneCreating journal (8192 blocks): doneWriting superblocks and filesystem accounting information: done

7.4 掛載

現在可以像正常分區一樣掛載我們的加密分區設備了

# mount /dev/mapper/myusb /mnt/# df -h/dev/mapper/myusb 1.9G 5.7M 1.7G 1% /mnt

7.5 卸載掛載點並關閉加密分區

# umount /mnt# cryptsetup luksClose myusb

8. 總結

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

推薦閱讀:

《自然》封面介紹中國學者全球首創的超鈉鎂合金;鞋帶為何老散開? | 每周科技播報
他吃了8年牢飯,靠賣塑料袋發家,如今是馬雲和雷軍背後的男人
有沒有好用的電腦桌面便簽軟體?
日本的機器人水平是世界一流,為什麼在機器學習相關領域遠不如國內呢?
華為的麒麟 950 真的有這麼厲害嗎?

TAG:硬碟 | 計算機 | 科技 |