【问题标题】:What are some ways to store data in a database in secure way? [closed]有哪些方法可以安全地将数据存储在数据库中? [关闭]
【发布时间】:2016-03-10 10:54:42
【问题描述】:

在数据库中以加密格式存储数据的最佳技术是什么?我有兴趣了解非对称加密(公钥)与对称加密(由 sql server 支持)之间的权衡。在这两种情况下,应用程序如何解密数据?我们如何维护密钥?

注意 - 改写了每个 cmets 的问题详细信息。

【问题讨论】:

  • 有人可以投票重新打开这个吗?

标签: java sql-server security encryption web-applications


【解决方案1】:

数据不能以纯文本形式存储。

这取决于数据的敏感性。如果是一些敏感数据,如凭据、卡详细信息,则必须对其进行加密。如果它是一般数据,那么每次存储或更新数据时都会被 encryptinh 追上,而每次检索数据时都会被解密。通常密码不被解密,用户密码被加密并与数据库中保存的加密密码进行比较。

开发者可以访问数据库。

开发人员不得访问生产数据,因为其中一些可能包含敏感数据。此外,如果授予某些不敏感表的访问权限,则仅提供只读访问权限,以便无法使用 secure_file_priv 对其进行修改,以便数据无法下载。

开发者可以访问证书。

不是开发人员,只有 devops 必须有权访问证书。

只有特定的应用程序用户可以访问数据库、超级用户密码和查看纯文本数据。

没有用户必须具有插入/更新/删除权限。只有 DBA 必须有权访问,而且他们也必须有权访问加密格式的敏感信息数据。

应用程序类型 - web(使用 java 堆栈构建)

有许多应用程序在 aspx 中,也有许多在 php 中。在Java堆栈中开发Web应用程序并不能保证安全性。它取决于架构,您对中间人攻击,sql注入攻击,DOS攻击等攻击的预防措施。

数据库 - MS sql 服务器

这取决于您正在开发的应用程序及其对该数据库的支持。

操作系统 - Linux

Linux 服务器和 windows 服务器都可以使用。没问题。两者都实施了预防方法来保护您的系统

Web 服务器 - apache tomcat

您可以使用 apache tomcat 服务器或 IBM WAS 服务器。这取决于您的要求。

应用程序正常运行时间很重要。所以任何与维护相关的解决方案

是的,为此,您的解决方案必须通过在数据库端和后端服务器上复制数据来支持高可用性。

内存中的超级用户密码将不起作用,因为应用程序会在服务器重启期间丢失密码。

这些密码存储在配置文件中,或者由应用程序直接使用加密密钥读取数据库。

【讨论】:

  • @Tom 基本上一些数据经过哈希处理,然后使用各种算法加密。
  • 看来您正在尝试重新定义他的要求。我认为张贴者是在说明他对安全级别的要求。
  • @Brad 他在问“有哪些方法可以安全地将数据存储在数据库中?”。因此,对于他的观点,我正在回复是否真的需要。感谢理解和支持
猜你喜欢
  • 1970-01-01
  • 2012-03-28
  • 2013-06-05
  • 2013-06-23
  • 1970-01-01
  • 2011-11-12
  • 2010-11-26
  • 2015-08-25
  • 2017-05-26
相关资源
最近更新 更多