【问题标题】:A Good Method for Storing Personal Information存储个人信息的好方法
【发布时间】:2012-01-02 14:49:38
【问题描述】:

我目前正在编写一个 Web 应用程序(用 PHP 编写),其中包含有关用户的敏感信息,但为了遵守 DPA,我希望它在共享服务器上运行时被完全加密。然后将此信息提供给已在外部识别的特定用户。

虽然我对确保数据分发方式的安全充满信心,并且对服务器公司充满信心,但我只想得到保证。

我想知道是否有人对如何使用同样安全的密钥加密存储的数据有任何想法。我知道它可能会被混淆或以某种方式掩盖,但可以使用。是的,这可能有点矫枉过正,但我​​需要确定这一点。

【问题讨论】:

  • 在将数据发送给您之前让客户端加密数据是否可行?客户拥有密钥,因此您永远无法访问个人信息。
  • 如果在同一个共享服务器上运行,解密密钥不能直接从应用程序中取出吗?
  • @sarnold 数据是通过 HTTPS 发送的,有一个私钥,需要从系统内部(由受信任的个人)访问,对不起,应该这么说
  • @jli 你是什么意思?全部在 php 中,所以脚本仍然可见

标签: php security data-protection data-security


【解决方案1】:

不要将密钥存储在系统中。将密钥存储在系统外部(纸片、其他系统等)。在初始化系统时将密钥提供给系统,并让系统始终将其保存在内存中。

【讨论】:

  • 我正在考虑在获取密码的单独服务器上安装一个密钥生成器。但这听起来很酷,但如果可能的话,用 PHP 是否可以做到这一点?
  • 如果您的 X509 证书受密码保护,至少 Apache 启动例程可以做到这一点——在启动时提示输入密码。这确实意味着必须有一个 人类 来启动服务器,但是强迫攻击者从内存中提取密钥而不是仅仅从文件中读取它可能会很好。小障碍,你知道的。
  • 听起来可以,只是我无法访问该级别的服务器。你怎么能设置 apache 来做到这一点
  • 我会在应用程序级别进行。如果您控制整个代码路径,而不是使用需要学习的证书存储基础设施,这会更容易,而且我总是害怕证书存储密码被入侵者破解。在我自己的基于 tomcat .war 的产品中,数据库密码是秘密,我这样做的方式是,如果在 servlet 上下文中找不到数据库连接,过滤器会将用户带到输入数据库密码的初始化页面。还有一个额外的密码来限制谁可以输入数据库密码。因此系统初始化安全处于应用级别
  • @agksmehx 所以如果不重新编译 PHP 以在启动时获取代码就不是真正的 PHPable,但是欢呼,有用
【解决方案2】:

将信息加密发送到系统。钥匙应该在用户手中。解密用户计算机上的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多