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

Виконуйте перевірки по черзі й зупиняйтеся на першій невдалій. Вони дешеві, і кожна закриває іншу прогалину.

Перший крок: Завантажте з каналу, який називає проєкт

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

Файл, названий на честь проєкту, нічого не доводить. Перейменувати інсталятор — операція на секунду, і саме ім'я результат пошуку показує першим.

Другий крок: Перевірте підпис за відомою особою

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

# macOS: who signed this app, and is the signature intact?
codesign -dv --verbose=4 /Applications/Tunnel.app
spctl -a -vvv -t install /Applications/Tunnel.app

# Windows: signature and publisher of the installer
Get-AuthenticodeSignature .\tunnel-setup.exe | Format-List Status, SignerCertificate

# Linux: detached signature from the project's release page
gpg --verify tunnel-1.4.2.tar.gz.asc tunnel-1.4.2.tar.gz

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

Третій крок: Порівняйте хеш із незалежним джерелом

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

# Linux and macOS
shasum -a 256 tunnel-1.4.2.dmg

# compare against the value published on the project's own release page
# not against a value copied from the same mirror

Коли проєкт публікує підписані контрольні суми або підписаний маніфест випуску, перевіряйте підпис над списком, а не над кожним файлом окремо. Так один довірений еталон охоплює весь випуск.

Після встановлення: Зберігайте шлях оновлення

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

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

Два джерела, а не одне

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

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

Схожі статті