В OpenHarmony модуль управления взаимной доверием устройств является подмодулем безопасности, отвечающим за управление жизненным циклом установки, поддержки, использования и отзыва доверия между устройствами. Он обеспечивает взаимное аутентификационное доверие и согласование безопасных сессионных ключей между надёжными устройствами, что служит основой для надёжной связи устройств, работающих под управлением OpenHarmony.
Модуль управления взаимной доверием устройств в настоящее время предоставляет следующие возможности:
Рис. 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 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-интерфейсов, связанных с возможностью взаимной аутентификации устройств на основе удостоверяющих данныхОтменяет запрос аутентификации.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )