From 3b9f503ef3ba88acec5ac6e4fa3d89283871bdb2 Mon Sep 17 00:00:00 2001 From: evgeny Date: Fri, 30 Oct 2026 22:53:57 +0100 Subject: [PATCH] Record completed link admission checks and the separate invitation listener issue --- doc/tasks.md | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/doc/tasks.md b/doc/tasks.md index 5f999a425..02061bcb5 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -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,