TPM 2.0实例探索2 —— LUKS磁盘加密(1)

news2024/11/30 6:43:12

本文大部分内容取自:

LUKS磁盘格式_小写的毛毛的博客-CSDN博客_luks

如何破解LUKS加密

一、LUKS介绍

1. 什么是LUKS

LUKS是“Linux Unified Key Setup”的简写,是 Linux 硬盘加密的标准。LUKS通过提供标准的磁盘格式,不仅可以促进发行版之间的兼容性,还可以提供对多个用户密码的安全管理。LUKS加密广泛用于各种Linux发行版中,以保护磁盘并创建加密的容器。作为一个独立于平台的开源规范,LUKS可以看作是磁盘加密的典型实现。LUKS提供多种加密算法、多种加密模式和多种哈希函数可供选择,是最难破解的磁盘加密系统之一。目前QEMU的磁盘加密格式是luks格式。

LUKS磁盘格式如下图所示:

2. 磁盘加密基础知识

所有磁盘加密工具都依赖于对称加密方式来加密数据。尽管Microsoft BitLocker默认使用128位AES密钥,但主要的磁盘加密工具通常都依赖于具有256位密钥的硬件加速AES加密。一些磁盘加密工具提供了加密算法的选择,最受支持的是VeraCrypt,它提供了约15种对称加密选项。

通过使用密钥生成函数(KDF)从用户的密码(或其他数据)生成对称加密密钥。KDF使用用户输入的单向转换(哈希函数)来生成二进制加密密钥或解开用于解密实际对称加密密钥的中间密钥。使用不同的哈希函数以及大量的哈希迭代来降低潜在的暴力破解的速度。

破解加密容器时,你必须知道加密算法、哈希函数和哈希迭代次数的确切组合。错误的选择实际上会使你成功恢复的机会无效,即使你偶然发现了正确的密码也是如此。

3. LUKS磁盘加密

LUKS是最初为Linux OS开发的与平台无关的磁盘加密规范,LUKS是Linux中磁盘加密事实上的标准,可促进各种Linux发行版之间的兼容性,并提供对多个用户密码的安全管理。如今,LUKS被广泛应用于桌面和笔记本电脑上的几乎每个Linux发行版中。它也是网络附加存储(NAS)设备中流行的加密格式,特别是那些QNAP生产的设备。

除了全盘加密之外,LUKS还可以用于创建和运行加密容器,其方式类似于其他加密容器,例如VeraCrypt,加密的容器具有与LUKS全盘加密相同的保护级别。

LUKS为用户提供了各种加密算法、哈希函数和加密模式的选择,从而提供了大约45种可能的组合。

4. LUKS加密算法、加密模式和哈希函数

LUKS支持多种加密算法、加密模式和哈希函数的组合。

(1)加密算法

LUKS支持以下加密算法:

  • 高级加密标准(AES)
  • Serpent加密算法
  • Twofish加密算法
  • CAST-128加密算法
  • CAST-256加密算法

AES是唯一的一种硬件加速加密算法,是迄今为止三种加密算法中最常见的算法,尤其是在企业环境和网络连接存储(NAS)设备中使用时。AES加密在具有AES加密加速函数的芯片组(例如Intel CPU中的AES-NI指令集)上使用时,可提供最高的流密码性能。Serpent和Twofish可以在创建加密卷时由用户手动指定。

(2)加密模式

LUKS支持以下加密模式:

  • ECB (分组加密的模式之一)
  • CBC-PLAIN64
  • CBC-ESSIV:哈希
  • XTS-PLAIN64

设置加密卷时,各种Linux发行版可能使用不同的默认设置。例如,Red Hat Linux使用cbc-essiv:sha256和256位AES密钥,这是许多流行的Linux发行版的默认组合。

(3)哈希函数

在磁盘加密中,哈希函数用作密钥生成函数(KDF)的一部分。KDF用于从用户提供的输入(通常是基于文本的密码短语)中导出二进制加密密钥。LUKS支持以下哈希函数:

  • SHA-1
  • SHA-256
  • SHA-512
  • RIPEMD160
  • Whirlpool(基于分组密码的散列算法)

不过对Whirpool的支持不属于KDF规范的一部分。默认情况下,大多数Linux发行版都使用SHA-256作为哈希函数。

5. LUKS默认加密组合设置

虽然每个Linux发行版的维护人员和嵌入式Linux的硬件制造商都可以自由选择他们自己的默认加密设置,但是带256位对称加密密钥的aes-cbc-essiv:sha256是最常见的默认加密设置。如下所示:

  • AES——加密算法为AES(默认情况下,使用256位密钥);
  • CBC ——密码块链接加密模式;
  • ESSIV ——加密的盐扇区初始化向量,此IV应该用于CBC模式下的密码;
  • SHA-256——使用32位字计算的安全哈希算法,这是CBC模式下密码的默认哈希函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短链或H5唤醒(跳转)APP应用

唤醒APP(两种方法) 一.短链唤醒(跳转)app ⭐ 短链跳转到APP,当如果用户手机不存在APP(某个应用)将会进入到官网页面。 app links实现 在android studio菜单栏Tools->App Links Ass点击,效果图如下 2.配置如下 点击ok,生成如下效果图 3.完成第二步后,会自动…

深度解读 | 数据资产管理面临诸多挑战,做好这5个措施是关键

日前,大数据技术标准推进委员会(中国通信标准化协会下(CCSA)的专业技术委员会,简称TC601)发布《数据资产管理实践白皮书》(6.0 版)(以下简称:报告&#xff09…

网友说socket通信讲的不彻底,原来这才是Socket

关于对 Socket 的认识,大致分为下面几个主题,Socket 是什么,Socket 是如何创建的,Socket 是如何连接并收发数据的,Socket 套接字的删除等。 Socket 是什么以及创建过程 一个数据包经由应用程序产生,进入到…

linux下安装mongoDB

一、下载mongoDB包 下载地址: https://www.mongodb.com/try/download/community 个人建议:如果是学习阶段,使用5以下版本更好些。 二、安装及配置 1、安装 # 1、解压 $ tar -zxvf mongodb-linux-x86_64-rhel70-4.4.19-rc1.tgz# 2、迁移目…

【二叉树】

1,利用类来构建结点,利用函数递归来构建树2,因为左子树的结点编号是父节点的2倍,右子树的结点编号是父节点的2倍1,所以可以用数组模拟建树的过程构建二叉树第一种构建方式class treenode():#二叉树节点def __init__(se…

【西安】Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践应用

目录 第一章 理论基础 第二章 开发环境搭建 第三章 遥感大数据处理 基础 第四章 典型案例操作实践 第五章 输入输出及数据 资产高效管理 第六章 云端数据论文出版级可视化 ​随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此&…

使用代码生成器生成代码

一、新建数据源配置 因考虑到多数据源问题,代码生成器作为一个通用的模块,后续可能会为其他工程生成代码,所以,这里不直接读取系统工程配置的数据源,而是让用户自己维护。 新建数据源 参数说明 数据源名称&#xff1…

CIMCAI intellgent ship product applied by world top3 shipcompany

CIMCAI智慧船公司集装箱管理产品ceaspectusS™全球规模应用全球前三大船公司认可验箱标准应用落地全球港航人工智能AI独角兽 CIMCAI中集飞瞳CIMCAI Intellgent shipping product ceaspectusS ™which applied by the worlds top three shipping companiesGlobal port and shipp…

关于ch340驱动安装

这是一个悲伤的故事,搞了一上午,最后的解决办法是我找到了开发板的原装数据线,一换上去,板卡上电后,点击安装,就安装驱动成功了。。。。。把我走过的弯路记录在下面,链接里的办法是能解决阶段问…

【Go】使用Go语言打造定时提醒小工具,从基础到优化全方位探索

文章目录一、引言1.目的和背景2.选择GO语言的原因二、GO语言中的时间和定时器1.时间相关的包和函数2.定时器相关的包和函数三、使用GO语言实现功能四、代码改进1.time.AfterFunc()2.sync.WaitGroup3.接收参数五、总结一、引言 1.目的和背景 本文为征文活动“CSDN 征文活动&am…

(二十二)、实现评论功能(2)【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1,渲染评论列表 1.1,在detail页面中定义评论列表数组和getcomment方法: commentList: [],getcomment方法: //获取评论列表async getComment() {let commentTemp db.collection("quanzi_comment").where(article_id …

浏览器跨域问题

跨域问题什么是跨域问题如何解决跨域问题JSONPCORS方式解决跨域使用 Nginx 反向代理使用 WebSocket跨源请求是否能携带Cookie什么是跨域问题 跨域问题指的是不同站点之间,使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为…

【离线数仓-3-数仓建模方法理论汇总】

离线数仓-3-数仓建模方法理论汇总离线数仓-3-数仓建模方法理论汇总1.数仓概述2.数据仓库核心架构(Hive)3.数据仓库建模概述4.数据仓库建模方法论1.ER(Entity Relationship)模型2.维度模型1.维度建模理论-事实表1. 事实表概述2.事实…

RabbitMQ学习(十):发布确认高级

一、概述在生产环境中由于一些不明原因,导致 RabbitMQ 重启,在 RabbitMQ 重启期间生产者消息投递失败导致消息丢失,需要手动处理和恢复。在这样比较极端的情况,当RabbitMQ 集群不可用的时候,无法投递的消息该如何处理呢…

面试题:HashMap为什么是线程不安全的?解决办法是什么?

在JDK1.7中容易造成死循环和数据丢失,造成的原因如下图假设某个时刻t1,t2都访问到了链表,t1,t2的下一个节点都是b,如图此时内存耗尽,线程t2线程进入等待状态,假设此时刚好达到临界点需要扩容,t1进行扩容,并…

【20230210】二叉树小结

二叉树的种类二叉树的主要形式:满二叉树和完全二叉树。满二叉树深度为k,有2^k-1个节点的二叉树完全二叉树除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。二叉搜索树…

浅谈毫米波技术与应用

浅谈毫米波之技术篇2020年10月GSMA发布的《5G毫米波技术白皮书》预计,在2022年北京冬奥会上,5G毫米波有望大放异彩,为观众、媒体转播者、赛事组织和参与者等提供优质的观赛体验、完备的服务保障,将可提供全景VR、新型信息交互、智…

SCADA-1-组态前期需求调研篇

近期有朋友找到我,说scada组态系统开源的很少,不少开发者借此售卖这种软件,我回了句:这有什么难的,不就是拖拖拽拽,再绑定上数据源,实现动态效果嘛。。。(先装了个X)一、…

Web前端:全栈开发人员的责任

多年来,关于全栈开发人员有很多说法,全栈开发人员是一位精通应用程序全栈开发过程的专业人士。这包括数据库、API、前端技术、后端开发语言和控制系统版本。你一定遇到过前端和后端开发人员。前端开发人员将构建接口,而后端开发人员将开发、更…

使用 Xcode 创建第一个 Objective-C 命令行程序 HelloWorld

总目录 iOS开发笔记目录 从一无所知到入门 文章目录创建项目运行项目,查看日志输出同一项目下新增子目录,切换要运行的 Target创建项目 打开 Xcode ,Create a new Xcode project 接下来的默认界面: 切换到 macOS 下&#xff…