使用 asp.net 身份和 IDataProtection 保护敏感数据

Protect sensitive data using asp.net identity and IDataProtection

第一次写到这里,如有不妥之处,敬请见谅。我还没有完全熟悉规则。

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

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

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

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

如果您对我的工作有什么建议,我将不胜感激。

祝你有愉快的一天,提前致谢。

不要"encrypt all the things"。加密是有代价的。从本质上讲,它速度慢且处理密集,因为这才是真正为您购买安全性的东西。您实质上是在创建一个数学问题,计算机需要很长时间才能合理解决。当然,在许多情况下加密是必要的,但因为这是一种权衡,你应该只在那些特定情况下这样做,即 高度 敏感数据,如密码、社会安全号码, 信用卡号等

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

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

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