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
— успешное завершение, контейнер зашифрован новым паролем.