Preskočiť na obsah
Späť na Nymchat

Znalostná báza Pod kapotou

Protokol a udalosti

Čo Nymchat v skutočnosti kladie na drôt pre každého, kto sa proti nemu stavia, jeho auditovanie, alebo čítanie udalostí z iného klienta Nostr.

Druhy udalostí

MilýPoužíva sa naPoznámky
0Metadáta profiluŠtandardný profil Nostr: meno, obrázok, banner, o, lud16.
5Žiadosti o vymazanieNIP-09.
7ReakcieNIP-25, s a ['k', originalKind] tak, aby bola odoslaná reakcia proti správnemu typu kanála.
13PečaťStredná vrstva správy NIP-17.
14Fáma zo súkromnej správyNepodpísané a nikdy nezverejnené samostatne.
1059Darčekové balenieNIP-59. Čo vlastne dosiahne relé pre súkromné ​​správy a skupinové chaty.
1984NahlasovanieNIP-56.
9734 / 9735Žiadosť o zap a potvrdenie o zapNIP-57.
10030Vlastné zoznamy balíkov emodžiNIP-30.
20000Správa kanála GeohashPominuteľné, označené ['g', geohash].
23333Správa pomenovaného kanálaPominuteľné, označené ['d', channel].
24420 / 24421Verejné indikátory písania a potvrdenia o prečítaníŠpecifické pre Nymchat, pre verejné kanály.
25051 / 25052Signalizácia typu peer-to-peer a stav prenosu súborovŠpecifické pre Nymchat.
30030Vlastné sady emodžiNIP-30.
30078Údaje aplikácieNIP-78. Ankety a šifrované nastavenia sa synchronizujú.
69420Súkromné ​​potvrdenia o prečítaní a stav doručeniaŠpecifické pre Nymchat, prenášané ako povesť v darčekovom balení. Samostatný druh od 14 zámerne, aby ostatní klienti NIP-17 nevykresľovali prázdne priame správy pre každý príjem.

NIP implementuje Nymchat

NIPČo to dáva Nymchat
NIP-07Prihláste sa pomocou rozšírenia prehliadača.
NIP-09Žiadosti o vymazanie.
NIP-13Doklad o práci. Odchádzajúce správy sú ťažené na minimálne 16 bitov.
NIP-17Súkromné ​​priame správy a základ pre skupinové rozhovory.
NIP-25Reakcie.
NIP-30Vlastné emotikony.
NIP-40Časové pečiatky uplynutia platnosti – miznúce správy.
NIP-44Verzované šifrovanie používané na pečate, obaly a synchronizáciu nastavení.
NIP-46Vzdialené podpisovanie — bunker://.
NIP-56Nahlasovanie.
NIP-57Blesky zapnú.
NIP-59Darčekové obaly.
NIP-78Údaje ľubovoľnej aplikácie.
NIP-98HTTP auth pre hostované koncové body.

Kryptografia

KdeČo?
Totožnosť a podpisysecp256k1 s podpismi Schnorr (BIP-340), ako špecifikuje Nostr.
Súkromné ​​správy a skupinové chatyNIP-44 v2: ECDH na secp256k1, HKDF-SHA256, ChaCha20 s HMAC-SHA256 a výplň tak, aby dĺžka šifrového textu neprezrádzala dĺžku správy.
Relácie Bluetooth meshNoise XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 pre oznamovacie podpisy, SHA-256 a HMAC pod nimi.
Identita v pokojiAES-GCM-256. Kľúč pochádza z PBKDF2-SHA256 pri 310 000 opakovaniach pre heslo alebo PIN, alebo z výstupu WebAuthn PRF cez HKDF-SHA256 pre prístupový kľúč alebo biometrický údaj.
Hovory a prenosy súborovVlastné DTLS-SRTP WebRTC, dohodnuté cez signalizáciu zabalenú do NIP-17.
NáhodnosťCelá platforma CSPRNG – kľúče, nonces a časová pečiatka darčekového balenia sa trasú.

Ochrana metadát

Dva detaily v darčekovom balení stoja za zmienku, pretože sú tým, čo oddeľuje NIP-59 od „zašifrované, ale zjavne od vás k nim“:

  • Každý obal je podpísaný a jednorazový kľúč generované len pre túto správu, takže žiadne dva obaly nezdieľajú odosielateľa.
  • Každý zábal created_at je náhodne zálohované až dvoma hodiny pomocou CSPRNG, takže časy odosielania a prijímania nie je možné zoradiť.

Skupinové rozhovory pridávajú rotujúce prchavé príjemcu klávesy nad tým — viď Ako funguje skupinové šifrovanie.

Čítanie zdroja

Krypto primitíva sú in js/nym-crypto.js a js/modules/key-vault.js vo webovej aplikácii a pod android-ios-app/lib/core/crypto/ a lib/services/mesh/noise/ v aplikácii Flutter. The úložisko je AGPL-3.0 a kompletný – neexistuje žiadny uzavretý komponent, ktorému by sme mohli dôverovať.