我必须使用什么加密程序通过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服务步骤:

  1. 客户生成公钥\私钥巴黎

  2. 我(一个真人)手动将公钥从客户端复制粘贴到服务

  3. 客户端向服务发送包含加密用户凭证的消息(客户端不发送\将公钥附加到HTTP请求)

  4. 使用公钥(只有服务知道)的服务,解密用户凭证并继续登录用户

现在,如果我发送公钥而不是执行第2步,那么客户端必须通过HTTP协议在步骤3中发送公钥,黑客可以

  1. 拦截消息

  2. 拿公钥

  3. 解密用户凭据并窃取它们

那么, 如果我将公钥发送到服务是否应该 使用RSA加密来 加密用户凭证 (那些是重要和私人信息)?

我可以使用公共私有RSA密钥来实现这一点,但如果是这样,我必须不通过HTTP将公钥发送给收件人,否则黑客可以窃取密钥并解密内容。

1)通过HTTP将公钥发送给收件人。
2)客户端使用它来加密数据。
3)没有黑客可以使用公钥解密内容。
4)在您的服务器中,使用私钥来解密内容。

示例: 使用Ruby加密敏感数据(在Rails上)

“在非对称密钥加密方案中,任何人都可以使用公钥加密消息,但只有配对私钥的持有者才能解密。”

编辑

背景 :

  • 公钥用于且仅用于加密数据。
  • 私钥用于且仅用于解密数据。

如果黑客拦截公钥,她唯一能做的就是加密数据。
甚至HTTPS也是这样运作的。

Obs:只有服务器应该知道私钥。

Obs2:无论如何,尝试启用HTTPS。 它会让你的生活变得更轻松。

使用TLS / SSL的HTTPS。

http://en.wikipedia.org/wiki/Https

这是一个已解决的问题。