Профілі з'являються в Параметрах із назвою, підписувачем і кнопкою «Встановити», і саме рядок підписувача більшість людей читає. Цей рядок відповідає лише на одне питання: хто спакував ці налаштування згідно з правилами перевірки підпису. Він не каже, що VPN-вміст вказує на шлюз вашого роботодавця або що вбудований кореневий сертифікат належить до вашого сховища довіри TLS. Нижче розбір відкриває пакет у тому порядку, в якому пристрій його застосує.

Почніть із конверта: хто підписав цей профіль

На iOS профіль видно в розділі Параметри, Основні, VPN і Керування пристроєм, а підписувач відображається над кнопкою «Встановити». Прочитайте це ім'я, перш ніж торкатися будь-чого, і запитайте себе, чи це та організація, від якої ви чекали налаштувань. Дійсний підпис незнайомої сторони — це все одно дійсний підпис, і він уповноважує її конфігурацію, а не вашу. Той самий екран також показує, чи профіль узагалі підписаний.

Якщо файл лежить на Mac, огляньте його до того, як він потрапить на телефон. Утиліта безпеки розкодовує конверт CMS і друкує plist, який прочитає пристрій, — це той самий вміст, тільки без кнопки «Встановити» перед очима. Документація Apple про примусове застосування конфігурацій описує підписування як перевірку походження, і саме це тут ідеться.

security cms -D -i corp-vpn.mobileconfig -o corp-vpn.plist
plutil -p corp-vpn.plist

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

Відкрийте кожен вміст і назвіть, що він встановлює

Профіль — це контейнер, і цікаве в ньому — масив PayloadContent усередині. Кожен запис має PayloadType, який каже, що саме встановить пристрій: керовану конфігурацію VPN, ідентифікатор PKCS#12, кореневий сертифікат або реєстрацію в системі керування. Надрукуйте типи, перш ніж читати будь-які налаштування.

plutil -extract PayloadContent xml1 -o - corp-vpn.plist |
  grep -E 'PayloadType|PayloadDisplayName'

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

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

Прослідкуйте сертифікати до з'єднання, яке ними користується

Перелічіть сертифікати в пакеті та зіставте кожен із завданням. Клієнтський сертифікат представляє цей пристрій шлюзу, центр сертифікації, що його видав, належить до ланцюга довіри цього з'єднання, а корінь, встановлений для проксі чи внутрішнього сервісу, не стає автоматично точкою довіри для кожного HTTPS-сайту. На iOS корінь, встановлений вручну, лишається недовіреним для TLS, доки ви не ввімкнете його в розділі Параметри, Про пристрій, Налаштування довіри до сертифікатів, тоді як корінь, доставлений керуванням, вважається довіреним без цього кроку. Саме ця різниця й робить призначення вмісту важливим.

openssl pkcs7 -inform DER -in corp-vpn.mobileconfig -print_certs -noout
security find-certificate -a -c "Corp Root" -p | openssl x509 -noout -subject -dates

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

Після встановлення: перевірте і знайте, що робить видалення

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

profiles show -type configuration
scutil --nc list

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

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

Схожі статті