Ruby on Rails -为什么某些数据要加密?



加密数据

刚刚在一些模型中添加了attr_encrypted,我开始认为黑客的工作可能没有那么难。

我在应用程序服务器的不同服务器上有一个数据库-然而,如果有人设法进入数据库服务器,那么该人也可以访问存储密钥的应用程序服务器(也许该假设是不正确的),因为它们具有相同类型的安全措施。

<标题>

Rails代码以可读的文本格式存储在服务器上,因此可以访问密钥。当然,如果有人掌握了数据库,并且掌握了这些密钥,那么整个数据加密就变得无关紧要了,因为它只是(稍微)延长了黑客解密信息的时间。

如果是,是否有进一步的安全措施可以采取,或者我完全错过了加密的概念?

我已经看了一下attr_encrypted gem和相关的自述和问题,但找不到任何有用的

attr_encrypted保护您的数据免受简单的数据泄漏。想想NSA嗅探数据中心间的电缆(您的数据库复制日志将被发送)或心怀不满的DBA(无法访问应用程序源)将您的所有数据转储到互联网。

如果是实际的破坏,入侵者可能无法访问应用程序代码和数据库(取决于您的架构和安全措施)。如果他们两者都有,那么是的,游戏结束了。

总而言之,(对于敏感数据)有它总比没有好。我觉得这没什么。

不要将密钥放在应用服务器中,也不要将它们检入到git存储库中。

应该使用环境变量。你可以采用不同的开发和生产方法。

在Heroku上很容易做到(例如)。

我有一个加密问题:

# app/models/concerns/encryption.rb
module Encryption
  extend ActiveSupport::Concern
  module ClassMethods
    def encryption_key
      ENV['ENCRYPT_KEY']
    end
  end
end

在模型中,我这样做

class User < ActiveRecord::Base
  include Encryption
  attr_encrypted :name, :key => encryption_key
end

在开发中,我使用.env文件来存储密钥并使用foreman检索。

相关内容

  • 没有找到相关文章

最新更新