Насколько безопасна такая схема обмена кодами сеанса?


На сайте появилась статья про обмен кодами сеанса между клиентом и сервером по ссылке:
http://www.cyberforum.ru/crypt.....y/thread1684987.html[link1]

Вся суть изложена в картинке.
Указывается, что она защищает от всех векторов атак.

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

Что можно сказать об этой схеме?

Комментарии
— SATtva (02/05/2016 12:12)   

Для просмотра картинки требуется регистрация.
— qubit (07/12/2017 23:52)   
Лучше поздно чем никогда.

Теоретическая уязвимость существует уже на первом этапе.

Разберем H(Key 1 Rb)

Key – неизвестное значение.
1 и Rb известные значения, злоумышленнику достаточно за полиномиальное время узнать Key после чего подделать H(Key 2 Rb Ra)

Где он подставит 2 и свою Ra.

Если в качестве хеш функции используется md5 и ключ исключительно из ASCII символов, а не диапазон байт от 0 до 255, то все несколько проще.

Вот полезная ссылка раз https://ru.wikipedia.org/wiki/PBKDF2
два https://en.wikipedia.org/wiki/.....Hellman_key_exchange[link2]
три https://ru.wikipedia.org/wiki/.....B0%D0%B2%D0%BA%D0%B0[link3]

В целом могу сказать так, лучше использовать готовые хотя и кривые решения потипа openssl можно libressl, либо libsodium, crypto++ etc.
Но в любом случае нужно серьезно подходить к вопросу. Например некоторые умудряются реализовать якобы безопасный протокол исключительно на Диффи-Хеллмана, что является ошибкой, потому, что протокол не защищает от MITM, для этого нужно использовать ЭЦП, чтобы точно знать с кем общаемся.

Но как я ранее сказал, даже владея инструментами, можно выстрелить себе в ногу https://habrahabr.ru/post/311726/
или еще более веселое https://blog.malwarebytes.com/.....ya-lost-salsa20-key/[link4]

Если нужна простая как дубина и серьезная крипта, которую даже НЛОшники не взломают, которая очевидна как день, это https://ru.wikipedia.org/wiki/.....BD%D0%B0%D0%BC%D0%B0[link5]

Но тут есть свои нюансы которые нужно знать.

Ссылки
[link1] http://www.cyberforum.ru/cryptography/thread1684987.html

[link2] https://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange

[link3] https://ru.wikipedia.org/wiki/Р?митовставка

[link4] https://blog.malwarebytes.com/threat-analysis/2017/06/eternalpetya-lost-salsa20-key/

[link5] https://ru.wikipedia.org/wiki/Шифр_Вернама