Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplifying projects #7

Merged
merged 7 commits into from
Mar 17, 2022
Merged

Simplifying projects #7

merged 7 commits into from
Mar 17, 2022

Conversation

antonkalinin-ml
Copy link
Contributor

@antonkalinin-ml antonkalinin-ml commented Mar 5, 2022

Упрощение требований к заданиям 3 и 4.

Здесь я не добавлял шаблоны проектов, это займет время. Ломать не строить :).

Кое-где расписал требования к серверу после опыта прошлых ревью. Возможно, они стали немного сложнее, если существовали другие, более простые легальные варианты реализовать те же требования.

  • не надо запрещать wai-extras, там вроде бы лежит парсилка multipart/form-data. И вообще мы теперь либы не запрещаем по максимуму, как раньше.
  • определиться, какой механизм рекомендуем для соли хешей паролей. (Мы соль не требуем, лишь рекомендуем). Я бы предложил HMAC, куда в качестве соли подается user_id, но я не в курсе, какой подход считается современным. Для HMAC точно есть библиотечная функция в cryptonite.

Issues: #4, #5

bot-task.md Outdated Show resolved Hide resolved
server-task.md Show resolved Hide resolved
server-task.md Outdated Show resolved Hide resolved
server-task.md Outdated Show resolved Hide resolved
@olegromashin
Copy link
Contributor

Если делать правильно, то одного хеширования недостаточно, нужно с солью

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

@antonkalinin-ml antonkalinin-ml force-pushed the simplifying-projects branch 2 times, most recently from 44170d4 to dd35c3a Compare March 9, 2022 12:51
@antonkalinin-ml
Copy link
Contributor Author

antonkalinin-ml commented Mar 9, 2022

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

+ @evgeny-osipenko

@antonkalinin-ml
Copy link
Contributor Author

antonkalinin-ml commented Mar 14, 2022

Есть еще проще вариант для соли: user_id. Соль не должна повторяться, это вроде единственное требование к ней, длина как таковая не важна нет, важна, чтобы пароль нельзя было подобрать по радужной таблице. user_id годится только для того, чтобы у разных юзеров с одинаковым паролем были разные хеши паролей. Безопаснее рандомная соль достаточной длины.

@olegromashin
Copy link
Contributor

Я думаю если всё же пихать соль в задание, то придётся всё-таки разобраться что это и как это. Я вижу тут самыми оптимальными два варианта:

  1. Пишем, что можно делать без соли, но так нельзя, просто здесь пока попробуйте так справиться.
  2. Не пишем про соль, пусть изучают и делают как положено.

@evgeny-osipenko
Copy link

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

https://security.stackexchange.com/questions/211/how-to-securely-hash-passwords - интернет в 2013 году рекомендовал использовать PBKDF2.

В криптоните есть модуль прямо под этот алгоритм: https://hackage.haskell.org/package/cryptonite-0.30/docs/Crypto-KDF-PBKDF2.html

@antonkalinin-ml
Copy link
Contributor Author

Спасибо, все поправил, мержу.

@antonkalinin-ml antonkalinin-ml changed the base branch from master to next March 17, 2022 11:15
@antonkalinin-ml antonkalinin-ml merged commit 9a773a7 into next Mar 17, 2022
@antonkalinin-ml antonkalinin-ml deleted the simplifying-projects branch March 17, 2022 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants