我创建了两个示例应用程序
我的一些MVC应用程序屏幕通过进行AJAX调用来访问WEB API,这是我能够成功实现的。
现在我想在不使用的情况下实现Hasing / Encryption HTTPS。
我的问题是为了实现Hasing / Encryption 对于AJAX调用,我需要
这种做法是否正确?
答案 0 :(得分:0)
客户端是否应该能够解密从MVC方法返回的数据?
如果没有,那么您可以在MVC和Web API中使用相同的预共享密钥,并且您的方法相对安全。您需要使用HMAC而不是简单的哈希来验证数据的真实性。使用第二个不同的密钥作为HMAC密钥。
使用第二个密钥对加密数据(encrypt-then-MAC)运行HMAC,并将其与密文一起发送。当Web API收到密文和MAC时,它应首先在尝试解密之前验证MAC。
为了使这一点至少有点安全,您需要使用非对称加密来进行对称密钥的密钥交换。
准备:生成两个RSA(或其他)密钥对。一个用于MVC端点,另一个用于Web API。将私钥移动到服务器端点,并将编码形式的公钥添加到客户端页面。
为了使其更加健壮,您可以生成两个对称密钥,并使用一个用于加密,另一个用于HMAC,以便验证对称密文。