Ограничение мощности доверенного сертификата

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

Похоже, лучший способ сделать это - Ограничения имени и использовать белый список для ограничения использования, который равен видимо сейчас уважаемый . Итак, я, хотя мне нужно использовать DNS (скажем, xyz.com), поэтому подпись CA не будет принята для google.com f.ex, и поместите ее также в каждый SAN сертификатов клиента, поэтому сертификаты клиента считается действительным и не отклонено. Видимо, это не так. Я пробовал это, но мне не удалось заставить его работать правильно. Итак, я должен использовать DNS (скажем, xyz.com), поэтому подпись CA не будет принята для google.com f.ex, и поместите ее также в каждый SAN сертификатов клиентов, поэтому сертификаты клиентов считается действительным и не отклонено. Видимо, это не так. Я пробовал это, но мне не удалось заставить его работать правильно. Итак, я, хотя мне нужно использовать DNS (скажем, xyz.com), поэтому подпись CA не будет принята для google.com f.ex, и поместите ее также в каждый SAN сертификатов клиента, поэтому сертификаты клиента считается действительным и не отклонено. Видимо, это не так. Я пробовал это, но мне не удалось заставить его работать правильно. Кроме того, я получаю предупреждение от Windows ... Может быть, это потому, что должны присутствовать все возможные типы ограничений имени ?

enter image description here

Итак, мои вопросы:

  1. Как мне настроить сертификат CA? Какие ограничения я должен применить в сертификате CA, чтобы ограничить его возможность неправомерного использования? Если это связано с ограничениями имени, почему мой пример на изображении не работает?
  2. Есть ли что-то еще, что нужно сделать / учесть в клиентских сертификатах, например, добавить дополнительный SAN?

EDIT

В идеале, там В моем сертификате CA должно быть что-то, что заставляет его подписывать только сертификаты клиентов и выполнять аутентификацию сервера https. Я не понимаю, как сделать это ограничение, я думаю, что это невозможно.

Для использования ограничений имени я использую xyz.com , как разрешено, и я думал, что будут приняты только сертификаты, подписанные моим центром сертификации с SAN xyz.com и фактически используемые с этим именем (в противном случае я мог бы создать сертификат с SAN xyz.com и google.com и может работать при доступе к google.com ). Поэтому я использовал сертификат клиента, подписанный моим центром сертификации, без SAN xyz.com , и меня приняли. Не уверен, что ограничения имен применимы и в этом случае.

1
задан 6 July 2017 в 16:21
1 ответ

Существует несколько ограничений, которые вы можете установить в выпускающем сертификате. ограничения, какие сертификаты он может подписывать.

Ограничения имен

Вы уже упоминали об этом. Они могут использоваться для ограничения того, какие имена могут использоваться в различных типах альтернативного имени субъекта конечного сертификата (внесение в белый список с использованием allowedSubtrees ) или не могут использоваться (внесение в черный список с использованием excludedSubtrees ). На практике, вероятно, вам нужен первый вариант. Типичный вариант использования - разрешить только адреса электронной почты и dnsNames, которые заканчиваются на одно из доменных имен вашей компании.

На этой странице содержится более подробная информация.

Ограничение политики

Это расширение может указывать , в соответствии с которой может быть выдан конечный сертификат. Поскольку это не то, что вы действительно можете технически применить (кроме сравнения OID), это не будет вам полезно

Расширенное использование ключа

Это не совсем стандартное использование, но поскольку ваш снимок экрана предполагает, что вы живете в мире Microsoft, это может быть вам полезно. Microsoft изобрела так называемую политику приложения , которая позволяет выпускающему сертификату ограничивать использование расширенного ключа, которое может иметь выпущенный конечный сертификат. Установив для этой политики значение tlsClientAuthentication, вы можете гарантировать, что выдаются только такие клиентские сертификаты, а не сертификаты сервера TLS или сертификаты подписи кода. За пределами космоса Microsoft это расширение, вероятно, будет проигнорировано.

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

1
ответ дан 3 December 2019 в 23:28

Теги

Похожие вопросы