LUKS加密卷应用技术简介

本文分享自天翼云开发者社区@《LUKS加密卷应用技术简介》,作者: CD

一、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卷所使用的的加密算法/模式以及主密钥都记录在卷的头部信息中,其中主密钥以加密方式存储,且需通过密码计算得到。 image

    用户挂载使用时只需正确填写密码即可,系统将根据密码从卷的头部信息中解析得到加密算法/模式以及解密得到主密钥,从而对卷进行对称加/解密访问。

二、LUKS加密应用     在云计算应用场景中,LUKS加密卷一般在宿主机或者Hypervisor层进行解密,若LUKS加密卷内已创建有文件系统,用户在虚拟机内无需额外操作即可直接挂载使用,进行目录/文件的读写访问。一般情况下,用户并不感知LUKS加密卷密码,密码由云计算管理平台生成并管理。 image

    若LUKS加密卷未在宿主机或Hypervisor层进行解密(对于Qemu等虚拟化Hypervisor,假如无法正确解密,将直接报错无法启动),用户将无法直接将其挂载使用,挂载将提示以下报错:

mount /dev/vdb /mnt/luks

mount: unknown filesystem type 'crypto_LUKS'

    在用户自行创建和管理加密卷的场景下(一般非云计算应用场景),若用户知晓LUKS加密卷密码,此时,使用cryptsetup luksOpen命令,交互式输入LUKS卷的授权访问密码,后续即可正常挂载使用。

    对于天翼云电脑,可以选择在创建数据盘时将其设置为加密盘。每个加密盘均设置独立的密码,而密码需要有相应的租户权限才能获取。以上保证即使存储系统受到攻击,用户数据也无法被窃取。

点赞
收藏

评论区

加载中...

相关推荐

浅谈加密算法 aes

一、目标搞了这么多期签名和加密解密,今天我们聊聊高大上的东西:加密算法。加密算法我们整体可以分为:不可逆加密算法和可逆加密算法。不可逆加密算法常见的不可逆加密算法有MD5,HMAC,SHA1、SHA224、SHA256、SHA384,和SHA512。他们的特点是,不能从加密后的结果解密出原文,主要用于校检数据的一致性,防止篡改数据,我们之前分析的大部分s

sqlcipher 移植

sqlcipher简介  SQLCipher是一个对sqlite数据库进行aes256加密的开源库,提供透明,安全的256位AES加密的SQLite数据库文件,项目本身不提供加密算法,调用openssl的aes加密算法  SQLCipher的社区版的源代码是一个BSD风格的开源许可下发布,但是官方提供的二进制库需要购买

RSA加密、解密、签名、验签的原理及方法

一、RSA加密简介  RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。

java实现非对称加密

对称加密:加密和解密的过程使用的是相同的密钥!这里写图片描述(https://oscimg.oschina.net/oscnet/42e81282a912d5abcf561e846c2b997914e.png)非对称加密与对称加密不同,非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的”公开密钥”(公钥

Java MD5和SHA256等常用加密算法

前言我们在做java项目开发的时候,在前后端接口分离模式下,接口信息需要加密处理,做签名认证,还有在用户登录信息密码等也都需要数据加密。信息加密是现在几乎所有项目都需要用到的技术,身份认证、单点登陆、信息通讯、支付交易等场景中经常会需要用到加密算法,所谓加密算法,就是将原本的明文通过一系列算法操作变成密文。1.BASE严格地说,属于编码格式,而非加密算法

ECDSA密钥对生成以及在Token中的应用

1概述本文主要讲述了如何利用Openssl生成ECDSA密钥对,并利用Auth0库进行Token生成及验证的过程。2ECDSA2.1简介ECC(EllipticCurveCryptography,椭圆曲线加密)是一种基于椭圆曲线数学的公钥加密算法,而ECDSA