- Как подписать инсталляцию
- Зачем нужна цифровая подпись
- Как получить цифровую подпись
- Как подписывать программы с помощью цифровой подписи
- Как подписывать инсталляции в инсталляторе CreateInstall
- Как подписать программу цифровой подписью
- Что такое цифровая подпись для программы
- Для чего используется
- Как получать цифровую подпись для программы
- Лицензирование программ
- Как подписать программу цифровой подписью
- Что такое цифровая подпись для программы
- Для чего используется
- Как получать цифровую подпись для программы
- Лицензирование программ
Как подписать инсталляцию
Зачем нужна цифровая подпись
Цифровая подпись предназначена для того, чтобы указать автора программы и показать, что данная программа или файл не был изменен другими лицами. Если кто-то попробует модифицировать подписанную программу, то цифровая подпись сразу становится недействительной. Это главное предназначение цифровой подписи.
Второе преимущество подписанных программ и инсталляций состоит в том, что антивирусные программы более лояльно относятся к подписанным приложениям. Ложные срабатывания и необоснованные попадания в карантин у подписанных программ встречаются реже.
Также сравните сообщения, которые показывает UAC при запуске подписанной и неподписанной инсталляции. Сообщение для подписанной инсталляции вызывает больше доверия у пользователя.
Как получить цифровую подпись
Цифровую подпись можно купить у специальных организаций. Например, Comodo, Verisign (Symantec). Сертификат можно приобрести как на один год, так и на несколько лет. Цены начинаются от $100-150 за один год, но через партнеров можно купить сертификат дешевле. Например, KSoftware, являсь стратегическим партнером Comodo, продают сертификаты за $95 в год и есть скидки при его покупке на несколько лет. После того как вы произвели оплату, сотрудники соответствующей организации удостоверятся, что вы являетесь именно тем лицом или организацией на чье имя выдается цифровая подпись. Когда все данные проверены, вам будет дана ссылка, по которой вы загрузите сертификат в Internet Explorer и затем вам нужно сохранить его в виде файла с расширением .pfx, также у вас должен быть пароль, который вы указывали при формировании заявки на сертификат.
Как подписывать программы с помощью цифровой подписи
Для подписывания программ можно использовать бесплатную утилиту signtool.exe от компании Microsoft. Запуск из командной строки с примерно такими параметрами подпишет ваше приложение myapp.exe: signtool.exe sign /a /f «c:\docs\sertificate\mysign.pfx» /p mypassword /t http://timestamp.comodoca.com/authenticode «c:\my application\myapp.exe».
Кроме этого, существует бесплатная программа kSign от ksoftware.net с оконным интерфейсом и с запуском из командной строки. Ниже вы можете взглянуть на скриншоты этой удобной утилиты. Она не требует signtool.exe, signcode.exe и любое другое Microsoft SDK.
Как подписывать инсталляции в инсталляторе CreateInstall
Конечно, можно самостоятельно подписывать инсталляции созданные CreateInstall, но лучше автоматизировать этот процесс. К тому же, наш инсталлятор позволяет подписывать uninstall.exe и update.exe, которые будут потом распакованы при установке вашей программы на компьютер пользователя. Рассмотрим следующее решение с использованием утилиты kSignCMD.exe, которая входит в программу kSign. Создайте .bat файл примерно следующего содержания и сохраните его в секретном месте. Самое главное, чтобы он был доступен в момент сборки вашего дистрибутива. [pfxfile] замените на полный путь к вашему .pfx файлу, а [password] замените на ваш пароль. Команда pause нужна, чтобы вы могли вовремя обнаружить ошибку, которая может возникнуть при попытке подписать приложение. С другой стороны, из-за этой команды вам придется нажимать на какую-нибудь клавишу для продолжения процесса создания дистрибутива.
Сейчас откройте ваш проект в CreateInstall и перейдите к закладке Проект — страница Setup Builder. В поле Application for Code Signing укажите полный путь к созданному нами .bat файлу. Он будет запускаться когда потребуется подписать приложение. Далее укажите параметры для подписывания дистрибутива, деинсталлятора и программы проверки обновлений. Первым параметром должно быть определено общее наименование программы, а вторым , который будет автоматически заменен на полный путь к подписываемому приложению. Например, значения могут быть следующими:
В данном случае, CreateInstall вызовет наш .bat файл для подписывания установки, деинсталлятора и программы обновления, если вы включаете ее в свой проект.
Как подписать программу цифровой подписью
Что такое цифровая подпись для программы
Подпись программы – это процесс добавления специального кода (электронной подписи) к исполняемым файлам и драйверам на этапе разработки.
Электронная подпись позволяет пользователям убедиться, что данная программа:
- подписана именно данным автором, и
- не была изменена или повреждена после подписания.
Электронная подпись для программы также может содержать информацию о версии или другие метаданные. По сути это цифровой аналог обычной рукописной подписи и печати.
Польза от подписания программ для пользователей состоит в том, что они знают, кем было опубликовано данное ПО, и что оно не было изменено. Для разработчиков же это выгодно тем, что их программам доверяют, и подделать их труднее.
Как правило, подписывается не сам исполняемый файл, а его хэш-сумма. Это позволяет уменьшить размер цифровой подписи.
Подтвердить авторство и отсутствие изменений после подписания можно благодаря тому, что:
- Создать подпись можно только с помощью закрытого ключа, известного только владельцу подписи.
- При любом изменении программы изменяется ее хэш-сумма, и подпись становится недействительной, о чем выдается соответствующее предупреждение.
Для чего используется
Электронная подпись используется в большинстве криптографических протоколов, применяется для распространения ПО, в финансовых транзакциях и других операциях, для которых важно уметь распознать случаи фальсификации.
Наиболее частое применение подписи программного кода – обеспечение безопасности при установке программы. Например, файлы обновлений операционных систем содержат подписи компании-разработчика, чтобы принимающая система могла убедиться в целостности файлов и в том, что они действительно созданы данным производителем, даже если обновления доставляются через третьи лица (скачиваются с сайта дистрибьютора или устанавливаются с дисков).
Как получать цифровую подпись для программы
Электронные подписи создаются с помощью алгоритма подписи с открытым ключом, например, RSA. В алгоритме с открытым ключом на самом деле используются два различных ключа: открытый и закрытый. Закрытый ключ знает только его владелец, а открытый ключ доступен всем. В технологии электронной подписи с помощью закрытого ключа генерируется подпись, а соответствующий ему открытый ключ используется для её проверки.
Чтобы получить электронную подпись, необходимо обратиться в специальный центр сертификации (или удостоверяющий центр). Центр сертификации выдаёт ключи (закрытый и открытый) и сертификат (собственно подпись).
С помощью закрытого ключа разработчик вычисляет хэш-сумму своего кода (в специальном ПО или через веб-сайт), прикрепляет хэш-сумму и сертификат к коду и компилирует его – получается подписанная программа.
Сертификат – это электронный документ, который подтверждает, что подпись принадлежит данному лицу. Сертификат содержит следующую информацию:
- уникальный номер;
- дата начала и окончания срока действия;
- данные о владельце;
- уникальный ключ проверки сертификата (открытый);
- название используемой подписи или стандарты, которым она соответствуют;
- название центра сертификации.
С помощью открытого ключа любой пользователь может проверить, является ли цифровая подпись действительной, то есть соответствует ли она данной программе и открытому ключу пользователя. Проверка подписи осуществляется с помощью специального ПО или на специализированных сайтах. Проверяются следующие параметры:
- срок действия ключа;
- отсутствие ключа в списке отозванных;
- факт выдачи ключа авторизованным центром сертификации.
Помимо выдачи ключей и сертификатов, центр сертификации отзывает истёкшие или скомпрометированные сертификаты и ведёт соответствующие базы данных.
Существует также вариант, при котором разработчик внедряет в код свою собственную, личную подпись. Конечному пользователю в этом случае необходимо получить открытый ключ непосредственно у разработчика, чтобы выполнить проверку ПО при первом запуске.
Кроме программной реализации цифровой подписи, существует также её аппаратная реализация (например, с помощью смарт-карт, USB-токенов и т.п.).
Однако само по себе наличие цифровой подписи в программе не гарантирует, что последняя безопасна. Наличие подписи говорит о том, что программа была получена из данного источника и не была изменена после того, как была подписана. Доверять источнику программы или нет, решает сам пользователь.
Лицензирование программ
Лицензирование позволяет из написанной программы сделать продукт, пригодный для продажи. Как и с цифровой подписью, разработчик может попытаться создать собственные механизмы или подключиться к существующим системам. Как правило, такие системы позволяют оперативно запустить продажи на основе распространения дистрибутива и серийных номеров, а также обеспечивают защиту от копирования, взлома и модификации.
Как подписать программу цифровой подписью
Приложение или драйвер, не имеющие цифровой подписи, воспринимаются как потенциально опасные – у пользователя будут возникать постоянные проблемы с их запуском. Сторонние антивирусы и собственные инструменты информационной защиты операционной системы будут делать все возможное, чтобы предотвратить запуск такой программы. Если это противоречит вашим целям, позаботьтесь о цифровой подписи для вашего приложения или драйвера.
Что такое цифровая подпись для программы
Подпись программы – это процесс добавления специального кода (электронной подписи) к исполняемым файлам и драйверам на этапе разработки.
Электронная подпись позволяет пользователям убедиться, что данная программа:
(1) подписана именно данным автором, и
(2) не была изменена или повреждена после подписания.
Электронная подпись для программы также может содержать информацию о версии или другие метаданные. По сути это цифровой аналог обычной рукописной подписи и печати.
Польза от подписания программ для пользователей состоит в том, что они знают, кем было опубликовано данное ПО, и что оно не было изменено. Для разработчиков же это выгодно тем, что их программам доверяют, и подделать их труднее.
Как правило, подписывается не сам исполняемый файл, а его хэш-сумма. Это позволяет уменьшить размер цифровой подписи.
Подтвердить авторство и отсутствие изменений после подписания можно благодаря тому, что:
- Создать подпись можно только с помощью закрытого ключа, известного только владельцу подписи.
- При любом изменении программы изменяется ее хэш-сумма, и подпись становится недействительной, о чем выдается соответствующее предупреждение.
Для чего используется
Электронная подпись используется в большинстве криптографических протоколов, применяется для распространения ПО, в финансовых транзакциях и других операциях, для которых важно уметь распознать случаи фальсификации.
Наиболее частое применение подписи программного кода – обеспечение безопасности при установке программы. Например, файлы обновлений операционных систем содержат подписи компании-разработчика, чтобы принимающая система могла убедиться в целостности файлов и в том, что они действительно созданы данным производителем, даже если обновления доставляются через третьи лица (скачиваются с сайта дистрибьютора или устанавливаются с дисков).
Как получать цифровую подпись для программы
Электронные подписи создаются с помощью алгоритма подписи с открытым ключом, например, RSA. В алгоритме с открытым ключом на самом деле используются два различных ключа: открытый и закрытый. Закрытый ключ знает только его владелец, а открытый ключ доступен всем. В технологии электронной подписи с помощью закрытого ключа генерируется подпись, а соответствующий ему открытый ключ используется для её проверки.
Чтобы получить электронную подпись, необходимо обратиться в специальный центр сертификации (или удостоверяющий центр). Центр сертификации выдаёт ключи (закрытый и открытый) и сертификат (собственно подпись).
С помощью закрытого ключа разработчик вычисляет хэш-сумму своего кода (в специальном ПО или через веб-сайт), прикрепляет хэш-сумму и сертификат к коду и компилирует его – получается подписанная программа.
Сертификат – это электронный документ, который подтверждает, что подпись принадлежит данному лицу. Сертификат содержит следующую информацию:
- уникальный номер;
- дата начала и окончания срока действия;
- данные о владельце;
- уникальный ключ проверки сертификата (открытый);
- название используемой подписи или стандарты, которым она соответствуют;
- название центра сертификации.
С помощью открытого ключа любой пользователь может проверить, является ли цифровая подпись действительной, то есть соответствует ли она данной программе и открытому ключу пользователя. Проверка подписи осуществляется с помощью специального ПО или на специализированных сайтах. Проверяются следующие параметры:
- срок действия ключа;
- отсутствие ключа в списке отозванных;
- факт выдачи ключа авторизованным центром сертификации.
Помимо выдачи ключей и сертификатов, центр сертификации отзывает истёкшие или скомпрометированные сертификаты и ведёт соответствующие базы данных.
Существует также вариант, при котором разработчик внедряет в код свою собственную, личную подпись. Конечному пользователю в этом случае необходимо получить открытый ключ непосредственно у разработчика, чтобы выполнить проверку ПО при первом запуске.
Кроме программной реализации цифровой подписи, существует также её аппаратная реализация (например, с помощью смарт-карт, USB-токенов и т.п.).
Однако само по себе наличие цифровой подписи в программе не гарантирует, что последняя безопасна. Наличие подписи говорит о том, что программа была получена из данного источника и не была изменена после того, как была подписана. Доверять источнику программы или нет, решает сам пользователь.
Лицензирование программ
Лицензирование позволяет из написанной программы сделать продукт, пригодный для продажи. Как и с цифровой подписью, разработчик может попытаться создать собственные механизмы или подключиться к существующим системам. Как правило, такие системы позволяют оперативно запустить продажи на основе распространения дистрибутива и серийных номеров, а также обеспечивают защиту от копирования, взлома и модификации.
Компания StarForce является экспертом в области защиты программного обеспечения и цифрового контента от копирования, взлома и несанкционированного распространения. Более 10 лет мы успешно разрабатываем и внедряем ультрасовременные технологические решения по охране интеллектуальной собственности и авторских прав во всем мире. Сегодня хороший товар – это, прежде всего, качественные услуги и отличный сервис. StarForce не просто производит и продает программные продукты, сегодня мы предлагаем себя в качестве надежного и ответственного Технологического партнера для всех, кто ежедневно несет потери от компьютерного пиратства, несанкционированного доступа к данным и утечки информации.
StarForce предоставляет широкий выбор надежных инструментов для защиты ПО и цифровой информации от:
— Промышленного и домашнего копирования
— Эмулирования
— Профессионального взлома
— Неконтролируемого распространения
— Утечки
— Несанкционированного доступа
— Нецелевого использования
Узкая специализация StarForce обеспечивает разработку технологически безупречных продуктов, гарантируя высокую степень надежности и качества. А многолетний опыт работы способствует успешному внедрению индивидуальных проектов для всех форм цифровой информации.
Собственная система Управления Цифровыми Правами (DRM), надежно интегрируемая с ядром защиты, открывает перед издателями и дистрибуторами ПО широчайшие возможности по цифровой доставке контента и слежению за продажами.
StarForce сегодня – это:
— Более 10 лет опыта работы на рынке IT в области защиты авторских прав и интеллектуальной собственности
— Сертифицированный партнер Microsoft, Intel
— Технологический партнер Microsoft
— Уникальные запатентованные технологии
— Персональное сопровождение проектов на всех этапах жизненного цикла вашего ПО – личный менеджер, индивидуальная разработка и т.д.
— Индивидуальные решения под отдельные рынки и программные продукты
— Профессиональные консультационные и исследовательские услуги в области оценки стойкости ваших продуктов к взлому, анализу, несанкционированному использованию и т.д.
— Кастомизированные и индивидуальные решения
— Техническая поддержка 24/7
— Более 350 постоянных клиентов в 32 странах мира
— Сотни миллионов защищенных копий программ
— Представительства в России, Франции, Китае
— Сертифицированные заводы по изготовлению CD и DVD дисков по всему миру
— Эффективная программа взаимодействия с партнерами