我必须使用什么加密程序通过HTTP协议发送加密的“电子邮件”和“密码”值?
我正在使用Ruby on Rails 3,我希望通过HTTP协议发送’email’和’password’值(我知道,我不应该,但我需要它)。 我需要将用户凭据从我的客户端应用程序发送到我的服务应用程序*。
我可以使用公共私有RSA密钥来实现这一点,但如果是这样,我必须不通过HTTP将公钥发送给收件人,否则黑客可以窃取密钥并解密内容。 另一方面,HMAC加密(如果我理解的话)仅用于validation数据的完整性和消息的真实性。
我听说过AES …… 这对我的目的有好处吗? 如果是这样,我可以在哪里找到关于如何在Ruby \ Ruby on Rails上使用它的教程? 我“只是”需要在客户端加密用户凭据并在服务器端解密。
PS I:如果我写错了,请告诉我。
PS II:如果您建议其他方法,请告诉我!
更新我
*客户端是Web应用程序(站点Web,例如’www.site1.com),服务器是另一个Web应用程序(另一个站点Web,例如’www.site2.com)。
更新II
使用RSA加密……
客户端I服务步骤:
-
客户生成公钥\私钥巴黎
-
我(一个真人)手动将公钥从客户端复制粘贴到服务
-
客户端向服务发送包含加密用户凭证的消息(客户端不发送\将公钥附加到HTTP请求)
-
使用公钥(只有服务知道)的服务,解密用户凭证并继续登录用户
现在,如果我发送公钥而不是执行第2步,那么客户端必须通过HTTP协议在步骤3中发送公钥,黑客可以
-
拦截消息
-
拿公钥
-
解密用户凭据并窃取它们
那么, 如果我将公钥发送到服务 , 是否应该 使用RSA加密来 加密用户凭证 (那些是重要和私人信息)?
我可以使用公共私有RSA密钥来实现这一点,但如果是这样,我必须不通过HTTP将公钥发送给收件人,否则黑客可以窃取密钥并解密内容。
1)通过HTTP将公钥发送给收件人。
2)客户端使用它来加密数据。
3)没有黑客可以使用公钥解密内容。
4)在您的服务器中,使用私钥来解密内容。
示例: 使用Ruby加密敏感数据(在Rails上)
“在非对称密钥加密方案中,任何人都可以使用公钥加密消息,但只有配对私钥的持有者才能解密。”
编辑
背景 :
- 公钥用于且仅用于加密数据。
- 私钥用于且仅用于解密数据。
如果黑客拦截公钥,她唯一能做的就是加密数据。
甚至HTTPS也是这样运作的。
Obs:只有服务器应该知道私钥。
Obs2:无论如何,尝试启用HTTPS。 它会让你的生活变得更轻松。