Ga naar de inhoud
Terug naar Nymchat

Kennisbank Buiten internet

Bluetooth-gaas

Berichten zonder internet, zonder mobiele service en zonder enige infrastructuur soort. Apparaten in de buurt maken verbinding via Bluetooth LE en sturen elkaar door, zodat een bericht bereikt wordt mensen buiten het radiobereik door door de apparaten ertussen te springen.

Wat het gaas is

De mesh is een tweede transport dat naast de relais loopt, en geen aparte app of aparte identiteit. Openbare kanalen en privéberichten werken er allebei overheen, en de app beslist welke route om zelf te volgen: online verzendingen gaan via internet en vallen terug op Bluetooth wanneer het is niet beschikbaar, terwijl een peer die alleen via de radio bereikbaar is, hoe dan ook op de mesh blijft.

Het is een store-and-forward overstromingsnetwerk. Elk apparaat geeft pakketten door aan de apparaten die het kan horen, met een hoplimiet van 7, ontdubbelend wat het al heeft gezien, dus a pakket circuleert niet eeuwig. Twee mensen die elkaar nog niet direct kunnen horen berichten uitwisselen zolang er een keten van apparaten tussen zit.

Daaronder loopt elk paar peers een Lawaai XX handdruk en praat erover eigen gecodeerde sessie. Pakketten zijn opgevuld en, als ze groot zijn, gefragmenteerd, dus de grootte van wat je verzendt zegt zo min mogelijk over wat het is.

Het inschakelen

Open het Bluetooth-meshpaneel en druk op Schakel in. Wat er daarna gebeurt, hangt ervan af waar je het op draait.

Het Nymchat Bluetooth mesh-paneel, met mesh-status, gekoppelde apparaten, peers op de mesh en een radiologboek.
Het mesh-paneel: status, gekoppelde apparaten, gehoorde peers en een live radiologboek.

Op Android en iOS

De app voert beide Bluetooth-rollen tegelijk uit: adverteert zichzelf en scant naar anderen - zodat twee apparaten in de buurt verbinding kunnen maken, ongeacht welke de andere heeft opgemerkt. Verleen de Bluetooth-toestemming wanneer daarom wordt gevraagd en het vindt zelf peers.

In een browser

De webapp sluit zich aan bij dezelfde mesh via Web Bluetooth, in Chromium-browsers: Chrome, Edge, Opera en dapper. In Safari en Firefox, die geen Web Bluetooth implementeren, wordt de mesh bedieningselementen worden volledig verborgen in plaats van aangeboden en falen vervolgens.

Een browser voegt zich bij elkaar als een blad

Een browser kan alleen Bluetooth gebruiken centraal rol: het kan zichzelf dus niet adverteren andere apparaten kunnen het niet ontdekken. Het maakt verbinding naar buiten met telefoons in de buurt en stuurt door zij. U kiest elk apparaat één keer via de apparaatkiezer van de browser, waarna het wordt gekozen maakt vanzelf opnieuw verbinding. Twee browsers kunnen niet rechtstreeks met elkaar linken.

Een mesh delen met Bitchat

Nymchat implementeert Bitchat's mesh-protocol op de draad, byte voor byte – dezelfde GATT-service en -karakteristiek UUID's, dezelfde pakketheader, dezelfde berichttypen, dezelfde standaard hoplimiet. De twee apps worden nergens doorheen overbrugd; ze zitten gewoon op dezelfde mesh en op een Nymchat-apparaat en een Bitchat-apparaat ontdekken elkaar en wisselen direct gecodeerde berichten uit.

Aankondigingspakketten kunnen ook een nostrLink: een ondertekende link van een mesh-peer naar hun echte Nostr-identiteit. Wanneer er een aanwezig is en verifieert, een peer die je via Bluetooth hebt ontmoet verschijnt als dezelfde persoon die u kent van de relais.

Ghost-modus

Een mesh-apparaat is een radio die zichzelf herhaaldelijk aankondigt, en dat is precies wat het gemakkelijk maakt om te volgen op verschillende plaatsen en sessies. Ghost Mode is het opt-in-antwoord.

Terwijl het aan is, elk ID die een aankondiging draagt, wordt vervangen door een wegwerpnummer waarde, en ze roteren allemaal samen:

  • de statische sleutel van Noise – waarvan de peer-ID en vingerafdruk zijn afgeleid;
  • de handtekeningsleutel Ed25519;
  • de geadverteerde Bluetooth-naam;
  • de bijnaam;
  • de aangekondigde nostrLink, dat echt blijft maar kortstondig wordt, zodat leeftijdsgenoten dat nog steeds kunnen doen u bereiken zonder dat er iets met uw npub wordt opgelost.

Rotatie vindt plaats in een bewogen tijdperk van ongeveer 15 minuten. Gepensioneerde identiteiten blijven decrypteerbaar voor maximaal 8 tijdperken dus er komt nog steeds een laat antwoord, en a het gesprek begon terwijl ghosted voorgoed aan het gaas was vastgemaakt in plaats van stil migreren naar de relais onder uw echte sleutel.

Het delen van avatars en banners wordt geweigerd terwijl de Ghost-modus actief is: een herhaalde afbeelding verbindt er twee tijdperken sneller samen dan welke sleutel dan ook.

Ghost-modus is geen anonimiteit

Het maakt een apparaat veel moeilijker te volgen. Het maakt het niet onvindbaar. De Bluetooth hardwareadres wordt beheerd door het besturingssysteem, niet door de app, en de timing en sociale patronen blijven correleerbaar: dezelfde persoon, op dezelfde plaats, waarmee hij praat dezelfde mensen, op dezelfde tijden.

Grenzen

  • Bereik is Bluetooth-bereik. Tientallen meters in de open lucht, minder door muren. Het gaas vergroot het bereik door te springen, niet door luider te schreeuwen.
  • De bandbreedte is klein. Frames zijn beperkt tot 512 bytes en grotere berichten zijn gefragmenteerd. Het is gebouwd voor tekst, niet voor media.
  • Levering is best effort. Een store-and-forward flood met een limiet van zeven hops doet geen beloftes. Als er niemand binnen bereik is en niemand binnen bereik komt, wacht het bericht.
  • Browsers zijn bladeren, zoals hierboven, en afhankelijk zijn van een telefoon in de buurt.
  • De radio kost batterij, omdat continu wordt gescand en geadverteerd is wat ervoor zorgt dat het gaas werkt.