Документация
ОС Аврора 5.0.1

D-Bus интерфейс sstore

Криптоконтейнер позволяет пользовательскому приложению хранить информацию в защищённом виде и тем самым предотвращает неавторизованный доступ нарушителя, получившего доступ к основному хранилищу, файловой системе устройства. Цель достигается шифрованием данных с использованием криптографических алгоритмов. Авторизация доступа к сохранённой информации происходит с использованием пароля. Подробнее…

Шина: системная
Служба: ru.omprussia.sstore
Объект: /ru/omprussia/sstore
Интерфейс: ru.omprussia.sstore

Методы

  • Exists(bool &result)
  • Create(const string &password, int &result)
  • Open(const string &password, int &result, string &resultstring)
  • Close()
  • Delete()
  • Recrypt(const string &oldpassword, const string &newpassword, int &result)

Подробное описание

Каждый контейнер принадлежит одному конкретному приложению, не более одного контейнера на приложение. Контейнер монтируется в файловую систему, доступную только для приложения, как директория, расположенная по заданному пути: /run/user/{uid_пользователя}/sstore/{имя_приложения}/.

Контейнер принимает D-Bus обращения только от приложений, запущенных в режиме изоляции. Это гарантирует безопасность и защиту данных, поскольку приложения, работающие в изолированном режиме, имеют ограниченный доступ к ресурсам и системе, что помогает предотвратить несанкционированный доступ и утечку информации.

Система сохраняет хеши всех паролей, которые были ранее использованы для шифрования контейнеров на данном устройстве, и требует, чтобы новые пароли не совпадали со старыми. Если пароль шифрования контейнера был задан более года назад, система потребует сменить пароль шифрования, в этом случае нельзя будет вызывать метод Open до тех пор, пока не будет использован метод Recrypt для смены пароля на новый, ранее не использованный. Пароли должны иметь длину не менее 6 символов.

Используемые в качестве возвращаемых значений результатов выполнения методов константы SSTORE_* определены следующим образом:

enum SSTORE_CODE {
	SSTORE_OK = 0,
	SSTORE_EMPTY_CONTAINER,
	SSTORE_INCORRECT_PASSWORD,
	SSTORE_EXPIRED_PASSWORD,
	SSTORE_REPEATED_PASSWORD,
	SSTORE_ALREADY_OPENED,
	SSTORE_CONTAINER_BUSY,
	SSTORE_INVALID_NEW_PASSWORD,
	SSTORE_CONTAINER_EXISTS
};

Описание методов

Exists(bool &result)

Возвращает result:

  • false, если контейнер не существует;
  • true, если контейнер существует.
Create(const string &password, int &result)

Метод проверяет, что:

  • длина пароля не менее 6 символов;
  • пароль ранее не был использован на данном устройстве для создания контейнеров;
  • контейнер ещё не существует для данного приложения.

Если результат всех проверок положительный, метод создаёт контейнер и сохраняет информацию о нём в конфигурационном файле /home/sstore/.securefs.json.

Возможные значения возвращаемого аргумента result:

  • SSTORE_INVALID_NEW_PASSWORD — длина пароля меньше 6 символов;
  • SSTORE_CONTAINER_EXISTS — контейнер уже существует;
  • SSTORE_REPEATED_PASSWORD — пароль ранее был использован на устройстве для создания контейнера;
  • SSTORE_OK — контейнер успешно создан.
Open(const string &password, int &result, string &resultstring)

Монтирует контейнер, как файловую систему.

Возможные значения возвращаемых аргументов result и resultstring:

  • SSTORE_ALREADY_OPENED, "Already mounted" — контейнер уже смонтирован;
  • SSTORE_EMPTY_CONTAINER, "Container empty" — контейнер пуст;
  • SSTORE_EXPIRED_PASSWORD, "" — пароль был задан более года назад;
  • SSTORE_INCORRECT_PASSWORD, "" — пароль неверный;
  • SSTORE_OK, "{путь}" — успешное завершение, содержимое контейнера смонтировано в директорию по указанному {пути}.
Close()

Демонтирует файловую систему контейнера.

Delete(int &result)

Удаляет демонтированный контейнер приложения.

Возможные значения возвращаемого аргумента result:

  • SSTORE_ALREADY_OPENED — контейнер смонтирован, требуется демонтировать перед удалением;
  • SSTORE_OK — успешное завершение, контейнер удалён.
Recrypt(const string &oldpassword, const string &newpassword, int &result)

Дешифрует содержимое контейнера текущим паролем oldpassword и заново шифрует его с новым паролем newpassword.

Возможные значения возвращаемого аргумента result:

  • SSTORE_ALREADY_OPENED — контейнер смонтирован, требуется демонтировать перед заменой пароля;
  • SSTORE_INVALID_NEW_PASSWORD — длина нового пароля менее 6 символов;
  • SSTORE_INCORRECT_PASSWORD — указанный старый пароль неверен;
  • SSTORE_REPEATED_PASSWORD — указанный новый пароль был ранее использован на данном устройстве;
  • SSTORE_OK — успешное завершение, контейнер зашифрован новым паролем.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.