如何进行Redis数据加密?

时间:2016-02-10 10:05:48

标签: database encryption redis redis-cluster

我们可以使用 spiped stunnel 保护数据。但是,我们如何在静止数据的同时做到这一点?如果有人拿走了整个数据库怎么办?我们如何加密持久数据存储?我们是否需要在应用层中执行此操作?

2 个答案:

答案 0 :(得分:2)

查看https://redis.io/topics/security处的文档时,显然不支持对静态数据进行加密:

  

Redis旨在由受信任环境中的受信任客户端访问。这意味着通常不会将Redis实例直接暴露给Internet,或者通常是不受信任的客户端可以直接访问Redis TCP端口或UNIX套接字的环境。

并且(强调我的):

  

[...]一般而言,对Redis的不受信任访问应始终由实现ACL的层,验证用户输入以及决定对Redis实例执行哪些操作来调解。 一般而言,Redis并未针对最高安全性进行优化,而是为了获得最佳性能和简单性。

答案 1 :(得分:-1)

我要做的是将数据库设置为某种互联网无法访问的私人服务器。您可以通过私有IP地址与之通信。

Amazon Web Services为虚拟私有云提供了一个非常好的架构,您可以尝试使用它们的免费套餐。 (使用t2.micro实例并确保它们的总运行时间不超过30天,并且它们不会消耗超过30Gb的存储容量)

关于如何在黑客实际访问数据库的情况下保护数据:我将使用单向散列算法加密我将来要检查的所有敏感信息。每种编程语言都有自己的SHA256语法和其他几种加密算法。我相信对于Node.js你可以使用加密模块(不确定它是否有单向散列,但它应该。)

因此,每次用户发送内容时,您都可以对其进行散列并将其与数据库加密数据进行比较。

例如对于电子邮件的情况,它可以是双向散列,这样可以在之后检索。

此时,即使有些人访问了数据库,也会得到无关的信息。