credstore
Служба для учетных данных пользователя
Тип файла: служба
Комментарии
API-интерфейсы Identity Credential предоставляют интерфейс для безопасного хранилища документов, удостоверяющих личность. Эти API-интерфейсы взаимодействуют с системной службой credstore, которая, в свою очередь, использует HAL учетных данных удостоверения для связи с безопасным оборудованием.
Доступ к Identity Credential HAL осуществляется через IIdentityCredentialStore ,
который предоставляет интерфейс для безопасного хранилища документов, удостоверяющих личность пользователя.
Насколько это возможно, спецификация форматов сообщений и семантики связи с устройствами проверки учетных данных и органами выдачи (IA) выходит за рамки этого HAL.
Он предоставляет интерфейс с безопасным хранилищем, но для реализации протоколов
представления и проверки и процессов, соответствующих конкретному типу учетных данных, требуется приложение Android для конкретных учетных данных.
Интерфейс к безопасному хранилищу документов, удостоверяющих личность пользователя.
Этот интерфейс намеренно является довольно общим и абстрактным.
Насколько это возможно, спецификация форматов сообщений и семантики связи с устройствами
проверки учетных данных и органами выдачи (IA) выходит за рамки.
Он обеспечивает интерфейс с безопасным хранилищем, но для реализации протоколов и
процессов представления и проверки, соответствующих конкретному типу учетных данных,
потребуется приложение Android для конкретных учетных данных.
Можно создать несколько учетных данных. Каждое удостоверение включает в себя:
Тип документа, который представляет собой строку.
Набор пространств имен, которые служат для устранения неоднозначности имен значений.
Рекомендуется структурировать пространства имен как обратные доменные имена,
чтобы IANA эффективно выполняла функции регистратора пространства имен.
Для каждого пространства имен — набор пар имя/значение, каждая из которых связана с
набором идентификаторов профиля управления доступом. Имена представляют собой строки,
а значения являются типизированными и могут быть любыми значениями, поддерживаемыми CBOR .
Набор профилей контроля доступа (до 32), каждый из которых имеет идентификатор профиля и
спецификацию условий, удовлетворяющих требованиям профиля.
Пара асимметричных ключей, которая используется для аутентификации учетных данных
в органе выдачи, называется CredentialKey .
Набор из нуля или более именованных открытых ключей аутентификации считывателя, которые
используются для аутентификации авторизованного считывателя по учетным данным.
Набор именованных ключей подписи, которые используются для подписи коллекций значений
и транскриптов сеансов.
Реализация поддержки документов, удостоверяющих личность пользователя, в безопасном хранилище
требует специальной аппаратной поддержки и не всегда может быть доступна.
Существуют два разных хранилища учетных данных — хранилище по умолчанию и хранилище прямого доступа.
Чаще всего доступ к учетным данным осуществляется через хранилище по умолчанию,
но для этого требуется, чтобы устройство Android было включено и полностью функционально.
Желательно разрешить использование учетных данных, когда батарея устройства Android слишком
разряжена для загрузки операционной системы Android, поэтому прямой доступ к защищенному
оборудованию через NFC может позволить извлечение данных, если защищенное оборудование
решит это реализовать.
Учетные данные, предоставленные в хранилище прямого доступа, всегда должны использовать
аутентификацию считывателя для защиты элементов данных. Причиной этого является то,
что аутентификация пользователя или разрешение пользователя на выпуск данных невозможны,
когда устройство выключено.
Identity Credential API разработан с учетом возможности развития и изменения с течением
времени, но при этом обеспечивает 100% обратную совместимость.
Это осложняется тем фактом, что между API, используемым приложением, и версией,
реализованной на защищенном оборудовании, может быть несоответствие версий.
Чтобы решить эту проблему, API предоставляет приложению возможность запросить,
какую версию функции реализует аппаратное обеспечение (если она вообще существует),
используя android.content.pmи android.content.pm. Методы, которые работают только
с определенными версиями функций, четко документированы как таковые.