2016-10-27 6 views
-1

Я работаю над моделью частной защищенной сети. В любое время, когда оборудование «встречается» с другим оборудованием в сети, они обмениваются сертификатами, что означает: A встречает B, B генерирует сертификат открытого ключа A, а A генерирует сертификат открытого ключа B.Получить тему Открытый ключ от X509Certificate

Мой вопрос: один раз A получает свой сертификат от B, я могу получить открытый ключ B, выполнив: cert.getPublickey();. Но как я могу проверить, что сертификат сертифицирует A? Я знаю, что могу получить название предмета сертификата, но я хотел знать, можем ли мы получить что-то лучше (например, публичный ключ субъекта).

Я работаю на Java с библиотекой BouncyCastle.

Спасибо!

+1

Определить 'B генерирует сертификат открытого ключа A'. Для меня это бессмысленно. Способ, которым он действительно работает, заключается в том, что A отправляет сертификат BA вместе с цифровой подписью, подписанной личным ключом A, который может быть проверен с использованием открытого ключа A, который находится в сертификате A, что доказывает B, что он * является сертификатом A , – EJP

+0

«A встречает B, B генерирует сертификат открытого ключа A». Как B знает открытый ключ? –

+0

Ваше название не имеет никакого отношения к вашему вопросу. – EJP

ответ

1

Я работаю над моделью частной защищенной сети. В любое время, когда оборудование «встречается» с другим оборудованием в сети, они обмениваются сертификатами, что означает: A встречает B, B генерирует сертификат открытого ключа A, а A генерирует сертификат открытого ключа B.

Нет, это не так. Вам нужно сделать некоторое чтение на PKI. Предполагается, что каждая сторона отправит свой собственный сертификат другой стороне вместе с цифровой подписью, подписанной собственным личным ключом. Другая сторона может извлечь открытый ключ из сертификата и использовать его для проверки подписи, что доказывает, что первая сторона владеет сертификатом.

Часть о 'B генерирует сертификат открытого ключа A' не имеет смысла.

Мой вопрос: один раз A получает свой сертификат от B, я могу получить открытый ключ B, выполнив: cert.getPublickey() ;. Но как я могу проверить, что сертификат сертифицирует A?

Через электронную подпись: см. Выше.

Смежные вопросы