Захищені параметри - це чутливі з точки зору безпеки параметри виклику методів REST API сервісу.

Форми захищених параметрів

Захищені параметри мають дві форми: відкриту та транспортну. Відкрита форма захищених параметрів може бути отримана з транспортної, а транспортна форма захищених параметрів може бути отримана з відкритої шляхом визначених криптографічних перетворень.

Перелік захищених параметрів, а також формат їх відкритої форми зазначається окремо для кожного методу REST API у відповідному розділі документації. Зазвичай методи сервісу використовують відкриту форму захищених параметрів у форматі JSON з кодуванням тексту UTF-8.

Транспортна форма захищених параметрів складається з двох змінних: encryptedData та secretKey, які включені до складу JSON об'єкту запиту з відкритими параметрами.

Порядок створення транспортної форми захищених параметрів для відкритої форми у форматі JSON з кодуванням тексту UTF-8

  1. Отримати налаштування захищених параметрів з використанням методу зі складу сервісу:
    1. Отримання налаштувань захищених параметрів
  2. Використовуючи зазначений в документації перелік захищених параметрів та їх значень сформувати JSON об'єкт (кодування тексту UTF-8).
  3. Отримати представлення JSON об'єкта з захищеними параметрами (етап 2) у вигляді байтового масиву.
  4. Згенерувати секретний ключ алгоритма AES довжиною 128 біт.
  5. З використанням секретного ключа (етап 4) зашифрувати байтовий масив (етап 3). Для зашифрування застосувати наступні параметри: AES/CTR/NoPadding, IV  (Initialization Vector)- всі нулі.
  6. Присвоїти зашифрований байтовий масив (етап 7) змінній encryptedData.
  7. Отримати рядок (кодування UTF-8) з поточною датою та часом (по UTC), який сформований у відповідності до вимого стандарта ISO 8601, шаблон "yyyy-MM-dd'T'HH:mm:ssZ". Рекомендується використовувати значення ProtectedParametersSettingResponse.currentUtcDateTime (етап 1).
  8. Отримати представлення рядка (етап 7) у вигляді байтового масиву.
  9. Провести конкатенацію ("зклейку") байтових масивів  секретного ключа (етап 4) та поточної дати та часу (етап 8). 
  10. З використанням відкритого RSA ключа зашифрувати байтовий масив (етап 9). В якості відкритого ключа використовувати значення ProtectedParametersSettingResponse.publicKeyTextual (етап 1).
  11. Присвоїти зашифрований байтовий масив (етап 10) змінній secretKey.
  12. Включити зміні encryptedData та secretKey до складу JSON об'єкту запиту з відкритими параметрами.

Реалізації створення захищених параметрів


  • No labels