Безопасная авторизация

Урок 99 из 256
Автор: Роберт Басыров
Сложность урока:
1 уровень - интуитивно все понятно из интерфейса, но почитать стоит.
1 из 5
Дата изменения: 15.08.2019
Просмотров: 16494
Ограничения по редакциям: Ограничений нет

Штатный инструмент безопасной авторизации

Пароли для большинства сайтов передаются в открытом виде, если не используется SSL SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, который подразумевает более безопасную связь. Он использует асимметричную криптографию для аутентификации ключей обмена, симметричное шифрование для сохранения конфиденциальности, коды аутентификации сообщений для целостности сообщений.

Подробнее...
. Отказ от использования SSL связан в большинстве случаев с административным фактором. Тем не менее проблему передачи паролей и логинов в открытом виде надо решать. Это можно сделать с помощью штатной функции Безопасная авторизация.

Безопасная авторизация - функция, обеспечивающая зашифрованную передачу пароля пользователя. Шифрование пароля не является заменой SSL. Безопасная авторизация защищает от перехвата пароля только при прослушивании трафика.

Если у злоумышленника есть возможность изменять трафик, то шифрование не поможет. При разработке функции исходили из того, что изменить трафик сложнее, чем прослушать его (тот же открытый WiFi). Более того, шифрование паролей не защищает от перехвата сессии, но у сессии есть свои механизмы защиты (привязка к IP, частое изменение кода сессии). В целом можно сказать, что уровень защиты повысился, но лучше использовать SSL.

Подключение

Подключается Безопасная авторизация в настройках главного модуля на закладке Авторизация:

Примечание: После установки флажка в чекбоксе перед генерацией ключа обязательно нажмите на кнопку Применить, сохраняющую настройки модуля. Без этого генерации ключа не произойдет.

По нажатию на Сгенерировать ключ происходит генерация ключа RSA RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) — криптографический алгоритм с открытым ключом. .

Размер ключа зависит от библиотек, установленных на сервере. По умолчанию используется модуль PHP openssl, который создаёт 1024-битный ключ. Его и рекомендуется использовать. Если модуль не установлен, то возможно использование bcmath с генерацией 512-битного ключа. Если нет ни того, ни другого модуля, включить шифрование нельзя.

Генерация ключа выполняется один раз. Повторную генерацию производить необходимо, если есть подозрения в компрометации ключа.

Внимание! На браузерах клиентских компьютеров должно быть разрешено использование Javascript.

Алгоритм работы

  1. Вместе с формой авторизации клиенту передается открытый ключ.
  2. Перед отправкой формы авторизации, Javascript перехватывает отправку, зашифровывает пароль, с использованием открытого ключа, и отправляет на сервер.
  3. Сервер принимает шифротекст, расшифровывает его с использованием секретного ключа, и проводит аутентификацию пользователя.

Текст раскрывает тему
Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас
Нам жаль это слышать… Но мы постараемся быть лучше! Поясните, пожалуйста, свой выбор:

Мы благодарны вам за помощь в улучшении документации.

Курсы разработаны в компании «1С-Битрикс»