ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   Общие вопросы программирования (https://forum.antichat.io/forumdisplay.php?f=206)
-   -   Изменить метод шифрования (https://forum.antichat.io/showthread.php?t=770510)

[MSN]-MADCAT 18.10.2018 18:25

Доброго вечера.

Решил попробовать написать простенькую форму регистрации для сервера л2, ничего такого просто чтоб в локалке висела,

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

Регистрация осуществляется при помощи библиотеки RedBeanPHP.

Вот кусок который сохраняет пароль в БД:

Код:


Код:

$accounts->password = password_hash($data['password'], PASSWORD_DEFAULT);
Но понимаю что нужно не так, а как то так (нашел вариант в гугле):

Код:


Код:

$accounts->password = base64_encode(pack("H*", sha1(utf8_encode($password))));
Но голова уже пухнет. Не программист только учусь. Не судите строго.




lead nitrate molar mass

masone 18.10.2018 18:36

$accounts->password = password_hash($data['password'], PASSWORD_DEFAULT);

->

$accounts->password = base64_encode(pack("H*", sha1(utf8_encode($data['password']))));

попробуйте

[MSN]-MADCAT 18.10.2018 18:42

Огромнейщее вам СПАСИБО!

Logan22 20.10.2018 14:57

Цитата:

Сообщение от [MSN]-MADCAT

password_hash

Уже давно деприкейтед

Цитата:

Сообщение от [MSN]-MADCAT

метод шифрования отличается

Шифрование это преобразование информация таким образом чтоб её можно было преобразовать из шифртекста в исходный.

Это хеширование, а не шифрование.

Примерно твоя функция должна выглядить как-то так...

PHP:


Код:

function
hashPass
(
$alg
=
'sha1'
,
$pass
=
null
)
{
return
base64_encode
(
hash
(
$alg
,
$pass
,
true
)
)
;
}


[MSN]-MADCAT 27.10.2018 19:30

Моя задача стояла намного проще и то , для ее реализации было внесено 1 единственное изменение с труктуру таблицы, и при всем при етом хоть и длинна хеша теперь не 88 символов как тот же самый вирпул, а всего лиш к примеру 16 символов , при условии разности длинны и сложности создоваемого пароля, его не один брут не смог ломать\подобрать спустя даже 24 часа, Пароль был всего навсего Цыфра 1.

А смысл в хешировании если хеш можно подобрать сломать угадать? Безопасность должна быть безопасной!

Ингда хочется с умничать и написать:

Лучше всего этот пример описан в книге «Прикладная криптография» Брюса Шнайера. Про теорию о энергии для рашифровки 256 битного ключа. Кто читал тот поймет не буду усложнять и приводить цитат.

[MSN]-MADCAT 27.10.2018 19:50

В продолжении темы:

Вот хеш очень ппростой

jTsYZJrNDCQr9lIj3MMA5Wcbczo=

Даш ответ я отдат вам обвязку.

Цитата:

Сообщение от Спойлер


masone 27.10.2018 22:10

Цитата:

Сообщение от [MSN]-MADCAT

В продолжении темы:
Вот хеш очень ппростой
jTsYZJrNDCQr9lIj3MMA5Wcbczo=
Даш ответ я отдат вам обвязку.
Цитата:

Сообщение от Спойлер


честно сказать, ваше гумно никому не нужно

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

[MSN]-MADCAT 27.10.2018 22:36

Спасибо. Бро

Критика она как бальзам по сердцу.

Пусть гумно, пусть не будете вы брутить, но я добился того чего хотел. Я как девопс планирую свою работу до, в процессе, и результат.

И результат меня устроил!

А по поводу кода там все красиво и понятно. Адаптивность есть к вашему удивлению.

В отличии от всяких гхтвеб и прочих стресов\дле\etc , мне нужен был скрипт который просто регит аккаунт. а все остальное мне фонарь светит.

И еще один + я осваиваю библиотеку RBPhP это реально тема. Ни ожидал для себя.

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

Desquire 27.10.2018 22:38

Сейчас бы костыли придумывать.

Толку от хеша?

Вот тебе мд5, который вообще не безопасен, сколько у тебя времени уйдет на его расшифровку и получения пароля? faa4201245dedc16849e0cd4812efee3

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

Для ЛК ты можешь использовать любые алгоритмы, кучу солей, и другие приблуды, но для сервера л2 без ищизменен серверной части будешь использовать как Логан выше написал.

[MSN]-MADCAT 27.10.2018 22:45

Цитата:

Сообщение от Desquire

Сейчас бы костыли придумывать.
Толку от хеша?
Вот тебе мд5, который вообще не безопасен, сколько у тебя времени уйдет на его расшифровку и получения пароля? faa4201245dedc16849e0cd4812efee3

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

Для ЛК ты можешь использовать любые алгоритмы, кучу солей, и другие приблуды, но для сервера л2 без ищизменен серверной части будешь использовать как Логан выше написал.

Да согласен. Мне просто нужен был скрипт еще раз повторюсь. И я его сделал. Мне очень помог человек который первым откликнулся на мой пост. А остальное можете флудить и развивать. Тут так принято я смотрю.

[MSN]-MADCAT 28.10.2018 00:33

Благодарю но есть вопросы:

Цитата:

Сообщение от Logan22

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

Примерно твоя функция должна выглядить как-то так...

PHP:


Код:

function
hashPass
(
$alg
=
'sha1'
,
$pass
=
null
)
{
return
base64_encode
(
hash
(
$alg
,
$pass
,
true
)
)
;
}


Код:


Код:

function hashPass($alg = 'sha1', $pass = null) {
        return base64_encode(hash($alg, $pass, true));
    }
    else function hashPass($alg = 'sha1', $pass = null) {
        return base64_encode(md5($alg, $pass, true));
    }
    else {
    function hashPass($alg = 'md5', $pass = null) {
        return base64_encode(hash($alg, $pass, true));
    }
    if {
    не совпало то гуляй вася
    }



....etc

Зачем RETURN to SOURCE?

Если вы понимаете о чем я.

Проиграл так проиграл никто ненесет ответственности по большому счету.

Все хорошо забытое старое есть новое!

[MSN]-MADCAT 28.10.2018 00:37

А вопще скину 500 р. 00 к. деревянных только за то чтоб сломали хеш указаный в 6 теме. больше он не стоит .

[MSN]-MADCAT 28.10.2018 00:49

Цитата:

Сообщение от masone

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

Да и еще по поводу гумна, возможно оно вам ненужно, есть элементарные примеры.

За такое гувеное КБ от MaDCaT.pw (ныне несуществует) до сих пор запросы валятся. оно есть у меня хорошо что дождался решения от узкоглазых TLS переходник помог излечить муху ЦЦ на HDD баракуде. выдрал все с мультами и данными. кому нужно отдам за так.

Простота сестра таланта.

Desquire 28.10.2018 01:31

@[MSN]-MADCAT, ты хоть сам понимаешь что ты пишешь?

Какие то куски неработающего кода.

За 500р хеш... суда по всему самопридуманный метод какой-то...

вон тебе ещё один хеш - расшифруй и будешь знать мой пароль от этого форума. Ну и вознаграждение в 10 раз больше чем ты предлагаешь.

Хеш: You11Are22Out33Of44Your55Mind

Desquire 28.10.2018 01:34

Цитата:

Сообщение от [MSN]-MADCAT

Да и еще по поводу гумна, возможно оно вам ненужно, есть элементарные примеры.
За такое гувеное КБ от MaDCaT.pw (ныне несуществует) до сих пор запросы валятся. оно есть у меня хорошо что дождался решения от узкоглазых TLS переходник помог излечить муху ЦЦ на HDD баракуде. выдрал все с мультами и данными. кому нужно отдам за так.
Простота сестра таланта.

Community Board от MaDCat

В шаре же

Мишаня 28.10.2018 10:56

Цитата:

Сообщение от [MSN]-MADCAT

Да и еще по поводу гумна, возможно оно вам ненужно, есть элементарные примеры.
За такое гувеное КБ от MaDCaT.pw (ныне несуществует) до сих пор запросы валятся. оно есть у меня хорошо что дождался решения от узкоглазых TLS переходник помог излечить муху ЦЦ на HDD баракуде. выдрал все с мультами и данными. кому нужно отдам за так.
Простота сестра таланта.

я просто оставлю это тут:

Цитата:

Сообщение от Спойлер




Logan22 29.10.2018 23:41

Цитата:

Сообщение от [MSN]-MADCAT

....etc
Зачем RETURN to SOURCE?
Если вы понимаете о чем я.

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

Но я не понял о чем речь из-за непонятно написанного кода, но может ты хотел как-то так написать...

PHP:


Код:

function
hashPass
(
$alg
,
$pass
=
null
)
{
switch
(
$alg
)
{
case
'sha1'
:
return
base64_encode
(
hash
(
$alg
,
$pass
,
true
)
)
;
break
;
case
'whirlpool'
:
return
base64_encode
(
hash
(
$alg
,
$pass
,
true
)
)
;
break
;
case
'md5'
:
return
base64_encode
(
hash
(
$alg
,
$pass
,
true
)
)
;
break
;
case
'sha512'
:
return
base64_encode
(
hash
(
$alg
,
$pass
,
true
)
)
;
break
;
default
:
echo
'не совпало то гуляй вася'
;
break
;
}
}


Alligat0r 01.11.2018 15:36

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

Да и если уж хочется большего то почему бы не юзать примерно такое;

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

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

User 01.11.2018 16:05

А давайте MD5 ломать, посылая по одному символу и проверять ответ?

Alligat0r 01.11.2018 16:09

Цитата:

Сообщение от User

А давайте MD5 ломать, посылая по одному символу и проверять ответ?

Вы сами не знаете то, что написали из чего можно сделать простой вывод = набивание постов.

gizeh 01.11.2018 20:25

Цитата:

Сообщение от Alligat0r

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

Цитата:

Сообщение от Alligat0r

конфиг со здоровенной ключевой фразой, которую довеском подсунуть в формирование двойного md5, тогда уже перебор вообще окажется из роли фантастики

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

Длинная статическая соль (этот самый конфиг со здоровенной фразой) не решает проблему.

При написании алгоритмов аутентификации и безопасного хранения хешей нужно исходить из таких предположений: утекла вся БД и злоумышленнику известен алгоритм хеширования (сорцы тоже утекли). Цель: получить plain-text пароль пользователя.

Что будет делать злоумышленник? Скармливает софту-брутфорсеру алгоритм хеширования и самый большой словарь, который может себе позволить, примерно в таком виде (как предложенный @Alligat0r вариант): md5(md5(STATIC_SALT.DICTIONARY_WORD)) и запускает брутфорс. Уже видите проблему с такой солью? Она статическая (одна на все пароль) и никак не влияет на брутфорс, он все еще чертовски быстр. При каждой итерации подбора софт ищет полученный хеш в бд. Есть такой? Ну вот, один пароль мы нашли. И так далее.

Что же делать? Не использовать статическую соль, а рандомизированную для каждого пользователя. Как её хранить? Да прямо рядом с хешем пароля. Это намного безопаснее. Почему? Рассмотрим тот же вариант: у хацкера так же есть БД и алгоритм генерации хеша. Как он будет брутфорсить: взять уникальную соль для каждой записи из таблицы юзеров. Прилепить к слову из словаря и сгенерировать хеш: md5(md5(RANDOMIZED_SALT.DICTIONARY_WORD)). Проверить, что полученные хеши не совпадают. Взять следующее слова из словаря... Я думаю что уже стало очевидно, что в первом случае нужно сделать n итераций, где n -- размер словаря. Во втором уже Nn, где N - общее кол-во записей в таблице юзеров. Другими словами, при наличии словаря на 1000000 (миллион) парольных фраз и 1000 юзеров злоумышленник переберет 1000000 хешей (что для md5 очень быстро), а во втором уже 1000 * 1000000 = 1000000000 (миллиард) итераций! Что уже усложняет жизнь.

Но не делает эту задачу невозможной при наличии GPU

И таки что делать? Все просто, вот алгоритм успеха: уникальная рандомизированная для каждого юзера соль, более требовательный к вычислительным ресурсам алгоритм хеширования, нежели md5: блоуфиш с адекватным кост-фактором и уникальной солью обломает хацкеру зубы (что как раз и реализует PHP password api, к слову).

Desquire 01.11.2018 22:03

@Alligat0r, Все методы взлома MD5 - «Хакер»

2013 год

Logan22 02.11.2018 00:16

Цитата:

Сообщение от Alligat0r

тогда уже перебор вообще окажется из роли фантастики

Видеокарта 980ti на изи 3-4 миллиардов ком/сек поверит твой md5, забудь про md5 или sha1, whirlpool и прочие актуальные 90х начала 00 годов медоты хеширования.

Alligat0r 02.11.2018 00:54

Все что написано в последних сообщениях это не методы взлома а методы подбора/перебора, нужно понимать разницу.

Вот к примеру md5 хеш обычный не двойной сгенерированный по 4 символам, попробуйте вскройте, прежде чем писать о способе взлома хеша и о гигантской скорости перебора.

a1333e478770f8a193b3cd4e76bfa606

kick 02.11.2018 00:57

5^Bc

MaZz 02.11.2018 03:42

Цитата:

Сообщение от kick

5^Bc

сложна, правда?

Logan22 02.11.2018 16:15

Никто твой хеш не будет ломать, он никому не нужен чтоб на него тратили свои мощности.

Взлом или брут хеша это одно и тоже, так как хеш функция не обратима, слово "взлом" в данном контексте означает получения первичного пароля.

Тебе объяснили что md5 устаревший алгоритм хеширования, что тебе ещё не понятно. Хочешь используй, хочешь нет, всем плевать.

[MSN]-MADCAT 22.12.2018 00:00

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

Но спасибо всем кто принял участие. Было весьма интересно.

HTML Программист 16.01.2019 20:10

Цитата:

Сообщение от Logan22

Уже давно деприкейтед

Детальнее можно? xD


Время: 21:33