Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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/9/ssl/3.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
C# 保护应用程序机密,如加密密钥和其他敏感数据_C#_Asp.net_Security_Encryption_Cryptography - Fatal编程技术网

C# 保护应用程序机密,如加密密钥和其他敏感数据

C# 保护应用程序机密,如加密密钥和其他敏感数据,c#,asp.net,security,encryption,cryptography,C#,Asp.net,Security,Encryption,Cryptography,我目前正在开发一个ASP.NET MVC 4.5.2应用程序。该应用程序没有存储真正有价值的数据,但在我看来,安全性永远不应该被低估,即使无害的数据也可能在坏人手中变得有害。所以我决定加密所有与用户相关的数据,比如聊天信息和个人用户数据。我正在使用ASP.NET标识向应用程序添加用户。用户密码由Identity Framework自动哈希。但是我想进一步加密这些数据集,这样密码散列、电子邮件地址、用户名。。。在数据库中也是加密的。一个应用程序用户发送给另一个应用程序用户的每条文本消息也应该加密,

我目前正在开发一个ASP.NET MVC 4.5.2应用程序。该应用程序没有存储真正有价值的数据,但在我看来,安全性永远不应该被低估,即使无害的数据也可能在坏人手中变得有害。所以我决定加密所有与用户相关的数据,比如聊天信息和个人用户数据。我正在使用ASP.NET标识向应用程序添加用户。用户密码由Identity Framework自动哈希。但是我想进一步加密这些数据集,这样密码散列、电子邮件地址、用户名。。。在数据库中也是加密的。一个应用程序用户发送给另一个应用程序用户的每条文本消息也应该加密,这样即使数据库被盗,也只有授权用户才能读取内容

在阅读了大量关于如何加密这些数据集的文章后,我决定使用AES或其他加密算法。在数据库中加密和存储数据并不是什么大事。在存储加密密钥之前,整个过程并没有真正令人兴奋。我已经阅读了大量关于StackOverflow等平台的教程和帖子,其中讨论了如何正确加密敏感数据,但大多数文章的结尾都没有提供存储加密密钥的可靠解决方案

经过一些研究,我从StackOverflow用户那里找到了一些关于这个主题的有趣答案:

这是一个开源项目,专注于存储机密。我想在这里为搜索这个主题的其他研究员提供这些链接,但不幸的是,我的声誉不足以添加所有链接,所以我决定只提供两个最相关的链接

参考PaulGs的答案

[…]我的实现是在windows机箱上运行一个密钥服务器应用程序。此应用程序需要输入两个单独的“密钥服务器主密钥”,然后才能使用。只有密钥服务器管理员才知道这些密钥。这些密钥异或生成主密钥,主密钥仅在应用程序运行时存储在受保护的内存中。然后,应用程序可以自动生成加密强密钥加密密钥,这些密钥使用主密钥以加密形式存储。[……]

。。。我的问题是:

编辑:


从安全的角度来看,PaulGs过程有多“好”,作为csharp开发人员,我如何创建“受保护内存”?我希望这个问题和我的最后一组问题一样更具体。

你问的问题或多或少是不同的。考虑把你的帖子分成多个帖子,以防止关闭太广。如果你想要一个安全的解决方案,有11种方法来实现它,雇佣一个密码安全域专家来执行设计和审查代码。@ ArtjomB。请指定如何将帖子拆分为多个帖子?你是说我应该问不同的问题吗?我对StackOverflow很陌生,我的英语不是很好。@zaph谢谢你对我问题的评论。雇佣密码安全领域专家的问题是,这个项目的预算没有那么大,负担不起这样一位专家。啊,所以出现了成本与安全的丑陋对比,成本再次获胜。我们不需要臭名昭著的安全性,只要它的外观,让我们加密一些东西。