<< Click to Display Table of Contents >> Архитектура системы > Основные сервисы Сервис ключей |
Сервис ключей (KeyDerivation) – часть механизма шифрования данных, используется для создания и сборки материалов ключей шифрования.
Документы зашифровываются и расшифровываются на сервисе хранилищ (StorageService). Для этого сервису нужен ключ шифрования, который нигде не хранится. Он генерируется на основе материала ключа и алгоритма шифрования. Сервис ключей создает или собирает материал ключа и передает его на сервис хранилищ при чтении или записи данных. Материал ключа состоит из случайных больших чисел (секретов):
•секрет сервиса – условно-постоянная информация, хранится на сервисе ключей в виде файлов. Шифруется сертификатами, которые указаны в настройках сервиса ключей;
•секрет данных – уникальная информация для каждой операции шифрования. Генерируется сервисом ключей и отправляется на веб-сервер, который передает секрет для хранения в таблицу базы данных Sungero_System_EncryptionData. При каждом изменении содержимого документа генерируется новый секрет данных. Эти секреты также шифруются сертификатами.
Таким образом, на сервисе ключей:
•генерируются секреты сервиса и секреты данных;
•создается и собирается материал ключа из секретов;
•зашифровываются и расшифровываются секреты с помощью сертификатов;
•перешифровываются секреты при замене сертификатов;
•хранятся секреты сервиса.
Схема работы сервиса ключей при записи данных:
1.В системе Directum RX изменились бинарные данные, например, сотрудник отредактировал содержимое зашифрованного документа и сохранил его.
2.Клиентское приложение запрашивает у веб-сервера jwt-токен с информацией о документе.
3.Веб-сервер обращается к базе данных и сервису хранилищ, формирует токен. В него записывается информация о том, что документ нужно шифровать при записи данных.
4.Веб-сервер передает токен клиентскому приложению.
5.Клиентское приложение отправляет токен и измененные бинарные данные на запись сервису хранилищ.
6.Сервис хранилищ по данным в токене понимает, что необходимо зашифровать измененную версию документа. Чтобы зашифровать документ, ему нужен материал ключа. Для этого сервис хранилищ с токеном обращается к сервису ключей.
7.Сервис ключей генерирует новый материал ключа и передает его сервису хранилищ, также передает секрет данных. На сервисе хранилищ запускается алгоритм шифрования и создается ключ. Документ зашифровывается.
8.Сервис хранилищ сохраняет измененную зашифрованную версию документа в файловом хранилище.
9.Сервис хранилищ передает результат сохранения клиентскому приложению. На веб-сервер отправляет ответ о фиксации бинарных данных и секрет данных.
В результате секрет данных передается в базу данных для хранения. Изменения, внесенные сотрудником в документ, сохраняются.
Схема работы сервиса ключей при чтении данных:
1.В системе Directum RX сотрудник открывает на чтение содержимое зашифрованного документа.
2.Клиентское приложение запрашивает у веб-сервера jwt-токен с информацией о документе.
3.Веб-сервер обращается к базе данных и сервису хранилищ, формирует токен, в который записывается информация о параметрах шифрования: секрет данных, идентификатор секрета сервиса и другие данные.
4.Веб-сервер передает токен клиентскому приложению.
5.Клиентское приложение отправляет токен и запрос на чтение данных сервису хранилищ.
6.Сервис хранилищ по данным в токене понимает, что документ зашифрован. Чтобы расшифровать документ, ему нужен материал ключа. Для этого сервис хранилищ с токеном обращается к сервису ключей.
7.Сервис ключей собирает материал ключа шифрования из полученных частей и передает материал сервису хранилищ.
8.На сервисе хранилищ запускается алгоритм шифрования и создается ключ. Сервис хранилищ получает содержимое документа из файлового хранилища и расшифровывает его.
9.Сервис хранилищ передает результат клиентскому приложению. Документ открывается на чтение.
Установка и настройка сервиса
В системе можно настроить шифрование документов, только если развернут сервис ключей. При развертывании системы с помощью инструмента Directum Launcher по умолчанию сервис не устанавливается вместе со всеми компонентами. Для его установки необходимо использовать скрипты развертывания, при этом:
•для обеспечения высокой безопасности сервис ключей нужно разворачивать отдельно от остальных сервисов, в защищенном контуре, доступ к которому строго ограничен. Например, физический доступ к серверу должен быть только у администратора безопасности, который не является администратором Directum RX или разработчиком;
•допускается разворачивать сервис на основном сервере со всеми компонентами для тестирования работоспособности системы, при установке среды разработки на компьютере разработчика или когда не требуется повышенная безопасность.
При установке сервиса необходимо настроить сертификаты для шифрования данных. Для надежности используется два сертификата: основной и запасной. Если что-то произойдет с основным, например, когда истечет срок, будет использоваться второй сертификат.
Примечание. Если используются ГОСТ-сертификаты для шифрования данных, то на компьютере с сервисом ключей требуется установка КриптоПро CSP версии 5.0 и выше.
Все действия на сервисе ключей логируются. Дополнительно в лог-файл записывается информация о режиме строгого доступа: отключен, включен строгий доступ или включен усиленный строгий доступ. Для безопасности папка с лог-файлами должна размещаться вместе с сервисом ключей, и доступ на запись в папку должен быть строго ограничен. При расследовании инцидентов по лог-файлам можно отследить, кто и с какими зашифрованными документами работал.
Настройки сервиса задает администратор. Например, в настройках можно указать отпечаток сертификата, который был заменен.
© Компания Directum, 2024 |