对象存储

  • 对象存储 > 使用指南 > 开发指南 > 数据安全 > 服务端加密

    服务端加密

    最近更新时间: 2021-08-31 14:27:40

    七牛对象存储Kodo系统支持在数据写入磁盘之前,在对象级别上应用数据加密的保护策略,再将得到的加密数据持久化保存下来。用户访问数据时,在拥有对象访问权限的前提下,自动对保存的加密数据进行解密并把原始数据返回。加密和解密这一操作过程都是在服务端完成,可以有效保护静态数据。

    服务端加密的实现

    支持由七牛存储完全托管的服务端加密功能:

    • 是否加密是对象的属性,对对象数据加密,元数据不加密
    • 每个用户一对主密钥(明文数据密钥&密文数据密钥),由私有云存储负责,用于 RSA 加密机制对随机密钥进行加密。(服务端负责定期更换,历史的由历史密钥加解密,新的密钥生成后,新数据用新密钥加密)。
    • 通过随机密钥使用 AES-256(256 位高级加密标准)加密算法来加密数据。随机密钥是每次上传时自动生成的随机数数据。

    主密钥与随机密钥分开保存。主密钥只有指定的服务可以获取。
    MD5 和 ETag 保存的是加密前的。为计算数据加密前的 MD5,分片上传的临时数据明文分块存放,分片上传完成后对完整数据进行加密存储。

    具体说明

    加密过程:

    • 上传时生成随机密钥,通过 AES-256 算法加密文件,加密后数据存入磁盘

    • 使用用户的主密钥加密随机密钥,加密后的随机密钥存入 RS 服务

      FmQeyNzvFXIqCiJEtqEin24WwOZG.png

    解密过程:

    • 访问对象时,获取加密后的随机密钥和加密后的对象数据

    • 使用用户的主密钥解密随机密钥

    • 使用解密后的随机密钥解密对象数据

      FrHFzCS3gC5PwLcm5brpJv-zXxlo.png

    操作步骤

    Kodo 支持通过控制台方式在空间级别设置开启或关闭服务端加密。

    支持的操作方式 参考文档
    控制台 设置服务端加密
    以上内容是否对您有帮助?
  • Close