Не существует такого понятия, как «личный сертификат». Сертификат всегда по определению общедоступен.
Сертификат специально содержит идентификатор (в основном, имя чего-либо или кого-либо) и открытый ключ . Открытый ключ может использоваться для проверки подписей, которые были сгенерированы с использованием соответствующего личного ключа . Закрытый ключ - , а не в сертификате.
К сожалению, некоторые распространенные «документации» называют «сертификат» (или «цифровая идентификация» или даже «личный сертификат») объединением в единый архив сертификата и соответствующего закрытого ключа. , Такие архивы часто следуют формату файла PKCS # 12 (часто называемому «P12»), известному в мире Microsoft как «PFX». (Большая часть сложности использования криптографии на практике заключается в том, чтобы пройти через несколько уровней небрежно используемой терминологии; аналогично, сам OAuth называет HMAC / SHA-1 «сигнатурой», что неверно.)
Документация OAuth гласит в разделе 9.3:
Метод подписи RSA-SHA1 использует алгоритм подписи RSASSA-PKCS1-v1_5, как определено в разделе 8.2 [RFC3447] (более просто известный как PKCS # 1), используя SHA-1 в качестве хэш-функции для EMSA-PKCS1-v1_5 , Предполагается, что Потребитель предоставил провайдеру услуг свой открытый ключ RSA проверенным способом, выходящим за рамки данной спецификации.
, что означает, что:
- Потребитель имеет доступ к закрытому ключу RSA
- Поставщик услуг знает соответствующий открытый ключ «проверенным способом»
и то, как это делается, выходит за рамки спецификации OAuth. Предположительно, в какой-то момент Потребитель показал свой открытый ключ Поставщику услуг, возможно, как часть сертификата (который Поставщик услуг должным образом проверил согласно X.509 правилам), или с помощью другого средства, которое обеспечивает «проверку». Дело в том, что подпись, вычисляемая с использованием закрытого ключа, является убедительным доказательством того, что она была вычислена по тем же подписанным данным тем, кто контролирует закрытый ключ, соответствующий открытому ключу, который известен поставщику услуг; Поставщик услуг должен по-прежнему убедиться, что открытый ключ действительно принадлежит тому, кому он считает, что он принадлежит. Сертификаты - это общий и сложный способ сделать это.