Encryption

執行 luksDump 時顯示的 LUKS 紀元是多少?

  • May 9, 2021

當您luksDump在 LUKS 設備上執行時,我得到以下資訊:

$ sudo cryptsetup luksDump /dev/sda1 
LUKS header information
Version:        2
Epoch:          3
Metadata area:  16384 [bytes]
Keyslots area:  16744448 [bytes]
UUID:           4640c6e4-[…]
Label:          (no label)
Subsystem:      (no subsystem)
Flags:          (no flags)
[…]

我很清楚“版本”指的是什麼(目前最好的是 v2,所以這是你應該瞄準的),我已經看到了Epoch從 3 到 5 的值。

但是,Epoch實際上指的是什麼?我應該瞄準什麼價值?那裡規定的數字是否重要(安全方面)?如果它仍然是 Epoch 3 是不是很糟糕?可以升級那個時代嗎?

我在網上和常見問題解答中搜尋了資訊,但epoch那裡沒有提到這個詞。

每次更改 LUKS 標頭中的任何內容(例如添加或刪除鍵等)時,Epoch 都會增加。

LUKS2標頭規範指出:

uint64_t seqid; // sequence ID, increased on update

seqid是一個計數器(序列號),在寫入新的標頭更新時始終增加。具有較高seqid的 header 較新,用於恢復(如果存在具有不同 seqid 的主 header 和輔助 header,則自動使用最近的一個)。

為什麼在程式碼和技術文件中將其稱為“序列 ID”,但在向最終使用者顯示時使用“Epoch”一詞,仍然是個謎。

這實際上是同一件事,如果您閱讀了 Fine source可以看出,它將 seqid 列印為 Epoch:

log_std(cd, "Epoch:         \t%" PRIu64 "\n", hdr->seqid);

tl;dr您可以放心地忽略 Epoch,它是一個無害的計數器,沒有特定含義。

引用自:https://unix.stackexchange.com/questions/648816