Security 在数据库中加密电子邮件地址值得吗?
我已经用它在数据库中存储密码,这意味着我应该对攻击免疫 不过,我有一个想法:如果有人真的掌握了我的数据库怎么办?它包含用户的电子邮件地址。我真的不能把它们散列,因为我会用它们来发送通知电子邮件,等等Security 在数据库中加密电子邮件地址值得吗?,security,email,encryption,Security,Email,Encryption,我已经用它在数据库中存储密码,这意味着我应该对攻击免疫 不过,我有一个想法:如果有人真的掌握了我的数据库怎么办?它包含用户的电子邮件地址。我真的不能把它们散列,因为我会用它们来发送通知电子邮件,等等 我应该加密它们吗?你真的需要权衡你最糟糕的情况:有人获得这些电子邮件地址,有人获得这些地址的可能性,以及你实施更改所需的额外努力/时间。与大多数安全要求一样,你需要了解威胁的级别 如果电子邮件地址被泄露,会造成什么损害 发生的可能性有多大 更换电子邮件地址所造成的损害可能比暴露电子邮件地址所造成的损
我应该加密它们吗?你真的需要权衡你最糟糕的情况:有人获得这些电子邮件地址,有人获得这些地址的可能性,以及你实施更改所需的额外努力/时间。与大多数安全要求一样,你需要了解威胁的级别 如果电子邮件地址被泄露,会造成什么损害 发生的可能性有多大 更换电子邮件地址所造成的损害可能比暴露电子邮件地址所造成的损害大得多。特别是如果您正在使用电子邮件地址验证密码是否重置为安全系统
如果对密码进行哈希运算,则密码被替换或公开的可能性会大大降低,但这取决于您使用的其他控件。我认为这取决于数据库的应用程序 最大的问题是,加密密钥存储在哪里?因为如果黑客拥有超过你数据库的任何东西,你所有的努力都可能白费了。(请记住,您的应用程序将需要该加密密钥来解密和加密,因此黑客最终将找到加密密钥并使用加密方案) 赞成者:
- 仅数据库泄漏不会暴露电子邮件地址
- 加密意味着性能损失
- 如果不是不可能的话,分配数据库操作将更加困难
我想说的是,如果你有敏感数据,你不想落入坏人之手,你可能应该尽你所能让黑客得到它,即使它不是100%的傻瓜。SQL Server和Oracle(我相信还有其他DBs)都支持数据库级别的数据加密。如果您想要加密某些内容,为什么不简单地抽象对数据库服务器端可以加密的数据的访问,并让用户选择是否使用加密数据(在本例中,SQL命令将不同)。如果用户想要使用加密数据,那么它可以配置数据库服务器,并且所有与密钥管理相关的维护工作都是使用标准DBA工具进行的,由DB供应商而不是您进行的。不要意外地将加密与混淆混为一谈。我们通常混淆电子邮件以防止垃圾邮件。许多网站都会有“网站管理员”来减缓爬虫程序将电子邮件地址解析为潜在的垃圾邮件目标的速度。这应该在HTML模板中完成——在持久数据库存储中这样做没有任何价值 我们不加密任何东西,除非在传输过程中需要保密。您的数据将在何时何地传输