Как подписать APK игру или приложение на Андроид правильно. Как подписать документ в формате PDF, WORD, RAR электронной подписью

Поскольку сам гуглил вопрос "как подписать APK файл ?", знаю что найти действительно рабочую и во всём понятную инструкцию не так уж и легко. Именно поэтому я решил сам написать материал о том как стоит правильно подписывать свою программу или игру на Андроид.

Как известно сейчас без цифровой подписи, ваше творение не удасться разместить в Market"е, а это уже серьёзно. Заметил очень многие молодые разработчики на Андроид, так сказать новички и вовсе забывают подписать своё приложение и пытаются с ним что-то потом делать и всё задаются вопросом почему у них не удаётся выполнить то или иное действие с их APK файлом.

Итак, не будем тянуть резину и начнём сразу с того как можно подписать ваш апк файл и чем собственно пользоваться для достижения желаемого результата.

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

Для работы нам понадобятся: OpenSSL и SignApk .

Для начала сделаем сертификат и ключ для подписи. Установите OpenSSL. Во время установки, инсталлятор в виде выбора предложит скопировать компоненты в папку Windows, выберите в папку Bin, которая будет на месте куда вы установите весь OpenSSL.

Теперь откройте от имени системного администратора (это очень важно!) командную строку. После чего перейдите в командной строке в папку bin, которая находится в папке, куда вы установили OpenSSL (Например, C:\OpenSSL\Bin\ или C:\Program Files\OpenSSL\Bin\ ). Если вы не знаете, переход к другой папке выполняется командой cd . То есть для того чтобы перейти в нужную папку вам стоит выполнить команду такого плана:

cd C:\OpenSSL\Bin\

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

Шаг 1 (Выполняем генерацию ключа длиною 1024 бита)

Выполните команду:

openssl genrsa -out key.pem 1024

Шаг 2 (На основе ключа создаём запрос к сертификату)

Выполните команду:

openssl req -new -key key.pem -out request.pem

На этом этапе вам будет необходимо ввести ваши данные, которые будут идентифицировать вас в сертификате.

Шаг 3 (Генерируем закрытый ключ по сертификату)

Выполните команду:

openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem

Шаг 4 (Выполняем генерацию открытого ключа)

Выполните команду:

openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

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

А теперь собственно, давайте приступим к подписи приложения. Распакуйте скачанный по ссылке выше архив с SingApk. Переместите из папки Bin, где мы создавали сертификат и ключ 2 файла: certificate.pem и key.pk8 в папку, куда вы распаковали SingApk. Windows должен отобраить диалог замены файлов - заменяйте.

Теперь для того чтобы подписать apk файл уникальной цифровой подписью, которую вы сделали сами, просто мышкой перетяните ваш apk файл на sign_APK.bat . Для того чтобы не тянуть файл с одного окна в другое (это не удобно) переместите ваш apk файл в папку с SingApk. После выполнения, в папке с SingApk появится файл apk_signed.apk , который и будет вашим подписанным приложением или игрой.

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

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

    Крипто-ПРО CSP;

    Корневой сертификат;

    Личный сертификат;

    Библиотека Capicom.

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

Перед тем, как поставить ЭЦП необходимо убедиться, что вы установили и используете последнюю версию Крипто-ПРО

Онлайн подпись документов ЭЦП

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

После этих действий будет создан отдельный файл — отсоединенная подпись с расширением .sig , который будет сохранен в папку загрузок браузера.

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

Наши специалисты помогут Вам получить ЭЦП быстро и совершенно бесплатно.

Как подписать документ ЭЦП в Word MS Office

Для последних версий Microsoft Word нажимаем “Файл” и в открывшемся окне наводим курсор на вкладку “Сведения” и выбираем пункт "Добавить цифровую подпись (КРИПТО-ПРО)". Если вы не видите данный параметр, то у вас не установлено программное обеспечение Crypto Pro и КриптоПро Office Signature, либо одно из них.

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

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

Совет: если у вас все-таки возникла необходимость внести правки, сначала удалите подпись и только потом изменяйте файл. После окончания работы снова поставьте ее.

Как подписать документ PDF электронной подписью

Для программ, работающих с файлами формата PDF, также разработано специальное программное обеспечение. Называется оно «Крипто-ПРО PDF» и представляет собой модуль, который взаимодействует с программами Adobe Reader и Adobe Acrobat. После его установки, вы можете подписать ЭЦП PDF файл в любой из выше перечисленных программ. Делается это так же легко, как и в Word Microsoft Office.

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

ООО МКК "РусТендер"

Материал является собственностью сайт. Любое использование статьи без указания источника - сайт запрещено в соответствии со статьей 1259 ГК РФ

Post Views: 2 796

Android Studio предоставляет широкие возможности как для разработки приложений, так и для повышения автоматизации и комфортности при программировании.

Если вы используете систему сборки Gradle для создания своих приложений, то вы можете также настроить несколько параметров для создания подписей к вашим приложениям.

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

Перед тем, как начать подписание приложения, вам необходимо в файле gradle.properties создать новое свойство. Назовём его Keys.repo и, в качестве значения, укажем путь до папки, где впоследствии будут находиться хранилище ключей и файл со свойствами (например, C:/Users/UserName/.signing ).

Keys.repo=C:/Users/UserName/.signing

Затем нужно создать эту папку или, если вы указали существующую, открыть её. В ней необходимо создать файл YourProjectName.properties , внутри которого будут прописаны в качестве свойств путь до хранилища ключей, псевдоним ключа и пароль в следующем виде.

RELEASE_STORE_FILE=/YourProjectName/KeyStoreName.jks RELEASE_STORE_PASS=****** RELEASE_ALIAS=KeyAlias RELEASE_KEY_PASS=******

Как создать хранилище ключей?

Если у вас нет хранилища ключей, его можно легко создать с помощью Android Studio. Для этого нужно выбрать в меню пункт Build -> Generate Signed APK .

В появившемся окне нужно нажать Create new… В результате откроется окно, в котором вы можете указать, где будет располагаться хранилище ключей (для данного урока лучше сразу выбрать путь, который вы указали в YourProjectName.properties в свойстве RELEASE_STORE_FILE ), а также данные о ключе.

Затем нужно создать папку YourProjectName и перенести туда нужный файл хранилища ключей.

Теперь можно приступить непосредственно к процессу подписания. Для этого в вашем проекте нужно открыть файл build.gradle (расположенный в папке app). Внутри него в блоке android нужно добавить следующий код.

SigningConfigs { debug { /* здесь никаких изменений нет */ } release { if (project.hasProperty("Keys.repo")) { def projectPropsFile = file(project.property("Keys.repo") + "/YourProjectName.properties") if (projectPropsFile.exists()) { Properties props = new Properties() props.load(new FileInputStream(projectPropsFile)) storeFile file(file(project.property("Keys.repo") + props["RELEASE_STORE_FILE"])) storePassword props["RELEASE_STORE_PASS"] keyAlias props["RELEASE_ALIAS"] keyPassword props["RELEASE_KEY_PASS"] } } else { println "=======================================================" println " - Please configure release-compilation environment - e.g. in ~/.signing directory" println "=======================================================" } } }

Какие бывают схемы получения подписи?

Существуют две схемы получения подписи APK: v1 JAR и v2 Full APK .

В первом случае подписывается JAR -файл, что является традиционным способом подписания. Подпись v1 не защищает некоторые части APK, такие как метаданные ZIP. Верификатор APK должен обрабатывать множество ненадёжных (ещё не проверенных) структур данных, а затем отбрасывать данные, которые не подписаны, что предоставляет большой простор для атаки. Кроме того, верификатор APK должен распаковать все сжатые записи, что тратит много времени и памяти. Чтобы решить эти проблемы, была разработана вторая схема v2 Full APK.

Схема v2 была представлена в Android 7.0 Nougat (API 25) и работает, начиная с версии Android Studio 2.2 и Android Gradle plugin 2.2 . Эта схема обеспечивает более быструю установку приложения и хорошую защиту от несанкционированных изменений в APK. Содержимое APK хешируется и подписывается, затем полученный блок подписи APK вставляется в APK.

Во время проверки схема v2 рассматривает APK как blob и выполняет проверку подписи по всему файлу. Любая модификация APK, включая модификации метаданных ZIP, делает подпись недействительной. Эта форма проверки значительно быстрее и позволяет обнаружить больше несанкционированных модификаций.

Новый формат обратно совместим, поэтому APK, подписанные новой схемой, могут быть установлены на более ранних устройствах (которые будут просто игнорировать новую подпись), если эти APK также подписаны схемой v1.

По умолчанию при подписании используются обе схемы, чтобы приложения могли быть установлены на любых устройствах. Однако если есть такая необходимость, можно отключить подпись v1 или v2. Для этого в вышеприведённом коде в блоке release достаточно дописать следующие строки.

V1SigningEnabled false

V2SigningEnabled false

Важно также учитывать, что подписывать схемой v1 нужно до подписания схемой v2, поскольку APK не пройдёт проверку по схеме v2, если он будет подписан дополнительными сертификатами после подписания схемой v2.

После того, как код добавлен, укажите этот код в блоке buildTypes внутри release . Например:

BuildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release } }

Теперь можно смело в пункте меню Build выбирать Build APK , предварительно сменив тип сборки с debug на release . Как видно, данный способ удобен тем, что он автоматический, его достаточно настроить лишь раз и ваши хранилища ключей могут быть в безопасности.

Когда необходимо подписать документ с помощью ЭЦП, мы чаще имеем дело с документами MS Office.

Детально рассмотрим процедуру подписания таких файлов, а затем перейдем к более редким форматам электронных документов.

Что такое электронная подпись документов?

Это электронный объект, который помогает установить авторство и удостоверится в аутентичности и целостности цифрового документа.

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

Стандартная процедура

Для того чтобы подписать документ с помощью ЭЦП, необходимо сначала создать текст документа, затем добавить строку подписи и саму подпись.

Процедура подписания документа может отличаться в зависимости от используемого программного обеспечения. Рассмотрим стандартную процедуру, рекомендованную для файлов седьмой версии MS Office.

Для добавления строки подписи в файл MS Office, необходимо:

  • Поместить курсор в то место в подписываемом документе, куда необходимо добавить строку ЭЦП.
  • Во вкладке Вставка выбрать группу Текст, далее навести курсор рядом со строкой «Строка подписи» выпадающего меню и выбрать «Строка подписи Microsoft Office».
  • Осуществить настройку подписи в соответствующем диалоговом окне (ввести сведения о лице, подписывающем документ).
  • При необходимости, создайте строку для еще одной подписи, следуя трем вышеуказанным пунктам.

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

  • введите свое имя рядом со значком Х (добавится печатная версия ЭЦП);
  • также возможно использовать изображение своей рукописной подписи (нажмите кнопку «Выбрать рисунок»);
  • если Вы пользуетесь планшетным компьютером, Вы можете добавить свою рукописную подпись (введите свое имя рядом со значком Х);
  • если Вы используете специально программное обеспечение для ЭЦП, просто нажмите кнопку «Подписать».

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

Электронная подпись документов: проще не бывает!

В основе подписания HTML- XML- и PDF-документов лежит вышеописанный принцип с некоторыми поправками. Чтобы подписать документ в формате HTML, необходимо создать скрытое hidden-поле в соответствующей форме. Но работа в web-браузера максимально упрощена для пользователя ЭЦП.

Поэтому все, что нужно сделать — заполнить форму и нажать кнопки Подписать и Отправить. Остальное сделает система.

XML-документ подписывается, как обычный файл Office. Самая активная работа с файлами в формате XMLdsig осуществляется при поддержке программы КриптоАРМ и приложения Microsoft Office InfoPath 2003.

Надежный крипто-помощник

Использование специального программного обеспечение, предназначенного для выполнения криптооперций и управления цифровыми сертификатами, значительно облегчает процедуру подписания документов с помощью ЭЦП.

КриптоАРМ является самой распространенной программой для подобных криптооперций на территории СНГ. Помимо шифрования и надежного хранения данных, она предоставляет широкие возможности для того, чтобы быстро и удобно подписать документ с помощью ЭЦП :

  • можно подписать не только отдельный файл, но и пакет файлов или архивов;
  • можно использовать как простую, так и усиленную электронную подпись;
  • можно создать не только первичную, но и дополнительную (подпись документа двумя и более лицами) и заверяющую (конечная подпись документа вышестоящим сотрудником) ЭЦП;
  • при работе с документами MS Office (Word, Excel, PowerPoint) возможно использование видимой и невидимой электронной подписи. Подписать документ с помощью ЭЦП можно двумя способами. Если в файл нужно добавить две или более подписи, для уменьшения риска возникновения ошибок используются видимые строки подписи. Если же документ подписывает одно лицо, используется невидимая ЭЦП ;
  • КриптоАРМ также позволяет снабдить лицо, подписывающее документ инструкциями (используйте поле Инструкции для подписывающего), самому подписывающему лицу добавить свой комментарий (поставьте соответствующий флажок), отображать дату подписания документа;
  • ограничение подписываемых файлов по размеру определяется исключительной объемом свободной памяти вашего компьютера;
  • одновременно может обрабатываться неограниченное количество файлов.

Для обеспечения юридической легитимности документов в формате PDF используется программа «КриптоПро PDF». С ее помощью осуществляется подписание документов Adobe Acrobat и Adobe Reader 7 версии и выше.

Сегодня мы рассмотрели различные стратегии подписания цифровых документов, созданных в самых распространенных электронных форматах.

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

Как установить на компьютер

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

Чтобы инсталлировать ЭЦП на персональном компьютере, необходимо установить программу «КриптоПро». После установки необходимо запустить ее нажатием левой клавиши мыши. Далее выбираем в открывшемся окне вкладку «Сервис» и пункт «Посмотреть сертификаты в контейнере».

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

После выбора контейнера, нажимаем на него правой клавишей мыши и запускаем вкладку «Свойства». Откроется окошко «Мастер импорта сертификатов». Потом перемещаем все выбранные файлы в хранилище в категорию «Личное».

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

Общий порядок работы

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

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

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

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

Как подписать

Разберем более подробно, как поставить подпись на документ в зависимости от того, какое программное обеспечение применяется для активной работы и создания документации. Различают несколько типов программ, взаимодействующие с ЭЦП и используемые для совершения каких-либо операций и передачи личной информации.

Word

Это самая популярная программа для создания файлов, в отношении которых необходима виза при помощи ЭЦП. Тут все будет зависеть от того, какая версия программы используется:

HTML

Периодически возникает необходимость ставить визу на документы в формате HTML. Подобная форма нуждается в подписи при пользовании государственных интернет-порталов для предоставления тех или иных услуг (к примеру, Пенсионный фонд РФ www.pfrf.ru).

Чтобы поставить подпись, необходимо будет зайти на портал при помощи браузера Internet Explorer, найти в его меню функцию «Подписать и отправить», определиться с сертификатом и, следуя подсказкам диалогового окна, кликнуть на кнопку «Подписать».

PDF

Чтобы подписать документ, который находится в формате PDF, необходимо будет установить на свой компьютер плагин КриптоПро PDF, который был специально разработан для работы с программой Adobe Reader версии 7.0 и выше. Данный плагин находится в свободном доступе в сети интернет, а кроме того, он абсолютно бесплатный.

XML

Документы с расширением XML чаще всего встречаются при работе с базами данных. В некоторых ситуациях возникает необходимость визирования документа (например, если вы имеете дело с документом, касающимся статистических данных, или же сведениями о начислении заработной платы сотрудникам).

Чтобы поставить свою подпись, необходимо нажать на специальную клавишу, встроенную в программу по умолчанию. Также существует вариант подписания документов формата XML при помощи дополнительных программных возможностей, которые обеспечиваются рядом программ, среди которых КриптоПро АРМ и XMLdsig.

Многофайловые документы (Rar-архивы и подобное)

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

Необходимо создать так называемую карточку документа в отдельном текстовом вложении. Она должна содержать в себе все идентификационные данные по каждому документу из списка, а также ключевые хеш-функции по каждому файлу.

База данных

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

Что делать, если ЭЦП не работает

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

Разберем наиболее часто встречающиеся случаи проблем с ЭЦП:

  1. «Не валидный сертификат» . Чтобы избавиться от данной проблемы, необходимо будет установить ЭЦП, следуя подсказкам Удостоверяющего центра.
  2. «К сертификату нет доверия» . Эта проблема возникает довольно часто, и чтобы избавиться от нее, необходимо установить корневые сертификаты Удостоверяющего центра, которые можно найти на цифровых носителях с данными по ЭЦП или же на официальном интернет-портале Ассоциации электронных свободных площадок aetp.ru .
  3. «Срок действия программы КриптоПро завершен» . Решение данной проблемы только одно – ввод лицензионного ключа. Как только данная операция выполнена, проблема будет устранена, и программа возобновит работу.
  4. « Capicom не установлен или работает некорректно» . Чтобы справится с данной сложностью, необходимо будет скачать и установить Capicom, после чего произвести настройку браузера согласно инструктажу, предоставленному на торговых площадках, с которыми вы планируете взаимодействовать.
  5. «Ключ контейнера не соответствует ключу сертификата» . Если при работе с ЭЦП определилась данная сложность, то вам предстоит тщательно проверить все контейнеры, имеющиеся на вашем компьютере. Вполне возможно, что подпись была перемещена, или же из-за сбоя выбран не тот сертификат. Если же нужный контейнер не обнаружен, то в таком случае придется делать запрос в Удостоверяющий центр касательно переустановки и повторного выпуска ЭЦП.
  6. «Отсутствует выбор сертификата или же рабочих сертификатов не обнаружено» . Данная ситуация считается одной из наиболее сложных, и найти эффективное решение тут можно путем установки корневых сертификатов УЦ и Capicom. Помимо этого, вам придется также связаться с Удостоверяющим центром и получить дополнительные сведения, касающиеся срока действия сертификата.

Криптозащита и надежность

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

Однако многие пользователи продолжают не доверять , поскольку считают, что существует высокая вероятность стать жертвами хакеров.

Подобное мнение кардинально неверное . ЭЦП работает на основе правил и требований криптозащиты, при которой имеется открытый и секретный ключ доступа. имеется только у тех ЭЦП, которые относят к категории усиленно квалифицированных. Их отличие заключается в том, что криптозащита имеет сертификат качества от ФСБ РФ и столкнуться с мошенническими или хакерскими действиями при ее использовании невозможно априори.

Еще одним немаловажным моментом является тот факт, что ЭЦП в соответствии с федеральными нормативами приравнивается к обычной подписи и потому криптозащита должна иметь повышенные квалификационные требования, чтобы предотвратить утечку информации в открытый доступ.

Дополнительная информация по процессу подписания документа ЭЦП представлена в данной инструкции.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то