V3.5.3 Token-based Session Management
Requirement:#
Verify that stateless session tokens use digital signatures, encryption, and other countermeasures to protect against tampering, enveloping, replay, null cipher, and key substitution attacks.
Explanation:#
Подпись создается кодированием Base64 заголовка и полезной нагрузки, а также указанным методом шифрования в заголовке. Эта веб-подпись JSON (JWS) соответствует стандартом RFC 7515 .
Окончательная подпись создается следующим образом:
Части токена разделены точкой, так как этот символ не встречается в кодировке Base64. В этом случае генерируется этот вывод:
Remediation:#
Компактная сериализация JWS — это классический вариант подписанного JWT. Потому что это настолько компактно, что токен можно отправить, например, через URL. Он состоит из трех частей, описанных выше: заголовок, полезная нагрузка, подпись. Это означает, что только одна подпись может быть размещена над заголовком и полезной нагрузкой. С вариантом сериализации JSON ранее описанный недостаток устраняется с помощью только одной подписи. Потому что здесь можно разместить несколько подписей поверх одной и той же полезной нагрузки и заголовка. Однако у этого типа есть недостаток, заключающийся в том, что он больше не является безопасным для URL-адресов. Кроме того, из-за используемой орфографии этот формат уже не очень компактен.
Структура разделена на 2 части верхнего уровня payload и signatures. Signatures, в свою очередь, делится еще на три части: protected, header и signature Payload — это полная полезная нагрузка JWS с кодировкой Base64.
Additional:#
https://b-nova.com/en/home/content/stateless-sessions-thanks-to-json-web-tokens