Форум русской поддержки Joomla!® CMS
10.12.2016, 01:13:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 57084 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Alex_B
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Сообщений: 196


« : 21.02.2007, 20:56:19 »

Предлагаю на рассмотрение(использование) реализацию нового протокола HTTP-авторизации.

Идея протокола принадлежит авторитетному в вопросах безопасности человеку, руководителю проекта "openPGP в России" (http://www.pgpru.com/).

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

При использовании этого протокола(названия пока нет) пароль не передается по сети в открытом виде.

Прочитать оригинальную идею протокола можно по адресу http://www.vladmiller.info/blog/index.php?comment=61.


Реализация для Joomla:
1.Все необходимые файлы находятся во вложении
2.Необходимо распокавать файлы и заменить
   - ..administrator\index.php на файл во вложении
   - ..administrator\templates\joomla_admin\login.php на файл во вложении

3.В папку ..administrator\ положить следущий файл из вложения:
   - webtoolkit.md5.js

4.В корневую папку (на уровне с configuration.php) положить файл из вложения
   - config.php

config.php
Используется для настроек.

ВНИМАНИЕ:
в файле config.php обязательно заменить секретный показатель, известный только серверу, с дефолтного на свой.
Протокол будет осуществляться только при авторизации со страницы administrator\index.php
(т.е. модуль авторизации не написан)


Буду рад если кто-нибудь (кроме меня) будет использовать и благодарен за критику.

[вложение удалено Администратором]
« Последнее редактирование: 21.02.2007, 20:59:20 от Alex_B » Записан
 
meAndr
Гость
« Ответ #1 : 21.02.2007, 21:20:56 »

спасибо брат, мы тебя ни когда забудем за это! Azn
p.s. ты смотри, как раз то что мне нужно
« Последнее редактирование: 23.02.2007, 19:55:59 от meAndr » Записан
Alex_B
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Сообщений: 196


« Ответ #2 : 23.02.2007, 16:23:35 »

протокол оказался не новым, прошу прощения за дизинформацию. такой протокол уже есть называется он CHAP.

CHAP (англ. Challenge Handshake Authentication Protocol) — широко распространенный алгоритм проверки подлинности, предусматривающий передачу не самого пароля пользователя, а косвенных сведений о нем. При использовании CHAP сервер удаленного доступа отправляет клиенту строку запроса. На основе этой строки и пароля пользователя клиент удаленного доступа вычисляет хеш-код MD5 (Message Digest-5). Хеш-функция является алгоритмом одностороннего (необратимого) шифрования, поскольку значение хеш-функции для блока данных вычислить легко, а определить исходный блок по хеш-коду с математической точки зрения невозможно. Хеш-код MD5 передается серверу удаленного доступа. Сервер, которому доступен пароль пользователя, выполняет те же самые вычисления и сравнивает результат с хеш-кодом, полученным от клиента. В случае совпадения учетные данные клиента удаленного доступа считаются подлинными.

http://wiki.satgate.net/index.php/CHAP

идея не нова, так же есть S/Key впринципе похожий.
Записан
smart
Администратор
*******

Репутация: +1308/-14
Offline Offline

Пол: Мужской
Сообщений: 6850


снова дома...


« Ответ #3 : 23.02.2007, 17:43:24 »

протокол оказался не новым, прошу прощения за дизинформацию. такой протокол уже есть называется он CHAP.
ну в любом случае это интересное направление... хотя в первую очередь, для повышения безопасности административной панели, я бы предложил встроить CAPTCHA и учет количества попыток авторизации в административной панели. Увеличивая интервал времени между попытками по прогрессии... Это как минимум позволит блокировать возможность брутфорса пароля администратора...
Записан
Alex_B
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Сообщений: 196


« Ответ #4 : 23.02.2007, 19:16:03 »

Скорее всего это направление будет интересно тем, кто по какой-то причине не может использовать SSL.
Однако, от пассивных атак такие оборонительные дейсвия вполне подходят.

Я, в меру своих сил, постараюсь сделать нечто большее чем есть сейчас. Тем более, что не мне одному это кажется интересным Grin

(CAPTCHA - и как это я сам не додумался)
Записан
Vladzimir
Осваиваюсь на форуме
***

Репутация: +22/-0
Offline Offline

Пол: Мужской
Сообщений: 107


В очередь! в очередь! День Сурка © М.Борзыкин


« Ответ #5 : 20.06.2007, 17:36:10 »

А я себя прикрутил CAPTCHу + .htpasswd  Shocked
Вроде бы влом не возможен.
Записан
Timon_Crazy
Давно я тут
****

Репутация: +31/-4
Offline Offline

Пол: Мужской
Сообщений: 364


Лицензнаци


« Ответ #6 : 21.06.2007, 06:18:47 »

так выложите свою наработку Azn

Alex_B
планируется ли переписать модуль авторизации?
Записан
Alex_B
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Сообщений: 196


« Ответ #7 : 21.06.2007, 10:44:23 »

Timon_Crazy, а модуля и небыло Azn
аторизация будет выполняться по протоколу только со страницы корень/administrator/index.php
Записан
Timon_Crazy
Давно я тут
****

Репутация: +31/-4
Offline Offline

Пол: Мужской
Сообщений: 364


Лицензнаци


« Ответ #8 : 21.06.2007, 11:55:38 »

да вот модуль нужен...
Записан
Vasabi
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 25



« Ответ #9 : 06.08.2007, 17:05:23 »

А если просто взять и переименовывать index.php  в administrator\  скажем  на  xedni1986.php, которое знает только админ,  и проблемы нету.
Записан
Timon_Crazy
Давно я тут
****

Репутация: +31/-4
Offline Offline

Пол: Мужской
Сообщений: 364


Лицензнаци


« Ответ #10 : 07.08.2007, 09:38:45 »

много привязок только на index.php
надо "хачить" движок
Записан
Cionict
Гость
« Ответ #11 : 10.10.2007, 13:10:46 »

Добрый день!

Подскажите, пожалуйста, для каких версий Joomla! подходит этот хак?

Заранее благодарю.
Записан
Timon_Crazy
Давно я тут
****

Репутация: +31/-4
Offline Offline

Пол: Мужской
Сообщений: 364


Лицензнаци


« Ответ #12 : 10.10.2007, 14:08:17 »

если не ошибаюсь то для 1.12
Записан
Dem
Гость
« Ответ #13 : 11.11.2007, 21:09:05 »

хм, сделал как все написано в инструкции, кинул все файлы на ФТП на установленную Джумлу, секретное слово вписал и теперь Админка не принемает мой старый пороль, че делать? не копии файлов я конечно сделал, но че делать чтобы пороль то принемала система.
Записан
Dem
Гость
« Ответ #14 : 13.11.2007, 00:14:41 »

ау((( сори за флуд, нужен очень ответ, почему логин и пороль мой не принимает система после этих манипуляций в топике((
Записан
Alex_B
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Сообщений: 196


« Ответ #15 : 13.11.2007, 12:11:31 »

Dem, какая версия Joomla?
Записан
Dem
Гость
« Ответ #16 : 14.11.2007, 15:24:45 »

Joomla_1.0.13_RE-Stable-Full_Package
Записан
Dem
Гость
« Ответ #17 : 15.11.2007, 05:31:34 »

ау
Записан
MrBin
Захожу иногда
**

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 22


« Ответ #18 : 15.11.2007, 08:52:18 »

сказали же:
если не ошибаюсь то для 1.12
Записан
Alex_B
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Сообщений: 196


« Ответ #19 : 15.11.2007, 16:06:34 »

Dem, на выходных постараюсь посмотреть. на 13_RE не пробовал ставить
Записан
Dem
Гость
« Ответ #20 : 16.11.2007, 09:18:51 »

Dem, на выходных постараюсь посмотреть. на 13_RE не пробовал ставить

Спасибо
Записан
Alex_B
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Сообщений: 196


« Ответ #21 : 17.11.2007, 13:49:50 »

В Joomla 1.0.12
пароли хранились в виде хешей md5.
Пароль, введенный пользователем, хешируется и сравнивается с хешем из базы данных.
Если хеши совпали – значит пользователь тот за кого себя выдает.


В Joomla 1.0.13
это изменено, пароли хранятся следующим образом:
при записи пароля генерируется псевдослучайная строка из 16 символов.
Затем эта строка складывается с паролем, полученная стока хешируется по алгоритму md5:

md5 (пароль + случайная строка) = хеш_пароля_и_строки

В базе данных хранится хеш_пароля_и_строки и сама эта псевдослучайная строка через двоеточие:

хеш_пароля_и_строки:случайная_строка

Авторизация осуществляется следующим образом:
- из базы достается вся хранящаяся там строка,
- введенный пароль складывается с тем, что стоит после двоеточия (это сгенерированная при регистрации случайная строка)
- от полученной строки берется хеш и сравнивается с тем, что стоит до двоеточия.



Предложенный протокол
не предполагает передачи пароля в открытом виде (в этом его суть):
В браузере введенный пароль хешируется и складывается со строкой переданной сервером (это строка каждый раз разная):

md5 ( md5(введенный_пароль) + строка_от_сервера) = хеш_пароля_и_строки_сервера

строка_от_сервера зависит от секрета сервера, временной метки начала авторизации и ip адреса.

- хеш_пароля_и_строки_сервера передается на сервер,
- там снова вычисляется строка_от_сервера2,
- и базы данных достается хеш пароля,
- полученный из БД хеш пароля складывается с только что вычисленной строкой строка_от_сервера2 и опять хешируется:

md5 ( хеш_пароля_из_БД + строка_от_сервера2) = хеш_пароля_и_строки_сервера2

Потом строка полученная от браузера сравнивается с вычисленной на сервере:
хеш_пароля_и_строки_сервера == хеш_пароля_и_строки_сервера2.



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



А вот зачем это
было сделано, я так и не понял. Почему не хранить просто хеши паролей?
Это псевдослучайная строка, добавляемая к паролю перед хешированием, все равно хранится в БД вместе с хешем.
Если злоумышленник получит копию базы данных, он сможет подобрать пароль по хешу точно также, как если бы захеширован был бы только пароль.


Т.е. ранее он, при удачном подборе строки под конкретный хеш, получал сразу пароль, то теперь он получает пароль + добавленная_строка.
И строка эта ему известна, а отрезать известную строку от конца другой – это элементарная операция.

Записан
Dem
Гость
« Ответ #22 : 18.11.2007, 21:47:39 »

блин -/
Записан
straniks
Гость
« Ответ #23 : 29.12.2007, 11:46:29 »

Реализация для Joomla:
1.Все необходимые файлы находятся во вложении
2.Необходимо распокавать файлы и заменить
   - ..administrator\index.php на файл во вложении
   - ..administrator\templates\joomla_admin\login.php на файл во вложении

3.В папку ..administrator\ положить следущий файл из вложения:
   - webtoolkit.md5.js

4.В корневую папку (на уровне с configuration.php) положить файл из вложения
   - config.php

всё сделал ответ: превышен временной интервал ответа

гуру будте любезны подсказать где надо подправить,
ковыряние в config.php результата не принесло
установлена Joomla_1012_Lavra_Edition_2007
заранее благодарен Сергий
Записан
Alex_B
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Сообщений: 196


« Ответ #24 : 29.12.2007, 14:49:21 »

straniks, да вроде правильно делали, надо в config.php изменить

$access_interval = 60;

минуты на набор пароля должно хватить с запасом.

Тут еще такой момент, после неудачной попытки (когда времени на набор не хватило или пароль не тот) нужно не просто кнопку назад жать - а начать новую сессию.
« Последнее редактирование: 29.12.2007, 17:10:54 от Alex_B » Записан
straniks
Гость
« Ответ #25 : 31.12.2007, 14:26:16 »

Спасибо брат,
изменил, ответсервака :пользователь с таким именем не зарегистрирован
ну ето понятно- выпимши- настрою
С Новым годом всех благ вам
благодарен за ответ
Записан
Sulpher
Практически профи
*******

Репутация: +386/-15
Offline Offline

Пол: Мужской
Сообщений: 2213


Шаблоны и расширения Joomla


« Ответ #26 : 19.01.2008, 19:08:40 »

Инетресно все же, как модифицировать хак для работы под версией 1.0.13...
Записан
FxPunter
Завсегдатай
*****

Репутация: +112/-7
Offline Offline

Пол: Женский
Сообщений: 693


Э-эх!


« Ответ #27 : 20.01.2008, 07:10:59 »

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

Как и чем это сделать?
Записан
Alex_B
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Сообщений: 196


« Ответ #28 : 21.01.2008, 11:03:18 »

Инетресно все же, как модифицировать хак для работы под версией 1.0.13...
Можно сделать протокол не в один раунд, а в два.
На первом передается имя пользователя, если такое есть -- сервер выдает ту саму строку из 16 символов.

Далее браузер получает 16 символьную стороку, складывает ее с
- введнным паролем,
- с секретом сервера,
- с временной меткой начала авторизации
и хеширует.

Вобщем дальше все работает так как и работало, нужно только получить от сервера 16 символьную строку, которая хранится в БД в месте с паролем пользователя через двоеточие
хеш_пароля_и_строки:случайная_строка

Для пользователя все останется как и прежде - ввел имя и пароль. А за кулисами с помощью ajax будут выполняться два раунда запросов.
Записан
k1NDer
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 29


« Ответ #29 : 29.02.2008, 14:47:29 »

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

А как создать такой учёт и интервал ?
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet