Резервний диск від старого ноутбука досі містить закритий ключ SSH, і хтось питає, чи захищає його VPN. Не захищає і ніколи не захищав. VPN захищає шлях між двома мережами; парольна фраза захищає файл; агент захищає робочий сеанс. Три різні механізми, три різні режими відмови, і викрадена копія цікавиться лише першими двома.

Парольна фраза належить файлу

Парольна фраза ключа SSH шифрує матеріал закритого ключа в стані спокою. Це не пароль облікового запису, що надсилається на сервер, і не дані для підключення до VPN. Їхнє змішування веде до змін, які не усувають причину витоку.

Посібник OpenSSH з ssh-keygen описує роботу з парольними фразами, зокрема ключ -p, що задає нову парольну фразу для вже наявного ключа.

Для наявного ключа форма команди проста, і вона перезаписує файл:

ssh-keygen -p -f ~/.ssh/id_ed25519

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

Копія переживає ноутбук і тунель

Щойно файл ключа скопійовано, активне VPN-з'єднання ноутбука вже нічого про нього не каже. Важливо те, наскільки добре захищений сам файл, і які сервери досі довіряють відповідному відкритому ключу.

Зміна парольної фрази поточного файлу не зачіпає копію і не видаляє той самий відкритий ключ із authorized_keys на сервері. Відкликання та повторне шифрування — різні дії.

Тож ставтеся до викраденого закритого ключа як до події ідентичності, а не мережі. Видаліть або замініть прийнятий ключ через сервери та процес реєстрації, яким він належить. Зупинка VPN обмежує один маршрут в один момент; це не відкликання.

Розблокування переносить секрет в агент

Агент тримає розшифровані ідентичності для подальшої автентифікації, щоб користувач не вводив парольну фразу під час кожного підключення. Це зручність із власною межею безпеки.

ssh-agent може обмежити, як довго ідентичність залишається завантаженою, за допомогою параметра -t, а налаштування для окремої ідентичності може перевищити цю межу. Виберіть політику для агента, який ви справді запускаєте, замість припущення, що відключення VPN забуває кожен завантажений ключ.

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

Перелічіть, що агент тримає зараз, до і після зміни:

ssh-add -l

Завдання без нагляду потребують власного плану

Заплановане завдання не може відповісти на запит. Йому потрібен схвалений порядок машинних облікових даних, а зберігання секрету розблокування в тому самому каталозі, що й ключ, доступному тому самому обліковому запису, не створює другої межі.

Працюйте з власником сервісу над підтримуваним доставлянням секретів або роботою на апаратному забезпеченні та охопіть оновлення, збій і відновлення. Бажання мати людину за клавіатурою змінює вигляд збою порівняно з хостом, який завантажується без нагляду.

Зберігайте також перевірку ідентичності хоста на сервері та обмеження його облікового запису. Маршрут VPN дає приватний шлях; він не доводить, що кожен доступний SSH-слухач — той хост, який ви мали на увазі. Записуйте слухача та відбиток ключа хоста в той самий реєстр, що й сам ключ.

Перевіряйте межі окремо

Перевірте кожну межу своїм питанням. Чи відкривається файл без парольної фрази? Чи тримає агент ідентичність після відключення? Чи приймає сервер відкритий ключ?

Дві команди відповідають на перше і третє:

ssh-keygen -y -f ~/.ssh/id_ed25519
ssh -v [email protected]

Запишіть захист файлу, дозволене використання ключа та видалення на боці сервера як три окремі рядки. Тунель, парольна фраза й агент охороняють різні частини стосунків, і лише одна з них про мережу.

Схожі статті