Зашумление паролей

Материал из MoodleDocs
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к:навигация, поиск

Что такое зашумление паролей?

В Moodle пароли хранятся в зашифрованном виде, который называется 'md5'.

Зашумления паролей (Password salting) - это способ усиления защиты паролей путём добавления к паролю случайного набора символов (шума) перед вычислением контрольной суммы md5, за счёт чего становится сложнее восстановить пароль по контрольной сумме (чем длиннее случайный набор символов, тем сложнее это сделать).

Эта возможность доступна во всех версиях Moodle, начиная с 1.6.

Включение зашумления паролей

Для настройки добавляемой к паролю шумовой последовательности (password salt) добавьте следующую строку в файл config.php:

$CFG->passwordsaltmain = 'какая-нибудь длинная строка из большого числа случайных символов';

Лучше, чтобы строка из случайных символов содержала не только буквы, но и цифры и прочие символы. Вы можете воспользоваться Moodle Salt Generator для создание подходящей по длине строки. Рекомендуемая длина шумовой последовательности - по крайней мере 40 символов.

Замечание: Из соображений безопасности зашумление паролей можно настроить только путём редактирования файла config.php - другого способа сделать это в интерфейсе Moodle нет.

Смена шумовой последовательности

В том случае, если по каким-то причинам Вам потребовалось заменить шумовую последовательность, старую последовательность необходимо оставить в файле config.php в дополнение к новой.

Для этого необходимо заменить passwordsaltmain на passwordsaltalt1 (важно соблюдать точное написание) как в примере:

$CFG->passwordsaltalt1 = 'старая последовательность';
$CFG->passwordsaltmain = 'новая последовательность';

Если в будущем Вам снова понадобится сменить шумовую последовательность, в течении какого-то времени Вам придётся хронить все старые последовательности (до тех пор, пока каждый пользователь не зайдёт в систему хотя бы по одному разу). Используйте параметры $CFG->passwordsaltalt2, $CFG->passwordsaltalt3 и так далее до 20 для хранения старых последовательностей.

Внимание: Если вы замените шумовую последовательность и не сохраните старую в файле config.php у Вас пропадёт возможность заходить на сайт!

Отключение зашумления паролей

Замечание: Не рекомендуется! Если уж Вы включили зашумление паролей, то оставьте его включенным.

Для отключения зашумления паролей в Moodle, нужно удалить, закомментировать или установить равным пустой строке параметр "passwordsaltmain".

// Пример: установка пустой строки 
$CFG->passwordsaltmain = '';


// Пример: Закомментировать
/*
$CFG->passwordsaltmain = '';
*/

Однако это ещё не все! Нужно сохранить старое значение параметра в параметре passwordsaltalt1 как и при смене шумовой последовательности:

$CFG->passwordsaltalt1 = 'старая последовательность';
$CFG->passwordsaltmain = '';

Импорт пользователей другого сайта

Если Вы импортируете пользователей другого сайта Moodle, на котором используется зашумление паролей, то Вам потребуется добавить шумовую последовательность этого сайта в Ваш файл config.php. Можно добавлять до 20 дополнительных последовательностей

$CFG->passwordsaltalt1, $CFG->passwordsaltalt2, ...  $CFG->passwordsaltalt20

Как работает зашумление паролей?

При проверке паролей, программа ищет парамер $CFG->passwordsaltmain. Если он установлен, он добавляется к паролю перед вычислением контрольной суммы md5.

Если контрольная сумма пароля без добавления шума проходит проверку, предполагается, что пароль был сохранён до установки шумовой последовательности. В этом случае контрольная сумма пароля заменяется на зашумлённую. Пароль зашумляется при первом входе в систему посл установвки шумовой последовательности в файле config.php.

Если не подходит ни вариант без добавления шума, ни вариант с шумом, программа проверяет контрольные суммы с добавлением 20 альтернативных шумовых последовательностей.

При смене шумовой последовательности, чтобы не испортить учётные записи пользователей необходимо сохранить старую последовательность в один из альтернативных параметров.

Пароль, в котором использовалась старая последовательность не пройдёт проверку с новой последовательностью, поэтому он будет проверен с помощью старых шумовых последовательностей. Если какая-нибудь из них подойдет, то пароль пользователя будет обновлён в соответствии с новой шумовой последовательностью.