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

OSCHINA-MIRROR/openharmony-security_device_auth

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

аутентификация устройств

Введение

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

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

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

Рисунок 1 Архитектура модуля аутентификации устройств

Архитектура модуля аутентификации устройств

В архитектуре:

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

Структура директорий ```

/base/security/device_auth ├── frameworks # Код фреймворка аутентификации устройств ├── hals # HAL-код для библиотеки инструментов │ ├── inc # Заголовочные файлы библиотеки инструментов │ └── src # Исходные файлы библиотеки инструментов ├── interfaces # API, выставленные в открытый доступ └── services # Услуги аутентификации устройств ├── common # Общие модули ├── group_auth # Аутентификация групп устройств ├── group_manager # Управление группами устройств ├── module # Модуль аутентификатора (включая независимый от аккаунта P2P устройства аутентификатора) └── session # Модуль планирования и управления сессиями


## Использование<a name="section1312121216216"></a>

### Доступные API<a name="section1551164914237"></a>

Подмодуль управления группами устройств абстрагирует отношения доверия, установленные различными службами между устройствами, в группы доверия и предоставляет унифицированные API для создания, удаления и запроса групп. Подмодуль аутентификации групп устройств обеспечивает проверку подлинности доверенных устройств и обмен ключами сессии конечноконечной связи на основе групп доверия.**Таблица 1** API в DeviceGroupManager<a name="table1731550155318"></a>

<table>
<thead align="left">
<tr id="row4419501537">
<th class="cellrowborder" valign="top" width="57.38999999999999%" id="mcps1.2.3.1.1">
<p id="p54150165315"><a name="p54150165315"></a><a name="p54150165315"></a>API</p>
</th>
<th class="cellrowborder" valign="top" width="42.61%" id="mcps1.2.3.1.2">
<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>Получает экземпляр <strong id="b4999346135811">DeviceGroupManager</strong>.</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(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 Удаление группы доверенных устройств.</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 Добавление члена в указанную группу(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 Удаление члена из указанной группы(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 Обработка данных(int64_t requestId, const uint8_t *data, uint32_t dataLen)</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
<tr id="row126575774517">
 <td class="cellrowborder" valign="top" width="57. 38999999999999%">
 <p id="p126575774517"><a name="p126575774517"></a><a name="p126575774517"></a>int32_t GetGroupInfo(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>
</table>

Извините за возможную путаницу с порядком методов. Вот правильный порядок:

Извините за возможную путаницу с порядком методов. Вот правильный порядок:
``````markdown
<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 AddMemberToGroup(int64_t requestId, const char *appId, const char *addParams)</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 DeleteMemberFromGroup(int64_t requestId, const char *appId, const char *deleteParams);</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 ProcessData(int64_t requestId, const uint8_t *data, uint32_t dataLen)</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 GetGroupInfo(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="row126575774517">
<td class="cellrowborder" valign="top" width="57. 38999999999999%">
<p id="p126575774517"><a name="p126575774517"></a><a name="p126575774517"></a>int32_t DeleteGroupOfTrustedDevices(int64_t requestId, const char *appId, const char *deleteParams)</p>
</td>
<td class="cellrowborder" valign="top" width="42. 61%">
<p id="p126575774517"><a name="p126575774517"></a><a name="p126575774517"></a>Удаляет группу доверенных устройств.</p>
</td>
</tr>
</tbody>
</table>
```<p id="p126575774517"><a name="p126575774517"></a><a name="p126575774517"></a>Удаляет группу доверенных устройств.</p>
</td>
</tr>
</tbody>
</table>
```**Таблица 2** API в GroupAuthManager```

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

<p id="p126575774517"><a name="p126575774517"></a><a name="p126575774517"></a>Удаляет группу доверенных устройств.</p>
</td>
</tr>
</tbody>
</table>
```**Таблица 2** API в GroupAuthManager```<a name="table12330133114308"></a>
<table><thead align="left"><tr id="row15330631193013"><th class="cellrowborder" valign="top" width="57.38999999999999%" id="mcps1.2.3.1.1"><p id="p73319319302"><a name="p73319319302"></a><a name="p73319319302"></a>API</p>
</th>
<th class="cellrowborder" valign="top" width="42.61%" id="mcps1.2.3.1.2"><p id="p133312317305"><a name="p133312317305"></a><a name="p133312317305"></a>Описание</p>
</th>
</tr>
</thead>
<tbody><tr id="row15331183193010"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p19743328133620"><a name="p19743328133620"></a><a name="p19743328133620"></a>const GroupAuthManager *GetGaInstance()</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p16742028153611"><a name="p16742028153611"></a><a name="p16742028153611"></a>Получает экземпляр <strong id="b13399173415119"><a name="b13399173415119"></a><a name="b13399173415119"></a>GroupAuthManager</strong>.</p>
</td>
</tr>
<tr id="row7331133163017"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p118111117133514"><a name="p118111117133514"></a><a name="p118111117133514"></a>int32_t AuthDevice(int64_t authReqId, const char *authParams, const DeviceAuthCallback *gaCallback)</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p151481335193817"><a name="p151481335193817"></a><a name="p151481335193817"></a>Аутентифицирует устройство-партнера.</p>
</td>
</tr>
<tr id="row633283153012"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p12534111115352"><a name="p12534111115352"></a><a name="p12534111115352"></a>int32_t ProcessData(int64_t authReqId, const uint8_t *data, uint32_t data_len,</p>
<p id="p16534181113358"><a name="p16534181113358"></a><a name="p16534181113358"></a>const DeviceAuthCallback *gaCallback)</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1633173173012"><a name="p1633173173012"></a><a name="p1633173173012"></a>Обрабатывает данные аутентификации.</p>
</td>
</tr>
</tbody>
</table>## Вовлечённые репозитории<a name="section1371113476307"></a>**Подсистема безопасности**

[security\_device\_auth](https://gitee.com/openharmony/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