====== Дополнительная защита административного пароля с помощью уникального модификатора (salt) ====== ===== Цель статьи ===== Толчком для написания данной статьи явился тот факт, что у некоторых пользователей, судя по вопросам на форуме GetSimple, возникают проблемы при замене своего или сгенерированного системой при установке пароля на пароль с дополнительным уникальным модификатором (salt). Разработчики надеются, что данная статья послужит базовым материалом, к которому впоследствии может обратиться любой пользователь системы. Для начала предположим, что читатель данной статьи знает, что такое FTP, панель управления сайтом от хостера и зачем в системе существует файл [[config:gsconfig|gsconfig.php]]. Процесс замены обычного пароля на пароль с дополнительной защитой требует и некоторых знаний в администрировании сайта. ===== Цель ===== Система GetSimple умеет использовать в работе пароли с дополнительной защитой от взлома. Дополнительная защита осуществляется добавлением в криптографическую функцию при хешировании пароля [[http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BB%D1%8C_%28%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F%29|случайной строки или уникального модификатора (salt)]], что значительно усложняет задачу его взлома. Алгоритм дополнительной защиты использует больше символов, чем содержится в пароле, затрудняя задачу подбора методом грубой силы (случайного подбора), а словарные атаки работать вовсе не будут, поскольку уникальный модификатор не является словом. Разумеется, уникальный модификатор (salt) для шифрования должен быть достаточной длины и содержать обычный случайный набор букв в верхнем и нижнем регистре и цифр, а также специальных символов. Смысл и красота такого метода дополнительной защиты в том, что ваш администраторский пароль может быть нормальной длины для запоминания обычным человеком. Применение уникального модификатора (salt) при хешировании делает бессмысленным создание пароля длиной, скажем, в 30 символов, при этом защищенный дополнительным модификатором пароль, хранящийся в системе, серьезно затрудняет задачу его дешифровки. ===== Проблема ===== Проблема перехода с пароля со стандартным хешированием на пароль с дополнительным модификатором (salt) заключается в том, что после такого изменения конфигурации пароль администратора не будет распознан системой, и он не сможет в следующий раз залогиниться. Все дело в том, что пока хеш пароля в системе хранится со старым алгоритмом шифровки и не совпадет с модифицированным хешем, который будет создан системой авторизации для сравнения уже по новому алгоритму с дополнительной защитой. Таким образом, задача заключается в том, чтобы четко следовать описанному ниже процессу изменения алгоритма шифрования пароля во избежание проблем. ===== Как это сделать ===== На самом деле, все достаточно просто. Предполагаем, что у вас уже есть работающий сайт с установленной системой. Вот общее описание процесса: * Входим в административную панель как администратор * редактируем ''gsconfig.php'' для включения дополнительной защиты пароля * меняем пароль администратора для регенерации хеша по алгоритму с уникальным модификатором (salt) Хостинговые компании, как правило, обеспечивают клиентов панелью управления, в этом случае пользователь имеет возможность редактировать gsconfig.php прямо на сервере. Если такого доступа у вашего хостера нет – придется с помощью FTP-клиента скачивать файл gsconfig.php на локал, редактировать его и загружать обратно на сервер. ==== Шаг 1: Логин ==== Входим под администратором на наш GetSimple-сайт и остаемся в административной панели для того, чтобы избежать ситуации, когда вы не сможете залогиниться вновь. ==== Шаг 2: Редактируем gsconfig.php ==== Редактируем ''gsconfig.php'' либо напрямую на сервере, либо скачиваем его на локал FTP-клиентом, редактируем и вновь загружаем на сервер. Итак – мы собираемся добавить в файл конфигурации инструкцию для использования хеширования паролей с использованием уникального модификатора (salt). Также в файле можно добавить инструкцию использованию уникального модификатора для защиты cookie-файлов и загружаемых файлов. ==== Получаем уникальный модификатор ==== Наша уникальная фраза (salt) для дополнительного хеширования должна представлять собой смесь цифровых, буквенных символов в верхнем и нижнем регистре и других допустимых символов, а также должен быть достаточной длины. GetSimple использует массив длиной 55 символов. Уникальный модификатор (salt) для настроек файла gsconfig.php можно получить с помощью [[http://get-simple.info/api/security/|GetSimple API]], пожалуй, это наиболее легкий путь. Перезагрузите полученную страницу несколько раз, пока на ваш взгляд полученный уникальный модификатор не будут смотреться абсолютно случайным. Обратите внимание, что на странице выводятся //два// модификатора – //один для дополнительной защиты административного пароля//, //другой – для дополнительной защиты ваших cookie-файлов и подгружаемых файлов//. Получаемые от GetSimple API уникальные модификаторы могут выглядеть следующим образом: define('GSLOGINSALT', 'w7M%_G%CZrBjxMfdBNHhqfKZ7O7%lc_0fJ5k-CE4TjJBZxUayc^ODiv'); define('GSUSECUSTOMSALT', '-N0iquC47bueHs9YAyMBF6w=ny1WiTJnFcckR K~iW^s9IMy1cD^nUS'); ==== Редактируем gsconfig.php ==== Добавьте (или раскомментируйте) следующие строки:\\ ''define('GSLOGINSALT', ' …ваш уникальный модификатор номер один… ');''\\ и если требуется \\ ''define('GSUSECUSTOMSALT', ' …ваш уникальный модификатор номер два… ');''\\ Итак – мы только что добавили уникальные модификаторы для дополнительного хеширования администраторского пароля, информации cookie-файлов и дополнительных мер защиты при загрузке файлов средствами системы. Не забудьте сохранить изменения в файле ''gsconfig.php'' В последней версии GetSimple CMS обнаружилась необходимость вводить модификаторы по очереди, сначала ввести один и сохранить пароль, затем другой и пароль нужно снова сохранить. ==== Шаг 3: Замена пароля администратора ==== **Внимание!** Выполняйте все действия, как указано, это - критический шаг. На этом этапе нашей системе ожидает пароль, зашифрованный с дополнительным уникальным модификатором (salt), но хранящийся в системе хеш пароля администратора зашифрован еще по старому алгоритму. В шаге 1 мы уже вошли на сайт как администратор. Теперь в секции **Настройки** необходимо поменять пароль. Можно ввести и старый пароль, это не имеет значения. Нам просто нужно заменить хранящийся в системе старый хеш пароля на новый с дополнительной защитой. Такое действие заставит систему сгенерировать хеш пароля администратора пароль по новому алгоритму с уникальным модификатором. Конец работы. Выходим из административной панели и пробуем залогиниться заново. Все должно быть просто отлично. ===== Отмена ===== Если у вас не получается заново войти в систему – самое время догадаться, что что-то пошло не так. Скачайте файл ''gsconfig.php'' с помощью FTP-клиента на локал, закомментируйте строки, которые мы добавили, знаком # в начале строки и загрузите файл обратно на сервер. Если есть такая возможность, то редактируйте файл прямо на сервере. Механизм генерации дополнительной защиты пароля нами теперь выключен, ваш старый администраторский пароль снова в силе. ====== Ссылки ====== На главную [[ru:|Содержание]] ===== Страницы этой секции ===== === Дополнительная информация по системе === *[[ru:debugging|Режим отладки]] *[[ru:config:caching-function|Кэш-функции и индексный файл pages.xml]] *[[ru:config:gsconfig|Файл конфигурации системы gsconfig.php]] *[[ru:config:htaccess|Файл .htaccess]] *[[ru:how_to:svn|Доступ к SVN]] *[[ru:security:csrf|Защита от CSRF (Подделка межсайтовых запросов)]] *[[ru:security:https-ssl|GetSimple и HTTPS/SSL]] *[[ru:lighttpd_permalinks|Настройка структуры постоянных ссылок (ЧПУ) на Lighttpd-серверах]]