token
@token

Возможные уязвимости в представленном алгоритме обмена между ключом и замком через радиоканал?

Здравствуйте! Нужен совет по поводу безопасности использования представленной схемы аутентификации между замком и ключом (имеется ввиду ключ открывающий удаленный замок, через радиоканал):

1. Ключ генерирует абсолютно уникальную последовательность (никогда не повторяется), назовем ее "K1".
2. Ключ посылает запрос в замок, запрос состоит из K1 и H1 = MD5(K1 + SALT1)
3. Замок проверяет равенство H1 = MD5(K1 + SALT1)
4. Замок генерирует абсолютно уникальную последовательность (никогда не повторяется), назовем ее "K2".
5. Замок отвечает ключу пакетом, который состоит из H2 = MD5(K2 + SALT2)
6. Ключ делает H3 = MD5(H2 + SALT3) и отсылает это обратно замку
7. Замок проверяет равенство H3 = MD5(H2 + SALT3) и соотв. образом реагирует на это

Каковы возможные уязвимости? Безопасно ли (применительно к данному контексту) использование MD5?

Обновление вопроса:

Вообщем посоветовали мне следующее:

1. Выкинуть шаги 1 - 3 полностью
2. Заменить MD5 на HMAC вариацию HMAC-MD5 / HMAC-SHA1

Как такой вариант? Взломоустойчиво?
  • Вопрос задан
  • 370 просмотров
Пригласить эксперта
Ответы на вопрос 4
gbg
@gbg
Любые ответы на любые вопросы
Вы посылаете в голом виде K1 и MD5(K1 || SALT1)? В таком случае, вашему костылю крышка, любой желающий подберет SALT1.

Вы как обычно схлопотали закононом Шнаера.

Вы опасно некомпетентны в криптографии
Ответ написан
@res2001
Developer, ex-admin
Что может помешать любому другому неавторизованному девайсу начать процесс аутентификации? Незнание SALT1,2,3?
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
получается, абсолютно любой ключ, который реализует этот алгоритм - откроет замок?
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
1. словом salt обозначают открытую случайную последовательность, нужную для борьбы с rainbow tables. Если материал секретный, то это либо ключ, либо производная от него.

2. K2 и SALT2 в вашем алгоритме не нужны совсем, поскольку никак не используются второй стороной. По сути вы отправляете с замка случайный H2 и проверяете, что ключ знает SALT3.

3. В описании нигде не видно, как ключ и замок идентифицируют сообщения как часть одного процесса аутентификации. Ну т.е. как замок получив что-то (предположительно H3) ассоциирует это с ранее отосланным H2?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы