Збереження та експорт закритих ключів сертифікатів в центрах сертифікації microsoft active directory

Як же це зробити?

Як ви, сподіваюся, знаєте, для шифрування електронних повідомлень використовується відкритий ключ сертифіката користувача, якому лист відправляється. Для дешифрування електронних листів використовується закритий ключ сертифіката користувача-одержувача.

Коли користувач запитує сертифікат, який буде використовуватися для шифрування \ дешифрування електронної пошти, то сертифікат з закритим ключем потрапляє в захищене сховище в профілі користувача. Потім цей закритий ключ вже може використовуватися за призначенням.

За замовчуванням, центр сертификації не зберігає закриті ключі користувачів. Само собою, це зроблено для забезпечення безпеки листування. Microsoft розробила окрему процедуру збереження закритих ключів в базі даних CA (Certification Authority, тому що центру сертифікації) і експорту їх при необхідності.

Основні етапи такої процедури:

  1. Ви налаштовуєте архівацію закритих ключів на сервері.
  2. У момент видачі сертифіката, його закритий ключ копіюється в базу даних і шифрується за допомогою спеціального сертифікату - Key Recovery Agent (KRA).
  3. При необхідності відновлення \ експорту будь-якого закритого ключа, він розшифровується за допомогою Key Recovery Agent (KRA).

Розглянемо, як ці кроки виконуються.

Налаштування архівації закритих ключів на сервері.

Вам знадобиться сертифікат Key Recovery Agent (KRA), виданий для вашого профілю.

  • Відкрийте оснастку Certificate Authority. клацаємо правою кнопкою по Certificate Templates і вибираємо Manage. Відкрийте властивості шаблону Key Recovery Agent. На вкладці Security ви побачите, що за замовчуванням, тільки члени груп Domain Admins і Enterprise Admins мають дозволу на отримання таких сертифікатів. Можливо, ви захочете поміняти дозволу і обмежити кого-небудь. Наприклад, у нас в організації доменним адміністратором ми закрили цю можливість.
  • В оснащенні Certificate Authority. відкрийте Certificate Templates. і зробіть шаблон Key Recovery Agent доступним для видається сертифікат (правою кнопкою по Certificate Templates, вибрати New і вибрати Certificate Template to Issue).
  • Тепер під обліковим записом адміністратора на сервері Certificate Authority. ви повинні запитати сертифікат KRA через оснащення своі' особистих сертифікатів (certmgr.msc). Цей виданий для вас сертифікат повинен з'явитися в вашому сховищі Personal Certificates.
  • В оснащенні Certificate Authority, клацаємо правою кнопкою на CA і вибираємо Properties. На вкладці Recovery Agents. вибираємо Archive the key і тиснемо Add для додавання сертифікатів KRA. Вибираємо свій сертифікат і тиснемо Apply.
  • В налаштуваннях шаблону сертифікатів користувачів повинна бути налаштована можливість архівації закритих ключів. Для цього вибираємо Certificate Templates і тиснемо Manage. Вибираємо потрібний сертифікат і тиснемо Properties. Відкриваємо вкладку Request Handling і вибираємо Archive subject's encryption private key.
  • Тепер закриті ключі для знову виданих сертифікатів будуть заархівовані в базі даних сервера центру сертифікації. Коли ключ сертифіката заархівований, ставиться позначка в колонці Archived Key (її треба додати через View, Add / Remove Columns).

Експорт архівних ключів

Коли закритий ключ сертифіката потрапив в архів, цей ключ може бути відновлений під обліковим записом адміністратора, у якого є сертифікат Key Recovery Agent (і цей сертифікат використовувався для шифрування закритого ключа). Щоб запустити команду на експорт, необхідно знати серійний номер сертифіката, ключ якого будемо відновлювати. Серійний номер можна подивитися на вкладці Details у властивостях сертифіката.

Збереження та експорт закритих ключів сертифікатів в центрах сертифікації microsoft active directory

Використовуючи серійний номер відновлюваного сертифіката ми отримуємо якусь структуру BLOB (імовірно, просто бінарний код з бази, точніше не знаю). Потім перетворюємо BLOB-сертифікат в pfx-файл, який містить в собі відкритий і закритий ключі. Цей файл повинен бути захищений паролем. Нижче представлені команди, як це робиться.

Тепер у вас є * .pfx-файл, який вже можна імпортувати в будь-який призначений для користувача профіль. Не забувайте пароль.

Забезпечення зберігання сертифікатів Key Recovery Agent (KRA), а також їх життєвий цикл

Отже, ми розібралися з базовими операціями. Тепер треба подумати про одну дуже важливу річ.

Коли ми додаємо KRA сертифікат на сервер, ви повинні розуміти, що закриті ключі, які CA-сервер буде архівувати насправді шифруються відкритим клюом KRA сертифіката. Тому необхідно пам'ятати про те, що ми повинні уважно ставитися до збереженості закритих ключів KRA сертифікатів в вашому профілі користувача на сервері. Можливо вам необхідно експортувати сертифікат KRA з закритим ключем і зробити резервну копію в якомусь захищеному сховище.

А тепер подивимося на наступну картинку:

Збереження та експорт закритих ключів сертифікатів в центрах сертифікації microsoft active directory

Як ви думаєте, чи зможете ви відновити закритий ключ за допомогою сертифіката KRA (b). Відповідь: Ні, не зможете. Тому ви повинні також уважно стежити за тим, щоб у KRA-сертифікатів не закінчувався термін дії, і вчасно продовжувати їх. Обов'язково продовжуєте KRA-сертифікати, використовуючи існуючий (старий) закритий ключ.

Ще один спосіб убезпечити заархівовані ключі - мати не один, а два KRA сертифіката на кожен сервер CA, як це показано на малюнку вище.

І останнє. Ви можете підготувати Powershell або Bash скрипт, щоб автоматично вивантажувати все закриті ключі з сервера. Це вже, так би мовити, останній постріл.