這是 ecryptfs 開發人員解釋 ecryptfs 和 dm-crypt 之間差異的頁面:https://stackoverflow.com/questions/18230784/what-is-difference- Between-linux-kernel-subsystem-dm-crypt-and-ecryptfs/18234635#18234635。然而,這給我留下了一個問題,如果 ecryptfs 只加密/home
分區,那麼什麼可以阻止惡意駭客修改/
或/boot
分區以嗅探加密密碼或修改程式等...
簡而言之,我如何確保我的電腦資料不僅不會被未經授權的人讀取,而且如何確保我的電腦上的任何內容在我不知情的情況下被修改?
另外,這在哪裡結束,因為在某些時候,啟動程式碼必須不加密才能讓處理器理解它? (除非您使用某種硬體解密)但是根據定義,任何未加密的內容都可以修改嗎?
(作為一個側面,我可以看到一種確定引導序列完整性的方法,方法是將引導代碼的未加密部分的哈希值保留在加密部分中,並在解密時將預先計算的哈希值與未加密部分的雜湊值進行比較運行時的啟動順序。
答案1
簡而言之,「幾乎」無法阻止駭客修改 /boot - 實際上只是時間、未偵測到的實體存取以及使用鍵盤記錄器重新編譯 initrd 的能力。
如果惡意駭客具有實體系統存取權限,那麼沒有什麼可以阻止他們修改基於 ecryptfs 的 / 或 /boot - 但稍後會看到 - 這不是問題所在。
「/」可以使用像 LUKS 這樣的全碟加密進行保護(但據我所知,不是按檔案加密) - 由於系統最初從 /boot 啟動,initrd 可以在安裝 / 之前請求解鎖磁碟區所需的密碼
我認為您高估了全磁碟加密的能力 - 我告訴您,它旨在阻止保護人們免受非持久性威脅,例如筆記型電腦被盜,或者當您想要使用個人資訊對硬碟進行 RMA 時 - 在在這兩種情況下,數據對您都不再有用,但您希望阻止未知的第三方訪問它- 通常,基於文件的文檔加密就足夠了- 誰在乎他們是否擁有系統的未加密副本二進製文件-無論如何它們都是開源的。
您無法保護您的系統免受未經授權的人員的本地存取 - 因此解決方案是防止實體存取。您可以採取某種方式來確保在您不知情的情況下不會修改內容,方法是對所有系統檔案進行校驗和並與離線備份進行比較- 這並不是完全可靠的,因為您需要確保正在運行未經修改的校驗和程序- 並且是一個使得衝突哈希實際上不可能重新創建。 [如果您分離檔案系統並將其中一些檔案系統設為唯讀,然後為每個唯讀分割區保留一個雜湊值,則可以簡化此操作]。雖然這整個過程很麻煩。
當使用全碟加密“/”時,您通常不會將電腦用作“root”,除非升級等 - 這提供了相當程度的