0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

eCryptfs整体架构和核心加解密机制介绍

麦辣鸡腿堡 来源:OPPO内核工匠 作者:m0rgan 2023-11-29 11:43 次阅读

整体架构

eCryptfs整体架构如下图,主要是内核模块eCryptfs以及用户态进程ecryptfsd。ecryptfsd进程只在使用key type为openssl模式时需要,使用passphrase模式(如上述测试用例)时不需要。ecryptfs-utils可作为用户态辅助工具或C接口编程参考。

应用程序发起系统调用时先经过VFS,判断目录类型为eCryptfs时调用eCryptfs模块的注册函数。之后eCryptfs根据mountsession中保存的key signature参数从keyring中找到对应密钥(FEKEK),再调用crypto模块API完成文件加解密。

图片

图片

eCryptfs核心加解密机制如下图,主要特点归纳如下:

1、FEK(File Encryption Key)唯一,即每个文件的加密密钥均不同,是随文件创建时生成的一个随机数。

2、每个文件的FEK经过FEKEK(File Encryption Key Encryption Key)加密保护,加密后FEK称为EFEK(Encrypted File Encryption Key),并保存在eCryptfs加密文件的header信息中(如前述page 0区域)。

3、passphrase模式下,FEKEK是基于用户passphrase_passwd派生而来,派生方式是hash计算(参考代码分析章节)。

4、文件内容按照page大小(Data Extent)进行块加密。

核心过程可简单描述为:

1、新文件加密时,生成随机数FEK,对文件内容进行分块加密并存储。根据用户传递的key_sig参数从keyring找到对应的FEKEK,用FEKEK加密FEK,生成EFEK并保存在文件header中。

2、解密时,同样根绝key_sig找到FEKEK,用FEKEK解密EFEK后得到FEK,再用FEK解密文件内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206735
  • 磁盘
    +关注

    关注

    1

    文章

    338

    浏览量

    24882
  • 模式
    +关注

    关注

    0

    文章

    63

    浏览量

    13285
  • 加密机制
    +关注

    关注

    0

    文章

    4

    浏览量

    6135
收藏 人收藏

    评论

    相关推荐

    labviewAES加解密小程序

    本帖最后由 eehome 于 2013-1-5 10:10 编辑 使用AES算法对128bit加密和解密版本:LabVIEW 8.6 8.6.1作者:zerld功能:使用AES算法对128bit加密和解密为便于阅读,算法还留有优化空间。本
    发表于 02-22 14:12

    加解密

    stm32F4中如何看加解密的代码
    发表于 04-08 11:23

    如何利用MEMS和FPGA设计移动硬盘数据加解密系统?

    来源:维库电子随着信息量的急剧增长,信息安全日益受到人们重视。一个完整的数据加解密系统应该 具备安全可靠的密码认证机制加解密算法。本文基于MEMS 强链、USB 控制器和FPGA 设 计了一种
    发表于 07-31 07:40

    如何利用MEMS强链和FPGA设计USB移动硬盘数据加解密系统?

    随着信息量的急剧增长,信息安全日益受到人们重视。一个完整的数据加解密系统应该具备安全可靠的密码认证机制加解密算法。利用MEMS强链和FPGA设计USB移动硬盘数据加解密系统,我们具体
    发表于 08-01 06:48

    可编程AES加解密IP

    基于FPGA的可编程AES加解密IP
    发表于 01-21 07:39

    硬件加解密的分类

    文章目录1、硬件加解密的分类2、ARM-CE / ARM-NEON3、Soc crypto engion4、cryptoisland5、cryptocell1、硬件加解密的分类在armv8的芯片
    发表于 07-22 07:55

    如何对AES加解密效率进行测试呢

    如何对AES加解密效率进行测试呢?怎样去测试AES的加解密效率呢?
    发表于 11-11 06:22

    硬件加解密主要优点及引擎种类

    应用对安全保护的需求,推出以Arm Cortex-M4为核心且内建硬件加解密引擎的M480系列,本系列除提供完整安全防护外,亦能在72 MHz至192 MHz的频率下提供高达90 DMIPS至240
    发表于 08-28 07:29

    STM32加解密技术

    没有加解密技术是万万不能的• 通讯安全• 平台安全• *例外:STM32 RDP保护知识产权• 加解密技术不是万能的• 只是工具• 无法代替其它STM32安全技术
    发表于 09-08 08:18

    基于MEMS和FPGA的移动硬盘数据加解密系统

    基于MEMS和FPGA的移动硬盘数据加解密系统 随着信息量的急剧增长,信息安全日益受到人们重视。一个完整的数据加解密系统应该 具备安全可靠的密码认证机制加解密
    发表于 11-05 08:57 722次阅读
    基于MEMS和FPGA的移动硬盘数据<b class='flag-5'>加解密</b>系统

    基于MEMS强链和FPGA的USB移动硬盘数据加解密系统

    基于MEMS强链和FPGA的USB移动硬盘数据加解密系统 随着信息量的急剧增长,信息安全日益受到人们重视。一个完整的数据加解密系统应该 具备安全可靠的密码认证机制
    发表于 11-07 11:15 583次阅读
    基于MEMS强链和FPGA的USB移动硬盘数据<b class='flag-5'>加解密</b>系统

    源码-加解密文本

    易语言是一门以中文作为程序代码编程语言学习例程:易语言-源码-加解密文本
    发表于 06-06 17:43 6次下载

    DES与RSA两种加解密算法的详细资料说明

    对称加解密算法: 通信双方(通信主体)同时掌握一个钥匙,加解密都由这一个钥匙完成。
    发表于 01-14 17:01 12次下载
    DES与RSA两种<b class='flag-5'>加解密</b>算法的详细资料说明

    STM32的加解密硬件模块

    电子发烧友网站提供《STM32的加解密硬件模块.pdf》资料免费下载
    发表于 08-02 09:14 1次下载
    STM32的<b class='flag-5'>加解密</b>硬件模块

    磁盘eCryptfs加密测试用例

    方案架构原理和核心机制,最后对关键业务流程代码进行简单梳理。 测试环境使用Ubuntu20.04虚拟机,因Ubuntu系统默认打开eCryptfs内核配置(CONFIG_ECRYPT_FS=y),只需
    的头像 发表于 11-29 11:27 506次阅读
    磁盘<b class='flag-5'>eCryptfs</b>加密测试用例