Mysql 在数据库中存储加密数据的最佳做法是什么?
我正在建立一个网站,用户将在其中存储敏感数据。有权访问数据库的人应该不能查看这些数据,但我不能使用哈希函数,因为用户需要查看他们存储的数据。我该怎么做呢;DR:加密数据库的列不会有多大帮助 最佳实践:在你花时间和金钱保护你的系统之前,先弄清楚你的威胁模型。如果你建立了复杂的安全措施,却没有清楚地了解你的威胁模型,你会欺骗自己,使自己产生错误的安全感 而且,对DBMS中的列进行加密是一项复杂的安全措施 你的威胁模型是什么?你会受到什么样的攻击?是谁干的?攻击将如何伤害你 您最可能的外部攻击来自网络罪犯侵入您的web服务器,窃取用户信息,实施身份盗窃(Equifax)、勒索(Ashley Madison)或间谍活动(美国政府人力资源数据库) 如果对DBMS中的某些列进行加密,并且web用户需要能够查看和更新这些列,则web服务器必须知道加密和解密密钥。如果罪犯盗用了你的网络服务器,他会得到你的钥匙。因此,他可以访问您的dbms的加密列。而且,他会有一个大的路标,上面写着看!这是秘密 当然,还有很多其他可以想象的外来攻击。有人可能会突破你的防火墙,直接攻击你的数据库。有人可以进入缓存并抓取缓存的敏感数据。有人可能猜到你的web应用的管理员密码。或者,窃取批量上传文件 您提出的设计设想了内部攻击。必须防止已经具有DBMS访问凭据的用户看到某些表中的某些列。他们将如何处理这些信息?你没说。威胁是什么 停止加密,你可以做这些事情来防止你的内部人员侵犯你的用户的机密性Mysql 在数据库中存储加密数据的最佳做法是什么?,mysql,database,security,encryption,Mysql,Database,Security,Encryption,我正在建立一个网站,用户将在其中存储敏感数据。有权访问数据库的人应该不能查看这些数据,但我不能使用哈希函数,因为用户需要查看他们存储的数据。我该怎么做呢;DR:加密数据库的列不会有多大帮助 最佳实践:在你花时间和金钱保护你的系统之前,先弄清楚你的威胁模型。如果你建立了复杂的安全措施,却没有清楚地了解你的威胁模型,你会欺骗自己,使自己产生错误的安全感 而且,对DBMS中的列进行加密是一项复杂的安全措施 你的威胁模型是什么?你会受到什么样的攻击?是谁干的?攻击将如何伤害你 您最可能的外部攻击来自网络
信用卡
表。”如果你在美国处理医疗数据,你已经有了HIPAA指南。让你的内部人员理解并同意你的指导方针 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访问凭据的用户看到某些表中的某些列。他们将如何处理这些信息?你没说。威胁是什么 停止加密,你可以做这些事情来防止你的内部人员侵犯你的用户的机密性