Liikuge sisu juurde
Tagasi Nymchati

Teadmistebaas Kapoti all

Protokoll ja sündmused

Mida Nymchat tegelikult paneb, et igaüks, kes selle vastu ehitab, selle auditeerimine või mõne teise Nostri kliendi sündmuste lugemine.

Ürituste liigid

LahkeKasutatudMärkmed
0Profiili metaandmedTavaline Nostri profiil: nimi, pilt, bänner, umbes, lud16.
5KustutamistaotlusedNIP-09.
7ReaktsioonidNIP-25, koos a ['k', originalKind] sildi, nii et reaktsioon esitatakse õige kanalitüübi vastu.
13TihendNIP-17 sõnumi keskmine kiht.
14Privaatsõnumite kuulujuttAllkirjastamata ja mitte kunagi avaldatud iseenesest. ['nymthread', rootId] krüpteeritud kuulujuttude sees, viidates root'i jagatud sõnumi ID-le.
1059Kingituse pakkimineNIP-59. Mis tegelikult jõuab privaatsõnumite ja grupivestluste edastamiseni.
1984AruandlusNIP-56.
9734 / 9735Zap taotlus ja zap kviitungNIP-57.
10030Kohandatud emotikonide pakettide loendidNIP-30.
20000Geohashi kanali sõnumLühiajaline, märgistatud ['g', geohash]Vastus lisab märgistatud NIP-10 ['e', rootId, '', 'root'] Päevaleht
23333Nimega kanali sõnumLühiajaline, märgistatud ['d', channel]Vastus lisab märgistatud NIP-10 ['e', rootId, '', 'root'] Päevaleht
24420 / 24421Avalikud tippimise indikaatorid ja lugemiskviitungidNymchati spetsiifiline, avalike kanalite jaoks.
25051 / 25052Peer-to-peer signaalimine ja failiedastuse olekNymchati spetsiifiline.
30030Kohandatud emotikonide komplektidNIP-30.
30078Rakenduse andmedNIP-78. Küsitlused, krüptitud seadete sünkroonimine ja kvantvõtmejärgsed teadaanded (sildiga nym-pq, mis kannab ML-KEM-768 avalikku võtit, mille aegumistähtaeg on NIP-40).
69420Privaatsed lugemiskviitungid ja kohaletoimetamise olekNymchatile omane, kuulujutuna kaasas kinkepakendis. Eraldi liik alates 14 tahtlikult, nii et teised NIP-17 kliendid ei renderda iga kviitungi kohta tühje otsesõnumeid.

NIP-id Nymchat rakendab

NIPMida see Nymchatile annab
NIP-07Logige sisse brauserilaiendiga.
NIP-09Kustutamistaotlused.
Vt 10Märgitud vastusmärgid – kuidas kanali niit vastab oma root-sõnumile.
NIP-13Töötõend. Väljuvad sõnumid kaevandatakse vähemalt 16-bitisteks.
NIP-17Privaatsed otsesõnumid ja grupivestluste alus.
NIP-25Reaktsioonid.
NIP-30Kohandatud emotikon.
NIP-40Aegumise ajatemplid – kaduvad sõnumid.
NIP-44Versiooniga krüptimine, mida kasutatakse tihendite, mähiste ja seadete sünkroonimiseks.
NIP-46Kaugallkirjastamine - bunker://.
NIP-56Aruandlus.
NIP-57Välk lööb.
NIP-59Kingipaberid.
NIP-78Suvalised rakenduse andmed.
NIP-98HTTP autentimine hostitud lõpp-punktide jaoks.

Krüptograafia

KusMida
Identiteet ja allkirjadsecp256k1 Schnorri allkirjadega (BIP-340), nagu Nostri täpsustab.
Privaatsõnumid ja grupivestlusedNIP-44 v2: ECDH on secp256k1, HKDF-SHA256, ChaCha20 koos HMAC-SHA256 ja polsterdus, et šifreeritud teksti pikkus ei jätaks sõnumi pikkust.
Privaatsõnumid ja grupivestlused Nymchati kasutajate vahelSama NIP-44 v2 kasutuskoormus, muutmata, suletud teist korda ChaCha20-Poly1305 sees, mis on võltsitud ML-KEM-768 (FIPS 203) kapseldamisest HKDF-SHA256 kaudu. pq2. prefix nii, et lugeja valib tee kasuliku koormuse kontrollimisel. Mõlemad kihid tuleb sõnumi taastamiseks katkestada. kvantkindel krüptimine.
Bluetoothi ​​võrguseansidNoise XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 allkirjade teatamiseks, SHA-256 ja HMAC all.
Identiteet puhkeolekusAES-GCM-256. Võti pärineb PBKDF2-SHA256-st 310 000 iteratsiooniga parooli või PIN-koodi jaoks või WebAuthni PRF-väljundist HKDF-SHA256 kaudu pääsukoodi või biomeetria jaoks.
Kõned ja failiedastusedWebRTC enda DTLS-SRTP, läbirääkimistel NIP-17 mähitud signaalimise kaudu.
JuhuslikkusPlatvorm CSPRNG läbivalt – võtmed, näpunäited ja kingituste pakkimise ajatempel värisevad.

Metaandmete kaitse

Kaks detaili kingituste pakkimise teel väärivad esiletõstmist, sest need eraldavad NIP-59 "krüpteeritud, kuid ilmselgelt teilt neile":

  • Igale ümbrisele on alla kirjutanud a ühekordne võti loodud ainult selle sõnumi jaoks, nii et kahel wrapil pole saatjat jagatud.
  • Iga mähis created_at on juhuslikult kuni kahe võrra tagasi tundi kasutades CSPRNG-d, seega ei saa saatmis- ja vastuvõtuaegu järjestada.

Grupivestlused lisavad pöörlevat lühiajalisust saaja võtmed peale selle — vt Kuidas grupi krüptimine töötab.

Allika lugemine

Krüptoprimitiivid on sees js/nym-crypto.js ja js/modules/key-vault.js veebirakenduses ja all android-ios-app/lib/core/crypto/ ja lib/services/mesh/noise/ rakenduses Flutter. The hoidla on AGPL-3.0 ja täielik – pole suletud komponenti, mida usaldada.