1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-security_device_auth

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh.md 23 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 14.03.2025 06:26 b81ac3b

Управление взаимной доверием устройств

Обзор

В OpenHarmony модуль управления взаимной доверием устройств является подмодулем безопасности, отвечающим за управление жизненным циклом установки, поддержки, использования и отзыва доверия между устройствами. Он обеспечивает взаимное аутентификационное доверие и согласование безопасных сессионных ключей между надёжными устройствами, что служит основой для надёжной связи устройств, работающих под управлением OpenHarmony.

Модуль управления взаимной доверием устройств в настоящее время предоставляет следующие возможности:

  • Управление взаимной связью устройств: единое управление процессами установки, поддержки и отзыва взаимной связи устройств; поддержка изолированного создания и контролируемого совместного использования взаимной связи устройств, созданных различными бизнес-приложениями.
  • Аутентификация взаимной связи устройств: предоставление возможностей для проверки взаимной связи устройств и согласования безопасных сессионных ключей; поддержка распределённого софт-шина для сетевого объединения взаимно доверяемых устройств.Для реализации вышеуказанных функций модуль управления взаимной доверием устройств в настоящее время состоит из трёх подмодулей: управления группами устройств, аутентификации групп устройств и аутентификации пар-пар устройств без учёта аккаунтов. Логика их развертывания представлена ниже:

Рис. 1 Архитектурная диаграмма системы

Рис. 1

Где,- Услуга управления группами устройств: единое управление взаимной связью устройства, установленной различными бизнес-приложениями, и предоставление входа для создания взаимной связи устройства; после завершения установки доверия создаётся группа устройств без учёта аккаунтов, и доверенные объекты устройств добавляются в группу; различные бизнес-приложения на OpenHarmony могут независимо создавать изолированные взаимные связи устройств.

  • Услуга аутентификации групп устройств: поддержка завершения аутентификации взаимной связи устройств и согласования сессионных ключей между уже установленными доверенными устройствами.
  • Аутентификация пэйр-пэйр устройств без учёта аккаунтов: предоставление функциональности для установления одиночной взаимной связи устройств на основе общего секрета и поддержка согласования аутентификационных ключей на основе такой взаимной связи.
  • Библиотека протоколов аутентификации: единство упаковки различных типов протоколов аутентификации и поддержка множества легких и стандартных реализаций протоколов аутентификации.Требования и ограничения использования общего секрета:

При установке взаимной связи устройств без учета аккаунтов различными бизнес-приложениями требуется использование внешнего общего секрета. Этот секрет должен удовлетворять требованиям безопасности относительно способа передачи, длины, сложности и актуальности. Система ограничивает длину общего секрета; если она не соответствует этим требованиям, то невозможно установить взаимную связь устройств без учета аккаунтов. Правила представлены ниже:

Протокол Длина секретной информации (PIN)
EC-SPEKE ≥6 бит
DL-SPEKE ≥6 бит
ISO ≥128 бит

Оглавление ```

/base/security/device_auth ├── default_config # Конфигурационный файл сборки ├── frameworks # IPC-код для взаимного доверия устройств ├── interfaces # Каталог внешних интерфейсов ├── test # Интерфейсные тестовые случаи для взаимного доверия устройств ├── common_lib # Общие библиотеки на языке C ├── deps_adapter # Код адаптера зависимостей │ ├── key_management_adapter # Уровень управления ключами и алгоритмами │ └── os_adapter # Уровень адаптации системных возможностей └── services # Код слоя услуг взаимного доверия устройств ├── frameworks # Код фреймворка взаимного доверия устройств ├── data_manager # Модуль управления данными взаимного доверия устройств ├── legacy │ ├── authenticators # Модуль выполнения аутентификации │ ├── group_auth # Сервис аутентификации группы устройств │ ├── group_manager # Сервис управления группой устройств │ ├── identity_manager # Модуль управления удостоверениями аутентификации │ └── creds_manager # Модуль управления учетными данными ├── mk_agree # Агремент главного ключа устройства ├── ext_plugin_manager # Модуль управления плагинами учетных данных ├── key_agree_sdk # SDK согласования ключей ├── privacy_enhancement # Модуль повышения конфиденциальности ├── session_manager # Модуль управления сессиями

```## Описание <a name="section1312121216216"></a>

### Описание интерфейса <a name="section1551164914237"></a>

Компонент взаимного доверия устройств включает сервис управления группой устройств, который отвечает за абстрагирование доверительных отношений между различными устройствами, созданных различными бизнес-приложениями, в доверительные группы устройств. Этот сервис предоставляет унифицированный интерфейс, включающий функции создания, удаления и запроса групп; сервис аутентификации группы устройств, основываясь на уже установленных доверительных отношениях, обеспечивает аутентификацию устройств и согласование ключей для конечноконечного шифрования; также он предоставляет способность к аутентификации устройств на основе удостоверений аутентификации, независимую от группы устройств. **Таблица 1** Описание функционала API-интерфейсов службы управления группами устройств \(DeviceGroupManager\)

---Переведенный текст:

<a name="table1731550155318"></a>

<table>
<thead align="left">
<tr id="row4419501537">
<th class="cellrowborder" valign="top" width="57.38999999999999%">
<p id="p54150165315"><a name="p54150165315"></a><a name="p54150165315"></a>Интерфейс</p>
</th>
<th class="cellrowborder" valign="top" width="42.61%">
<p id="p941150145313"><a name="p941150145313"></a><a name="p941150145313"></a>Описание</p>
</th>
</tr>
</thead>
<tbody>
<tr id="row34145016535">
<td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1">
<p id="p1487722894416"><a name="p1487722894416"></a><a name="p1487722894416"></a>const DeviceGroupManager *GetGmInstance()</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2">
<p id="p13562171015712"><a name="p13562171015712"></a><a name="p13562171015712"></a>Получение экземпляра управления группами устройств.</p>
</td>
</tr>
<tr id="row1027292610453">
<td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1">
<p id="p1227312634518"><a name="p1227312634518"></a><a name="p1227312634518"></a>int32_t RegCallback(const char *appId, const DeviceAuthCallback *callback)</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2">
<p id="p7488141134613"><a name="p7488141134613"></a><a name="p7488141134613"></a>Регистрация обратного вызова прослушивания бизнеса.</p>
</td>
</tr>
<tr id="row1746172917474">
<td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1">
<p id="p9758144610285"><a name="p9758144610285"></a><a name="p9758144610285"></a>int32_t CreateGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *createParams)</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2">
<p id="p2431455765"><a name="p2431455765"></a><a name="p2431455765"></a>Создание доверенной группы устройств.</p>
</td>
</tr>
</tbody>
</table><table>
<tbody>
<tr id="row1440154863415">
<td class="cellrowborder" valign="top" width="57.38999999999999%">
<p id="p19702122715481"><a name="p19702122715481"></a><a name="p19702122715481"></a>int32_t RemoveTrustDeviceGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *removeParams)</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%">
<p id="p240224817343"><a name="p240224817343"></a><a name="p240224817343"></a>Удаление доверенного устройства из группы.</p>
</td>
</tr>
<tr id="row495164812345">
<td class="cellrowborder" valign="top" width="57.38999999999999%">
<p id="p1872417515488"><a name="p1872417515488"></a><a name="p1872417515488"></a>int32_t AddMemberToGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *addParams)</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%">
<p id="p1995144893411"><a name="p1995144893411"></a><a name="p1995144893411"></a>Добавление члена в указанный доверенный список устройств.</p>
</td>
</tr>
<tr id="row4107114933418">
<td class="cellrowborder" valign="top" width="57.38999999999999%">
<p id="p794617473016"><a name="p794617473016"></a><a name="p794617473016"></a>int32_t DeleteMemberFromGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *deleteParams);</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%">
<p id="p11107849113418"><a name="p11107849113418"></a><a name="p11107849113418"></a>Удаление доверенного члена из указанной группы доверенных устройств.</p>
</td>
</tr>
<tr id="row3270349193419">
<td class="cellrowborder" valign="top" width="57.38999999999999%">
<p id="p179130216514"><a name="p179130216514"></a><a name="p179130216514"></a>int32_t ProcessData(int64_t requestId, const uint8_t *data, uint32_t dataLen)</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%">
<p id="p179130216514">Обработка данных.</p>
</td>
</tr>
</tbody>
</table>```markdown
<table>
 <tbody>
 <tr id="row1440154863415">
 <td class="cellrowborder" valign="top" width="57. 38999999999999%">
 <p id="p179130216514"><a name="p179130216514"></a><a name="p179130216514"></a>int32_t GetGroupInfo(int32_t osAccountId, const char *appId, const char *queryParams, char **returnGroupVec, uint32_t *groupNum)</p>
 </td>
 <td class="cellrowborder" valign="top" width="42. 61%">
 <p id="p12701049183411"><a name="p12701049183411"></a><a name="p12701049183411"></a>Получение информации о группе доверенных устройств.</p>
 </td>
 </tr>
 <tr id="row1440154863415">
 <td class="cellrowborder" valign="top" width="57. 38999999999999%">
 <p id="p12701049183411"><a name="p12701049183411"></a><a name="p12701049183411"></a>int32_t BindOrUnbindDataProcessing(int32_t osAccountId, const char *appId, const char *data, int32_t bindOrUnbind)</p>
 </td>
 <td class="cellrowborder" valign="top" width="42. 61%">
 <p id="p12701049183411"><a name="p12701049183411"></a><a name="p12701049183411"></a>Обработка данных привязки или отвязки.</p>
 </td>
 </tr>
 </tbody>
</table>

Извините за возможную путаницу с порядком методов; они должны быть расположены в правильном порядке как в исходном тексте:```markdown

int32_t AddMemberToGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *addParams)

Добавление члена в указанный доверенный список устройств.

int32_t DeleteMemberFromGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *deleteParams);

Удаление доверенного члена из указанной группы доверенных устройств.

int32_t ProcessData(int64_t requestId, const uint8_t *data, uint32_t dataLen)

Обработка данных привязки или отвязки.

int32_t GetGroupInfo(int32_t osAccountId, const char *appId, const char *queryParams, char **returnGroupVec, uint32_t *groupNum)

Получение информации о группе доверенных устройств.

```

int32_t RemoveTrustDeviceGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *removeParams)

Удаление доверенного устройства из группы.

```**Таблица 2** Описание функциональности API-интерфейсов модуля аутентификации групп устройств (GroupAuthManager)```

Полный текст с исправлениями:

int32_t RemoveTrustDeviceGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *removeParams)

Удаление доверенного устройства из группы.

```**Таблица 2** Описание функциональности API-интерфейсов модуля аутентификации групп устройств (GroupAuthManager)``` | **Интерфейс** | **Описание** | |----------------|---------------| | `const GroupAuthManager *GetGaInstance()` | Получение экземпляра аутентификации групп устройств. | | `int32_t AuthDevice(int32_t osAccountId, int64_t authReqId, const char *authParams, const DeviceAuthCallback *gaCallback)` | Аутентификация доверенного устройства. | | `int32_t ProcessData(int64_t authReqId, const uint8_t *data, uint32_t dataLen, const DeviceAuthCallback *gaCallback)` | Обработка данных аутентификации. |**Таблица 3** Описание функциональности API-интерфейсов, связанных с возможностью взаимной аутентификации устройств на основе удостоверяющих данных

Интерфейс

Описание

int32_t StartAuthDevice(int64_t requestId, const char* authParams, const DeviceAuthCallback* callback)

Запускает процесс взаимной проверки устройств, указывая аутентификационные данные.

int32_t ProcessAuthDevice(int64_t requestId, const char* authParams, const DeviceAuthCallback* callback)

Обрабатывает запросы аутентификации, управляет данными аутентификации.

int32_t CancelAuthRequest(int64_t requestId, const char* authParams)

Отменяет запрос аутентификации, используя идентификатор запроса и аутентификационные данные.

Отменяет запрос аутентификации.

Связанные репозитории Безопасность подсистемы

security_device_auth

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openharmony-security_device_auth.git
git@api.gitlife.ru:oschina-mirror/openharmony-security_device_auth.git
oschina-mirror
openharmony-security_device_auth
openharmony-security_device_auth
master