Для чого потрібен і як працює code-signing сертифікат
Принцип роботи code-signing сертифікату
1. Що таке Code Signing сертифікат?
- Це цифровий сертифікат, який видається розробникам програмного забезпечення.
- Він дозволяє підписувати програми, драйвери та скрипти, підтверджуючи:
- що файл справді створений певною компанією/розробником;
- що його не змінювали після підписання.
- що файл справді створений певною компанією/розробником;
2. Для чого потрібен?
- Довіра користувачів: при установці користувач бачить підписану програму з назвою компанії, а не “Невідомий видавець”.
- Безпека: гарантія, що файл не був змінений або заражений вірусом після створення.
- Вимога систем:
- Windows SmartScreen, macOS Gatekeeper і браузери перевіряють наявність підпису.
- Для драйверів у Windows підпис обов’язковий.
- Windows SmartScreen, macOS Gatekeeper і браузери перевіряють наявність підпису.
- Репутація компанії: підписані файли менше блокуються антивірусами.
3. Як працює Code Signing?
- Розробник отримує сертифікат від сертифікаційного центру (CA).
- Напр. DigiCert, Sectigo, GlobalSign.
- Для видачі перевіряють компанію чи особу.
- Напр. DigiCert, Sectigo, GlobalSign.
- Програма підписується сертифікатом (через утиліти signtool, osslsigncode або IDE).
- При запуску система перевіряє підпис:
- чи сертифікат чинний;
- чи довіряє йому операційна система;
- чи не змінено файл після підпису.
- чи сертифікат чинний;
- Якщо все гаразд – користувач бачить повідомлення “Видавець: [Назва компанії]”.
4. Види Code Signing сертифікатів
- Стандартний (Standard Code Signing)
- Зберігається у файлі PFX.
- Підходить для більшості програм.
- Зберігається у файлі PFX.
- Розширений (EV Code Signing)
- Видається з апаратним токеном (USB-ключем).
- Має вищий рівень довіри (миттєво знімає попередження SmartScreen у Windows).
- Видається з апаратним токеном (USB-ключем).
5. Приклади використання
- Підпис програм для Windows (EXE, MSI).
- Підпис драйверів.
- Підпис скриптів PowerShell, Java, Python.
- Підпис мобільних застосунків (Android, інколи iOS).
✅ Висновок: Code Signing сертифікат – це “паспорт” для програмного забезпечення. Він забезпечує довіру користувачів, захист від підробки та сумісність із сучасними системами безпеки.