百度云提供的服务端加密技术实现了Object独立、多层密钥体系,且确保数据与密钥管理分离,为云端数据提供了更保险可靠的保障。
一般来说,为了能让顾客更加放心地使用云存储服务,云计算厂商提出的将数据加密后存储落盘的策略,成为了一个合理并被广泛使用的方案。
加密可以简单分类为客户端加密和服务端加密,传统的客户端加密方法必须要顾客在客户端执行加密操作并管理加密所需要的密钥,这整个加密操作过程必须要耗费顾客可贵的计算资源。并且,加密密钥的存储对存储系统的保险性和可靠性都有较高的需求。想管理好这些密钥,无疑会增加顾客工作逻辑的复杂性。
基于以上背景,BOS(百度对象存储服务)团队经过长期的调研和研究,开发实现了保险、易用的服务端加密技术,为每个Object建立独立密钥,设置多层密钥体系,采用数据加密与密钥加密隔离的保险机制,充分保障云上数据的保险性。
同时,百度云的加密操作在服务端开展,对顾客开放透明,并且托管全部密钥,无需顾客管理大批密钥,降低顾客工作逻辑的复杂性。
以下是具体的技术剖析。
三个技术机制确保数据保险
BOS服务端加密使用对称加密算法AES256加密数据,对称加密算法使用一样的密钥加密和解密数据。为了提高数据保险性,咋们对每个Object使用不同的密钥加解密,独立的密钥可以极大地提高顾客数据的保险性,举例表明,咋们可以把每个Object文件看成一个箱子,文件的信息便是箱子里的物品,为了防止箱子里的物品被盗,咋们可以对箱子上锁,类似执行加密操作,用钥匙开锁相当于对文件开展解密操作。多个Object文件使用相同的密钥相当于多个箱子的锁可以被一样的钥匙打开,而每个Object有独立的密钥相当于每个钥匙只能打开一个箱子的锁。同理,每个Object独立密钥的机制具有更高的保险性。
高保险级别的多层密钥体系
在BOS服务端加密机制中,密钥是执行加解密的关键,因此密钥的保险性也是整个加密过程中的重要要素。为了保障密钥的保险性,百度云开发了专门用于管理密钥的服务,即KMS(Key Manager Service),KMS使用了多层密钥的加密机制,每个Object的密钥data key都由一个master key加密后,以密文的形式存储,而master key 又由root master key加密后也以密文的形式存储,root master key使用硬件加密机器加密。从data key,master key,到root master key形成一个多层的加密体系,且都已密文的形式存储物理介质上,充分保障了密钥的保险性。
数据与密钥隔离,杜绝保险隐患
数据密文保险性和密钥的保险性共同确定了数据的保险性。为了进一步提高数据的保险性,咋们将数据的加密和密钥的加密分别放到两个不同的系统去完成,数据的加密由BOS来完成,而密钥的加密由KMS来完成。由于KMS和BOS是两套独立的系统,且使用不同的认证和鉴权方法,这种数据和密钥的隔离机制又可以进一步提高数据的保险性。
已经应用在BOS服务中
BOS服务端加密技术已经应用到了BOS服务中,按需保障每一份上传百度云的数据的保险。可以说,被百度云服务端加密过的数据,没有人可以在不执行正常解密操作下拿到数据。
与此同时,咋们还设计了简单易用的接口,更大水平方便顾客使用服务端加密基本功能。服务端加密对顾客来说是透明的,分配密钥、数据加密、密钥加密等操作全是在BOS服务端开展处置,顾客只需在API中指定加密的header就可以,使用特别便捷。除了API,服务端加密还支持控制台,sdk等操作方法。
为进一步方便顾客使用该基本功能,咋们还在百度云前端管理控制台实现了Bucket加密开关基本功能,即当顾客打开此开关后,该Bucket的新增数据都会自动执行加密,进一步提高了易用性。
伴随着云计算技术的广泛应用以及对数据保险的重视,百度云持续在云存储方面实现突破,现在已在国内外游戏、安防、电商、金融等行业有大批胜利案例应用,未来也会在技术和产品方面一直探索,为公司提供越来越多价值。