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