Использование сертификата на стороне сервера для аутентификации на стороне клиента

Предположим, у меня есть сценарий с веб-браузером и двумя серверами: первый сервер (web) подключен к Интернету, второй (worker) - внутренний. Внутри web используется worker, но каждый запрос извне получает web.

Итак, у вас всегда есть:

browser -> web -> worker

Теперь я хочу защитить оба соединения с помощью SSL:

  • web должен использовать сертификат на стороне сервера, который браузер может проверить.
  • worker должен использовать сертификат на стороне сервера, который web может проверить.
  • web должен использовать клиентский (!) Сертификат, который worker может проверять.

В этом сценарии: можно ли повторно использовать серверный сертификат web в качестве клиентского сертификата для worker, или лучше использовать два отдельных сертификата?

Есть ли какие-то передовые методы, на которые мне следует обратить внимание?


person Golo Roden    schedule 03.04.2014    source источник


Ответы (1)


Здесь есть два аспекта: аспект безопасности и «технический» аспект.

Технический аспект заключается в том, что расширения сертификата KeyUsage и ExtKeyUsage сертификата различаются для сертификата на стороне сервера и на стороне клиента. Рабочий проверит ценность этих расширений и пожалуется. Это произойдет, если вы не реализуете настраиваемый валидатор для рабочего (в этом случае любой сертификат, который вы хотите, будет работать).

Аспект безопасности заключается в том, что в случае утечки закрытого ключа по какой-либо причине наличие разных сертификатов (и, следовательно, закрытых ключей) в определенной степени повышает безопасность.

person Eugene Mayevski 'Callback    schedule 03.04.2014