Как конвертировать ключи Приват Банка в M.E.Doc?

Регистрация на веб-сервисе “дія”: основные нюансы

Регистрация на веб-сервисе возможна двумя способами: через ЭЦП (электронная цифровая подпись) и с помощью ID.gov.ua. Каждый из этих способов имеет определенную специфику, которую далее разберем немного подробнее. 

Генерация запроса на сертификат

Утилита keytool может генерировать запрос сертификата с помощью команды certreq. Запрос сертификата — это запрос к центру сертификации (ЦС) на создание публичного сертификата для вашей организации. После создания запроса на сертификат он должен быть отправлен в центр сертификации, в котором вы хотите создать сертификат (например, Verisign, Thawte или какой-либо другой центр сертификации).

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

-certreq
    -alias alias
    -sigalg sigalg
    -file certreq_file
    -keypass keypass
    -storetype storetype
    -keystore keystore
    -storepass storepass
    -providerName provider_name
    -providerClass provider_class_name
      -providerArg provider_arg
    -v
    -protected
    -Jjavaoption

Вот пример команды -certreq:

"C:\Program FilesJavajdk1.8.0_111binkeytool"
    -certreq
    -alias testkey
    -keypass 123456
    -storetype JKS
    -keystore keystore.jks
    -storepass abcdef
    -file certreq.certreq

Эта команда сгенерирует запрос сертификата для ключа, сохраненного с псевдонимом testkey в файле keystore.jks, и запишет запрос сертификата в файл с именем certreq.certreq.

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

  • -alias Псевдоним записи в хранилище ключей. Помните, псевдоним
    может указывать только на один ключ.
  • -keyalg Название алгоритма, используемого для генерации ключа. Обычно используется RSA.
  • -keysize Размер ключа в битах. Обычно размеры ключа кратны. Кроме того, различные алгоритмы могут поддерживать только определенные предварительно заданные размеры ключей.
  • -sigalg Алгоритм подписи, используемый для подписи пары ключей.
  • -dname Уникальное имя из стандарта X.500. Это имя будет связано с
    псевдонимом для этой пары ключей в хранилище ключей, также
    используется в качестве полей «эмитент» и «субъект» в самозаверяющем
    сертификате.
  • -keypass Пароль ключевой пары, необходимый для
    доступа к этой конкретной паре ключей в хранилище ключей.
  • -validity Количество дней, в течение которых сертификат,
    приложенный к паре ключей, должен быть действительным.
  • -storetype Формат файла, в котором должно быть сохранено хранилище ключей. По умолчанию используется JKS. Другим вариантом является формат PKCS11.
  • -keystore Имя файла хранилища для хранения сгенерированной пары
    ключей. Если файл не существует, он будет создан.
  • -file Имя файла для чтения или записи сертификата или запроса сертификата.
  • -storepass Пароль от хранилища ключей, всем, кто захочет работать
    с ним, понадобится этот пароль. Отличие storepass от keypass в
    том что первый предоставляет доступ к хранилищу, а второй к отдельной
    паре ключей. Вам понадобятся оба пароля для доступа к любому ключу,
    хранящемуся в хранилище.
  • -rfc Если включить этот флаг, то утилита будет использовать текстовый формат, а не двоичный формат, например для экспорта или импорта сертификатов. Значение -rfc
    относится к стандарту RFC 1421.
  • -providerName Имя провайдера криптографического API, который вы хотите использовать при создании пары ключей. Имя провайдера должно быть указано в файлах свойств безопасности Java.
  • -providerClass Имя корневого класса провайдера криптографического API, который вы хотите использовать. Используется когда имя провайдера не указано в файлах свойств безопасности Java.
  • -providerArg Аргументы, передаваемые собственному криптографическому провайдеру при инициализации (если это необходимо провайдеру).
  • -v Сокращенное от verbose, утилита Keytool будет выводить много дополнительной информации в командную строку в удобочитаемом формате.
  • -protected Определяет, должен ли пароль хранилища ключей предоставляться каким-либо внешним механизмом, например, аппаратный токен. Допустимые значения: true и false.
  • -Jjavaoption Строка опций для Java VM которая генерирует пару ключей и создает хранилище.

Генерация ключевой пары

Генерация ключевой пары (открытый ключ / закрытый ключ) является одной из наиболее распространенных задач, для которых используется утилита Keytool. Сгенерированная пара ключей вставляется в файл KeyStore как пара ключей с собственной подписью. Вот общий формат командной строки для генерации пары ключей:

-genkeypair
    -alias alias
    -keyalg keyalg
    -keysize keysize
    -sigalg sigalg
    -dname dname
    -keypass keypass
    -validity valDays
    -storetype storetype
    -keystore keystore
    -storepass storepass
    -providerClass provider_class_name
    -providerArg provider_arg
    -v
    -protected
    -Jjavaoption

Аргументы объяснены в разделе Аргументы Keytool. Не все эти аргументы нужны и многие являются не обязательными. Утилита сообщит вам, если вы пропустили обязательный аргумент. Вот пример команды, которая импортирует сертификат в KeyStore.

"C:\Program FilesJavajdk1.8.0_111binkeytool"
    -importcert
    -alias testkey
    -keypass 123456
    -storetype JKS
    -keystore keystore2.jks
    -file cert.cert
    -rfc
    -storepass abcdef

Как конвертировать ключи приват банка в m.e.doc?

В программе M.E.Doc все документы мы подписываем электронными цифровыми подписями. ЭЦП Вы можете получить в аккредитованных центрах, но стоит обратить внимание, что программа M.E.Doc может работать с определенными АЦСК, а именно:

  • АЦСК «Україна»;
  • АЦСК ІДД ДФС;
  • АЦСК «MasterKey»;
  • АЦСК органів юстиції України;
  • АЦСК Укрзалізниці;
  • АЦСК ПАТ «УкрСиббанк»;
  • АЦСК ДП «УСС»;
  • АЦСК «Приват Банк».
Читайте также:  Электронная подпись - InfoCity

Сейчас мы рассмотрим, как успешно использовать ключи Приват Банка в программе (мы будем использовать ключи для юридического лица). Ключ приват банка – это файл с расширением JKS. Для подписания отчетов в программе нам необходимо конвертировать ключ для понятного программе расширения zs2. Запускаем M.E.Doc, далее «Адміністрування» – «Сертифікати».

Как конвертировать ключи Приват Банка в M.E.Doc?

В открывшемся окне открываем вкладку «Сервіс» – «Конвертація ключа JKS».

Как конвертировать ключи Приват Банка в M.E.Doc?

Программа предложит выбрать файл ключа (он должен быть у Вас на компьютере или на флешке). Затем необходимо указать путь куда хотим сохранить конвертированный вариант ключа, в нашем случае, это: «C:UsersVadimDocumentsKey_convert». В нижнем поле вводим пароль ключа JKS и нажимаем «Конвертувати».

Как конвертировать ключи Приват Банка в M.E.Doc?

Если все сделано верно, то M.E.Doc сообщит об успешной конвертации.

Как конвертировать ключи Приват Банка в M.E.Doc?

В папке конечного результата, у нас должно появиться 2 файла с расширением. zs2 (это непосредственно наши конвертированные ключи) и 4 файла сертификатов .crt. Если вы делали конвертацию ключей для физического лица без печати, то у Вас будет 1 файл .zs2, и 2 сертификата .crt. Возвращаемся в вкладку “Сертифікати”, нажимаем на кнопку добавить (на рисунке пункт 1.), выбираем все полученные сертификаты из папки в которую конвертировали ключи и нажимаем кнопку открыть.

Как конвертировать ключи Приват Банка в M.E.Doc?

После загрузятся сертификаты Вашего предприятия и программа предложит Вам «Змінити налаштування комплекту підписів», в предложенном запросе выберете «Так». 

В меню настройки подписей, нажав на стрелочку напротив типа документов (к примеру «Звітність») выберите перечень подписей, которые необходимо ставить на данный тип документов – нажмите «Ок».

Как конвертировать ключи Приват Банка в M.E.Doc?

Личные данные для заполнения

Сразу после регистрации в “Дія” рекомендуется указать персональную информацию о себе. Это такие данные, как:

  • ФИО;
  • идентификационный номер налогоплательщика;
  • дата рождения;
  • номер мобильного телефона;
  • адрес электронной почты;
  • пол.

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

Номенклатура сертификатов

Давайте рассмотрим, какие сертификаты X.509 встречаются в природе, если рассматривать их по расположению в

пищевой

цепочке доверия.

По степени

крутизны

дороговизны и надежности сертификаты делятся на 3 вида:

DVOVEV

Откуда берутся сертификаты?

Еще совсем недавно было всего 2 способа заполучить X.509 сертификат, но времена меняются и с недавнего времени есть и третий путь.

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

    not trusted

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

Для первого сценария достаточно пары команд и чтобы 2 раза не вставать создадим сертификат с алгоритмом эллиптических кривых. Первым шагом нужно создать закрытый ключ. Считается, что шифрование с алгоритмом эллиптических кривых дает больший выхлоп, если измерять в тактах CPU, либо байтах длины ключа. Поддержка ECC не определена однозначно в TLS < 1.2.

openssl ecparam -name secp521r1 -genkey -param_enc explicit -out private-key.pem

Далее, создает CSR — запрос на подписание сертификата.

openssl req -new -sha256 -key private.key -out server.csr -days 730

И подписываем.

openssl x509 -req -sha256 -days 365 -in server.csr -signkey private.key -out public.crt

Результат можно посмотреть командой:

openssl x509 -text -noout -in public.crt

Openssl имеет огромное количество опций и команд. Man страница не очень полезна, справочник удобнее использовать так:

openssl -help
openssl x509 -help
openssl s_client -help

Ровно то же самое можно сделать с помощью java утилиты keytool.

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048

Следует серия вопросов, чтобы было чем запомнить поля owner и issuer

What is your first and last name?
What is the name of your organizational unit?
What is the name of your organization?
What is the name of your City or Locality?
What is the name of your State or Province?
What is the two-letter country code for this unit?
Is CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU correct?

Конвертируем связку ключей из проприетарного формата в PKCS12.

keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12

Смотрим на результат:

keytool -list -v -alias selfsigned -storepass password -keystore keystore.jks

Alias name: selfsigned
Creation date: 20.01.2021
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU
Issuer: CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU
Serial number: 1f170cb9
Valid from: Sat Jan 20 18:33:42 MSK 2021 until: Tue Jan 15 18:33:42 MSK 2021
Certificate fingerprints:
     MD5:  B3:E9:92:87:13:71:2D:36:60:AD:B5:1F:24:16:51:05
     SHA1: 26:08:39:19:31:53:C5:43:1E:ED:2E:78:36:43:54:9B:EA:D4:EF:9A
     SHA256: FD:42:C9:6D:F6:2A:F1:A3:BC:24:EA:34:DC:12:02:69:86:39:F1:FC:1B:64:07:FD:E1:02:57:64:D1:55:02:3D

Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 30 95 58 E3 9E 76 1D FB   92 44 9D 95 47 94 E4 97  0.X..v...D..G...
0010: C8 1E F1 92                                        ....
]
]

Значению ObjectId: 2.5.29.14 соответствует определение ASN.1, согласно RFC 3280 оно всегда non-critical. Точно так же можно узнать смысл и возможные значения других ObjectId, которые присутствуют в сертификате X.509.

subjectKeyIdentifier EXTENSION ::= {
    SYNTAX SubjectKeyIdentifier
    IDENTIFIED BY id-ce-subjectKeyIdentifier
}

SubjectKeyIdentifier ::= KeyIdentifier

Послідовність дій користувача:

1. В першому кроці зробіть наступне:

Читайте также:  Создать эцп контур

2. В наступному кроці зробіть таке:

3. Третім кроком буде надання результату підписання документа.

Кнопку “Зберегти” використовують для збереження підписаного файлу у файловій системі комп’ютера користувача. Принцип збереження відбувається так само, як й у звичайному випадку завантаження файлу переглядачем.

Кнопку “Назад” використовують для повернення на початкову сторінку сервісу. При цьому завантаження підписаних файлів не відбувається, результати створення підпису скасовуються.

Зауважте, що під час роботи сервісу інформація, яка міститься у файлах користувача, оброблюється в переглядачі, та не передається на сторону ЦЗО.

Регистрация в мобильном приложении

Чтобы войти в приложение, необходимо для начала пройти идентификацию через технологии Bank ID:

Процесс регистрации в мобильном приложении “Дія” занимает считанные минуты. На каждом этапе можно воспользоваться подробными подсказками, поэтому зарегистрироваться не составит особого труда.

Регистрация с помощью id.gov.ua

Такой способ предполагает, что зарегистрироваться на портале можно при помощи Bank ID НБУ. Возможность есть только у клиентов банков, что поддерживают функционал Bank ID. Всего в списке доступных банков находится более 35 учреждений, включая ПриватБанк. 

Словарный запас

Определение X.509 сертификатов есть в архиве ITU-T

Certificate  ::=  SEQUENCE  {
     tbsCertificate       TBSCertificate,
     signatureAlgorithm   AlgorithmIdentifier,
     signatureValue       BIT STRING  }

TBSCertificate  ::=  SEQUENCE  {
     version         [0]  EXPLICIT Version DEFAULT v1,
     serialNumber         CertificateSerialNumber,
     signature            AlgorithmIdentifier,
     issuer               Name,
     validity             Validity,
     subject              Name,
     subjectPublicKeyInfo SubjectPublicKeyInfo,
     issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                          -- If present, version MUST be v2 or v3

Для того, чтобы досконально понять обозначения и синтаксис, придется читать спеки X.680 редакции 2008 г., где есть полное описание ASN.1. В понятиях ASN.1SEQUENCE обозначает примерно то же самое, что и struct в Си. Это может сбить с толку, ведь по семантике оно должно было соответствовать скорее массиву. И тем не менее.

Стандарт X.690 определяет следующие правила кодирования структур данных, созданных в соответствии с ASN.1: BER (Basic Encoding Rules), CER (Canonical Encoding Rules), DER (Distinguished Encoding Rules). Есть даже XER (XML Encoding Rules), который на практике мне никогда не встречался.

Да, но для чего нужны сертификаты X.509, которые доставляют столько головной боли? Первая и основная функция сертификатов X.509 — служить хранилищем открытого или публичного ключа PKI (public key infrastructure). К этой функции нареканий нет, а вот со второй не все так однозначно.

Читайте также:  Как работает электронная подпись

Вторая функция сертификатов X.509 заключается в том, чтобы предъявитель сего был принят человеком, либо программой в качестве истинного владельца некоего цифрового актива: доменного имени, веб сайта и пр. Это получается по-разному, далеко не все сертификаты имеют высокую ликвидность, если пользоваться финансовой терминологией.

Список записей хранилища

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

-list
    -alias alias
    -storetype storetype
    -keystore keystore
    -storepass storepass
    -providerName provider_name
    -providerClass provider_class_name
    -providerArg provider_arg
    -v
    -rfc
    -protected
    -Jjavaoption

Вот пример команды list. Не забудьте удалить разрывы строк!

"C:\Program FilesJavajdk1.8.0_111binkeytool"
    -list
    -storetype JKS
    -keystore keystore.jks
    -storepass abcdef

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

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

testkey, 19-Dec-2021, PrivateKeyEntry,
Certificate fingerprint (SHA1): 4F:4C:E2:C5:DA:36:E6:A9:93:6F:10:36:9E:E5:E8:5A:6E:F2:11:16

Если вы включите аргумент alias в команду list, в список попадет только запись, соответствующая данному псевдониму. Вот пример команды list с аргументом alias:

"C:\Program FilesJavajdk1.8.0_111binkeytool"
    -list
    -alias testkey
    -storetype JKS
    -keystore keystore.jks
    -storepass abcdef

Результат выполнения вышеупомянутой команды:

testkey, 15-Dec-2021, PrivateKeyEntry,
Certificate fingerprint (SHA1): 71:B0:6E:F1:E9:5A:E7:F5:5E:78:71:DC:08:80:47:E9:5F:F8:6D:25

Сценарий №1 — найти следующего в связке

Связка сертификатов — Объединение нескольких X.509 сертификатов в один файл, чаще всего в формате PEM. Связка передается по сети в момент протокола рукопожатия SSL/TLS.

Самый сок начинается, когда имеете дело со связкой сертификатов, a. k. a certificate chain. Часто просматривая лапшу в связке ключей jks непросто понять как найти родительский сертификат, когда там россыпь новых и старых сертификатов на несколько доменных имен.

Удаление записи хранилища ключей

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

-delete
    -alias alias
    -storetype storetype
    -keystore keystore
    -storepass storepass
    -providerName provider_name
    -providerClass provider_class_name
    -providerArg provider_arg
    -v
    -protected
    -Jjavaoption

Вот пример вызова команды delete. Не забудьте удалить разрывы строк перед запуском!

"C:\Program FilesJavajdk1.8.0_111binkeytool"
    -delete
    -alias testkey
    -storetype JKS
    -keystore keystore.jks
    -storepass abcdef

Эта команда удаляет запись хранилища с псевдонимом testkey хранящегося в файле keystore.jks.

Як підписати документ через портал “дія”?

1. Перейдіть за посиланням sign.diia.gov.ua.

2. Виберіть тип носія особистого ключа, введіть пароль та натисніть “Зчитати ключ”.

3. Виберіть документ для підписання та натисніть “Продовжити”.

4. Перевірте назву документа та натисніть “Підписати файл”.

5. Все готово! Зберігання підписаного документа розпочнеться автоматично. Якщо цього не сталося, натисніть кнопку “Зберегти файл”.

Радимо звернути увагу на поради, про які писав Cybercalm, а саме:

Як подати документ через сервіс центрального засвідчувального органу?

Сервіс підтримує особисті ключі та сертифікати відкритих ключів усіх кваліфікованих надавачів електронних довірчих послуг. Для створення кваліфікованого електронного підпису або печатки необхідно мати чинні особисті ключі та сертифікати, видані кваліфікованим надавачем електронних довірчих послуг.

Выводы

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

Так, пройти регистрацию можно либо с помощью электронной цифровой подписи, либо, используя Bank ID. Как на официальном сайте сервисе, так и в мобильном приложении есть подсказки, которые помогут сориентироваться в процедуре регистрации, если возникнет в этом необходимость. 

Сразу после регистрации, можно полноценно использовать функционал приложения. С этим не возникнет каких-либо проблем. Основные данные уже будут указаны в “Дія”. Понадобится только загрузить недостающую информацию и добавить копии требуемых документов. Все это подтверждает, что использовать “Дія” стоит каждому. 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector