【问题标题】:Should I be encrypting data in a CloudSQL database?我应该加密 CloudSQL 数据库中的数据吗?
【发布时间】:2017-05-27 13:03:39
【问题描述】:

Google CloudSQL documentation 声明数据在传输和静态时均已加密。

我在 Django 应用程序中使用 pgcrypto 来加密敏感信息。但是我想知道这样做是否有任何意义,因为它已经在静止时加密了。我唯一能想象的是,带有已部署代码的 Google App Engine 服务器遭到破坏,并且数据库的密码以某种方式泄露 - 黑客最终会在“读取”数据时访问未加密的数据。但随后即使使用 pgcrypto,如果 GAE 服务器被入侵,他们仍然能够运行代码来获取未加密的数据。

我是不是想多了?目标是通过引入尽可能多的“障碍”,让最终用户完全放心,以确保他们的数据保持完全安全。我有一种感觉,我真的不需要 pgcrypto,但正在寻找有根据的回复。

【问题讨论】:

  • 我认为您描述的情况可能需要加密您的数据。在不了解您的应用程序的情况下,即使您也无法访问他们的数据,您的用户也会放心。
  • 没错,但是 pgcrypto 会给我对称加密,这意味着我仍然能够读取和访问数据(不是直接,而是通过运行我的代码然后在运行中解密它间接地 -这适用于所有使用对称密钥加密的应用程序)。借助 CloudSQL 的内置加密,我当然可以使用任何 SQL 数据库查看器以纯文本格式读取数据(但仍需要数据库密码)。我有一种感觉 pgcrypto 会有它的好处,不确定其他人会做什么。

标签: django google-app-engine encryption google-cloud-sql pgcrypto


【解决方案1】:

比较有根据的答案是:是的。

CloudSQL 提供的底层加密类似于 OS X 提供的FileVault - 您的内容确实是加密的,但如果您已登录,一切对您来说都是可读的。

主要担心的是你,或者能够破坏你的服务器的人,能够读取纯文本数据。数据需要加密,我个人已经超越了大多数数据库提供的默认 AES 128 位,并切换到带有初始化向量的 AES 256 位(每个加密内容都有一个不同的)。这将确保数据是加密的,即使您自己也无法访问和读取。是的,您的代码最终能够解密,但存储和保护解密密钥是完全不同的主题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    相关资源
    最近更新 更多