Дата статьи 19.01.2018

Все о Code Signing и их многочисленные преимущества

Код лежит в основе каждого компьютера, контролирует, что он делает и как он это делает. А для современных устройств код уже не является статичным. Он постоянно обновляется.


Странно думать, что код, контролирующий Ваш телефон, Ваш автомобиль или Вашу микроволновую печь, может быть обновлен в любое время, если Вы вдруг не знали. Кто написал этот код? Знаете ли Вы ответ на этот вопрос?

Это важный вопрос. Когда все устройства полагаются на код запуска, знают ли они, откуда этот код и что он безопасный?

Сертификат является важной частью того, что у Вас есть оригинальный код. В этой статье мы познакомим Вас с сертификатами подписи кода, рассмотрим простое объяснение того, как они работают, и объясним, почему и как начать подписывать код.

Проблема

Вы являетесь разработчиком программного обеспечения, распространяющим Ваше программное обеспечение через Интернет. Вы когда-нибудь задумывались, получают ли Ваши пользователи тот же самый оригинальный код, который Вы отправляете?

Возможно, кто-то загрузил Ваше программное обеспечение на сайт бесплатно, но установил в него вредоносное ПО. Если Ваше программное обеспечение достаточно популярно, злоумышленник может использовать Ваше приложение, как "приманку" и скрывать вредоносное ПО под Вашим именем файла.

Исторически, люди маскировали опасный код, что бы добиться своих целей. Миллионы людей ищут Photoshop, Microsoft Office и Adobe Acrobat, а вредоносные дистрибьюторы знают об этом. Каждый из Вас, знает хотя бы одного человека, который, попался на их удочку.

Даже самые популярные приложения и сайты могут стать разносчиками вирусов. Как этого избежать?

Сертификаты подписи кода решат эту проблему, связав код с идентификатором. Когда Вы запустите подписанное приложение, Вы сразу же увидите, кто его создал.

Что делает подписание кода?

подпись кода

Сертификаты подписи кода не подписывают только какой-либо код - они не используются для подписи файла.PHP или оператора IF. Они подписывают исполняемые файлы и скрипты. Вы, наверняка их знаете: .exe, .app, .msi, .cab, .dll, .jar (и многие другие). Подписывая эти файлы, они предоставляют криптографическую защиту от модификации и идентифицируют автора программного обеспечения.

Что означает подписание? Если Вы знакомы с шифрованием с открытым ключом (также используемым SSL-сертификатами), Вы поймете, как подписи кода обеспечивают надежную идентификацию. Если нет, то давайте быстро пробежимся:

  1. У каждого сертификата подписи кода есть уникальный закрытый ключ, которым обладает только владелец сертификата подписи кода. Когда код «подписан», этот ключ используется для присоединения цифровой подписи к исполняемому скрипту.
  2. Закрытый ключ создаст уникальную подпись для каждого исполняемого файла, который он подписывает. Это происходит потому, что ключ подписывает «хэш» этого исполняемого файла. Хэш - это математический инструмент, используемый для получения уникального значения из любой заданной строки данных, в данном случае, файла.
  3. Подписание и шифрование - это разные вещи. Оба они важны и широко используются в кибербезопасности. Часто они используются вместе. Шифрование - еще один математический процесс, который включает в себя изменение данных, чтобы его не смогли прочитать третьи лица. Имейте в виду, что сертификаты подписи кода не шифруют Ваши файлы / данные.
  4. Платформа, которую использует конечный пользователь (Windows, iOS, Java и т. Д.), проверяет подпись и отображает ее пользователю. Это позволяет пользователю удостовериться, что приложение можно загружать.

Помните, что подписание кода обеспечивает идентификацию. Оно не гарантирует, что программа работает должным образом или что она опасна. Подписание кода может гарантировать только то, что ПО было не тронуто посторонними лицами.

Как сертификат идентифицирует код?

Code Signing несет ту же функцию, что и традиционная подпись, подтверждает личность.

Цифровые подписи криптографически подлежат исполнению. Это означает, что компьютеры, могут Вам доказать, действительная ли подпись. При этом сертификаты подписи кода также гарантируют подлинность и целостность. Давайте подробнее рассмотрим их, потому что они оба чрезвычайно важны:

  • Подлинность: указывает пользователю (и компьютеру), на котором появилось программное обеспечение «кто это». Подлинность связывает Вашу личность с общедоступным / закрытым ключом, с которым Вы подписываете свое программное обеспечение. Поскольку никто другой не имеет Вашего ключа, никто другой не может подписывать программное обеспечение, которое принадлежит Вам.
  • Целостность: Демонстрирует, что код не был изменен. Оно указывает на то, что устройство подписали. Это позволяет компьютеру узнать, был ли вообще изменен код с момента его подписания. Это предотвращает атаки, которые полагаются на изменение законных исполняемых файлов. Это также предупредит пользователей о нарушении файлов, которое может произойти во время загрузки.

CODE SIGNING может предотвратить большинство атак, которые зависят от взлома, модификации кода, мошеннического программного обеспечения и целевого вредоносного ПО.

Существует второй тип сертификата подписи кода, известного как «EV CODE SIGNING», который используется для приложений с высокой чувствительностью. Эти сертификаты имеют особые требования к хранению и подписанию ключей, и обычно, физически находятся на безопасных флеш-накопителях. Хотя, большинству людей не нужно будет использовать EV Code Signing, мы просто хотели кратко упомянуть об этом.

Мультиплатформенное решение

ios-android-windows-phone-img1

Code Signing доступна практически на каждой платформе. Если Вы разрабатываете для Windows, OS X, iOS, Android, Java, Linux, Adobe AIR или практически для любой другой основной платформы, Вам будет доступна кодовая подпись.

Все больше и больше платформ делают подписание обязательным. Чтобы распространять программное обеспечение в официальных магазинах приложений для iOS, Android или OS X, для этого Вам требуется подписать свой код. Чем ближе Ваше программное обеспечение к низкоуровневой функциональности, тем важнее подписывать и тем более вероятно, что подписание будет обязательным. Например, все драйверы Windows должны быть подписаны. Даже макросы Microsoft Office и расширения Firefox требуют подписи.

Даже когда подписка не является обязательной, мы всегда её поощряем. Это создает лучший пользовательский интерфейс. Никто не хочет видеть предупреждения о «неизвестном» или «ненадежном» издателе. И преимущества безопасности реальны.

Процесс

Приобретение и использование сертификата подписи кода можно разбить на пять основных этапов:

  1. Приобретение Вашего сертификата. Выберите CA, которому Вы доверяете, и определите срок действия (сколько лет Ваш сертификат будет действителен). Обычно, Вам будет предложено выбрать платформу, на которой Вы будете подписываться, но по большей части Вы можете использовать сертификат Code Signing для нескольких платформ, если Вы потратите несколько минут на конвертацию файлов.
  2. Проверка Вашей личности - До сих пор мы много говорили об этом, но не полностью объяснили, как удостоверяются сертификаты подписи кода. В процессе проверки CA подтверждает, что Вы являетесь тем, кем Вы себя утверждаете, перед выдачей сертификата. Этот процесс варьируется, если Вы подаете заявку, как физическое лицо или как компания. Каждый CA делает все по-своему, но для большинства это набор стандартных процедур, основанных на официальной правительственной документации. Если Вы подаете заявление в качестве физического лица, это означает предоставление нотариально заверенных копий государственных удостоверений. Для компании Вы подтверждаете правовую регистрацию. Затем CA подтвердит эти документы по другим каналам (например, поиск Ваших корпоративных записей непосредственно с Вашим государством / страной), чтобы убедиться, что они являются законными. Вы должны знать, что процесс проверки займет не меньше 5-7 рабочих дней.
  3. Установка Вашего сертификата подписи кода. В зависимости от используемой Вами платформы эти следующие два шага могут быть полностью отдельными или один в один. На некоторых платформах инструмент подписи обрабатывает как установку, так и подпись. В других случаях Вам необходимо явно импортировать сертификат в «хранилище доверия» до того, как Вы сможете начать использовать свой сертификат.
  4. Подписание Вашего приложения - здесь происходит волшебство! Подписывая Ваше приложение, Вы добавляете свою цифровую подпись. Каждая платформа обрабатывает это по-разному. Проверьте документацию своей среды разработки или платформы, чтобы узнать, как Вам подписываться. На многих платформ для этого доступны специальные инструменты.
  5. Распространяйте приложение - Ваше программное обеспечение готово к отправке Вашим пользователям. Когда они запускают программное обеспечение, они будут видеть Вашу подпись - и смогут доверять этому, что они запускают законное программное обеспечение, которое Вы им предоставили. Вы можете распространять свое программное обеспечение через Интернет, на компакт-диске, флэш-диске или любом другом носителе, который Вы выберите.

Подведем итоги

Сертификаты подписи кода подписывают исполняемые файлы - все, что угодно .exe - .app, и для каждой промежуточной платформы. После покупки и подачи заявки на получение сертификата, Вы должны ждать около недели для проверки, прежде чем получить сертификат.

Если Вы разрабатываете или распространяете программное обеспечение, Вы должны подписывать свой код. Он уже является обязательным на полдюжины основных платформ и очень приветствуется во всем мире. Подписание кода обеспечит оптимальный пользовательский интерфейс и предотвратит эти досадные предупреждения «ненадежного издателя». Кроме того, криптографическая защита цифровых подписей предотвратит нежелательную модификацию Вашего кода.

Временная отметка Вашего кода имеет решающее значение. В большинстве сред разработки Вы должны установить его отдельно, и Вы должны потратить дополнительное время для этого. Это обеспечит долгосрочное использование Вашего сертификата.

Наконец, помните, что при разработке и распространении программного обеспечения Вы принимаете участие в большой экосистеме пользователей, устройств, программного обеспечения и плохих участников. Самые слабые районы экосистемы всегда будут подвергаться атаке, а ожидания и требования к безопасности будут постоянно увеличиваться. Устраните угрозу и начните подписывать свой код - Ваши пользователи будут Вам благодарны, и когда атака будет предотвращена, Вы почувствуете облегчение.

Войти Регистрация
Корзина 0 позиций
на сумму 0 ₽
Связаться со мной
Отправить
Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта
Оформить заказ
Заказать
Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта
Сообщение отправлено!
Спасибо за обращение! Мы свяжемся с Вами в ближайшие рабочие часы
Отправка не удалась
Во время отправки запроса произошла ошибка. Пожалуйста, подождите и попробуйте снова через некоторое время или позвоните на мой номер телефона
Авторизация
Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта
Забыли пароль?
\
Регистрация
Восстановление пароля
Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта
Авторизация
\
Регистрация
Ошибка авторизации
Пожалуйста, проверьте корректность данных.
Форма будет автоматически закрыта через 5 секунд
Успешная авторизация
Через 5 секунд страница будет перезагружена и вы сможете войти в свой аккаунт
Ошибка регистрации
Пожалуйста, проверьте корректность данных.
Форма будет автоматически закрыта через 5 секунд
Успешная регистрация
Вам на почту должно прийти письмо с ссылкой на подтверждение аккаунта. Пожалуйста перейдите по ней и активируйте свой аккаунт
Ошибка регистрации
Такой пользователь уже существует. Пожалуйста, проверьте корректность данных.
Регистрация
Ошибка восстановления пароля
Пожалуйста, проверьте корректность email.
Успех
Ваш новый пароль был выслан вам на email
Регистрация
Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта
Авторизация
Создать тикет
Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта
Свяжитесь с нами
Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта
Сообщение отправлено!
Ваше сообщение получено. Наш менеджер свяжется с вами в ближайшие рабочие часы
Проверка DNS валидации
Скачать файл валидации
Для валидации домена разместите скачанный текстовый файл в указанную директорию на Вашем сервере:
Выберите подходящий вариант

К сожалению, выбранный сертификат от данного центра сертификации не может быть выдан. Так как ЦС приостановил выпуск новых/продление заказов для доменов в зоне .ru, .рф, .by, .su, .moscow и для сертификатов с OV, EV проверкой, где фигурирует компания из России.

Пожалуйста рассмотрите возможность выпуска сертификатов от AlphaSSL или Globalsign.