Показать/Скрыть содержание

    Регистрация устройства по сертификату

    Специфика текущей реализации регистрации по сертификату

    • регистрируется новая УЗ по сертификату (действующий сертификат на токене);
    • регистрируем второе устройств по тому же сертификату на токене.

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

    Для исправления требуется доработка и сервера и SDK:

    • сервер должен научиться удалять дубли сертификатов и сообщать SDK какие сертификаты были удалены
    • SDK должен научиться перепривязывать ключ подписи к новому сертификату.

    Для обратной совместимости:

    • введём новый метод MDAG - verify2
    • SDK будет спрашивать сервер поддерживает ли он удаление дублей

    Аналогичный функционал уже есть в SDK при смене UID - с временного на постоянный. В этом случае также в SDK нужно обновить данные в УЗ и в SigningKeyInfo. В новом сценарии нужно будет обновить CID в SigningKeyInfo

    Описание API

    Для определения поддерживает ли сервер API подтверждения УЗ с объединением сертификатов необходимо отравить запрос OPTIONS на конечную точку /<mdag_name>/operations:

    OPTIONS /mdag/operations HTTP/1.1
    Host: hostname
    

    В ответе сервиса нужно найти HTTP заголовок api-supported-versions. Заголовок будет содержать список версий API поддерживаемых сервисом: 1.0, 1.1, 1.2, 1.3

    Если в списке версий API содержится 1.3, то сервис поддерживает новое API подтверждения УЗ с объединением сертификатов - /verify2.

    Запроса к методу /verify2 идентично предыдущему методу /verify. Ответ метода /verify2 содержит дополнительное поле в стравнении с ответом метода /verify. Метод /verify2 возвращает:

    • device - сведения об устройстве;
    • mergedCertificates - сведения об объединённых сертификатах.

      Список mergedCertificates может содержать сведения об объединённых сертификатах:

    • oldCertificateId - старый идентификатор сертификата (CID), сохранённый в SDK в SigningKeyInfo.
    • newCertificateId - новый идентификатор сертификата (CID), который нужно обновить в SigningKeyInfo.
    В начало © ООО "КРИПТО-ПРО", 2000–2026