Какую процедуру шифрования я должен использовать для отправки зашифрованных значений «email» и «password» по протоколу HTTP? - PullRequest
2 голосов
/ 28 февраля 2011

Я использую Ruby on Rails 3 и хотел бы отправить значения 'email' и 'password' (я знаю, что не должен, но мне это нужно) по протоколу HTTP.Мне нужно отправить учетные данные пользователя из моего клиента приложения в мое приложение приложения *.

Я могу использовать общедоступное RSA ключ для достижения этой цели, но, если это так, я не должен отправлять открытый ключ получателю по HTTP, иначе хакер может украсть ключ и расшифровать содержимое.С другой стороны, шифрование HMAC (если я это понял) подходит только для проверки целостности данных и подлинности сообщения.

Я слышал о AES ... это хорошо для моих целей?Если да, то где я могу найти учебное пособие по его использованию с Ruby \ Ruby on Rails? Мне просто нужно зашифровать учетные данные пользователя на стороне клиента и расшифровать их на стороне сервера.

PS I: Если я ошибаюсь в том, что написал, дайте мне знать.

PS II: Если вы предлагаете другие методы, дайте мне знать!


ОБНОВЛЕНИЕI

* Клиент - это веб-приложение (веб-сайт, например, «www.site1.com»), сервер - это другое веб-приложение (другой веб-сайт, например, «www.site2»).com).


ОБНОВЛЕНИЕ II

Использование шифрования RSA ...

Этапы обслуживания клиента:

  1. Клиент генерирует открытый \ закрытый ключ Париж

  2. Я (реальное лицо) копирую и вставляю вручную открытый ключ от клиента куслуга

  3. Клиент отправляет в службу сообщение, включающее зашифрованные учетные данные пользователя (клиент не отправляет \ не добавляет открытый ключ к HTTP-запросу)

  4. Сервис, используя открытый ключ (который знает только сервис), дешифрует учетные данные пользователя и переходит к логину пользователя

Теперь, если я отправлюоткрытый ключ вместо выполнения шага 2, и поэтому клиент должен отправить открытый ключ на шаге 3 через HTTP-протокол, хакер может

  1. перехватить сообщение

  2. взять открытый ключ

  3. расшифровать учетные данные пользователя и украсть их

Итак, следует зашифроватьучетные данные пользователя (это важная и личная информация) с использованием шифрования RSA, если я отправляю открытый ключ в службу ? ​​

Ответы [ 2 ]

7 голосов
/ 28 февраля 2011

HTTPS с TLS / SSL.

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

Это решенная проблема.

1 голос
/ 28 февраля 2011

Я могу использовать открытый закрытый ключ RSA для этого, но если это так, я не должен отправлять открытый ключ получателю по HTTP, иначе хакер может украсть ключ и расшифровать содержимое.

1) Отправьте открытый ключ получателю по HTTP.
2) Клиент использует его для шифрования данных.
3) Ни один хакер не может расшифровать содержимое с помощью открытого ключа.
4) На вашем сервере используйте закрытый ключ для расшифровки содержимого.

Пример: Шифрование конфиденциальных данных с помощью Ruby (на Rails)

"В схеме шифрования с асимметричным ключом любой может шифровать сообщения с использованием открытого ключа, но только владельцапарного закрытого ключа можно расшифровать. "

РЕДАКТИРОВАТЬ

Фон :

  • Используется открытый ключи только для шифрования данных.
  • Закрытый ключ используется для и только для дешифрования данных.

Если хакер перехватывает открытый ключ, единственное, что он может сделать, это зашифроватьdata.
Даже HTTPS работает таким образом.

Obs: секретный ключ должен знать только сервер.

Obs2: Во что бы то ни стало, попробуйте включить HTTPS.Это сделает вашу жизнь намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...