Что такое цифровая подпись для программы
Подпись программы – это процесс добавления специального кода (электронной подписи) к исполняемым файлам и драйверам на этапе разработки.
Электронная подпись позволяет пользователям убедиться, что данная программа:
- подписана именно данным автором, и
- не была изменена или повреждена после подписания.
Электронная подпись для программы также может содержать информацию о версии или другие метаданные. По сути это цифровой аналог обычной рукописной подписи и печати.
Польза от подписания программ для пользователей состоит в том, что они знают, кем было опубликовано данное ПО, и что оно не было изменено. Для разработчиков же это выгодно тем, что их программам доверяют, и подделать их труднее.
Как правило, подписывается не сам исполняемый файл, а его хэш-сумма. Это позволяет уменьшить размер цифровой подписи.
Подтвердить авторство и отсутствие изменений после подписания можно благодаря тому, что:
- Создать подпись можно только с помощью закрытого ключа, известного только владельцу подписи.
- При любом изменении программы изменяется ее хэш-сумма, и подпись становится недействительной, о чем выдается соответствующее предупреждение.
Для чего используется
Электронная подпись используется в большинстве криптографических протоколов, применяется для распространения ПО, в финансовых транзакциях и других операциях, для которых важно уметь распознать случаи фальсификации.
Наиболее частое применение подписи программного кода – обеспечение безопасности при установке программы. Например, файлы обновлений операционных систем содержат подписи компании-разработчика, чтобы принимающая система могла убедиться в целостности файлов и в том, что они действительно созданы данным производителем, даже если обновления доставляются через третьи лица (скачиваются с сайта дистрибьютора или устанавливаются с дисков).
Как получать цифровую подпись для программы
Электронные подписи создаются с помощью алгоритма подписи с открытым ключом, например, RSA. В алгоритме с открытым ключом на самом деле используются два различных ключа: открытый и закрытый. Закрытый ключ знает только его владелец, а открытый ключ доступен всем. В технологии электронной подписи с помощью закрытого ключа генерируется подпись, а соответствующий ему открытый ключ используется для её проверки.
Чтобы получить электронную подпись, необходимо обратиться в специальный центр сертификации (или удостоверяющий центр). Центр сертификации выдаёт ключи (закрытый и открытый) и сертификат (собственно подпись).
С помощью закрытого ключа разработчик вычисляет хэш-сумму своего кода (в специальном ПО или через веб-сайт), прикрепляет хэш-сумму и сертификат к коду и компилирует его – получается подписанная программа.
Сертификат – это электронный документ, который подтверждает, что подпись принадлежит данному лицу. Сертификат содержит следующую информацию:
- уникальный номер;
- дата начала и окончания срока действия;
- данные о владельце;
- уникальный ключ проверки сертификата (открытый);
- название используемой подписи или стандарты, которым она соответствуют;
- название центра сертификации.
С помощью открытого ключа любой пользователь может проверить, является ли цифровая подпись действительной, то есть соответствует ли она данной программе и открытому ключу пользователя. Проверка подписи осуществляется с помощью специального ПО или на специализированных сайтах. Проверяются следующие параметры:
- срок действия ключа;
- отсутствие ключа в списке отозванных;
- факт выдачи ключа авторизованным центром сертификации.
Помимо выдачи ключей и сертификатов, центр сертификации отзывает истёкшие или скомпрометированные сертификаты и ведёт соответствующие базы данных.
Существует также вариант, при котором разработчик внедряет в код свою собственную, личную подпись. Конечному пользователю в этом случае необходимо получить открытый ключ непосредственно у разработчика, чтобы выполнить проверку ПО при первом запуске.
Кроме программной реализации цифровой подписи, существует также её аппаратная реализация (например, с помощью смарт-карт, USB-токенов и т.п.).
Однако само по себе наличие цифровой подписи в программе не гарантирует, что последняя безопасна. Наличие подписи говорит о том, что программа была получена из данного источника и не была изменена после того, как была подписана. Доверять источнику программы или нет, решает сам пользователь.
Лицензирование программ
Лицензирование позволяет из написанной программы сделать продукт, пригодный для продажи. Как и с цифровой подписью, разработчик может попытаться создать собственные механизмы или подключиться к существующим системам. Как правило, такие системы позволяют оперативно запустить продажи на основе распространения дистрибутива и серийных номеров, а также обеспечивают защиту от копирования, взлома и модификации.
Подробнее о лицензировании программного обеспечения.
Функция подписания приложений в Google Play позволяет Google защищать ваш ключ подписи, а также использовать его для оптимизированных APK-файлов, которые создаются из наборов App Bundle и предназначаются для распространения приложений. Ключ подписи хранится в надежной инфраструктуре Google, где его можно обновить, если нужно повысить уровень безопасности.
Чтобы использовать функцию подписания приложений в Google Play, вы должны быть владельцем аккаунта или иметь разрешение на выпуск рабочей версии, исключение устройств и использование функции подписания приложений. Кроме того, вам необходимо принять Условия использования этой функции.
Как это работает
Если вы используете функцию подписания приложений в Google Play, ваши ключи хранятся вместе с ключами Google в безопасной инфраструктуре. Их защиту обеспечивает специальный сервис управления ключами. Подробнее об инфраструктуре Google…
Приложения для Android подписываются закрытым ключом. С каждым таким ключом связан открытый сертификат, с помощью которого устройства и сервисы могут проверять источник обновлений. На устройства устанавливаются только те обновления, подпись которых соответствует подписи установленного приложения. Если вы позволите Google управлять ключом подписи приложения, этот процесс станет безопаснее.
Примечание. Для приложений, созданных до августа 2021 года, по-прежнему можно загружать APK-файлы, а не наборы Android App Bundle и управлять собственными ключами, вместо того чтобы использовать функцию подписания приложений в Google Play. Однако если вы потеряете доступ к хранилищу ключей или оно будет взломано, то вы не сможете обновить свое приложение и вам придется опубликовать его заново с другим названием пакета. В таких случаях мы рекомендуем использовать функцию подписания приложений в Google Play и наборы App Bundle.
Описания ключей, объектов и инструментов
Термин | Описание |
---|---|
Ключ подписи приложения |
Ключ, используемый в Google Play для подписания APK-файлов, доставляемых на устройство пользователя. С функцией подписания приложений в Google Play вы можете загрузить существующий ключ подписи или использовать ключ, сгенерированный Google. Ключ подписи приложения нельзя передавать никому, но при необходимости вы можете поделиться открытым сертификатом приложения. |
Ключ загрузки |
Ключ, которым вы подписываете набор App Bundle перед загрузкой в Google Play. Этот ключ никому нельзя передавать, но при необходимости вы можете поделиться открытым сертификатом приложения. В целях безопасности для подписания и загрузки приложения рекомендуется использовать разные ключи. Сгенерировать ключ загрузки можно двумя способами:
|
Сертификат (DER или PEM ) |
Сертификат, который содержит открытый ключ и дополнительную информацию о его владельце. Сертификат открытого ключа позволяет кому угодно узнать, кто подписал набор App Bundle или APK-файл. Этим сертификатом можно делиться, так как он не включает закрытый ключ. Чтобы зарегистрировать ключи у поставщиков API, вы можете скачать открытый сертификат для ключа подписи и ключа загрузки на странице Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения) в Play Console. Сертификатом открытого ключа можно делиться со всеми, так как он не включает закрытый ключ. |
Цифровой отпечаток сертификата |
Короткий и уникальный идентификатор сертификата. Отпечаток вместе с названием пакета часто используют для регистрации приложений у поставщиков API. Цифровые отпечатки MD5, SHA-1 и SHA-256 сертификатов загрузки и подписи приложения можно найти на странице Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения) в Play Console. Вы также можете получить цифровой отпечаток другого типа. Для этого скачайте оригинальный сертификат в формате |
Хранилище ключей Java (JKS или KEYSTORE ) |
Хранилище сертификатов безопасности и закрытых ключей. |
Инструмент PEPK |
Инструмент для экспорта закрытых ключей из хранилища Java и их шифрования для передачи в Google Play. Когда вы предоставите Google ключ подписи приложения, выберите экспорт и загрузку собственного ключа (и при необходимости – его открытого сертификата), а затем, следуя инструкциям, скачайте инструмент и воспользуйтесь им. Вы также можете скачать, посмотреть и использовать открытый исходный код инструмента PEPK. |
Процесс подписания приложений
Вот как это работает:
- Вы подписываете набор App Bundle и загружаете его в Play Console.
- Google оптимизирует APK-файлы из вашего набора, а затем подписывает их с помощью ключа подписи приложения.
- Google добавляет к манифесту приложения две метки (
com.android.stamp.source
иcom.android.stamp.type
), используя инструмент apksigner, а затем подписывает APK-файлы с помощью ключа подписи приложения. Метки, добавленные через apksigner, позволяют определить, кто подписал APK-файлы. - Google доставляет подписанные APK-файлы пользователям.
Как настроить функцию подписания приложений в Google Play и работать с ней
Чтобы включить функцию подписания приложений в Google Play для своего приложения, следуйте инструкциям ниже.
Шаг 1. Создайте ключ загрузки
- Создайте ключ загрузки, следуя инструкциям.
- Подпишите свой набор App Bundle с помощью ключа загрузки.
Шаг 2. Подготовьте выпуск
- Подготовьте и внедрите выпуск приложения, следуя инструкциям.
- После того как вы выберете тип версии, в разделе «Целостность приложения» появится статус функции подписания приложений в Google Play.
- Чтобы продолжить использовать ключ подписи приложения, сгенерированный Google, загрузите набор App Bundle. Вы также можете нажать Изменить ключ подписи приложения и выбрать один из следующих сценариев:
- Использовать ключ подписи приложения, сгенерированный Google. Более чем в 90 % новых приложений используются ключи подписи, созданные Google. Такие ключи нельзя скачать. Это обеспечивает защиту от потери и раскрытия. Если вы выберете этот вариант, то сможете скачать из App Bundle Explorer APK-файлы. Они подписываются ключом, сгенерированным Google, и их можно распространять через другие каналы.
- Использовать другой ключ подписи приложения. Вы можете использовать ключ подписи другого приложения из вашего аккаунта разработчика (например, если оно предустановлено на некоторых устройствах) или создать локальную копию ключа. Хранение копии за пределами серверов Google связано с повышенными рисками безопасности. Если вы хотите использовать другой ключ подписи, доступны следующие варианты:
- Использовать ключ подписи другого приложения из этого аккаунта разработчика.
- Экспортировать и загрузить ключ из Java Keystore.
- Экспортировать и загрузить ключ (не из Java Keystore).
- Отключить функцию подписания приложений в Google Play (используйте этот вариант, только если планируете обновить ключ подписи приложения и зарегистрировать его в функции подписания).
- Завершите подготовку и внедрение выпуска.
Примечание. Чтобы продолжить, нужно принять Условия использования и включить функцию подписания приложений.
Шаг 3. Зарегистрируйте ключ подписи приложения у поставщика API
Как правило, если в приложении используются API, необходимо зарегистрировать ключ подписи у их поставщиков в целях аутентификации. Для этого нужен цифровой отпечаток сертификата. Вот как найти сертификат:
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- Прокрутите страницу вниз до раздела «Сертификат для ключа подписи приложения» и скопируйте цифровые отпечатки (MD5, SHA-1 и SHA-256) сертификата подписания приложений.
- Если поставщик API требует другой тип цифрового отпечатка, вы можете скачать оригинальный сертификат в формате
DER
и преобразовать его с помощью инструментов, указанных поставщиком.
- Если поставщик API требует другой тип цифрового отпечатка, вы можете скачать оригинальный сертификат в формате
Требования к ключу подписи приложения
Если вы решите использовать ключ, сгенерированный Google, для вас будет автоматически создан криптостойкий 4096-битный ключ RSA. Если вы хотите загрузить собственный ключ подписи приложения, используйте ключ RSA размером не менее 2048 бит.
Инструкции для приложений, созданных до августа 2021 года
Шаг 1. Настройте функцию подписания приложений в Google Play
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- Если вы ещё этого не сделали, ознакомьтесь с Условиями использования функции подписания приложений в Google Play и нажмите Принять.
Шаг 2. Отправьте в Google копию оригинального ключа и создайте ключ загрузки
- Найдите оригинальный ключ подписи приложения.
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- Экспортируйте и загрузите ключ подписи приложения тем способом, который больше всего подходит для вашего процесса выпуска.
Шаг 3. Создайте ключ загрузки (необязательно, но рекомендуется)
- Создайте ключ загрузки и загрузите сертификат в Google Play.
- В качестве ключа загрузки можно также использовать ключ подписи приложения.
- Скопируйте цифровые отпечатки (MD5, SHA-1 и SHA-256) сертификата подписания приложений.
- Для проведения тестирования вам может потребоваться зарегистрировать у поставщика API сертификат ключа загрузки с помощью цифрового отпечатка сертификата и ключа подписи приложения.
Шаг 4. Подпишите следующее обновление своего приложения ключом загрузки
Выпускаемые обновления приложения нужно подписывать ключом загрузки.
- Если вы не сгенерировали новый ключ загрузки, продолжайте использовать для наборов App Bundle оригинальный ключ подписи приложения. В случае утери этого ключа подписи вы можете сгенерировать новый ключ загрузки и зарегистрировать его в Google, чтобы и дальше выпускать обновления.
- Если вы сгенерировали новый ключ загрузки, используйте его для подписания наборов App Bundle. Google использует ключ загрузки для проверки вашей личности. Если вы потеряете ключ загрузки, обратитесь в службу поддержки, чтобы его сбросить.
Как обновить ключ подписи, чтобы включить функцию подписания приложений в Google Play
Это может потребоваться, если вы не можете поделиться существующим ключом. Учитывайте следующее:
- После выполнения процедуры вам будет необходимо загружать две группы файлов в каждый выпуск приложения.
- Вам потребуется загружать набор App Bundle и APK-файл, подписанный устаревшим ключом, в каждый выпуск приложения. С помощью наборов App Bundle Google Play будет генерировать APK-файлы, подписанные новым ключом, для устройств с Android R* (API уровня 30) и более поздних версий. Ваши устаревшие APK-файлы будут использоваться для более ранних версий Android (API уровня 29 и ниже).
*Если ваше приложение использует идентификаторы sharedUserId, рекомендуем применять обновленный ключ для установки и обновлений на устройствах с Android T (API уровня 33) и более поздних версий. Для этого укажите подходящую минимальную версию SDK в параметрах набора.
Шаг 1. Загрузите новый ключ, а затем создайте и загрузите файл подтверждения смены
Это необходимо, чтобы устройства Android доверяли новому ключу подписи.
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- Перейдите на вкладку Подписи приложений.
- Нажмите Показать дополнительные параметры и выберите Использовать новый ключ подписи приложения (требуется загрузка двух групп файлов в каждый новый выпуск).
- Выберите нужный вариант: использовать ключ подписи другого приложения из этого аккаунта разработчика или загрузить новый ключ подписи приложения из Android Studio, Java Keystore или другого хранилища.
- Следуя инструкциям на экране, скачайте и запустите инструмент PEPK.
- Загрузите полученный ZIP-архив в Play Console, выбрав Загрузить созданный ZIP-архив.
- Рядом с пятым пунктом «Загрузите файл подтверждения смены. Тогда устройства Android смогут определять, что новый ключ надежен» нажмите Показать инструкции.
- Скачайте APKSigner и создайте файл подтверждения смены, выполнив следующую команду:
$ apksigner rotate --out /path/to/new/file --old-signer --ks old-signer-jks --set-rollback ture --new-signer --ks new-signer-jks --set-rollback true
- Нажмите Загрузить сгенерированный файл подтверждения смены и укажите файл, созданный на шаге 8.
- Нажмите Сохранить.
Как создать ключ загрузки и обновить хранилища ключей
В целях безопасности рекомендуем подписывать приложение новым ключом загрузки, а не ключом подписи приложения.
Вы можете создать ключ загрузки, когда будете включать функцию подписания приложений в Google Play, или сгенерировать его позже на странице Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
Вот как создать ключ загрузки:
- Следуйте инструкциям на сайте для разработчиков Android. Храните ключ в безопасном месте.
- Экспортируйте сертификат для ключа загрузки в формате PEM. В следующем примере команды вместо аргументов, выделенных подчеркиванием, укажите свои значения:
$ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
-
Когда в процессе выпуска появится запрос, загрузите сертификат, чтобы зарегистрировать его в Google.
Если вы используете ключ загрузки:
- Ключ загрузки регистрируется в Google только для аутентификации личности создателя приложения.
- Ваша подпись удаляется из всех загруженных APK-файлов, прежде чем они попадают к пользователям.
Требования к ключу загрузки
- Ключ RSA размером не менее 2048 бит.
Обновление хранилищ ключей
Создав ключ загрузки, проверьте и при необходимости обновите следующие местоположения:
- локальная система;
- защищенный локальный сервер (с различными списками контроля доступа);
- облачная система (с различными списками контроля доступа);
- специальные сервисы по управлению ключами;
- хранилища Git.
Как обновить ключ подписи приложения
В этом разделе содержатся инструкции по обновлению ключа подписи приложения. Если вы потеряли ключ загрузки, не нужно запрашивать его обновление. В этом случае ознакомьтесь с разделом Что делать, если ключ загрузки утерян или взломан внизу этой страницы.
В некоторых случаях вы можете запросить обновление ключа подписи приложения.
Вот примеры таких ситуаций:
- Вам нужен более криптостойкий ключ.
- Ключ подписи приложения взломан.
Прежде чем запрашивать обновление ключа в Play Console, прочитайте раздел Важные примечания, касающиеся обновления ключей. Чтобы узнать больше о таких запросах, разверните другие разделы ниже.
Примечание. Запрос на обновление ключа подписи для новых установок приложения в Play Console не связан с ротацией ключей в схеме подписания APK-файлов версии 3 для Android P и более поздних версий.
Важные примечания, касающиеся обновления ключей
Прежде чем запрашивать обновление ключа, важно понять, какие изменения это повлечет.
- Если в нескольких приложениях вам нужны одинаковые данные или код и поэтому вы используете один ключ подписи, обновите приложения. Это позволит им распознавать сертификаты как нового, так и устаревшего ключа.
- Если в приложении используются API, перед публикацией его обновления обязательно зарегистрируйте сертификаты для нового и устаревшего ключей подписи у поставщиков API. Сертификаты доступны на странице Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения) в Play Console.
- Пользователи вашего приложения, которые скачивают обновления через файлообменные сети, смогут устанавливать только обновления, подписанные тем же ключом, что и версия приложения на их устройствах. Если приложения нельзя обновить из-за того, что установленная версия подписана другим ключом, пользователи могут удалить и переустановить его, чтобы получать обновления.
Как запросить обновление ключа для всех установок на устройствах с Android T (API уровня 33) и более поздними версиями (рекомендуется)
Для всех установок каждого приложения на устройствах с Android T (API уровня 33) ключ подписи можно обновлять только один раз в год.
Если по своему запросу вы получили новый ключ, он будет использоваться для подписания всех установок и обновлений приложения на устройствах с Android T (API уровня 33) и более поздними версиями. При этом устаревший ключ будет применяться, чтобы подписывать установки и обновления для устройств с более ранними версиями ОС Android.
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- В карточке «Обновление ключа подписи приложения» выберите Запросить обновление ключа.
- Отметьте вариант, при котором будет обновлен ключ подписи для всех установок приложения на устройствах с Android T и более поздними версиями.
- Разрешите Google создать новый ключ подписи приложения (рекомендуется) или загрузите его.
- Если вы обновили ключ подписи приложения, который совпадал с ключом загрузки, можно продолжить использовать прежний ключ загрузки или сгенерировать новый.
- Укажите причину, по которой вы запрашиваете обновление ключа подписи приложения.
- При необходимости зарегистрируйте новый ключ подписи приложения у поставщиков API.
Как запросить обновление ключа для новых установок (подходит не для всех приложений)
Мы не рекомендуем запрашивать обновление ключа для новых установок, так как это подходит не для всех приложений. Чтобы было удобнее управлять ключами, стоит запросить обновление ключа для всех установок на устройствах с Android T и более поздними версиями.
Ключ подписи для новых установок каждого приложения можно обновить только один раз. После этого ключ подписи для всех установок можно будет обновлять один раз в год. В редких случаях, когда один ключ подписи используется в нескольких приложениях для того, чтобы запускать их в одном процессе, обновить ключ нельзя.
Если по своему запросу вы получили новый ключ, он будет использоваться для подписания новых установок и обновлений приложения. При этом устаревший ключ будет применяться, чтобы подписывать обновления для пользователей, уже установивших ваше приложение.
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- В карточке «Обновление ключа подписи приложения» выберите Запросить обновление ключа.
- Отметьте вариант, при котором будет обновлен ключ подписи для всех новых установок приложения.
- Разрешите Google создать новый ключ подписи приложения (рекомендуется) или загрузите его.
- Если вы обновили ключ подписи приложения, который совпадал с ключом загрузки, используйте прежний ключ загрузки или сгенерируйте новый.
- Укажите причину, по которой вы запрашиваете обновление ключа подписи приложения.
- При необходимости зарегистрируйте новый ключ подписи приложения у поставщиков API.
Рекомендации
- Если вы также опубликовали приложение за пределами Google Play или собираетесь это сделать и хотите использовать тот же ключ подписи, у вас есть два варианта:
- Google сгенерирует ключ (рекомендуемый вариант), после чего вы сможете скачать из App Bundle Explorer подписанный универсальный APK-файл и использовать его за пределами Google Play.
- Вы сами сгенерируете ключ подписи приложения, который будете использовать во всех магазинах, и загрузите его копию в Google при настройке функции подписания приложений в Google Play.
- Чтобы защитить свой аккаунт, включите двухэтапную аутентификацию для всех аккаунтов, у которых есть доступ к Play Console.
- После публикации набора App Bundle в нужной версии откройте App Bundle Explorer, чтобы получить доступ к устанавливаемым APK-файлам, которые Google генерирует из набора. Вы можете:
- Скопировать ссылку для внутреннего доступа к приложению и поделиться ей. Так можно быстро проверить, какой контент будет установлен из вашего набора App Bundle на то или иное устройство.
- Скачать универсальный APK-файл, подписанный ключом подписи приложения, который хранится в Google и может быть установлен на любое поддерживаемое вашим приложением устройство.
- Скачать ZIP-архив со всеми APK-файлами для определенного устройства. Они подписаны ключом, который хранится в Google. Вы можете установить эти APK-файлы на устройство с помощью команды
adb install-multiple *.apk
.
- В целях безопасности сгенерируйте новый ключ загрузки, который отличается от ключа подписи приложения.
- Если вы используете API Google, можете зарегистрировать для своего приложения сертификаты ключа загрузки и ключа подписи в Google Cloud Console.
- Если вы используете Android App Links, убедитесь, что ключи обновлены в соответствующем JSON-файле протокола связи цифровых объектов на вашем сайте.
Что делать, если ключ загрузки утерян или взломан
Если вы потеряли доступ к закрытому ключу загрузки или он был взломан, создайте новый. Тогда владелец вашего аккаунта разработчика сможет обратиться в поддержку Play Console, чтобы сбросить ключ.
Когда команда поддержки зарегистрирует новый ключ загрузки, владелец аккаунта и администраторы с глобальными правами получат сообщение в Play Console и электронное письмо с дополнительной информацией. После этого вы сможете обновить хранилища ключей и зарегистрировать ключ у поставщиков API.
Владелец аккаунта может отменить в Play Console запрос на сброс ключа.
Важно! Сброс ключа загрузки не затрагивает ключ подписи приложения, с помощью которого Google Play подписывает APK-файлы перед отправкой пользователям.
Схема подписи APK версии 4
Устройства с Android 11 и более поздними версиями поддерживают новую схему подписи APK версии 4. В рамках функции подписания приложений в Google Play будет выпущена подпись версии 4 для выбранных приложений. Благодаря этому в них можно будет использовать функции повышения производительности, которые скоро будут доступны на новых устройствах. Это не должно повлиять на пользователей, и никаких действий со стороны разработчика не требуется.
Эта информация оказалась полезной?
Как можно улучшить эту статью?
Как подписывать приложения и для чего это требуется
Цифровая подпись приложения требуется для того, чтобы защитить программу при помощи указания вашего авторства. Как только программа получит специальную цифровую подпись, она не может быть изменена третьими лицами. Если человек попытается внести свои изменения в код программы, цифровая подпись тут же станет недействительной. Собственно, в этом и заключается суть Code Signing.
Приложения, имеющие цифровую подпись, являются верифицированными и не вызывают подозрений у пользователей. К ним лояльно относятся различные антивирусы и брандмауэры. Такие программы очень редко попадают в карантин.
Сертификат для цифровой подписи можно приобрести в компании ЛидерТелеком. Чтобы заказать сертификат Code Signing, вам необходимо заполнить заявку и пройти процесс валидации организации, завершить который вам поможет компания ЛидерТелеком. Когда сертификат будет выпущен, вы сможете получить его через браузер, в котором оформляли заявку
Как подписывать приложения?
Существуют различные утилиты для подписи программного обеспечения. Но мы всегда рекомендуем использовать стандартный софт. Давайте рассмотрим один из таких инструментов, а именно: «signtool.exe» от Microsoft (инструмент командной строки, который по умолчанию идет вместе с Microsoft Visual Studio).
- Если ваш браузер Internet Explorer или Chrome
Если вы заказывали сертификат Code Signing через браузер IE или Chrome на компьютер с ОС Windows, то в таком случае ваш сертификат будет доступен в хранилище сертификатов Windows. Вам понадобится ввести следующий код в командную строку:
signtool sign /t http://timestamp.comodoca.com/authenticode /a «c:pathtofile.exe»
Сообщение «Done adding additional store. Successfully signed and timestamped: file.exe» будет говорить об успешном выполнении данной процедуры.
- Если вы используете Firefox или другой браузер
Если вы заказывали сертификат Code Signing через Firefox или другой браузер (либо в другой системе, такой как Mac OS X), вам нужно будет сначала экспортировать сертификат в виде .pfx-файла. Как только ваш сертификат будет сохранен как .pfx на вашем компьютере, вы можете ввести следующие команды:
signtool sign /t http://timestamp.comodoca.com/authenticode /f «c:pathtomycert.pfx» /p pfxpassword «c:pathtofile.exe»
За дополнительной информацией, связанной с работой SignTool, вы можете обратиться к справке от Microsoft.
Как проверить цифровую подпись
Теперь, когда вы знаете, как подписывать приложения, пришла пора узнать, как проверить цифровую подпись. Правильно ли она установилась? Чтобы это выяснить, щелкните правой кнопкой мыши по своему приложению и выберите пункт Properties (Свойства). Во вкладке Digital Signatures (если она существует) вы можете просмотреть Code Signing сертификат и время его выдачи.
Если вы хотите приобрести цифровую подпись для своей программы, вы можете воспользоваться сертификатом Code Signing, приобрести который Вы можете в компании ЛидерТелеком.
При запуске некоторых скачанных из сети программ пользователи могут столкнуться с ошибкой, которая сообщает о том, что приложение не может быть запущено, так как его подпись невозможно проверить, она не действительна или издатель заблокирован. В нашей статье мы подробно расскажем, из-за чего возникает такая ошибка и что можно предпринять для устранения неполадки.
Причины возникновения ошибки с издателем
Каждое приложение в большинстве случаев имеет собственную цифровую подпись, которая подтверждает, что программа действительно создана определенным разработчиком, и он гарантирует её корректное функционирование. Процедура подписывания осуществляется самой компанией-создателем программы, перед тем как начнется непосредственное распространение приложения, при этом у подписи имеется собственный срок действительности.
В том случае если у программы отсутствует подпись или срок её действия истек, операционная система может заблокировать приложение и откажется его запускать. Также возможен сбой в проверке подписи и ошибочная блокировка программ, не имеющих проблем с цифровой подписью.
Если пользователь не уверен в безопасности приложения, то рекомендуется отказаться от его использования, однако в некоторых случаях даже известные производители попросту забывают подписать или обновить срок действия подписи своего продукта.
Варианты решения проблемы
Для запуска программ с ошибкой цифровой подписи можно прибегнуть к нескольким методам. Изменить издателя приложения не выйдет, нужно отключить проверку цифровой подписи самой системой. Операционная система Windows позволяет отключить проверку при помощи активации специального режима и системных команд. Рассмотрим далее каждый из возможных вариантов запуска в подробностях.
Проверка времени в системе
Когда операционная система проверяет срок действия цифровой подписи, она сверяет данные с установленным временем на компьютере. Неправильно установленная дата может привести к возникновению ошибки и блокировке программы. Самым легким способом установить правильное время в системе будет активизировать синхронизацию со специальным сервером в интернете. Для этого нам потребуется проделать следующие операции:
- Запускаем «Панель управления» найдя её при помощи поиска.
Открываем «Панель управления» из поисковых результатов
- После этого нажимаем на раздел «Дата и время».
Переходим в раздел «Дата и время»
- В появившемся окне переходим на вкладку «Время по Интернету» и кликаем «Изменить параметры».
Открываем окно настроек синхронизации
- Ставим галочку в пункте «Синхронизировать с сервером времени в Интернете» и нажимаем «Обновить сейчас».
Запускаем синхронизацию вручную
Если синхронизация не удастся, то можно изменить сервер времени в списке и попробовать еще раз.
Отключение контроля учетных записей
В десятой версии Windows имеется специальная служба, которая отвечает за безопасность запускаемых программ и проверку цифровой подписи. Называется она — UAC («Контроль учётных записей»). Настроить данную службу так, чтобы она не проверяла подписи приложений нельзя, но можно полностью её деактивировать. Делать это не рекомендуется из соображений безопасности, однако будет вполне безопасным временно её отключить, чтобы запустить нужную программу, и после этого обратно активировать. Чтобы это осуществить, нам потребуется проделать следующее:
- Запускаем поиск Windows и вводим туда запрос «Панель управления».
- Открываем раздел из результатов поиска.
Запускаем «Панель управления» из поисковых результатов
- Далее кликаем по иконке «Учётные записи пользователей».
Переходим в раздел учетных записей
- Нажимаем по пункту «Изменить параметры контроля учетных записей».
Открываем окно настроек контроля учетных записей
- Теперь в появившемся окне устанавливаем ползунок в самое нижнее положение, таким образом отключив UAC.
- Сохраняем настройки, кликнув по кнопке «OK».
Отключаем UAC и сохраняем настройки
Готово, теперь можно будет запустить программу с отсутствующей или просроченной цифровой подписью.
Деактивация функции проверки
В последних версиях Windows имеется специальный режим, при помощи которого можно запускать приложения без проверки подписи. Чтобы его активировать, нам потребуется проделать следующие шаги:
- Открываем стартовое меню и запускаем программу «Параметры».
Запускаем «Параметры» из стартового меню
- Далее переходим в раздел «Обновление и безопасность».
Переходим в раздел «Обновление и безопасность»
- В левой части экрана кликаем по пункту «Восстановление».
- Справа нажимаем на кнопку «Перезагрузить сейчас».
Перезагружаем компьютер в среде восстановления
- Компьютер отключится и загрузится в режиме восстановления, где нужно будет для начала выбрать пункт «Диагностика».
Открываем раздел диагностики
- Далее кликнуть по варианту «Дополнительные параметры».
Переходим в окно с дополнительными параметрами
- После этого нажать на «Параметры загрузки».
Выбираем пункт «Параметры загрузки»
- На экране появится список вариантов. Выбираем седьмой пункт — «Отключить обязательную проверку подписи драйверов» при помощи цифровых кнопок на клавиатуре.
Отключаем проверку цифровой подписи
Теперь после загрузки системы Windows не будет осуществлять проверку цифровой подписи, а мы сможем запустить нужное нам приложение.
Специальные команды Windows
Отключить проверку цифровой подписи также можно с использованием специальных команд. Чтобы это сделать, нам понадобится проделать следующие шаги:
- Открываем стартовое меню Windows.
- В списке приложений находим пункт «Командная строка» и запускаем её от имени администратора, воспользовавшись соответствующим вариантом в контекстном меню.
Запускаем «Командную строку» от имени администратора
- Далее в появившееся окно вводим команду: bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS
Вводим команду для отключения проверки подписи
- Нажимаем «Enter».
- Теперь вводим команду: bcdedit.exe -set TESTSIGNING ON
Включаем тестовый режим Windows
- Еще раз нажимаем «Enter».
- Перезагружаем компьютер.
Теперь функция проверки подписи будет отключена.
Используем сторонние приложения
В сети можно отыскать несколько программ, которые умеют отключать проверку подписи для определённого приложения. Какой из предложенных утилит воспользоваться, не имеет большого значения, так как в итоге каждая из них позволит запустить программу с проблемой цифровой подписи.
Приложение FileUnsigner
Эта программа бесплатна и достаточно проста в использовании. Чтобы с ее помощью отключить проверку подписи, потребуется проделать следующие операции:
Скачать утилиту с официального сайта
После загрузки приложения для деактивации проверки подписи потребуется просто перетащить ярлык программы для запуска на иконку FileUnsigner.
Перетаскиваем иконку программы для запуска в FileUnsigner
На экране появится окно командной строки. По завершении процесса отключения проверки пользователь увидит сообщение об успешном проведении операции. Все, теперь можно запустить нужную нам программу.
FileUnsigner также умеет работать из командной строки. Потребуется переместить файл программы в папку с приложением, которое нужно запустить, и, открыв командную строку, перейти в директорию с приложениями. Далее нужно будет ввести следующую команду:
fileunsigner /f program.exe
Где program.exe это приложение которому нужно отключить проверку подписи.
Программа Windows 10 Manager
Это приложение представляет собой набор различных утилит для настройки и оптимизации Windows 10. Чтобы с его помощью отключить проверку цифровой подписи, нам нужно будет проделать следующее:
Загрузить программу с официального ресурса
- После скачивания и установки запускаем приложение и открываем раздел «Security».
- Далее нажимаем на кнопку «System Security».
Открываем раздел настроек безопасности системы
- Устанавливаем птичку напротив пункта «Disable open File Security Warning».
- Сохраняем изменения и перезагружаем компьютер.
Отключаем проверку и сохраняем изменения
Вот при помощи таких способов можно запустить приложение с ошибкой цифровой подписи. Надеемся, что наша статья поможет вам осуществить это без особых затруднений.
Post Views: 3 935