首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多租户云SaaS中管理客户提供的加密密钥?

如何在多租户云SaaS中管理客户提供的加密密钥?
EN

Security用户
提问于 2017-04-07 15:22:24
回答 2查看 1.6K关注 0票数 5

我在一家基于欧盟的公司工作,我们希望为商业客户提供一种独立于操作系统的、基于云的SaaS平台,用于处理和存储敏感(健康)数据。我们希望在Google平台上实现我们的软件。

所有敏感数据都应该用对称密钥加密,这些密钥由客户提供,不存储在云平台上。(我们相信谷歌,但爱国者法案是个问题。)

然而,客户端界面最好在浏览器中作为web应用程序运行。这使得客户端加密变得复杂。此外,许多员工应该能够访问业务客户域中的加密数据。因此,加密密钥必须以某种方式在员工之间共享。

一种方法是通过共享密码(使用PBKDF2)生成加密密钥,将其存储在会话cookie (lifetime=0)中,并为每个访问敏感数据的请求将其传输到云服务器。服务器执行请求的操作,然后从内存中删除密钥。

当然,如果我们或谷歌想要这样做的话,可能总会有提取密钥的方法,但我们可以确保数据是用用户提供的密钥加密存储的,只有用户才能管理。

我想知道是否有人有更好的主意。先谢谢你。

EN

回答 2

Security用户

发布于 2018-06-09 08:40:13

云提供者本身不可能保证云中的安全性,云提供者可以(被迫)获取任何正在运行的VM实例的内存转储,并从正在运行的实例中提取任何加密密钥。甚至可以连续和自动地监视正在运行的VM,并在使用它们时立即提取AES密钥,特别是当VM使用AES-NI时。

一个真正安全的解决方案将避免解密,更不用说使用服务器上的密钥了。这样做的加密客户端和使用服务器纯粹作为blob存储。

幸运的是,现在您可以在浏览器中进行相当多的加密,包括KDF和AES。对于KDF,您可以使用例如氪-js,以及AES 俄歇aes-es

票数 2
EN

Security用户

发布于 2018-01-09 23:00:00

如果您期望服务器接受明文数据,然后对其进行加密,则不要认为对称密钥是可能的;只在会话期间将加密密钥保存在内存中并不能真正保护数据,因为(对于相对繁忙的服务而言)密钥将在内存中,因此数据在整个工作日都容易被解密。

这可能是一种有效的防御措施,防止有人拦截您的备份,或试图直接从磁盘窃取数据;但不是针对主动服务的黑客攻击。

如果加密发生在客户端,而您在SaaS云中收到的所有信息都是密文,则可能会有效--但是云将无法对这些数据进行任何处理。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/155920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档