1

Тема: BankId НБУ PHP

Доброго дня, підкажить будь ласка як розшифрувати  інформацию, щось не дуже зрозуміло

Не нема розуміння як отримати дані з "customerCrypto" можливо хтось вже це робив.


Відповідь надається у вигляді Json-об’єкта, в якому банк передає через ц. в.
BankID НБУ свій кваліфікований сертифікат шифрування та цифровий конверт,
що містить зашифровані й підписані персональні дані. Кваліфікований
сертифікат шифрування банку міститься в у значенні ключа "cert" закодований
у BASE64. Цифровий конверт із даними про користувача в підписаному та
зашифрованому вигляді разом із зашифрованим ключем шифрування даних
містяться в у значенні ключа "customerCrypto" закодований у BASE64.

Приклад відповіді:

HTTP/1.1 200 OK
Content-Type: application/json
{
 "state":"ok",
 "cert":"dEBIGx1pdL6dt1ngaOEfPvt/ik9eUpDuz90rm/Vk23v+FtiKJEvGnu
ea9FGjvBMGlFZS4zhg2IYIHGOhlBVYrZcez6udotjZlCLGZ7zwPuFo0XypKD
Qj5qpR7w0rFFZNjcPH3JW2IzEUv…….",
 "customerCrypto":
“dEBIGx1pdL6dt1ngaOEfPvt/ik9eUpDuz90rm/Vk23v+FtiKJEvGnuea9FGjvB
MGlFZS4zhg2IYIHGOhlBVYrZcez6udotjZlCLGZ7zwPuFo0XypKDQj5qpR7
w0rFFZNjcPH3JW2IzEUv/4bXQWqYCccma03b3lbva+YJ/Txox1CMfyV4jJ5f
XeCMOjEWxwctEc7mXNzPfcbKMoqr048uvW9HTiPkjsLIU5jgTKJVdgoanZI
4712dmQev5UzMKqNYvOwfJ+hU872kCSD1wfgVaJU0qP6yURcK80ys2K5O
vUpa9uIHwmL7KmnxMDhB4hLr5CQPl1XZ09RnNykgS/4cQ…….”,
 "memberId":"9999999901",
 "sidBi":"2baeadd0-c7e6-4ad9-9181-1fd9bbebfaac"
}

Розшифрування підписаних персональних даних користувача відбувається
згідно з вимогами до форматів криптографічних повідомлень, визначених
наказом Адміністрації Державної служби спеціального зв'язку та захисту
інформації України від 18.12.2012 № 739 (http://zakon3.rada.gov.ua/laws/show/z0
108-13) (далі – Вимоги). Узгодження ключів за замовчуванням здійснюється з
використанням статичного механізму. Якщо параметри криптографічного
алгоритму статичної ключової пари відправника не еквівалентні параметрам
криптографічного алгоритму статичної ключової пари одержувача, повинен
здійснюватися перехід до застосування динамічного механізму узгодження
ключів. Засоби криптографічного захисту інформації відправника та одержувача
мають підтримувати криптографічні алгоритми, визначені цими Вимогами.

АБС банку формує Json-об’єкт у стандарті кодування UTF-8 із
персональними даними користувача у вигляді (приклад):
(кратко, повна відповідь сторінка 23 )

{
 "type":"physical",
 "inn":"112233445566",
 "sex":"M",
 "email":"geraschenko@gmail.com",
 "birthDay":"20.01.1953",
 "firstName":"ПЕТРО",
 "lastName":"ГЕРАЩЕНКО",
 "middleName":"ІВАНОВИЧ"}

Після цього вказаний Json-об’єкт підписується кваліфікованою
електронною печаткою банку й шифрується симетричним ключем сеансу (КШД
– ключ шифрування даних за алгоритмом, визначеним у ДСТУ ГОСТ 28147-
2009). Підписаний та зашифрований об’єкт формується у вигляді цифрового
конверта згідно з Вимогами.
Примітка. Сам ключ шифрування даних шифрується узгодженим ключем
(КШК – ключ шифрування ключа, симетричний ключ, який обчислюється за
протоколом Діффі-Геллмана на підставі пари ключів – відкритого ключа
шифрування ПП, отриманого з кваліфікованого сертифіката ПП, та особистого
ключа шифрування АБС банку).

Повна документація сторінка 22
https://testid.bank.gov.ua/assets/docs/ … portal.pdf

2

Re: BankId НБУ PHP

Ймовірно розбиратися з пхпшними бібліотеками для декрипту.