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

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

Поскольку сам гуглил вопрос "как подписать 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 , который и будет вашим подписанным приложением или игрой.

«Как подписать ЭЦП документ Word ?» — этот вопрос нередко возникает у пользователей, которые впервые сталкиваются с необходимостью поставить электронную подпись. О том, как правильно установить ЭЦП на компьютер и подписать с ее помощью документы, будет рассказано в этой статье.

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

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

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

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

Новое окно предоставит выбор хранилища. Галочку надо поставить на пункте «Поместить все сертификаты в следующее хранилище». Появится окно хранилищ: в нем нужно выбрать «Личное» и нажать «OK». Сертификат ЭЦП уже установлен, для завершения процедуры требуется нажать кнопку «Готово». Теперь стало возможным подписывать документы электронной подписью.

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

Теперь расскажем подробно о том, как подписать ЭЦП документ Word версий 2003, 2007, 2010. Итак, «КриптоПро» и сертификат ЭЦП установлены, текстовый документ создан, оформлен и отредактирован, дело осталось за подписью. В разных версиях этой программы действия по подписанию электронного документа будут различаться:

  1. Для Word 2003:
    На панели инструментов нажимаем последовательно: «Сервис» — «Параметры» — «Безопасность». Далее выбираем: «Цифровые подписи» — «Добавить». В появившемся списке выбираем пользователя, ЭЦП которого необходима, и нажимаем «ОК». После этих действий в нижнем правом углу документа появится значок, говорящий о том, что документ подписан.
  2. Для Word 2007:
    Нажать кнопку Office, расположенную в верхнем левом углу, затем — «Подготовить» — «Добавить цифровую подпись», после чего остается выбрать необходимый сертификат подписи и подтвердить выбор.
  3. Для Word 2010:
    Меню «Файл» — «Сведения» — «Добавить цифровую подпись», после чего нужно сделать выбор необходимого сертификата подписи и подтвердить выбор.

Как подписать ЭЦП файл pdf?

Итак, мы узнали, как подписать ЭЦП документ Word, но нередко возникает необходимость проставления подписи и на файлах с расширением pdf (Adobe Acrobat). Для этих целей был специально создан продукт «КриптоПро PDF», необходимый для создания и проверки подписей в pdf-файлах. Установка этой программы не вызовет трудностей, главное — следовать указаниям инсталлятора.

После входа в программу (к примеру, Acrobat) необходимо настроить возможность проставления подписи. Для этого открываем пустое окно программы, входим в меню «Редактирование», выбираем «Установки» и «Категории». Далее находим раздел «Подписи» и переходим в «Создание и оформление», где необходимо нажать кнопку «Подробнее».

В появившемся окне необходимо выбрать метод подписания документа (т. е. CryptoRro PDF и формат «подписи по умолчанию»). Также нужно установить флажки на полях, которые отражают информацию о подписи и ее свойствах. Данное окно имеет в том числе строку о разрешении просмотра предупреждений документа и строку запрета на подписание — тут надо отметить «Никогда».

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

Теперь для добавления подписи к созданному документу на панели инструментов надо нажать «Подписание», затем кликнуть пункт «Мне нужно поставить подпись» и выбрать «Поместить подпись». После этого появится окно сертификатов, в котором нужно выбрать необходимый и нажать «OK».