TLS і VPN на польовому пристрої: яка межа що захищає
Польовому пристрою потрібен автентифікований канал застосунку, а не лише доступ до мережі. Знайдіть, де завершується TLS, і вирішіть, що робити, коли він відмовляє.
Польовий пристрій відкриває з'єднання до сервісу, і питання проєктування постає як вибір між VPN і TLS. Це формулювання хибне, бо вони виконують різні завдання. TLS автентифікує кінцеву точку застосунку й захищає розмову; а VPN керує доступністю та захищає пакети між вузлами. Прослідкуйте з'єднання від пристрою назовні, і кожен рівень має власну відповідь.
Якщо ви не можете сказати, де завершується TLS, ви не можете сказати, чому застосунок насправді довіряє.
Знайдіть, де TLS насправді завершується
Почніть із застосунку на пристрої й прослідкуйте з'єднання до процесу, який завершує рукостискання. Якщо проксі завершує TLS перед мейнфреймом, захищений шлях закінчується на проксі. Решті переходу потрібен власний задокументований захист.
Називати це наскрізним за припущенням — саме так огляд проєкту схвалює прогалину. Намалюйте точку завершення й якір довіри на одній схемі.
TLS передає запити й відповіді в обох напрямках, тож двобічний застосунок не потребує VPN замість TLS за самою своєю природою. Правильне й зворотне: розгортанню все ще може знадобитися VPN для інших протоколів на тому самому пристрої.
Вирішіть, що пристрій має автентифікувати
Налаштуйте перевірку ідентичності сервера та передбачені корені довіри. Якщо кожен пристрій має доводити власну ідентичність, оберіть підтримувану модель автентифікації клієнта та зареєструйте окремі облікові дані для кожного пристрою. Спільні облікові дані перетворюють один викрадений пристрій на проблему всього парку.
Сплануйте захист ключів, поновлення, відкликання й відновлення ще до відвантаження. Пристрій у полі, який після невдалого поновлення неможливо зареєструвати повторно, стає виїздом до об'єкта, і ця вартість формує проєкт більше, ніж рукостискання.
Використовуйте підтримувану бібліотеку та актуальні настанови. Сучасні настанови щодо розгортання TLS забороняють узгоджувати TLS 1.0 і 1.1, а згадка TLSv1 у старій проєктній нотатці не є вимогою.
Замикайтеся на відмову, коли рукостискання не вдається
Невдале рукостискання або перевірка ідентичності не повинні тихо відкочуватися до початкового протоколу відкритого тексту. Такий відкат — це вразливість, яку робота з TLS мала закрити. Зробіть збій видимим для оператора пристрою й для сервісу та вимагайте захищений канал для чутливих операцій. Далі хай авторизація застосунку вирішує, що може робити автентифікований пристрій.
Визначте час життя з'єднання, кадрування, тайм-аути та поведінку повторів як частину контракту. Шифрування не робить повторну команду безпечною, а повтор після операції з невизначеним результатом потребує відповіді на рівні застосунку.
Запишіть правило відкату. «Він перепідключається без TLS, якщо рукостискання не вдається» — це рішення проєкту, і воно має бути явним.
Дайте VPN лише ту роботу, яку він може виконати
VPN може обмежувати доступність і захищати пакети до власного вузла. TLS захищає зв'язок застосунку з обраною кінцевою точкою. Їхні точки завершення можуть різнитися, і жоден із них не захищає збережені дані кінцевої точки чи адміністративний доступ.
Виміряйте вартість рукостискання, усталений обмін повідомленнями й перепідключення на реальному пристрої, а не припускайте, що один механізм швидший. Потім перевірте чотири випадки, які мають значення: передбачений обмін, неправильна ідентичність сервера, неавторизований пристрій і перепідключення після операції з невизначеним результатом. Запишіть результат для кожного випадку, включно з помилкою, яку показує пристрій.