Цей опублікований ключ OpenVPN — це CA, ключ вузла чи tls-auth?
Одне слово, три дуже різні об'єкти. Прочитайте директиву, вирішіть, витік — це матеріал довіри чи матеріал ідентичності, і виправте лише те, що витекло.
Хтось повідомляє, що ключ VPN став публічним, і ця фраза приховує три зовсім різні ситуації. Це може бути сертифікат CA, який має бути в кожного клієнта, закритий ключ ідентичності, який ніколи не повинен був залишати одну машину, або спільний секрет каналу керування, який мають зберігати обидві сторони. Виправлення, терміновість і масштаб наслідків у кожному випадку різні, тому перше завдання — класифікація, а не дія. Помилитеся з категорією — і кожен наступний крок буде марною роботою.
Починайте з директиви, а не з імені файлу
Прочитайте активну конфігурацію і знайдіть, яка директива вказує на потрібний матеріал. Опції TLS у OpenVPN використовують ca для довіреного матеріалу сертифіката, cert для сертифіката локального вузла і key для пов'язаного з ним закритого ключа.
Імена файлів нічого не доводять. Файл з іменем key.pem може містити сертифікат, а вбудований блок у профілі може містити точно той самий об'єкт, що й окремий файл на диску. Відкрийте файл і подивіться на його заголовок, замість того щоб довіряти імені. Ця одна перевірка знімає більшу частину невизначеності у звіті.
Якщо профіль — це пакет PKCS#12, розпакуйте його в контрольованому місці, щоб побачити, що в ньому насправді. Один пакет може нести сертифікат, його ланцюжок і закритий ключ, а отже, витік пакета — це витік усіх трьох.
Запишіть класифікацію до того, як хтось змінить файл: об'єкт, директива, які вузли його зберігають і хто може його читати. Саме від цієї фрази залежить решта відповіді.
Сертифікат CA створений для того, щоб ним ділилися
Публічний сертифікат CA — це матеріал довіри. Клієнтам він потрібен для перевірки сервера, і його поширення — звичайна справа, а не інцидент. Його публікація не публікує закритий ключ підпису CA, а саме цей об'єкт дозволив би зловмиснику створювати нові ідентичності.
Цю різницю варто явно зафіксувати в заявці, бо ці дві речі постійно плутають. Питання, на яке треба відповісти, — це сертифікат чи ключ підпису, і швидкий погляд на вміст файлу вирішує його. Сертифікат містить відкритий ключ і підпис; ключ підпису в ньому взагалі не з'являється.
Поширення все ж потребує обережності. Клієнти мають отримувати сертифікат затвердженим шляхом доставки профілів, а не із сайту для вставлення, а сертифікат, що прийшов ненадійним маршрутом, може бути підмінений у дорозі.
Ключ вузла і секрет tls-auth — це не
Закритий ключ вузла — це матеріал ідентичності. Щойно його скопійовано, сервер більше не може відрізнити призначений пристрій від будь-кого, хто має копію, бо демонстрованою властивістю було саме виключне володіння. Продовжувати авторизацію чи змінювати її — рішення власника VPN, а не того, хто знайшов файл.
Секрет tls-auth — це третє. Він додає автентифікацію HMAC навколо пакетів каналу керування, щоб неправильно автентифіковані пакети відкидалися до обміну TLS, і це не закритий ключ вузла і не ключ, що шифрує дані застосунку.
Якщо цей спільний секрет публічний, бар'єр, який він давав, зник для всіх, хто його має. З цього не випливає, що кожен власник проходить перевірки сертифіката й користувача за ним, тому класифікація важливіша за рівень тривоги. Скажіть, який бар'єр упав, і скажіть, які лишилися.
Ремонтуйте роль, що витекла, а не сусідню
Спільний секрет не можна знову зробити закритим, перейменувавши файл або сховавши посилання на завантаження. Заміна означає створити нове значення і поширити його кожному вузлу в узгодженій зміні, а заміна лише однієї сторони ламає домовленість для всіх, хто ще має старе значення.
Якщо ідентичність вузла було розкрито, скористайтеся процедурою відкликання й повторної реєстрації оператора для цієї ідентичності. Зміна пароля не пов'язаного облікового запису не анулює скопійований сертифікат, і заміна файлу tls-auth також.
Перш ніж покладатися на будь-що з цього, підтвердьте, що розгорнутий сервер справді застосовує. Список відкликання, який не оновлюється, або перевірка ролі, вимкнена під час збою, повністю змінюють відповідь. Читайте робочу конфігурацію, а не копію в репозиторії.
Оцінюйте минулий трафік за його власними умовами
Відкритий файл сам по собі не каже, чи можна розшифрувати раніше перехоплені сесії. Це залежить від методу встановлення ключів, розкритого матеріалу і того, які записи існують, і обидва твердження — «увесь трафік втрачено» і «нічого не сталося» — здогадки без цих фактів.
Не публікуйте ще одну копію облікових даних, поки питаєте, до якої категорії вони належать. Натомість передайте назви директив і несекретні метадані затвердженим шляхом підтримки.
Корисний висновок називає об'єкт, його роль, втрачений захист і потрібну узгоджену дію. Усе коротше — це заголовок, а не оцінка.