Шаблоны сертификатов и расширения

## Шаблоны сертификатов Active Directory

**Шаблон сертификата** — это предопределённый набор параметров, расширений и политик, который определяет:
– Криптографические алгоритмы и минимальную длину ключа.
– Срок действия сертификата.
– Расширения, которые будут включены в сертификат.
– Права доступа (кто может запрашивать, читать или автоматически получать сертификат).
– Предназначение сертификата (аутентификация, подпись, шифрование).

> [!summary] Простыми словами
> Шаблон сертификата — это “трафарет” или “форма”, по которой центр сертификации выпускает документы. Вместо ручной настройки каждого параметра, администратор создаёт шаблон, а пользователи просто запрашивают сертификат по этому шаблону.

### Основные типы шаблонов в Windows Server 2012

| Шаблон | Назначение |
| — | — |
| **User** | Аутентификация пользователей, подпись и шифрование email |
| **Smartcard Logon** | Вход в систему с использованием смарт-карты |
| **Workstation** | Аутентификация рабочих станций в домене |
| **Web Server** | SSL/TLS сертификаты для веб-серверов |
| **Code Signing** | Подпись программного кода, макросов и документов Office |
| **Encrypting File System (EFS)** | Шифрование файлов и папок |
| **IPSec** | Защита сетевого трафика по протоколу IPSec |

### Управление правами доступа к шаблонам

Для использования шаблона пользователь или группа должны иметь следующие права:
– **Чтение (Read)** — позволяет видеть шаблон в списке доступных.
– **Заявка (Enroll)** — позволяет запрашивать сертификат по шаблону.
– **Автоматическая заявка (Autoenroll)** — позволяет автоматически получать сертификат через групповые политики.

> [!attention] Важно
> Если пользователь не видит шаблон при запросе сертификата, проверьте, что ему назначены права **Чтение** и **Заявка** на этот шаблон в оснастке `certtmpl.msc`.

## Ключевые расширения сертификатов X.509 v3

### Key Usage и Extended Key Usage (EKU)

**Key Usage (2.5.29.15)** определяет базовые криптографические операции, разрешённые для ключа:
– `digitalSignature` — подпись данных.
– `nonRepudiation` — подпись с невозможностью отказа от авторства.
– `keyEncipherment` — шифрование ключей.

**Extended Key Usage (2.5.29.37)** уточняет конкретные цели использования:
– `1.3.6.1.5.5.7.3.3` — Code Signing (подпись кода и документов).
– `1.3.6.1.5.5.7.3.1` — Server Authentication.
– `1.3.6.1.5.5.7.3.2` — Client Authentication.

> [!note] Разница между Key Usage и EKU
> Key Usage отвечает за то, *что математически можно делать* с ключом. EKU отвечает за то, *для каких бизнес-задач* разрешено использовать сертификат.

### CRL Distribution Points (CDP) и Authority Information Access (AIA)

| Расширение | OID | Назначение |
| — | — | — |
| **CRL Distribution Points** | 2.5.29.31 | Содержит URL-адреса для загрузки списков отозванных сертификатов. Позволяет клиенту проверить, не аннулирован ли сертификат. |
| **Authority Information Access** | 1.3.6.1.5.5.7.1.1 | Содержит URL-адреса для получения сертификата центра сертификации, выпустившего данный сертификат. Используется для автоматического построения цепочки доверия. |

> [!summary] Простыми словами
> CDP — это “база данных аннулированных паспортов”. AIA — это “ссылка на родителя”, позволяющая скачать сертификат вышестоящего ЦС и проверить цепочку доверия автоматически.

## Взаимосвязь расширений при проверке подписи

При открытии подписанного документа MS Word система выполняет следующую проверку:
1. Считывает сертификат подписанта.
2. Через **AIA** загружает сертификат корневого/промежуточного ЦС.
3. Через **CDP** проверяет актуальный список отзыва (CRL).
4. Сравнивает **Key Usage/EKU** с требуемым типом подписи (Code Signing).
5. Проверяет срок действия и статус цепочки доверия.

Только при успешном прохождении всех этапов документ помечается как “Подписан и все подписи действительны”.