Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在数据库中存储加密数据的最佳做法是什么?_Mysql_Database_Security_Encryption - Fatal编程技术网

Mysql 在数据库中存储加密数据的最佳做法是什么?

Mysql 在数据库中存储加密数据的最佳做法是什么?,mysql,database,security,encryption,Mysql,Database,Security,Encryption,我正在建立一个网站,用户将在其中存储敏感数据。有权访问数据库的人应该不能查看这些数据,但我不能使用哈希函数,因为用户需要查看他们存储的数据。我该怎么做呢;DR:加密数据库的列不会有多大帮助 最佳实践:在你花时间和金钱保护你的系统之前,先弄清楚你的威胁模型。如果你建立了复杂的安全措施,却没有清楚地了解你的威胁模型,你会欺骗自己,使自己产生错误的安全感 而且,对DBMS中的列进行加密是一项复杂的安全措施 你的威胁模型是什么?你会受到什么样的攻击?是谁干的?攻击将如何伤害你 您最可能的外部攻击来自网络

我正在建立一个网站,用户将在其中存储敏感数据。有权访问数据库的人应该不能查看这些数据,但我不能使用哈希函数,因为用户需要查看他们存储的数据。我该怎么做呢;DR:加密数据库的列不会有多大帮助

最佳实践:在你花时间和金钱保护你的系统之前,先弄清楚你的威胁模型。如果你建立了复杂的安全措施,却没有清楚地了解你的威胁模型,你会欺骗自己,使自己产生错误的安全感

而且,对DBMS中的列进行加密是一项复杂的安全措施

你的威胁模型是什么?你会受到什么样的攻击?是谁干的?攻击将如何伤害你

您最可能的外部攻击来自网络罪犯侵入您的web服务器,窃取用户信息,实施身份盗窃(Equifax)、勒索(Ashley Madison)或间谍活动(美国政府人力资源数据库)

如果对DBMS中的某些列进行加密,并且web用户需要能够查看和更新这些列,则web服务器必须知道加密和解密密钥。如果罪犯盗用了你的网络服务器,他会得到你的钥匙。因此,他可以访问您的dbms的加密列。而且,他会有一个大的路标,上面写着看!这是秘密

当然,还有很多其他可以想象的外来攻击。有人可能会突破你的防火墙,直接攻击你的数据库。有人可以进入缓存并抓取缓存的敏感数据。有人可能猜到你的web应用的管理员密码。或者,窃取批量上传文件

您提出的设计设想了内部攻击。必须防止已经具有DBMS访问凭据的用户看到某些表中的某些列。他们将如何处理这些信息?你没说。威胁是什么

停止加密,你可以做这些事情来防止你的内部人员侵犯你的用户的机密性

  • 将敏感数据完全从系统中取出。例如,如果您正在处理信用卡,请使用stripe.com或braintree.com。他们会为你保守秘密,他们有优秀的网络安全团队
  • 弄清楚你是否能信任你的内部人。调查未来的雇员等
  • 制定明确的安全政策。例如,“除非我们有特殊需要,否则我们从不查看
    信用卡
    表。”如果你在美国处理医疗数据,你已经有了HIPAA指南。让你的内部人员理解并同意你的指导方针
  • 解雇故意违反这些政策的内部人员
  • 建立有助于执行策略的机制。向每位内部人员发出自己的用户名/密码对以访问DBMS。在表和列级别使用选择性授权操作以允许和禁止查看数据。比如说,

     GRANT SELECT (name, address) ON person TO username@'%';
    
  • 用户名
    查看
    姓名
    地址
    列,但不查看
    人员
    表中的
    纳税人id
    列。读这个

    花时间和金钱在保护DBMS机器的好防火墙上。研究并遵循这些做法。花时间和金钱运行web应用程序的渗透测试并修复问题。把它们花在审查和培训你的内部人员上。这些东西比想象中的加密列魔术子弹更有效地减慢了攻击者的速度

    有一个关于两个人和熊的老笑话

    熊:吼叫

    亚当:哦,我不知道我们是否能跑得比这只熊快

    比尔:我只要跑得比你快就行了

    这是处理小型网站安全性的好方法。让它变得足够硬,让坏人攻击别人


    如果你正在运行一个包含大量敏感记录的大型网站(我在看你,Equifax),这还不够好

    TL;DR:加密数据库的列不会有多大帮助

    最佳实践:在你花时间和金钱保护你的系统之前,先弄清楚你的威胁模型。如果你建立了复杂的安全措施,却没有清楚地了解你的威胁模型,你会欺骗自己,使自己产生错误的安全感

    而且,对DBMS中的列进行加密是一项复杂的安全措施

    你的威胁模型是什么?你会受到什么样的攻击?是谁干的?攻击将如何伤害你

    您最可能的外部攻击来自网络罪犯侵入您的web服务器,窃取用户信息,实施身份盗窃(Equifax)、勒索(Ashley Madison)或间谍活动(美国政府人力资源数据库)

    如果对DBMS中的某些列进行加密,并且web用户需要能够查看和更新这些列,则web服务器必须知道加密和解密密钥。如果罪犯盗用了你的网络服务器,他会得到你的钥匙。因此,他可以访问您的dbms的加密列。而且,他会有一个大的路标,上面写着看!这是秘密

    当然,还有很多其他可以想象的外来攻击。有人可能会突破你的防火墙,直接攻击你的数据库。有人可以进入缓存并抓取缓存的敏感数据。有人可能猜到你的web应用的管理员密码。或者,窃取批量上传文件

    您提出的设计设想了内部攻击。必须防止已经具有DBMS访问凭据的用户看到某些表中的某些列。他们将如何处理这些信息?你没说。威胁是什么

    停止加密,你可以做这些事情来防止你的内部人员侵犯你的用户的机密性

  • 将敏感数据完全从系统中取出。例如,如果您处理信用卡,wo