Мы разрабатываем веб-интерфейс, в котором пользователь входит в приложение, используя USB-ключ .
(абстрактный) ключ используется для идентификации, аутентификации и авторизации пользователя (ипри необходимости может быть дополнен формой входа в систему).Секрет в ключе также используется для симметричного шифрования / дешифрования данных, которыми вошедший в систему пользователь управляет в приложении.Существует несколько ключей для разных пользовательских ролей.
Ключ будет использоваться для входа в различные приложения без взаимного управления идентификацией.Кроме того, требуется некоторая ротация ключей (модель kek / dek) в отношении возможностей шифрования ключа.У нас есть доступ к устройству HSM для генерации, хранения и распространения ключей различного типа.
Мы запланировали использовать стек Java EE / React для веб-приложения.Как начать работу с аутентификацией и шифрованием USB-ключа?Каковы хорошие руководства / ресурсы, касающиеся области веб-приложений?