freed-master
3.06.2013 - 12:16
Здравия всем читающим!
Помогите найти дырки.
Допустим есть БД, в которой, для разных юзеров хранятся их личные важные данные (например логины и пароли от чего либо)
Я написал свою функцию обратимой шифровки.
Интересует мнение со стороны -
на сколько моя шифровка стойкая?
Предположим злоумышленник нашел дыру в сайте, и путем SQL-инъекции получил зашифрованые данные пользователей.
Ему известно лишь то, что при шифровке данных для каждого юзера используется свой ключ.
Далее этот злоумышленник регистрируется на моем сайте.
Теперь он получает возможность зашифровывать свои данные и (используя SQL-инъекцию) сравнивать исходник с шифром.
Сможет ли он взловать мою шифровку и на сколько быстро?
!!!!(если Вы только начали читать эту тему, знайте - ссылка ниже ведет уже на другой шифратор (если там вообще еще будет шифратор), а НЕ тот который обсуждается на первой странице данной темы. на второй странице темы Вы все поймете)Вот демка:
http://realtest.ip64.net/
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru
Ерундой вы батенька страдаете. В этом направлении уже все придумали. Mcrypt - поддерживающий множество криптографических алгоритмов, которые проверялись и исследовались на наличие всевозможных коллизий многие годы.
С первого взгляда нашел закономерность - один знак - это всегда 4 цифры. В обратимом шифровании закономерности должны быть как можно сильней скрыты иначе увеличивается вероятность расшифровки.
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
freed-master
3.06.2013 - 13:15
про Mcrypt знаю, но:
- он может не на всех серверах работать
- он требует определенного размера ключ (в моем случае это не удобно)
- говорят что он медленный (хотя не тестировал и не сравнивал со скоростью моей функции)
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru
glock18
3.06.2013 - 13:24
Цитата (T1grOK @ 3.06.2013 - 08:59) |
Ерундой вы батенька страдаете. В этом направлении уже все придумали. Mcrypt - поддерживающий множество криптографических алгоритмов, которые проверялись и исследовались на наличие всевозможных коллизий многие годы.
С первого взгляда нашел закономерность - один знак - это всегда 4 цифры. В обратимом шифровании закономерности должны быть как можно сильней скрыты иначе увеличивается вероятность расшифровки. |
Не все так просто оказалось ) Хотя разбиение ключа точками меня насмешило несколько. Уж не знаю, мб там символы просто в ключе есть, которые я не пробовал. В целом алгоритм шифрования понятен (все коды инкрементируются в зависимости от длины строки и позиции символа в строке). Не видно просто зависимости между кодом и символом, что немного осложнило. Проверил только англ. буквы, цифры. Попробовал знаки препинания и тут сюрприз - некоторые занимают по несколько блоков
Пробовал чуть больше получаса, взломать не получилось, но сам факт, что в немалой доли принцип шифрования прозрачен, говорит о том, что любой у кого хоть чуть больше опыта в этом деле или времени должен был бы справиться.
freed-master
3.06.2013 - 13:43
Цитата |
С первого взгляда нашел закономерность - один знак - это всегда 4 цифры. |
да, это я не пытался скрывать, просто так удобнее расшифровывать
Цитата |
Попробовал знаки препинания и тут сюрприз - некоторые занимают по несколько блоков |
ага, это просто экрнирование POST данных
Цитата |
В целом алгоритм шифрования понятен (все коды инкрементируются в зависимости от длины строки и позиции символа в строке). |
Направление верное, но помимо этих двух (длина строки и позиция символа) присутствует еще 3 переменные.
Идея была такая - использовать при шифровании как можно больше
переменных, которые зависят от: шифруемого текста и ключа
glock18, спс, навел меня еще на одну идейку
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru
glock18
3.06.2013 - 13:49
Цитата (freed-master @ 3.06.2013 - 09:43) |
glock18, спс, навел меня еще на одну идейку |
ну, вы не меняйте пока только пример
а то мало ли, может кто-то еще пробует/будет пробовать
freed-master
3.06.2013 - 13:54
Цитата |
ну, вы не меняйте пока только пример а то мало ли, может кто-то еще пробует/будет пробовать |
конечно! если что я ссылочку на вторую версию дам
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru
ApuktaChehov
3.06.2013 - 16:35
Фух, спасибо за пост. Мозг размял цифрами.
Вообщем поковырял я, и вот к чему пришел.
Значит коды изначальных символов:
1505 1556 1119 1685 1985 1729 1332 1465 1685 1484 1902 1718 1069 1899 2039 1908 1741 1556
Что из этого вышло - а ничего не вышло.
Первая буква русская "а", вторая "j", потом хз, еще появляется буква "Я", еще "Б" и завершает все, опять будка "j".
Алгоритм по которому изменяются коды символов, вроде понятен, но у большинства кодов эквивалент символу я вообще не нашел. Возможно не русский и не английский язык клавиатуры.
P.S. Может, конечно я вообще все неправильно сделал. Но в любом случае, мозг размял. Еще раз спс.
_____________
freed-master
3.06.2013 - 17:01
А вот и нет
дело еще вот в чем
Цитата |
Предположим злоумышленник нашел дыру в сайте, и путем SQL-инъекции получил зашифрованые данные пользователей.
Ему известно лишь то, что при шифровке данных для каждого юзера используется свой ключ.
Далее этот злоумышленник регистрируется на моем сайте. Теперь он получает возможность зашифровывать свои данные и (используя SQL-инъекцию) сравнивать исходник с шифром. |
возможно я ввел вас в заблуждение, не уточнив (прямым текстом) один момент...
"То что нуно расшифровать:" это ведь запись которую якобы злоумышленник вытащил из таблицы какого-то пользователя, т.е. данная запись зашифрована ключом того пользователя
Когда злоумышленник зарегался на сайте (и получил доступ к шифратору) ему присвоился его личный ключ для шифровки
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru
glock18
3.06.2013 - 17:12
Цитата (freed-master @ 3.06.2013 - 13:01) |
А вот и нет
дело еще вот в чемЦитата | Предположим злоумышленник нашел дыру в сайте, и путем SQL-инъекции получил зашифрованые данные пользователей.
Ему известно лишь то, что при шифровке данных для каждого юзера используется свой ключ.
Далее этот злоумышленник регистрируется на моем сайте. Теперь он получает возможность зашифровывать свои данные и (используя SQL-инъекцию) сравнивать исходник с шифром. |
возможно я ввел вас в заблуждение, не уточнив (прямым текстом) один момент... "То что нуно расшифровать:" это ведь запись которую якобы злоумышленник вытащил из таблицы какого-то пользователя, т.е. данная запись зашифрована ключом того пользователя Когда злоумышленник зарегался на сайте (и получил доступ к шифратору) ему присвоился его личный ключ для шифровки |
Таким образом злоумышленник будет так же знать и ключ, нет?
Он ведь, получается, в базе лежит так же. То есть будет известен свой ключ и целевой тоже. Так ведь?
freed-master
3.06.2013 - 17:22
Цитата |
Таким образом злоумышленник будет так же знать и ключ, нет? Он ведь, получается, в базе лежит так же. То есть будет известен свой ключ и целевой тоже. Так ведь? |
А тут еще один сюрприз
Ключ знает только сам юзер, хотя даже и не подозревает об этом (ибо публично об этом нигде не говорится, кроме этого форума
)!
Ключ - это, как вариант, пароль входа на сайт. В БД он также зашиврован хитрым способом, используя md5, соль и прочие прелести одностороннего шифрования.
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru
glock18
3.06.2013 - 17:26
Цитата (freed-master @ 3.06.2013 - 13:22) |
Ключ - это, как вариант, пароль входа на сайт. В БД он также зашиврован хитрым способом, используя md5, соль и прочие прелести одностороннего шифрования. |
не, ну, тогда надо бы знать, что я могу вытащить теоретически из базы.
Насчет md5 что-то странно. Ключ же нужно незашифрованный иметь при себе в процессе проверки пароля при авторизации
PS: вообще говоря в контексте такой задачи, мне кажется, нужно иметь оба ключа для того, чтобы расшифровать что-то.
freed-master
3.06.2013 - 17:45
Цитата |
не, ну, тогда надо бы знать, что я могу вытащить теоретически из базы. |
А больше ничего.
Хакер может только:
- (ЕСЛИ найдет SQL-уязвимость!) узнать зашифрованный текст юзера
- знать что ключ юзера отличный от его ключа
Цитата |
Насчет md5 что-то странно. Ключ же нужно незашифрованный иметь при себе в процессе проверки пароля при авторизации |
Зашифрованные данные должны быть доступны только конкретному юзеру. Когда юзер заходит на сайт, - вводит пароль, т.е. появляется ключ для расшифровки.
Этот ключ остается известным только для юзера, т.к. в БД я храню только хэш пароля, и этот хэш никак не задействован при шифровке или дешифровке.
Пока выходит что подобный метод шифровки имеет право на жизнь!?
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru
glock18
3.06.2013 - 18:09
Цитата (freed-master @ 3.06.2013 - 13:45) |
Когда юзер заходит на сайт, - вводит пароль, т.е. появляется ключ для расшифровки. |
Ключ генерится, исходя из каких-то статических данных, что ли?
freed-master
3.06.2013 - 19:10
Цитата |
Ключ генерится, исходя из каких-то статических данных, что ли? |
да, можно и так сказать
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.