Расширения X.509 для проверки JWT - PullRequest
0 голосов
/ 18 сентября 2018

Я хотел бы создать сертификат открытого ключа X.509 для проверки подписей, особенно Токены JWT.

Я хотел бы знать, какие свойства и свойства расширений нужно установить, какие значения в сертификате ограничить его для проверки JWT.

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

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Типы расширений сертификатов, которые необходимо применять для ограничения: ... Использование ключа и / или Расширенное использование ключа расширения.Для любого вида цифровой подписи вам потребуется как минимум Key Usage , называемое ... digitalSignature , как указано в RFC 5280 .Стандартные (расширенные) расширения использования ключей все указаны в § 4.2.1.3 и 4.2.1.12 RFC .

. Для простоты всегда можно избежать сертификатов, поддерживая хранилище доверенных сертификатов.(статический список) открытых ключей (или отпечатков пальцев, если вы хотите оптимизировать использование памяти / диска) на стороне верификатора JWT.Но это имеет некоторые ограничения , такие как:

  1. Вы должны знать заранее все открытые ключи, потенциально используемые для подписи JWT.Это не всегда так.(Например, в некоторых случаях все, что вы хотите знать в качестве верификатора, это то, что ключ принадлежит сущности какой-либо доверенной организации и что ему разрешено подписывать.)
  2. Если список открытых ключей равен / становится слишком большой, трудно управляемый.
  3. Если ключи меняются слишком часто (помните, что ключи следует регулярно обновлять), это вряд ли поддается управлению.

Следовательно, если такие ограничения влияют на вас, сертификаты X.509 предлагают более масштабируемое и гибкое решение , но, конечно, с дополнительным уровнем сложности.С сертификатами это работает следующим образом:

  • Каждый издатель JWT имеет сертификат, выданный одним или несколькими центрами сертификации (CA).
  • JWT-верификаторы должны доверять этим CA (список доверенных CA.), вместо того, чтобы доверять каждому сертификату издателя JWT.
  • JWT включает сертификат подписавшего (или цепочку сертификатов, если вы используете под-CA) в x5c параметр заголовка заголовка JWS согласно RFC 7515 (цепочка сертификатов X.509) , чтобы верификатор мог связать сертификат (цепочку) с одним из доверенных ЦС.
0 голосов
/ 18 сентября 2018

Подписание и проверка JWT с помощью асимметричных ключей выполняется исключительно с использованием пары ключей, а не сертификатов.Для проверки подписи токена нужен только открытый ключ.

Открытый ключ может содержаться в сертификате для отправки стороне проверки, но это на самом деле не требуется, и получатель не обязан выполнять проверку в отношении любого атрибута или расширения, котороесертификат X509 может иметь.

...