Record completed link admission checks and the separate invitation listener issue

This commit is contained in:
evgeny committed 2026-10-30 22:53:57 +01:00
1 parent 89829ca9b6
commit 3b9f503ef3
1 file changed
+16 -10
+16 -10
View File
@@ -4,16 +4,22 @@
## Текущие задачи
[ ] **BLE: входящий ETCP не проверяет, что peer — известный участник общей CHAT-группы** — 30.10.2026.
Проверка флажка incoming ограничивается разрешением GATT. Android `android_ble.c:validate` и desktop
`desktop_ble.cpp` возвращают1; общий `ble_etcp.c:attach` сверяет hash public key с HELLO/node_id и
имеющимся ETCP_CONN, но не локальное членство `source=0/deleted=0`. Незнакомому узлу создаётся ETCP_CONN.
Ограничение членства сейчас есть в исходящем auto fallback и BGP-допуске группы, не на входе транспорта.
Подтверждение: `test_ble_etcp` PASS, включая encrypted duplex двух instance без topo DB/списков участников.
Нужна общая политика до ETCP attach: известный член одной из своих CHAT-групп допускается, неизвестный
может использовать только отдельный канал INVITE при включённом bluetooth_invites_enabled. Нельзя просто
запретить весь HELLO неизвестным: приглашения используют тот же GATT. Проверить независимость двух настроек,
подмену ID/ключа, неизвестного peer, исключённого участника и сохранение invitation-only доставки.
[+] **BLE: допуск известного ключа на конкретном BT-линке** — 30.10.2026.
`ETCP_LINK.require_known_node` задаёт штатный BLE-драйвер; ETCP_CONN политики не имеет. ETCP проверяет
ключ после расшифровки handshake, до INIT response/UP и при подтверждении эпох. Проверка принадлежит
topo_groups_peer_key_known/topo_node_sqlite_member_key_allowed: точный X25519 и source=0/deleted=0
в одной из своих активных CHAT-групп. Незнакомый bootstrap получает только INVITE без создания ETCP.
Новый BT-линк на общем UP-соединении проверяется независимо; отказ не закрывает другие пути.
UDP/TCP-сокеты UTUN без CHAT-фильтра и наследования. Драйвер, BLE/group-membership/invitations,
настоящий UDP/AES-CCM на переиспользуемом conn, STCP adapter7/7 и Router TCP440 пакетов PASS.
Подмена ключа, заглушка/удаление/неверный ключ в БД отклонены. Ядро, desktop и APK собраны.
Общий прогон229/232: три прежних теста старта звонка остаются отдельной задачей ниже.
[ ] **BLE: разделить физический приём GATT для обычных соединений и приглашений** — 30.10.2026.
Сейчас `android_ble.c:configure` передаёт bit4 напрямую в ble_set_incoming и Android command6.
Поэтому при выключенном «Разрешить подключения ко мне» входящий GATT закрыт также для INVITE,
даже если bluetooth_invites_enabled=1. Проверить аналогичную desktop-политику, разрешать физический
канал при любом из двух разрешений, сохранив отдельные проверки ETCP и доставки INVITE.
[+] **Android Dev: включение мониторинга и применение IP/порта к ядру** — 30.10.2026.
Добавлен выключенный по умолчанию checkbox. При включении сохраняется единый endpoint IPv4/port,