Требования

Выполнение проверок.

1. В случае повторного вызова метода инициализации вернуть код ошибки "Инициализация ПМ уже выполнена".

2. Проверить:

а) наличие root-доступа для Google Android, HarmonyOS и Аврора или jailbreak для Apple iOS;

b) маскировку наличия у пользователя прав суперпользователя (Root Cloaking Detection);

c) использование устройством модифицированной (неофициальной) прошивки (Custom Firmware Detection);

d) запуск приложения на эмуляторе устройства (Emulator Detection);

e) использование функций отладчика при запуске приложения (Debug Detection);

f) наличие программных средств, позволяющих изменять поведение приложений или ОС за счет перехвата вызовов и других способов воздействия на программную среду (Hooks Detection).

3. При наличии хотя бы одного признака небезопасной работы из перечисленных в пункте 2, прервать выполнение функции и вернуть код, соответствующий ошибке "Невозможно вызвать криптографические функции" (см. раздел 3.2.6).

4. Инициализировать СКЗИ для обеспечения корректной работы функций криптографической защиты, инициализировать область памяти в СКЗИ.

5. При получении уведомления от СКЗИ об отсутствии или недостаточном количестве информационной энтропии выполнение метода инициализации должно приостанавливаться, а после сбора достаточного количества энтропии корректного возобновляться.

6. Вызвать метод checkIntegrity (filesWithCheckSums). На вход передать значения, полученные во входных параметрах метода инициализации.

7. Установить в хранилище СКЗИ серверный ГОСТ-TLS-сертификат и связанную с ним цепочку сертификатов, включающую все промежуточные сертификаты, сертификат промежуточного УЦ и сертификат корневого УЦ:

a) корневые (самоподписанные) сертификаты УЦ БР и УЦ Безопасности, промежуточный сертификат ПУЦ УНЭП должны быть включены в ресурс МП;

b) в МП должен быть реализован механизм ротации сертификатов в случае окончания срока действия сертификата или при его компрометации.

8. Вернуть "ОК".

9. В случае неуспешного выполнения какого-либо из перечисленных выше действий или получения ошибок при вызове функций СКЗИ прервать выполнение метода и вернуть код ошибки в соответствии с описанием в разделе 3.2.6.