User Tools

Site Tools


ru:how_to:change_admin_password_salted

This is an old revision of the document!


Дополнительная защита административного пароля с помощью уникального модификатора (salt)

Цель статьи

Толчком для написания данной статьи явился тот факт, что у некоторых пользователей, судя по вопросам на форуме GetSimple, возникают проблемы при замене своего или сгенерированного системой при установке пароля на пароль с дополнительным уникальным модификатором (salt). Разработчики надеются, что данная статья послужит базовым материалом, к которому впоследствии может обратиться любой пользователь системы.

Для начала предположим, что читатель данной статьи знает, что такое FTP, панель управления сайтом от хостера и зачем в системе существует файл gsconfig.php. Процесс замены обычного пароля на пароль с дополнительной защитой требует и некоторых знаний в администрировании сайта.

Цель

Система GetSimple умеет использовать в работе пароли с дополнительной защитой от взлома. Дополнительная защита осуществляется добавлением в криптографическую функцию при хешировании пароля случайной строки или уникального модификатора (salt), что значительно усложняет задачу его взлома. Алгоритм дополнительной защиты использует больше символов, чем содержится в пароле, затрудняя задачу подбора методом грубой силы (случайного подбора), а словарные атаки работать вовсе не будут, поскольку уникальный модификатор не является словом.

Разумеется, уникальный модификатор (salt) для шифрования должен быть достаточной длины и содержать обычный случайный набор букв в верхнем и нижнем регистре и цифр, а также специальных символов.

Смысл и красота такого метода дополнительной защиты в том, что ваш администраторский пароль может быть нормальной длины для запоминания обычным человеком. Применение уникального модификатора (salt) при хешировании делает бессмысленным создание пароля длиной, скажем, в 30 символов, при этом защищенный дополнительным модификатором пароль, хранящийся в системе, серьезно затрудняет задачу его дешифровки.

Проблема

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

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

How

It is actually quite simple:

  • Login as admin
  • edit gsconfig.php to enable salt logins
  • change admin password to regenerate the hash

I use a web-host company that provides shell access, so I can edit gsconfig.php right on the server. If you don't have shell access (you would know if you did), you might have to FTP gsconfig.php down to your computer, make the changes, and then FTP it back up to your server.

Step One: Login

Log in as admin on your GetSimple site. This is purely so that you are currently logged in, to avoid the situation where you can't login later.

Step Two: Edit gsconfig.php

Edit gsconfig.php, either by downloading it or by editing directly on the server. You are going to add the line that sets GetSimple to use salted logins. You can also add the line that sets GetSimple to use your own custom salt for cookies and uploads.

Get a salt

The salt should be a mix of alphanumerics, non-alphanumerics, upper and lower case characters, and it should be a decent length. GetSimple use 55 characters for their salts.

You can get a salt generated for you from GetSimple's API here, which is probably the easiest way. Refresh the page a few times until you get a salt that looks completely random. Notice that the page shows two salts, one for logins and one for your custom salt for cookies and uploads. Here is an example output:
<code>define('GSLOGINSALT', 'w7M%_G%CZrBjxMfdBNHhqfKZ7O7%lc_0fJ5k-CE4TjJBZxUayc^ODiv');<br />define('GSUSECUSTOMSALT', '-N0iquC47bueHs9YAyMBF6w=ny1WiTJnFcckR K~iW^s9IMy1cD^nUS');</code>

Add the lines

Add (or uncomment the existing lines) to gsconfig.php:
define('GSLOGINSALT', ' …. your salt … ');
and if you want
define('GSUSECUSTOMSALT', ' … your other salt … ');

You have now added a salt that GetSimple will use when generating the login password token.

Upload gsconfig.php to your installation.

Step Three: Change admin password

Important Don't miss this step, it is the crux.

Your installation now wants salted passwords, but your admin password token that is currently stored in the system was generated from an unsalted source (i.e. the vanilla password). You need to change it.

In your browser, you are already logged in as admin from Step One. Go to Settings (Website Settings) and change the password. You can re-use the same password that you had before, it doesn't matter. This step will force the system to generate a new token for the admin password.

You are done. Logout and try logging back in. You should be good to go.

How to undo

If you cannot log back in to GetSimple, something went wrong.

Download the gsconfig.php file, edit it and comment out the lines you added above by inserting a # char at the beginning of the line. Upload the file. You are no longer using salted logins and your old password should work again.

ru/how_to/change_admin_password_salted.1381914708.txt.gz · Last modified: 2013/10/16 09:11 by Arkady