Как подписать APK с помощью Gradle. Электронная подпись документов Чем опасна неграмотно оформленная подпись

  • Дата: 09.06.2020

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

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

  • Окончательная редакция документа, который необходимо подписать. После создания подписи в него нельзя будет внести изменения.
  • Действующий квалифицированный сертификат электронной подписи . В рамках российского законодательства квалифицированная электронная подпись — единственный вид подписи, который придает документу юридическую силу без дополнительных соглашений между сторонами электронного документооборота.
  • Средства электронной подписи. Технология электронной подписи подразумевает использование комплекса программных средств, которые владелец подписи устанавливает на свой компьютер. В Удостоверяющем центре СКБ Контур настройка компьютера для работы с электронной подписью проходит автоматически.
  • Программа для создания электронной подписи. Это могут быть плагины, отдельные программы или веб-сервисы.

Вариант 1. Установить плагин для Office

Для документов формата Word и Excel

Чаще всего требуется подписать документ в формате Word:

  • трудовой или хозяйственный договор,
  • иск в арбитраж,
  • заявление в вуз и т.д.

Штатная функция пакета Microsoft Office «Подписать документ» не позволяет создать подпись, которая придает электронному документу юридическую силу . Чтобы создать такую подпись в Word или Excel, необходимо установить на свой компьютер специальный программный модуль, который добавит такую возможность, — например, КриптоПро Office Signature.

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

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

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

    С его помощью создайте для документа электронную подпись: нажмите «Подписать» и введите пароль ключевого контейнера.

Что учесть при использовании плагина:

  • Алгоритм подписания отличается в разных версиях Word.
  • Если создать подпись в одной версии программы, а проверять ее в другой, результат проверки может быть некорректным.
  • Документ, подписанный с помощью КриптоПро Office Signature, можно открыть и проверить даже на компьютере, где эта программа не установлена.

Для документов формата PDF

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

Работать в программе можно после регистрации и автоматической установки на компьютер программного обеспечения для криптографических операций. У программы интуитивно понятный интерфейс. Чтобы подписать электронный документ, необходимо:

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

    Выбрать установленный на компьютере сертификат, которым будет подписан документ. Подписать документ в Контур.Крипто можно сертификатом, выпущенным любым удостоверяющим центром.

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

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

Что учесть при использовании Контур.Крипто:

  • В сервисе действует ограничение на вес документа: можно подписать документ до 100 Мб.
  • В сервисе можно создать только отсоединенную подпись.
  • Контур.Крипто работает только в операционной системе Microsoft Windows.
  • Проверить подпись, созданную в Контур.Крипто, можно в любой программе, которая работает с отсоединенными электронными подписями.

Сравнение программ для создания электронной подписи

Плагины КриптоПро

Отдельная программа КриптоАРМ

Веб-сервис Контур.Крипто

Стоимость

Бесплатна только базовая версия Старт

Все функции доступны бесплатно

Форматы документов

Word и Excel, PDF

Соподпись/ пакетная подпись

Максимальный вес файла

Без ограничений

Без ограничений

Создание усовершенство

ванной подпись

Только в платных версиях

Присоединенная/ отсоединенная

Присоединенная/ отсоединенная

Только отсоединенная

Функции проверки, шифрования и расшифрования

Только в платных версиях

Post Views: 6 023

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 . Как видно, данный способ удобен тем, что он автоматический, его достаточно настроить лишь раз и ваши хранилища ключей могут быть в безопасности.

Поскольку сам гуглил вопрос "как подписать 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 ГК РФ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. Помимо этого, вам придется также связаться с Удостоверяющим центром и получить дополнительные сведения, касающиеся срока действия сертификата.

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

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

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

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

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

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