Има приложение за съобщения с над 25 000 звезди в GitHub, което работи без интернет. Вашият телефон комуникира директно с други телефони чрез Bluetooth и съобщението ви прескача от един телефон на друг, докато достигне до някого в тълпата. 🧐
То се нарича Bitchat и на 23 юли правителство се опита да го изтрие. Координационният център за киберпрестъпления на Индия нареди на GitHub да го премахне: приложението, изходния код и компилациите за Android, и то в рамките на три часа. Протести бяха изпълнили улиците в Делхи, властите бяха спрели мобилния интернет, за да забавят тълпата, а хората преминаха към Bluetooth приложения, за да продължат да се организират. Bitchat беше едно от тях. Оплакването на правителството беше, че то не оставя никакви следи. Не се регистрирате, не предоставяте телефонен номер и нищо от това, което изпращате, не преминава през сървър, който би могъл да запази запис. Джак Дорси стартира проекта и каза, че правителството не харесва технологията и е искало тя да изчезне.
Това не проработи. Кодът вече беше копиран в повече от 3000 разклонения (forks), до които заповедта не можеше да достигне, хранилищата останаха онлайн, а премахването на хранилище не изтрива нищо от телефоните, които вече изпълняват приложението. Мрежата (mesh) продължава да работи, без да има сървър, който да бъде изключен.
Индия не беше първото правителство, което се опитва. През април Китай накара Apple да премахне Bitchat от своя App Store и бета версията на TestFlight. Приложението все пак продължаваше да се появява по време на спирания на интернета и протести в Иран, Уганда, Непал, Мадагаскар и Индонезия, навсякъде, където интернетът беше прекъснат и хората се нуждаеха от друг начин да се свържат помежду си. Не пиша това, за да взема страна или да посоча конкретна държава. Това не е моята работа. Моделът е следният: спрете интернета и хората посягат към нещо, което няма нужда от него.
Повечето приложения работят в интернет, защото там се намират сървърите. Bitchat не прави това. Вместо това то използва Bluetooth радиото във вашия телефон.
Вашият телефон намира други телефони наблизо, които изпълняват Bitchat, и комуникира с тях директно, без сървър между тях. Bluetooth има малък обхват, приблизително десет метра. И така, едно съобщение преминава през площада по следния начин: вашият телефон го предава на телефон близо до вас, този телефон го предава на следващия и то продължава да се движи от устройство на устройство в тълпата. Брояч в съобщението намалява с единица при всяко предаване и след седем прескачания спира, за да не се върти вечно. Това предаване от телефон на телефон се нарича мрежа (mesh).
Когато наблизо има интернет, Bitchat може също да комуникира по целия свят чрез отделна мрежа, наречена Nostr. Но трикът, който плаши правителствата по време на спиране на мрежата, не изисква нищо друго освен телефоните.
Дори не ви е необходим телефон за това. Официалното приложение работи на iPhone, Android и macOS, а други разработчици са създали версии, които се изпълняват в терминал на Windows и Linux, използвайки същия протокол през Bluetooth на лаптоп. Един от изследователите, които по-късно пробиха Bitchat, написа своя собствена версия за Linux и я превърна в ретранслатор: машина, която остава включена и разширява обхвата без централна услуга зад нея. Други отиват по-далеч и свързват Bitchat с LoRa mesh мрежа – радиомрежа с голям обхват, която работи на евтини малки платки, и обхватът скача от метри на километри.
Bluetooth е радиовръзка, така че намиращ се наблизо подслушвател с подходящо оборудване може да разбере, че в ефира има трафик, а всеки телефон в мрежата препраща съобщения за други хора. Това звучи напълно отворено. Самото съобщение обаче не е.
Bitchat шифрира всяко лично съобщение, така че само човекът, на когото сте го изпратили, да може да го прочете. То използва Noise Protocol Framework – набор от градивни елементи, на които доверен софтуер като WhatsApp и WireGuard вече разчита. Телефоните, предаващи вашето съобщение, се докосват само до шифриран блок, който не могат да отворят. Шифърът е ChaCha20-Poly1305, а ключовете се променят за всяка сесия, така че компрометирането на един чат не отваря останалите.
Шифрирането издържа. Слабото място беше другаде: да знаеш кой е от другата страна.
Bitchat стартира през юли 2025 г. Изследовател на име Алекс Радочеа прегледа кода в рамките на един ден и откри пролуката. Bitchat ви позволява да маркирате доверен контакт като любим. Той получава звезда и след това вашият телефон третира всичко от тази идентичност като идващо от вашия приятел. Уловката: ключът, който трябваше да докаже, че това са те, не доказваше нищо. Вашият телефон просто го носеше и не го проверяваше срещу нищо.
Така че атакуващ, намиращ се наблизо, може да влезе директно. Ето как работи:
- идентифициращият ключ на вашия контакт е публичен, така че атакуващият го копира
- атакуващият ви показва този ключ със свои собствени временни ключове отдолу за самия чат
- вашият телефон не може да разбере, че тези ключове не са на вашия контакт, затова ги приема
- звездата се появява до името и вие му се доверявате
- това, което сте предназначили за вашия приятел, отива директно при атакуващия
Мислите, че говорите с приятеля си. Всъщност говорите с атакуващия. Това е атака тип „човек по средата“.