当前位置: 首页 > Linux

LUKS加密卷应用技术介绍

时间:2023-04-06 05:30:34 Linux

本文分享自天翼云开发者社区@《LUKS加密卷应用技术简介》,作者:CD1.LUKS加密简介LUKS(LinuxUnifiedKeySetup)是常用的磁盘加密技术之一Linux系统下(是加密规范,不是加密算法),具有以下特点:支持多个密码访问同一设备;加密密钥不依赖于密码;无需重新加密数据即可更改密码;采用数据分段技术保存加密密钥,保证密钥的安全性。LUKS允许用户选择一系列对称加密算法(加密和解密使用相同密钥的加密算法),主要包括:AES算法、Anubis算法、Blowfish算法、Twofish算法、Serpent算法、Cast5算法和Cast6算法。另外需要选择加密方式(如XTS)和加密方式的初始化向量方式(如Plain64)。最常见的组合是目前网上使用的aes-xts-plain64。LUKS需要区分两个概念,一个是password,一个是encryptionkey。密码用于授权访问LUKS卷,而加密密钥用于使用加密算法加密和解密数据。在LUKS定义的术语中,加密密钥被称为主密钥(MasterKey)。LUKS加密卷初始化阶段,随机生成一组向量作为主密钥,长度一般为16或32字节(128或256位)。密码由用户指定,长度不限(最多512个字符)。一个LUKS加密卷可以设置8个密码。LUKS卷使用的加密算法/模式和主密钥记录在卷的头部信息中。主密钥以加密方式存储,需要通过密码计算。用户在安装使用时只需正确填写密码即可。系统会根据密码从卷的头部信息中解析出加密算法/模式并解密得到主密钥,从而对卷进行对称加解密访问。2.LUKS加密应用在云计算应用场景中,LUKS加密卷一般在主机或Hypervisor层进行解密。如果在LUKS加密卷中创建了文件系统,用户可以直接在虚拟机中挂载使用,无需额外操作。,用于对目录/文件的读写访问。用户一般不知道LUKS加密卷密码,由云计算管理平台生成管理。如果LUKS加密卷在host或者hypervisor层没有解密(对于Qemu等虚拟化hypervisor,如果不能正确解密,会直接报错,无法启动),用户将无法挂载mount/dev/vdb/mnt/luksmount:unknownfilesystemtype'crypto_LUKS'在用户创建和管理加密卷的场景下(一般不是云计算应用场景),如果用户知道LUKS加密卷的密码,此时,使用cryptsetupluksOpen命令,交互输入LUKS卷的授权访问密码,即可正常挂载使用。对于天翼云电脑,创建数据盘时可以选择设置为加密盘。每个加密盘都设置了独立的密码,密码只能通过相应的租户权限获取。以上保证即使存储系统被攻击,用户数据也无法被窃取。