我有一个应用程序,它使用AngularJs 1.5作为前端,使用.net框架作为后端。在我的应用程序中,我必须在来自前端的数据库上存储用户名和密码。要求是:
简而言之,前端应该加密密码,后端应该能够解密它。
我已经分析了许多安全交易密码的技术。
我不熟悉使用angularjs
进行加密和解密处理。我的查询是关于密钥处理。如何在前端和后端安全地存储密钥,而不是在代码中对它们进行硬编码。是否有任何密钥处理安全的方式来共享这些密钥。哪种算法最适合我的要求?(从我的分析,我发现不对称是这个要求的更好选择。如果我错了,请纠正我。)
提前感谢所有回复
答案 0 :(得分:1)
答案 1 :(得分:0)
不确定这是否仍然与您相关,但这是来的。这些是您要问的相当高层次和广泛的问题,因此,我为您提供一些一般性指导。
我肯定会为此使用非对称加密。我很可能会选择像RSA OAEP这样的东西,这要归功于随机填充,每次在同一输入上都会产生不同的密文。这样,攻击者就不会从密文中学到很多东西,而他可以设法拦截。
密钥交换是一个棘手的话题,因为您的最终用户软件很可能在浏览器(是Angular应用)中运行。一种解决方法是将您的公钥包装在可以在浏览器中验证的证书中。
还需要考虑许多其他攻击和方面。例如,如何保护系统免受重放攻击,以及如何在仍然满足可用性要求的同时旋转密钥。覆盖此答案中的所有主题都不可能太宽泛,因此我将其保留在此处。