ruby-on-rails - 我必须使用什么加密过程才能通过 HTTP 协议(protocol)发送加密的 'email' 和 'password' 值?

标签 ruby-on-rails ruby security ruby-on-rails-3 encryption

我正在使用 Ruby on Rails 3,我想通过 HTTP 协议(protocol)发送“电子邮件”和“密码”值(我知道,我不应该,但我需要)。我需要将用户凭据从我的客户端应用程序发送到我的服务应用程序*。

我可以使用公钥和私钥 RSA 来实现这一点,但如果是这样,我不能通过 HTTP 将公钥发送给接收者,否则黑客可以窃取 key 并解密内容。另一方面,HMAC 加密(如果我理解的话)仅适用于验证数据完整性和消息的真实性。

我听说过 AES...它对我的目的有用吗?如果是这样,我在哪里可以找到有关如何将它与 Ruby\Ruby on Rails 一起使用的教程?我“只是”需要在客户端加密用户凭据并在服务器端解密。

附言I:如果我写的东西有误,请告诉我。

附言II:如果您建议其他方法,请告诉我!


更新一

*客户端是一个web应用程序(一个站点web,例如'www.site1.com),服务器是另一个web应用程序(另一个站点web,例如'www.site2.com)。


更新二

使用 RSA 加密...

客户端-I-服务步骤:

  1. 客户端生成公\私钥paris

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

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

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

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

  1. 拦截消息

  2. 拿到公钥

  3. 解密并窃取用户凭据

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

最佳答案

使用 TLS/SSL 的 HTTPS。

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

这是一个已解决的问题。

关于ruby-on-rails - 我必须使用什么加密过程才能通过 HTTP 协议(protocol)发送加密的 'email' 和 'password' 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5137310/

相关文章:

ruby-on-rails - ActiveRecord::Base.establish_connection 与 AWS 上的 postgresql

security - 有什么方法可以保证 git 用户在提交和推送时不使用虚假帐户信息?

ASP.NET 成员(member)盐?

iphone - 如何使iPhoneHTTPServer安全服务器

ruby-on-rails - Apache/nginx 在 Rails 应用程序中的作用是什么

ruby-on-rails - 为什么 Controller 需要实例变量来使用ajax

ruby-on-rails - 在 docker 中播种 rails 应用程序以便它可以重复启动的正确方法是什么

ruby - 使用 Seq No 、 Ack No 和/或 Datasize 区分 TCP 连接

ruby-on-rails - WebVtt 的 content_type 是什么?

ruby-on-rails - 如何从 Ruby on Rails 5.0.2 中删除 bootstrap-sass