LUKS加密卷應用技術簡介

天翼雲開發者社群發表於2023-03-23

本文分享自天翼雲開發者社群 @《LUKS加密卷應用技術簡介》,作者: CD

連結:

https://www.ctyun.cn/developer/article/357322666623045?track=|cp:cz_bk|tgdy:wenzhang|ttjh:bokeshequ|key:bw305|pf:PC  

一、 LUKS加密簡述

    LUKS(Linux Unified Key Setup)是Linux系統下常用的磁碟加密技術之一(是一種加密規範,而非一種加密演算法),具有以下特點:支援多密碼對同一個裝置的訪問;加密金鑰不依賴密碼;可以改變密碼而無需重新加密資料;採用一種資料分割技術來儲存加密金鑰,保證金鑰的安全性。

    LUKS允許使用者在一系列對稱加密演算法(指加密和解密使用相同金鑰的加密演算法)中進行選擇,主要包括:AES演算法、Anubis演算法、Blowfish演算法、Twofish演算法、Serpent演算法、Cast5演算法及Cast6演算法。此外還需選擇加密模式(如XTS)以及加密模式的初始化向量模式(如Plain64)。最常見的組合即當前線上所用的aes-xts-plain64。

    LUKS需區分兩個概念,一個是密碼,另一個是加密金鑰。密碼用於LUKS卷的授權訪問,而加密金鑰用於加密演算法實現資料的加解密。在LUKS所定義的術語中,加密金鑰被稱為主金鑰(Master Key),在LUKS加密卷初始化階段,隨機生成一組向量作為主金鑰, 長度一般為16或32位元組(128或256位)。密碼由使用者指定,長度不限(最大支援512位),一個LUKS加密卷可以允許設定8個密碼。

    LUKS卷所使用的的加密演算法/模式以及主金鑰都記錄在卷的頭部資訊中,其中主金鑰以加密方式儲存,且需透過密碼計算得到。

 

    使用者掛載使用時只需正確填寫密碼即可,系統將根據密碼從卷的頭部資訊中解析得到加密演算法/模式以及解密得到主金鑰,從而對捲進行對稱加/解密訪問。

二、 LUKS加密應用

    在雲端計算應用場景中,LUKS加密卷一般在宿主機或者Hypervisor層進行解密,若LUKS加密卷內已建立有檔案系統,使用者在虛擬機器內無需額外操作即可直接掛載使用,進行目錄/檔案的讀寫訪問。一般情況下,使用者並不感知LUKS加密卷密碼,密碼由雲端計算管理平臺生成並管理。

 

    若LUKS加密卷未在宿主機或Hypervisor層進行解密(對於Qemu等虛擬化Hypervisor,假如無法正確解密,將直接報錯無法啟動),使用者將無法直接將其掛載使用,掛載將提示以下報錯:

# mount /dev/vdb /mnt/luks

mount: unknown filesystem type 'crypto_LUKS'

    在使用者自行建立和管理加密卷的場景下(一般非雲端計算應用場景),若使用者知曉LUKS加密卷密碼,此時,使用cryptsetup luksOpen命令,互動式輸入LUKS卷的授權訪問密碼,後續即可正常掛載使用。

    對於天翼雲電腦,可以選擇在建立資料盤時將其設定為加密盤。每個加密盤均設定獨立的密碼,而密碼需要有相應的租戶許可權才能獲取。以上保證即使儲存系統受到攻擊,使用者資料也無法被竊取。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2941188/,如需轉載,請註明出處,否則將追究法律責任。

相關文章