fbpx
维基百科

Linux統一密鑰設置

Linux統一密鑰設置(英語:Linux Unified Key Setup,縮寫:LUKS)是由Clemens Fruhwirth在2004年爲Linux開發的磁盘加密規範。LUKS實現了可用於各種工具上的跨平臺標準磁盘加密格式,促進了不同工具之間的兼容性和互操作性,確保它們都以安全和統一的方式實施密碼管理。[2]

Linux統一密鑰設置
Debian安裝程式,顯示了使用整個磁盤,設定LVM並將之使用LUKS加密的選項
原作者Clemens Fruhwirth
当前版本
  • 2.3.4 (2020年9月3日)[1]
编程语言C语言
操作系统#作業系統支援
类型磁盘加密
许可协议GNU宽通用公共许可证第2.1版
网站gitlab.com/cryptsetup/cryptsetup 

簡介 编辑

LUKS的用途是加密设备文件系统。被加密的內容無需是某種格式,因此任何文件系統都可以被加密,甚至包括虛擬記憶體分區[3]在每個已加密的磁碟的頭部,均有未加密的部分用以承載加密密鑰[註 1]以及諸如加密類型和密鑰大小等加密參數。[4][5]

磁碟頭部承載的加密密鑰是LUKS和plain dm-crypt的主要分別。LUKS允許使用多個不同的密碼解密同一個磁碟,也可以隨時輕易的修改或移除之。但是如果磁碟頭部被損壞,則不可能復原被加密的資料。[6]

加密的過程使用了多層加密:首先,資料被主密鑰加密,然後主密鑰被複製多份,分別被不同的用戶密鑰加密,最後被加密的主密鑰均被儲存到磁碟中。[7]通常,用戶密鑰是密碼片語,但其他加密方式例如OpenPGP公开密钥或者X.509數碼證書也可使用。PGP公开密钥可以與被連接到主機的OpenPGP智能卡合併使用。[8][9]這種分層加密方法被稱爲TKS1。[10][11]

LUKS有兩個版本:LUKS1以及LUKS2。LUKS1默認使用PBKDF2加密,而LUKS2默認使用Argon2英语Argon2;LUKS2也具備對磁碟頭部損壞的彈性。[12]在兩個LUKS版本之間切換或許可能,但某些功能(例如Argon2)未必能在LUKS1上使用。[4]LUKS2使用JSON作爲其元數據儲存格式。[4][13]

可用的加密算法取決於內核的支持。Libgcrypt英语Libgcrypt支持所有LUKS支持的加密算法,可以作爲散列的後端。[14]默認加密算法由作業系統決定。[15]LUKS1使用一種名爲AFsplitter的反電腦鑑證技術,以保護文件以及確保文件能夠被徹底抹除英语Data erasure

在LVM上使用LUKS 编辑

邏輯捲軸管理員(LVM)可以與LUKS並用。[16]

LUKS加密的LVM
類似直接分割一個LUKS加密卷,LUKS可以直接加密整個LVM物理卷,允許之中的所有邏輯卷被單一密鑰加密。LVM物理卷的架構在解密之前不可見。[17]
LUKS加密的LVM邏輯卷
如果LUKS被用於加密單一LVM邏輯卷,其可以分佈於多個物理卷上。LVM物理卷的架構在解密之前已經可見。[18]

對整個磁盤加密 编辑

LUKS常用於對整個磁盤加密,包括加密作業系統的根目錄,以保護所有資料免被具有物理存取權限的攻擊者未獲授權的第三方英语Adversary (cryptography)存取或修改。[16]

在Linux系統上,爲防止第三方篡改Linux內核引導分區可以在引導程序英语Bootloader支援LUKS的前提下同樣被加密。[註 2]但是,第一階段引導程序以及EFI系统分区無法被如此加密。[16]

加密家目錄 编辑

在運行systemd的系統上,systemd-homed可以用以加密個別家目錄[20]

作業系統支援 编辑

LUKS的参考实现是在Linux上運行的修改版cryptsetup,並使用dm-crypt作爲加密後端。在Microsoft Windows,LUKS加密的磁盤以前可以通過LibreCrypt存取,[21]但已因安全漏洞而棄用;[22][23]現在則可以通過适用于Linux的Windows子系统使用。[24]DragonFly BSD支援LUKS。[25]

安裝程序支援 编辑

部分Linux發行版的安裝程序可以在安裝時對整個磁盤加密,包括Calamares英语Calamares (software)[26]Ubiquity[27]以及Debian安裝程式[28]

磁碟格式 编辑

LUKS磁碟頭是向前兼容的,新版的LUKS可以讀取舊版LUKS的磁碟頭。

LUKS2 编辑

LUKS2設備以二進制標頭開頭,旨在讓blkid更容易進行識別。LUKS2磁碟頭的所有字串資料均是以null標記完結的字符串。JSON資料區緊接在二進制標頭後,當中儲存了LUKS的設定、密鑰以及加密細節。LUKS2密鑰槽的二進制格式與LUKS1大致相似,但允許個別密鑰槽的算法(例如不同的PBKDF)。LUKS2包含另一種密鑰以在在重新加密過程中斷的情況下允許冗餘。[13]

使用範例 编辑

本章節使用LUKS的参考实现cryptsetup來示範操作。

加密裝置/dev/sda1

# cryptsetup luksFormat /dev/sda1 

解密已被LUKS加密的同一磁碟,而name是映射的設備名稱:

# cryptsetup luksOpen /dev/sda1 name 

重新加密 编辑

對LUKS容器的重新加密可以使用cryptsetup或者舊工具cryptsetup-reencrypt實現。這些工具也可以用來加密先前未加密的磁碟,或永久解密已加密的磁碟。[14][29]兩個方法所適用的命令語法相近:

# # 使用 cryptsetup # cryptsetup reencrypt /dev/sda1 # # 使用 cryptsetup-reencrypt # cryptsetup-reencrypt /dev/sda1 

參見 编辑

  • 磁碟加密軟件的比較英语Comparison of disk encryption software

備註 编辑

  1. ^ 在LUKS1加密磁碟中可以承載至多8個密鑰,在LUKS2上則是32個。
  2. ^ GRUB是一個支援LUKS的引導程序的例子。[19]

參考來源 编辑

  1. ^ 1.0 1.1 https://mirrors.edge.kernel.org/pub/linux/utils/cryptsetup/v2.3/v2.3.4-ReleaseNotes.
  2. ^ Fruhwirth, Clemens. LUKS On-Disk Format Specification Version 1.2.3 (PDF). 2018-01-20 [2021-09-23]. (原始内容 (PDF)于2023-04-12). 
  3. ^ Encrypting drives using LUKS. Fedora Docs. [6 May 2022]. (原始内容于2023-06-10). 
  4. ^ 4.0 4.1 4.2 Chapter 12. Encrypting block devices using LUKS. Red Hat Customer Portal. [2023-04-12]. (原始内容于2023-04-17). 
  5. ^ How to Encrypt Hard Disk (partition) using LUKS in Linux. 27 February 2019 [2023-04-12]. (原始内容于2023-04-12). 
  6. ^ How to Encrypt Your Data with dm-crypt. Linode. [2023-04-12]. (原始内容于2023-04-17). 
  7. ^ Bossi, Simone; Visconti, Andrea. What Users Should Know About Full Disk Encryption Based on LUKS (PDF). 2015 [2023-04-12]. (原始内容 (PDF)于2021-05-06). 
  8. ^ Full-Disk Encryption With cryptsetup/LUKS. [6 May 2022]. (原始内容于2023-05-21). 
  9. ^ How to encrypt a LUKS container using a smart card or token. 20 April 2014 [2023-04-12]. (原始内容于2023-05-18). 
  10. ^ TKS1 · Wiki · cryptsetup / cryptsetup · GitLab. GitLab. [2023-04-12]. (原始内容于2023-04-12) (英语). 
  11. ^ Fruhwirth, Clemens. TKS1 – An anti-forensic, two level, and iterated key setup scheme (PDF). Draft. 2004-07-15 [2021-09-23]. (原始内容 (PDF)于2023-04-12). 
  12. ^ How LUKS works with Full Disk Encryption in Linux. 25 September 2021 [2023-04-12]. (原始内容于2023-04-12). 
  13. ^ 13.0 13.1 on-disk-format-luks2.pdf (PDF). [2023-04-12]. (原始内容 (PDF)于2023-04-12). 
  14. ^ 14.0 14.1 cryptsetup(8) – Linux系统管理员工具(Administration and Privileged Commands)手册页
  15. ^ Breaking LUKS Encryption. eForensics. 21 August 2020 [2023-04-12]. (原始内容于2023-06-04). 
  16. ^ 16.0 16.1 16.2 dm-crypt/Encrypting an entire system. [6 May 2022]. (原始内容于2023-06-10). 
  17. ^ Arch with LVM on LUKS. [2023-04-12]. (原始内容于2023-04-17). 
  18. ^ LUKS on LVM: encrypted logical volumes and secure backups. 12 September 2014 [2023-04-12]. (原始内容于2023-04-17). 
  19. ^ GRUB - ArchWiki. wiki.archlinux.org. [2023-04-12]. (原始内容于2023-06-11). 
  20. ^ Home Directories. systemd. [2023-04-12]. (原始内容于2023-06-08). 
  21. ^ LibreCrypt. GitHub. 27 July 2022 [2023-04-12]. (原始内容于2018-05-16). 
  22. ^ Flaw in driver allows privilege escalation. Feedback wanted · Issue #38 · t-d-k/LibreCrypt. GitHub. 30 September 2015 [2023-04-12]. (原始内容于2023-03-20). 
  23. ^ Driver allows writing to arbitrary devices · Issue #39 · t-d-k/LibreCrypt. GitHub. 7 October 2015 [2023-04-12]. (原始内容于2023-03-20). 
  24. ^ Servicing the Windows Subsystem for Linux (WSL) 2 Linux Kernel. Microsoft Developer Blogs. 16 April 2021 [2023-04-12]. (原始内容于2023-05-22). 
  25. ^ DragonFly's Major Features List. [6 May 2022]. (原始内容于2023-05-13). 
  26. ^ Michael Larabel. Calamares Installer Adds LUKS Encryption Support. Phoronix. 8 May 2016 [2023-04-12]. (原始内容于2022-05-21). 
  27. ^ How to Encrypt Your Hard Disk in Ubuntu. Make Tech Easier. 13 January 2017 [2023-04-12]. (原始内容于2023-05-11). 
  28. ^ PartmanCrypto. Debian Wiki. [6 May 2022]. (原始内容于2023-04-12). 
  29. ^ CRYPTSETUP-REENCRYPT(8) Man page. man7.org. [2023-04-12]. (原始内容于2023-05-10). 

外部連結 编辑

linux統一密鑰設置, 英語, linux, unified, setup, 縮寫, luks, 是由clemens, fruhwirth, 在2004年爲linux開發的磁盘加密規範, luks實現了可用於各種工具上的跨平臺標準磁盘加密格式, 促進了不同工具之間的兼容性和互操作性, 確保它們都以安全和統一的方式實施密碼管理, debian安裝程式, 顯示了使用整個磁盤, 設定lvm並將之使用luks加密的選項原作者clemens, fruhwirth当前版本2, 2020年9月3日, 编程语言c语言操作系统見,. Linux統一密鑰設置 英語 Linux Unified Key Setup 縮寫 LUKS 是由Clemens Fruhwirth 在2004年爲Linux開發的磁盘加密規範 LUKS實現了可用於各種工具上的跨平臺標準磁盘加密格式 促進了不同工具之間的兼容性和互操作性 確保它們都以安全和統一的方式實施密碼管理 2 Linux統一密鑰設置Debian安裝程式 顯示了使用整個磁盤 設定LVM並將之使用LUKS加密的選項原作者Clemens Fruhwirth当前版本2 3 4 2020年9月3日 1 编程语言C语言操作系统見 作業系統支援类型磁盘加密许可协议GNU宽通用公共许可证第2 1版网站gitlab wbr com cryptsetup cryptsetup 目录 1 簡介 1 1 在LVM上使用LUKS 1 2 對整個磁盤加密 1 3 加密家目錄 2 作業系統支援 2 1 安裝程序支援 3 磁碟格式 3 1 LUKS2 4 使用範例 4 1 重新加密 5 參見 6 備註 7 參考來源 8 外部連結簡介 编辑LUKS的用途是加密设备文件系统 被加密的內容無需是某種格式 因此任何文件系統都可以被加密 甚至包括虛擬記憶體分區 3 在每個已加密的磁碟的頭部 均有未加密的部分用以承載加密密鑰 註 1 以及諸如加密類型和密鑰大小等加密參數 4 5 磁碟頭部承載的加密密鑰是LUKS和plain dm crypt 的主要分別 LUKS允許使用多個不同的密碼解密同一個磁碟 也可以隨時輕易的修改或移除之 但是如果磁碟頭部被損壞 則不可能復原被加密的資料 6 加密的過程使用了多層加密 首先 資料被主密鑰加密 然後主密鑰被複製多份 分別被不同的用戶密鑰加密 最後被加密的主密鑰均被儲存到磁碟中 7 通常 用戶密鑰是密碼片語 但其他加密方式例如OpenPGP公开密钥或者X 509數碼證書也可使用 PGP公开密钥可以與被連接到主機的OpenPGP智能卡合併使用 8 9 這種分層加密方法被稱爲TKS1 10 11 LUKS有兩個版本 LUKS1以及LUKS2 LUKS1默認使用PBKDF2加密 而LUKS2默認使用Argon2 英语 Argon2 LUKS2也具備對磁碟頭部損壞的彈性 12 在兩個LUKS版本之間切換或許可能 但某些功能 例如Argon2 未必能在LUKS1上使用 4 LUKS2使用JSON作爲其元數據儲存格式 4 13 可用的加密算法取決於內核的支持 Libgcrypt 英语 Libgcrypt 支持所有LUKS支持的加密算法 可以作爲散列的後端 14 默認加密算法由作業系統決定 15 LUKS1使用一種名爲AFsplitter的反電腦鑑證技術 以保護文件以及確保文件能夠被徹底抹除 英语 Data erasure 在LVM上使用LUKS 编辑 邏輯捲軸管理員 LVM 可以與LUKS並用 16 LUKS加密的LVM 類似直接分割一個LUKS加密卷 LUKS可以直接加密整個LVM物理卷 允許之中的所有邏輯卷被單一密鑰加密 LVM物理卷的架構在解密之前不可見 17 LUKS加密的LVM邏輯卷 如果LUKS被用於加密單一LVM邏輯卷 其可以分佈於多個物理卷上 LVM物理卷的架構在解密之前已經可見 18 對整個磁盤加密 编辑 LUKS常用於對整個磁盤加密 包括加密作業系統的根目錄 以保護所有資料免被具有物理存取權限的攻擊者或未獲授權的第三方 英语 Adversary cryptography 存取或修改 16 在Linux系統上 爲防止第三方篡改Linux內核 引導分區可以在引導程序 英语 Bootloader 支援LUKS的前提下同樣被加密 註 2 但是 第一階段引導程序以及EFI系统分区無法被如此加密 16 加密家目錄 编辑 在運行systemd的系統上 systemd homed可以用以加密個別家目錄 20 作業系統支援 编辑LUKS的参考实现是在Linux上運行的修改版cryptsetup 並使用 a href Dm crypt html title Dm crypt dm crypt a 作爲加密後端 在Microsoft Windows LUKS加密的磁盤以前可以通過LibreCrypt存取 21 但已因安全漏洞而棄用 22 23 現在則可以通過适用于Linux的Windows子系统使用 24 DragonFly BSD支援LUKS 25 安裝程序支援 编辑 部分Linux發行版的安裝程序可以在安裝時對整個磁盤加密 包括Calamares 英语 Calamares software 26 Ubiquity 27 以及Debian安裝程式 28 磁碟格式 编辑LUKS磁碟頭是向前兼容的 新版的LUKS可以讀取舊版LUKS的磁碟頭 LUKS2 编辑 LUKS2設備以二進制標頭開頭 旨在讓blkid更容易進行識別 LUKS2磁碟頭的所有字串資料均是以null標記完結的字符串 JSON資料區緊接在二進制標頭後 當中儲存了LUKS的設定 密鑰以及加密細節 LUKS2密鑰槽的二進制格式與LUKS1大致相似 但允許個別密鑰槽的算法 例如不同的PBKDF LUKS2包含另一種密鑰以在在重新加密過程中斷的情況下允許冗餘 13 使用範例 编辑本章節使用LUKS的参考实现cryptsetup來示範操作 加密裝置 dev sda1 cryptsetup luksFormat dev sda1 解密已被LUKS加密的同一磁碟 而name是映射的設備名稱 cryptsetup luksOpen dev sda1 name 重新加密 编辑 對LUKS容器的重新加密可以使用cryptsetup或者舊工具cryptsetup reencrypt實現 這些工具也可以用來加密先前未加密的磁碟 或永久解密已加密的磁碟 14 29 兩個方法所適用的命令語法相近 使用 cryptsetup cryptsetup reencrypt dev sda1 使用 cryptsetup reencrypt cryptsetup reencrypt dev sda1參見 编辑 nbsp Linux主题 磁碟加密軟件的比較 英语 Comparison of disk encryption software 備註 编辑 在LUKS1加密磁碟中可以承載至多8個密鑰 在LUKS2上則是32個 GRUB是一個支援LUKS的引導程序的例子 19 參考來源 编辑 1 0 1 1 https mirrors edge kernel org pub linux utils cryptsetup v2 3 v2 3 4 ReleaseNotes Fruhwirth Clemens LUKS On Disk Format Specification Version 1 2 3 PDF 2018 01 20 2021 09 23 原始内容存档 PDF 于2023 04 12 Encrypting drives using LUKS Fedora Docs 6 May 2022 原始内容存档于2023 06 10 4 0 4 1 4 2 Chapter 12 Encrypting block devices using LUKS Red Hat Customer Portal 2023 04 12 原始内容存档于2023 04 17 How to Encrypt Hard Disk partition using LUKS in Linux 27 February 2019 2023 04 12 原始内容存档于2023 04 12 How to Encrypt Your Data with dm crypt Linode 2023 04 12 原始内容存档于2023 04 17 Bossi Simone Visconti Andrea What Users Should Know About Full Disk Encryption Based on LUKS PDF 2015 2023 04 12 原始内容存档 PDF 于2021 05 06 Full Disk Encryption With cryptsetup LUKS 6 May 2022 原始内容存档于2023 05 21 How to encrypt a LUKS container using a smart card or token 20 April 2014 2023 04 12 原始内容存档于2023 05 18 TKS1 Wiki cryptsetup cryptsetup GitLab GitLab 2023 04 12 原始内容存档于2023 04 12 英语 Fruhwirth Clemens TKS1 An anti forensic two level and iterated key setup scheme PDF Draft 2004 07 15 2021 09 23 原始内容存档 PDF 于2023 04 12 How LUKS works with Full Disk Encryption in Linux 25 September 2021 2023 04 12 原始内容存档于2023 04 12 13 0 13 1 on disk format luks2 pdf PDF 2023 04 12 原始内容存档 PDF 于2023 04 12 14 0 14 1 cryptsetup 8 Linux系统管理员工具 Administration and Privileged Commands 手册页 Breaking LUKS Encryption eForensics 21 August 2020 2023 04 12 原始内容存档于2023 06 04 16 0 16 1 16 2 dm crypt Encrypting an entire system 6 May 2022 原始内容存档于2023 06 10 Arch with LVM on LUKS 2023 04 12 原始内容存档于2023 04 17 LUKS on LVM encrypted logical volumes and secure backups 12 September 2014 2023 04 12 原始内容存档于2023 04 17 GRUB ArchWiki wiki archlinux org 2023 04 12 原始内容存档于2023 06 11 Home Directories systemd 2023 04 12 原始内容存档于2023 06 08 LibreCrypt GitHub 27 July 2022 2023 04 12 原始内容存档于2018 05 16 Flaw in driver allows privilege escalation Feedback wanted Issue 38 t d k LibreCrypt GitHub 30 September 2015 2023 04 12 原始内容存档于2023 03 20 Driver allows writing to arbitrary devices Issue 39 t d k LibreCrypt GitHub 7 October 2015 2023 04 12 原始内容存档于2023 03 20 Servicing the Windows Subsystem for Linux WSL 2 Linux Kernel Microsoft Developer Blogs 16 April 2021 2023 04 12 原始内容存档于2023 05 22 DragonFly s Major Features List 6 May 2022 原始内容存档于2023 05 13 Michael Larabel Calamares Installer Adds LUKS Encryption Support Phoronix 8 May 2016 2023 04 12 原始内容存档于2022 05 21 How to Encrypt Your Hard Disk in Ubuntu Make Tech Easier 13 January 2017 2023 04 12 原始内容存档于2023 05 11 PartmanCrypto Debian Wiki 6 May 2022 原始内容存档于2023 04 12 CRYPTSETUP REENCRYPT 8 Man page man7 org 2023 04 12 原始内容存档于2023 05 10 外部連結 编辑官方网站 常見問答 页面存档备份 存于互联网档案馆 LibreCrypt 在Windows上的實現 页面存档备份 存于互联网档案馆 LUKS1規格 页面存档备份 存于互联网档案馆 LUKS2規格 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Linux統一密鑰設置 amp oldid 77658491, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。