@alneo
Интернет программист

Как реализовывается аутентификация на базе ЭЦП — проверка ЭЦП юзера с помощью PublicKey клиента?

Статья Аутентификация на базе ЭЦП

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

В базе данных сохраненные логин, $user_xkey и $user_ykey (= PublicKey)
От клиента приходит логин, $user_sign и $rnd

В статье написано "Сервер проверяет корректность ЭЦП($user_sign) с помощью PublicKey клиента, хранящегося в БД."

Не подскажите реализацию на стороне сервера?
  • Вопрос задан
  • 3831 просмотр
Пригласить эксперта
Ответы на вопрос 1
@art090390
от клиента приходит Sign(SHA256(RNDserver+RNDclient)), Login, RNDclient (RNDserver сгенерировал сервер и отправил клиенту на предыдущем шаге)
сервер вычисляет SHA256(RNDserver+RNDclient) и имеет, таким образом:
1. данные SHA256(RNDserver+RNDclient)
2. подпись Sign(SHA256(RNDserver+RNDclient))
теперь с помощью открытого ключа клиента, который сервер находит в базе по Login, сервер проверяет подпись

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

и ещё
если у вас $user_xkey подразумевается закрытым ключом пользователя, то в базе на сервере его хранить не надо)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект