Поширені питання по використанню Code Signing сертифікатів

FAQ Поширені питання по використанню Code Signing сертифікатів - ЭЦП

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

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

  1. Сертифікат може бути безкоштовно перевипущений, якщо загублений токен, забутий пароль, скомпрометований приватний ключ, збій або апгрейд ПЗ, звільнення адміністратора сертифіката тощо
  2. * Сервіс мітки часу:
    https://timestamp.verisign.com/scripts/timstamp.dll
    https://sha256timestamp.ws.symantec.com/sha256/timestamp - RFC3161 -compliant
    https://sha1timestamp.ws.symantec.com/sha1/timestamp ( RFC3161-compliant)
  3. Технологія підпису коду
    Схема підписи коду CodeSigning сертифікатом
  4. Технологія перевірки підпису коду
    Схема перевірки файлу на наявність підпису CodeSigning сертифікатом
  5. Code Signing - як підписати, як це робиться?
    Зазвичай можливість накладення підпису надає програма, в якій ви робите розробку вашого ПЗ. Ви також можете використовувати утиліту Майкрософт https://msdn.microsoft.com/en-us/library/8s9b9yaz%28v=vs.80%29.aspx і підписувати що завгодно з командного рядка
  6. Можна прибрати підпис - ні
  7. Можна підписати заново? - можна, можна підписувати скільки завгодно раз
  8. Можна підписати код, розроблений третьою стороною
    - можна, але навіщо вам зайвий геморой? ;) ви хочете поручитися за код написаний кимось іншим, а не вами - це не розумно підписувати своїм підписом чужий код ... та й про WinQual можна пам'ятати
  9. Як попередньо до запуску дізнатися підписаний файл чи ні
    - правою кнопкою миші "Властивості" -> Підписи там перераховані всі підписи. Якщо закладки "Підписи" немає, значить файл не підписаний. Якщо це ехе файл і вимагає права адміністратора, то з'являється зелений UAC, якщо файл не підписаний, то з'являється червоний. Крім цього існує програмний інтерфейс для перевірки підпису SignTool так само перевіряє підпис
  10. Підпис впливає на роботу або на надійність ПЗ - ні
  11. Ви отримуєте попередження SmartScreen
    SmartScreen працює з диспетчером завантаження для запобігання шкідливих завантажень. Якщо завантаження вважається ризикованим, воно буде негайно заблоковано. Чим частіше завантажується файл, тим краще у нього буде репутація і тим менш ризиковано він враховується SmartScreen. Код, підписаний з сертифікатом підпису EV Code, не викликатиме попередження SmartScreen, так як він має миттєву репутацію за допомогою SmartScreen.
  12. Проблеми з кодом ядра
    Для підпису коду ядра необхідний крос-сертифікат. Якщо ви використовуєте Windows 10 ( зверніть увагу, що ця вимога Windows для підпису коду ядра) вам необхідний сертифікат підпису коду EV.
  13. Проблеми з сумісністю в MAC
    Щоб підписаний додаток було довірений на комп'ютерах Mac, особа,яка підписує повинна стати розробником Apple. Це пов'язано з тим, що програмне забезпечення GateKeeper від Mountain Lion, зумовлений ​​захист від шкідливих програм OS X, обмежує завантаження додатків, доступних в магазині Mac App, якщо вони не підписані певними розробниками Apple.
  14. Мій сертифікат закінчився
    Якщо ви підписали свій додаток / програмне забезпечення сертифікатом, і термін дії цього сертифіката закінчився, то підпис в коді стане недійсним. Щоб виправити цю проблему, ви можете реалізувати довгостроковий підпис, використовуючи сервіс третьої сторони -Timestamp. Використання сторонньої позначки часу означає, що програмне забезпечення може перевірити, що сертифікат був дійсний під час підписання, тому йому все одно можна довіряти. В іншому випадку програмне забезпечення просто перевіряє поточний статус сертифіката підпису і, якщо він минув, код не буде довіреним.
    * Примітка. Функція позначки часу недоступна за замовчуванням при підписанні макросів і повинна бути активована з допомогою змін реєстру.
  15. Я втратив пароль
    Ви встановлюєте тимчасовий пароль, замовляючи свій сертифікат для підпису коду. З міркувань безпеки ЦС не зберігає копії цього пароля, тобто Центр Серітфікаціі не може відновити його для вас.
  16. Я не задоволений інформацією в моєму сертифікаті
    Якщо ви замовили сертифікат підпису коду, і вам потрібно змінити дані цього сертифіката, дія буде залежати від того, на якій стадії випуску знаходиться ваш сертифікат.
    1. Сертифікат проходить перевірку
      Якщо сертифікат все ще знаходиться на стадії перевірки, ви можете повідомити нам і ми відкоректуємо службову інформацію, крім загального імені. Якщо ви ввели неправильне загальне ім'я, вам доведеться скасувати замовлення і відкрити його заново.
    2. Сертифікат випущений
      Якщо сертифікат вже випущений ви можете скасувати замовлення протягом 7 днів