【问题标题】:Protect sensitive data using asp.net identity and IDataProtection使用 asp.net 身份和 IDataProtection 保护敏感数据
【发布时间】:2019-10-16 21:00:45
【问题描述】:

第一次写到这里,如有错误请见谅。我还没有完全熟悉规则。

我正在使用带有 Identity 和 EF Core 的 Asp.net Core 2.1 WebApi 做作业。

我一直在寻找一种方法来加密和解密用户敏感数据,使用 IDataProtection 和 Identity,但我无法加密电子邮件等数据,因为它会验证它是否是电子邮件的正确格式。

任务的最初想法是所有这些数据都用上面提到的工具加密。

我使用过 MSDN 文档,但我不知道是否要加密某些内容,例如名字和姓氏,而忽略其他内容,例如电子邮件。如果你忽略了某些字段,你有什么理由告诉老师你为什么不加密这些字段?

如果您对我能做什么有建议,我将不胜感激。

祝你有美好的一天,提前感谢。

【问题讨论】:

标签: c# asp.net-identity asp.net-core-webapi user-data


【解决方案1】:

不要“加密所有的东西”。加密是有代价的。从本质上讲,它很慢且处理密集,因为这实际上是为您购买安全性的原因。您实际上是在创建一个数学问题,该问题需要计算机太长时间才能合理解决。当然,在许多情况下加密是必要的,但由于这是一种权衡,您应该只在那些特定情况下进行加密,即高度敏感数据,如密码、社会保险号、信用卡号码等。

电子邮件地址、名字、姓氏等不是这种情况。数据本身并不敏感,而且在许多情况下无论如何已经是公开的。例如,某人的名字和姓氏不是“秘密”;他们公开将这些信息告诉他们可能遇到的任何人。

然而,如果或当它与与该信息一起私有的其他数据相关联时,这些普通信息可能上升到敏感级别。例如,如果您有一个包含财务信息的数据集,例如薪水、债务与收入比率等,那么该数据本身不一定是私有的或敏感的,但是当您合并它带有某人的名字和姓氏、电子邮件地址等,它变得非常私密和敏感。这就是 PII(个人身份信息)概念发挥作用并遵守欧盟 GDPR 等法律的地方。

即便如此,个人数据也不需要加密;您必须以敏感的方式简单地处理组合数据。换句话说,您需要确保对任何数据库的访问受到限制,仅通过安全通道传输数据,例如 HTTPS 等。只要数据通常受到保护,每个单独的数据都不需要加密.

【讨论】:

  • 感谢您的回答。您所说的我想我已经有了很好的参考。我知道这并没有什么特别之处,在存储、访问和显示与用户数据相关的数据时,它应该足以具有良好的安全性。再次感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
  • 2011-03-14
  • 2014-07-14
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
相关资源
最近更新 更多