Как долго до использования публикуются сертификаты OAuth2.0? - PullRequest
0 голосов
/ 29 мая 2020

В настоящее время я пишу серверную функциональность для проверки JWT, предоставляемого сервером метаданных GCP (подробности см. В https://cloud.google.com/compute/docs/instances/verifying-instance-identity).

В моей первой (грязной) реализации я получал сертификаты Google из https://www.googleapis.com/oauth2/v1/certs для каждого входящего запроса. Это работает как шарм, но не масштабируется. Итак, я хочу кэшировать сертификаты.

Один из подходов - создать кэш, в котором хранятся сертификаты, соответствующие kid. Однако это позволяет злоумышленнику позволить серверу делать много запросов к серверу Google, отправляя ложные JWT со случайными kid.

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

Я не смог найти ничего об этом ни в RF C, ни в документации GCP. Кто-нибудь знает, это где-то указано?

1 Ответ

0 голосов
/ 17 июня 2020

Я задал этот вопрос службе поддержки GCP, и они пришли со следующим:

Мы не можем предоставить никаких гарантий относительно ротации сертификатов. Ключи могут чередоваться, и в пределах максимального возраста могут появиться дополнительные действительные сертификаты. Сервер должен снова вытащить [1], чтобы обновить sh кеш сертификата, если он получает токен от неизвестного ребенка.

  1. https://www.googleapis.com/oauth2/v1/certs

Итак, подведем итоги: кэшировать можно только отдельные ключи, нельзя кэшировать полный результат. Любые промахи кеша всегда следует повторно проверять на конечной точке Google.

...