广告
返回顶部
首页 > 资讯 > 数据库 >JuiceFS 数据加密原理
  • 1016
分享到

JuiceFS 数据加密原理

JuiceFS数据加密原理 2021-05-10 01:05:17 1016人浏览 绘本
摘要

JuiceFS 作为分布文件系统,每天与海量的数据打着交道,因此数据的安全性尤为关键,今天就来介绍一下 JuiceFS 在数据加密方面所做的努力。 传输中数据加密 JuiceFS 在网络上传输时会对数据进行加密,以防止未经授权的用户窃听网

JuiceFS 数据加密原理

JuiceFS 作为分布文件系统,每天与海量的数据打着交道,因此数据的安全性尤为关键,今天就来介绍一下 JuiceFS 在数据加密方面所做的努力。

传输中数据加密

JuiceFS 在网络上传输时会对数据进行加密,以防止未经授权的用户窃听网络通信。

JuiceFS 客户端始终使用 https 把数据上传到对象存储服务,以下情况除外:

  • 使用内部端点上传至阿里云 OSS
  • 使用内部端点上传至 UCloud US3

静态数据加密

JuiceFS 支持静态数据加密,即在上传到对象存储之前对数据进行加密。在这种情况下,存储在对象存储中的数据将会被加密,这可以在对象存储本身被破坏时有效地防止数据泄露。

JuiceFS 在客户端加密中采用了行业标准的加密方式(AES-GCM 和 RSA)。加密和解密是在 JuiceFS 客户端进行的。用户唯一需要做的是在 JuiceFS 挂载时提供一个私人密钥或密码,并像普通文件系统一样使用它。它对应用程序是完全透明的。

注意:在客户端缓存的数据是不加密的。不过,只有 root 用户或所有者可以访问这些数据。如果要把缓存的数据也加密,你可以把缓存目录放在一个加密的文件系统或块存储中。

加密和解密方法

必须为每个加密的文件系统创建一个全局 RSA 密钥 M。在对象存储中保存的每个对象都将有自己的随机对称密钥 S。数据用对称密钥 S 进行 AES-GCM 加密,S 用全局 RSA 密钥 M 进行加密,RSA 密钥使用用户指定的口令进行加密。

数据加密的详细过程如下:

  • 在写入对象存储之前,数据块会使用 LZ4 或 ZStandard 进行压缩。
  • 为每个块生成一个随机的 256 位对称密钥 S 和一个随机种子 N
  • 基于 AES-GCM 使用 SN 对每个块进行加密。
  • 使用 RSA 密钥 M 对对称密钥 S 进行加密得到密文 K
  • 将加密后的数据、密文 K 和随机种子 N 组合成对象,然后写入对象存储。

数据解密的步骤如下:

  • 读取整个加密对象(它可能比 4MB 大一点)。
  • 解析对象数据得到密文 K、随机种子 N 和被加密的数据。
  • 用 RSA 密钥解密 K,得到对称密钥 S
  • 基于 AES-GCM 使用 SN 解密数据得到数据块明文。
  • 对数据块解压缩。

密钥管理

在启用加密功能时,RSA 密钥的安全是极其重要的。如果密钥被泄露,可能会导致数据泄露。如果密钥丢失,那么所有的加密数据都将丢失,而且无法恢复。

当使用 juicefs fORMat 创建一个新卷时,可以通过 --encrypt-rsa-key 参数指定 RSA 私钥来启用静态加密,该私钥将会被保存到 Redis。当私钥被密码保护时,可以使用环境变量 JFS_RSA_PASSPHRASE 来指定密码。

使用方法:

生成 RSA 密钥

$ openssl genrsa -out my-priv-key.pem -aes256 2048

在格式化时提供该密钥

$ juicefs format --encrypt-rsa-key my-priv-key.pem META-URL NAME

注意:如果私钥受密码保护,在执行 juicefs mount 时应使用 JFS_RSA_PASSPHRASE 来指定该密码。

性能

TLS、HttpS 和 AES-256 在现代 CPU 中的实现非常高效。因此,启用加密功能对文件系统的性能影响并不大。RSA 算法相对较慢,特别是解密过程。建议在存储加密中使用 2048 位 RSA 密钥。使用 4096 位密钥可能会对读取性能产生重大影响。

总结

文件系统加密技术几乎可以适用于任何基于文件系统的数据库存储加密需求,本文从原理出发到实际操作如何生成并使用密钥,详细介绍了 JuiceFS 对数据加密解密的过程 。未来,JuiceFS 将持续努力为您的数据安全保驾护航。

推荐阅读:知乎 x JuiceFS:利用 JuiceFS 给 flink 容器启动加速

如有帮助的话欢迎关注我们项目 Juicedata/JuiceFS 哟! (0ᴗ0✿)

您可能感兴趣的文档:

--结束END--

本文标题: JuiceFS 数据加密原理

本文链接: https://www.lsjlt.com/news/9031.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JuiceFS 数据加密原理
    JuiceFS 作为分布文件系统,每天与海量的数据打着交道,因此数据的安全性尤为关键,今天就来介绍一下 JuiceFS 在数据加密方面所做的努力。 传输中数据加密 JuiceFS 在网络上传输时会对数据进行加密,以防止未经授权的用户窃听网...
    99+
    2021-05-10
    JuiceFS 数据加密原理
  • 数据加密和解密的工作原理是什么
    数据加密是指通过加密算法和加密密钥将明文转变为密,是利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用;而数据解密则是通过解密算法和解密密钥将密文恢复为明文,其核心是密码学。数据加密的方法有替换和置换两种,替换是使用密钥...
    99+
    2022-10-09
  • HTTPS 的加解密原理
    这篇文章主要介绍“HTTPS 的加解密原理”,在日常操作中,相信很多人在HTTPS 的加解密原理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTTPS 的加解密原理”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • phpjiami加密原理详解及解密
    零、引言 最近工作中遇到一些使用phpjiami进行加密的php代码,所以对这个加密进行了详细的分析。 本文包括如下内容: phpjiami的加密原理详细的phpjiami的解密方法略带一些Php-p...
    99+
    2023-09-08
    php 安全 加密与解密 逆向分析 php解密
  • Android数据加密之Rsa加密
    前言: 最近无意中和同事交流数据安全传输的问题,想起自己曾经使用过的Rsa非对称加密算法,闲下来总结一下。  其他几种加密方式:  •An...
    99+
    2022-06-06
    加密 rsa Android
  • Android数据加密之Aes加密
    前言: 项目中除了登陆,支付等接口采用rsa非对称加密,之外的采用aes对称加密,今天我们来认识一下aes加密。  其他几种加密方式:  •...
    99+
    2022-06-06
    加密 aes加密 aes Android
  • Android数据加密之Des加密
    前言:  有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下。  其他几种加密方式:  •A...
    99+
    2022-06-06
    加密 des加密 des Android
  • 深入理解Android MD5数据加密
    MD5加密 MD5是由MD2、MD3、MD4演变过来的,虽然MD5加密算法现在有些人已经将其解开了,但是它的加密机制依然很强大,我想绝大对数还是不会解开的。MD5加密算法是单向...
    99+
    2022-06-06
    加密 数据 数据加密 Android
  • Android数据加密之Des加密详解
    Android DES加密的相关实现,简单的实现了一下,今天来总结一下: DES加密介绍: DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法。DES...
    99+
    2022-06-06
    加密 des加密 des Android
  • PHP数据加密方式梳理介绍
    目录前言对称加密DES对称加密AES非对称加密RSA前言 首先我们来了解一下为什么要加密? 在网络通信的过程中攻击者可以伪造请求和返回,从而达到不可告人的目的。如下图所示: 数据加...
    99+
    2022-11-13
  • PHP开发中如何处理数据加密和解密
    在现代互联网的应用中,数据的安全性已经成为了开发者们必须要考虑的重要问题之一。对于一些敏感数据,我们需要加密保护,以防止被恶意窃取或篡改。针对这样的需求,PHP提供了多种数据加密和解密的方法和函数。本文将介绍一些常用的加密和解密技术,并提供...
    99+
    2023-10-21
    PHP加密算法 数据保护 数据加解密
  • 数据加密存储常见的加密方式
    数据加密存储五种常见的加密方式先总结下:数据加密存储五种常见的加密方式:数据加密存储方式一、MD5加密(加密不可逆)。数据加密存储方式二、Base64位加密(可加密也可解密)。数据加密存储方式三、sha1加密(加密不可逆)。数据加密存储方式...
    99+
    2023-09-07
    安全 网络 服务器 Powered by 金山文档
  • 加密算法---BCryptPasswordEncoder的使用及原理
    BCryptPasswordEncoder的使用及原理 一 介绍二 案例使用2.1 添加依赖2.2 PasswordConfig2.3 application.yml2.4 单元测试2.5 结果 三 优秀博客 一 介绍...
    99+
    2023-08-16
    java
  • druid数据源密码怎么加密
    对druid数据源密码进行加密的方法首先,在druid中新建一个数据源配置类;@Configurationpublic class DruidConfig {@Value("${spring.datasource.publicKey}")p...
    99+
    2022-10-06
  • asp如何加密数据
    在asp中使用MD5加密算法对数据进行加密,具体方法如下:...
    99+
    2022-10-25
  • cad数据怎么加密
    对cad数据进行加密的方法首先,在计算机中打开一个cad文件;cad文件打开后,在界面中使用组合键“ctrl+shift+S”,另存为文件;在弹出的另存为弹窗中,选择文件存储的位置;文件存储位置选择好后,在对话框右上角“定制工具”中点击“密...
    99+
    2022-10-10
  • 如何加密vbs数据
    通过在vbs中使用Execute对数据进行加密,代码如下:On Error Resume NextSet argv = WScript.ArgumentsIf argv.Count = 0 Then WScript.QuitSet fso ...
    99+
    2022-10-15
  • mysql数据怎么加密
    在mysql中对数据进行加密的方法首先,在命令行中启动MySQL服务;service mysql start  MySQL服务启动后,在命令行中输入mysql的用户名和密码登录到MySQL;mysql -u root -p登录到MySQL后...
    99+
    2022-10-14
  • html怎么加密数据
    在html中对数据进行加密的方法有以下几种md5加密使用方法:<html><head>    <meta charset="utf-8"&g...
    99+
    2022-10-09
  • APP数据如何加密
    对APP数据进行加密的方法有以下几种MD5加密使用方法:import hashlibs = '你好,世界!'s = s.encode("utf-8")m = hashlib.md5()m.update(s)psw = m.hexd...
    99+
    2022-10-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作