Двухстороннее шифрование пароля без ssl

Запомните это:

Потребители едят ужин (супер); Производитель продлевает фабрику своего родителя

14
задан dsims 13 February 2013 в 16:21
поделиться

8 ответов

  1. Генерируют случайный ключ на сервере (я использую php).
  2. Сохраняют ключ в сессии и также производят ключ в переменной JavaScript.
  3. На форме отправляют, используют Тройной DES в JavaScript с ключом для шифрования пароля.

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

Это было сказано прежде, и я повторю его: не пытайтесь составить свои собственные криптографические протоколы! Существуют установленные протоколы там для такого рода вещи, которые были созданы, коллега рассмотрел, избитый на, взломанный на, введенный по абсолютному адресу и подталкивавший профессионалами, используют их! Никакой человек не собирается быть способным придумать что-то лучше, чем все криптографическое и сотрудничество сообщества безопасности.

34
ответ дан 1 December 2019 в 06:02
поделиться

Сертификат SSL, который самоподписывается, не стоит денег. Для бесплатного сервиса Твиттера, который является, вероятно, очень хорошо для пользователей.

0
ответ дан 1 December 2019 в 06:02
поделиться

, Как я могу отправить уязвимые данные по незащищенному каналу

С предобщим секретным ключом. Это - то, чего Вы делаете попытку в своем предложенном решении, но Вы не можете отправить тот ключ по незащищенному каналу. Кто-то упомянул DH, который поможет Вам согласовать ключ. Но другая часть того, что делает SSL, обеспечивают аутентификацию, для предотвращения атак "человек посередине" так, чтобы клиент знал, что они согласовывают ключ с человеком, которым они намереваются общаться с.

совет Chris Upchurch является действительно единственным хорошим ответом существует для 99,99% инженеров - не делают этого. Позвольте кому-то еще сделать это и использовать их решение (как парни, которые записали клиент/сервер SSL).

я думаю, что идеальное решение здесь должно было бы заставить Твиттер поддерживать OpenID и затем использовать это.

0
ответ дан 1 December 2019 в 06:02
поделиться

Когда ключ отправляется между клиентом и сервером, это - открытый текст и подвергающийся перехвату. Объединение, которое с зашифрованным текстом пароля и пароля дешифровано.

Diffie-Hellman является хорошим решением. Если только необходимо аутентифицировать их и не на самом деле передать пароль (потому что пароль уже хранится на сервере), затем, можно использовать Дайджест-аутентификация HTTP , или некоторое изменение там.

2
ответ дан 1 December 2019 в 06:02
поделиться

Таким образом, как это больше безопасно? Даже при том, что Вы, возможно, защитили browser<> Ваш сервер, что относительно остальной части Интернета (Ваш server<> Твиттер)?

, по моему скромному мнению, недопустимо попросить имя пользователя и пароль другого сервиса и ожидать, что люди введут это. И если Вы заботитесь так очень - не интегрируют их, пока они не получают свое действие прямо и повторно включают OAuth. (Они поддерживали его некоторое время, но отключили его несколько месяцев назад.)

Тем временем, почему бы не предложить OpenID? Каждый Google, Yahoo!, VOX и т.д. считает, имеет тот. Люди не могли бы знать о нем, но возможности действительно, действительно высоко что у них уже есть OpenID. Проверка этот список для наблюдения то, что я имею в виду.

2
ответ дан 1 December 2019 в 06:02
поделиться

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

Для ответа на общий вопрос: Вы просто отправляете его. я думаю Ваш реальный , общий вопрос: “ Как делают я отправляю уязвимые данные по небезопасному channel— и сохраните это безопасным? ” Вы не можете.

Это кажется, что Вы решили, что безопасность не стоит 10$ – 20 в месяц сертификат стоил бы, и защищать пароли Твиттера, это, вероятно, верно. Так, почему проводят время для обеспечения иллюзии безопасности? Просто проясните своим пользователям, что их пароль будет представлен ясное и позволять им сделать свой собственный выбор.

6
ответ дан 1 December 2019 в 06:02
поделиться

Я реализовал другой подход

  1. Сервер: имя пользователя и хэш пароля сохранены в базе данных
  2. Сервер: отправьте проблему с формой, чтобы запросить пароль, сохранить его на сессии с меткой времени и Клиентом IP-адреса
  3. клиента: хешируйте пароль, concat challenge|username|passwordhash, хешируйте его снова и отправьте его на сервер
  4. Сервер: проверьте метку времени, IP, сделайте ту же конкатенацию/хеширование и сравните ее

, Это относится к передаче пароля. Используя его для данных означает использовать заключительный хеш в качестве ключа шифрования для простого текста и генерировать случайный вектор инициализации, переданный с шифрованным текстом к серверу.

Какие-либо комментарии к этому?

1
ответ дан 1 December 2019 в 06:02
поделиться

Ваш метод имеет дефект - если бы кто-то должен был прервать передачу ключа к пользователю и зашифрованному ответу пользователя, то они могли дешифровать ответ и получить имя пользователя/пароль пользователя.

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

Установка разговора между клиентом и сервером может быть хитрой хотя, и намного более трудоемкий, чем простое применение SSL на Ваш сайт. Вы не должны даже платить за него - можно генерировать самоподписанный сертификат, который обеспечивает необходимое шифрование. Это не защитит от атак "человек посередине", но ни один не будет алгоритм Diffie-Hellman.

10
ответ дан 1 December 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: