Рейтинг:0

Аутентификация между двумя серверами с помощью PKA

флаг cn

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

Службы будут взаимодействовать через API REST через HTTPS, и предлагаемая реализация будет заключаться в том, чтобы клиент что-то подписывал своим закрытым ключом, отправлял подпись вместе с остальными данными в заголовке аутентификации, а сервер проверял эту подпись. с открытым ключом.

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

Это хорошая идея? Если нет, то почему? Если да, то что именно мне подписывать? Является что-либо хорошо (скажем, текущий день)? Есть ли проблема с подписанием чего-то статического?

Maarten Bodewes avatar
флаг in
Обычно вы, по крайней мере, подписываете информацию, связанную с сеансом, и особенно с установлением сеансового ключа. Но, пожалуйста, изучите такие протоколы, как TLS, чтобы получить некоторое представление. Время менее уникально, чем вы можете подумать, и поэтому оно нехорошо; другие могут попытаться установить сеанс в то же время и украсть вашу подпись - компьютеры в наши дни действительно очень быстрые, и полагаться на часы очень, очень, очень опасно. Вот почему подписывать что-то статичное нехорошо, это позволяет проводить **атаки повторного воспроизведения**.

Ответить или комментировать

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