Какой тип mime использовать для веб-шифрования JSON

Глядя на RFC 7515 и RFC 7516, я пытался понять, каким должен быть правильный тип mime для JWE. Похоже, что JWE и JWS совместно используют информацию заголовка JOSE, а JWS определяет свой MIME-тип как application/jose. JWE не имеет явной информации о типе носителя. Но поскольку имя jose и оба используют заголовок JOSE, я предполагаю, что оба должны использовать один и тот же тип mime (также потому, что JOSE означает ... Подписание и шифрование).

В этом случае, как мне отличить подписанные и/или зашифрованные сообщения? По значению свойства alg? Или по наличию/значению свойства enc?

Обобщить:

  1. Является ли application/jose типом пантомимы для JWE? Если нет, то каким он должен быть?
  2. Если да, то как надежно отличить сообщения JWE от JWS?

person Pawel Veselov    schedule 29.03.2017    source источник
comment
RFC7519#section-10.3.1 указывает, что тип mime — application/jwt.   -  person Spomky-Labs    schedule 21.12.2017
comment
@FlorentMorselli Это для JWT, меня беспокоит только JWE и JWS.   -  person Pawel Veselov    schedule 21.12.2017
comment
Типа пантомимы, позволяющего различать JWS и JWE, не существует. Служба, которая получает токен, должна обрабатывать тип токена (см. tools.ietf.org /html/rfc7516#section9 вы упомянули)   -  person Spomky-Labs    schedule 21.12.2017
comment
В любом случае ничто не мешает вам использовать свой мим-тип   -  person Spomky-Labs    schedule 21.12.2017


Ответы (1)


Если бы я уделил больше внимания оригинальному RFC, я бы заметил, что там есть раздел для этой конкретной цели (раздел 9).

Короче говоря, код должен проверять наличие свойств payload, ciphertext или enc или проверять значение alg. В качестве альтернативы подсчитайте разделители периодов, если используется компактная сериализация.

Это также означает, что тип mime для обоих одинаков.

person Pawel Veselov    schedule 29.03.2017