Пример Separate Storage демонстрирует использование паттерна Distrustful Decomposition для решения задачи раздельного хранения данных для доверенных и недоверенных приложений.
Архитектура примера
Пример Separate Storage содержит две пользовательские сущности: UserManager и CertificateManager.
Эти сущности работают с данными, которые размещаются в соответствующих файлах:
userlist.txt
;certificate.cer
.Каждая из этих сущностей использует собственный экземпляр сущности VFS для доступа к отдельной файловой системе. При этом каждая сущность VFS включает в себя драйвер блочного устройства, связанный с отдельным логическим разделом диска. Сущность UserManager не имеет доступа к файловой системе сущности CertificateManager и наоборот.
Такая архитектура гарантирует, что в случае атаки или ошибки в любой из сущностей UserManager и CertificateManager, эта сущность не сможет получить доступ к файлу, который не предназначен для выполнения ее работы.
Политика безопасности в примере Separate Storage имеет следующие особенности:
Сборка примера
Сборка примера осуществляется с помощью системы сборки CMake
, входящей в состав KasperskyOS Community Edition.
Файлы, содержащие код примера и скрипты для сборки, находятся по следующему пути:
/opt/KasperskyOS-Community-Edition-<version>/examples/separate_storage
Для сборки и запуска примера необходимо выполнить следующий скрипт:
/opt/KasperskyOS-Community-Edition-<version>/examples/separate_storage/cross-build.sh