Использование JWS для цифровой подписи с шифрованием контента

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

Мне нужно убедиться в двух вещах.

  • Полезная нагрузка проверяется из моей системы (цифровая подпись)
  • Только конкретный получатель может принять и прочитать его (шифрование).

Для этого я думаю о шифровании контента с использованием открытого ключа получателя. Поскольку у меня нет их закрытого ключа, я не могу просто подписать его. Затем я могу использовать свой закрытый ключ, чтобы подписать его, чтобы получатель мог проверить полезную нагрузку. В основном JWS с зашифрованным содержимым.

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

Следует ли использовать JWS таким образом? Я знаю, что JWE существует, но я не могу подписать его цифровой подписью. Есть ли другой стандарт, который я должен использовать?

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

Я также исследовал DID, в которых я мог бы действовать как контролер. Тем не менее, я все еще понимаю это, поэтому не слишком ясно, решит ли это мою проблему.

0 ответов