Baza znanja Pod pokrovom
Protokol in dogodki
Kaj Nymchat dejansko postavlja na žico, za vsakogar, ki gradi proti njej, njegovo revizijo ali branje dogodkov iz drugega odjemalca Nostr.
Ta stran je zaradi priročnosti strojno prevedena. Velja angleški izvirnik.
Vrste dogodkov
| prijazna | Uporablja se za | Opombe |
|---|---|---|
0 | Metapodatki profila | Standardni Nostr profil: ime, slika, pasica, o, lud16. |
5 | Zahteve za izbris | NIP-09. |
7 | Reakcije | NIP-25, z a ['k', originalKind] oznako, tako da je reakcija vložena proti pravi vrsti kanala. |
13 | Pečat | Srednji sloj sporočila NIP-17. |
14 | Govorice o zasebnem sporočilu | Nepodpisano in nikoli objavljeno samostojno. |
1059 | Darilna embalaža | NIP-59. Kaj dejansko doseže rele za zasebna sporočila in skupinske klepete. |
1984 | Poročanje | NIP-56. |
9734 / 9735 | Zap zahteva in zap potrdilo | NIP-57. |
10030 | Seznami paketov emodžijev po meri | NIP-30. |
20000 | Sporočilo kanala Geohash | Efemerno, označeno ['g', geohash]. |
23333 | Sporočilo imenovanega kanala | Efemerno, označeno ['d', channel]. |
24420 / 24421 | Indikatorji javnega tipkanja in potrdila o branju | Posebno za Nymchat, za javne kanale. |
25051 / 25052 | Signalizacija enakovrednih in stanje prenosa datotek | Specifično za Nymchat. |
30030 | Nabori emodžijev po meri | NIP-30. |
30078 | Podatki aplikacije | NIP-78. Sinhronizacija anket in šifriranih nastavitev. |
69420 | Zasebna potrdila o branju in status dostave | Specifično za Nymchat, kot govorica v darilnem ovoju. Ločena vrsta od 14 namerno, tako da drugi odjemalci NIP-17 ne upodabljajo praznih neposrednih sporočil za vsako potrdilo. |
NIP izvaja Nymchat
| NIP | Kaj daje Nymchat |
|---|---|
| NIP-07 | Prijavite se z razširitvijo brskalnika. |
| NIP-09 | Zahteve za izbris. |
| NIP-13 | Dokazilo o delu. Odhodna sporočila so rudarjena na najmanj 16 bitov. |
| NIP-17 | Zasebna neposredna sporočila in osnova za skupinske klepete. |
| NIP-25 | Reakcije. |
| NIP-30 | Emoji po meri. |
| NIP-40 | Časovni žigi poteka — izginjajoča sporočila. |
| NIP-44 | Šifriranje z različicami, ki se uporablja za pečate, ovitke in sinhronizacijo nastavitev. |
| NIP-46 | Podpisovanje na daljavo — bunker://. |
| NIP-56 | Poročanje. |
| NIP-57 | Strele. |
| NIP-59 | Darilni ovoji. |
| NIP-78 | Poljubni podatki aplikacije. |
| NIP-98 | Preverjanje HTTP za gostujoče končne točke. |
Kriptografija
| kje | Kaj |
|---|---|
| Identiteta in podpisi | secp256k1 s Schnorrjevimi podpisi (BIP-340), kot določa Nostr. |
| Zasebna sporočila in skupinski klepeti | NIP-44 v2: ECDH na secp256k1, HKDF-SHA256, ChaCha20 s HMAC-SHA256 in oblazinjenje, tako da dolžina šifriranega besedila ne pove dolžine sporočila. |
| Bluetooth mesh seje | Noise XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 za podpise objav, SHA-256 in HMAC spodaj. |
| Identiteta v mirovanju | AES-GCM-256. Ključ prihaja iz PBKDF2-SHA256 pri 310.000 ponovitvah za geslo ali PIN ali iz izhoda WebAuthn PRF prek HKDF-SHA256 za geslo ali biometrijo. |
| Klici in prenosi datotek | WebRTC lasten DTLS-SRTP, dogovorjen prek signalizacije, ovite v NIP-17. |
| Naključnost | Platforma CSPRNG v celoti — ključi, nonces in tresenje časovnega žiga za zavijanje daril. |
Zaščita metapodatkov
Dve podrobnosti na poti darilne embalaže je vredno poudariti, ker sta tisto, kar ločuje NIP-59 od "šifrirano, a očitno od tebe do njih":
- Vsak ovoj je podpisan s strani a enkratni ključ ustvarjen samo za to sporočilo, tako da si nobena zavoja ne delita pošiljatelja.
- Vsak zavitek
created_atje naključno za nazaj za največ dva ure z uporabo CSPRNG, zato časov pošiljanja in prejemanja ni mogoče uskladiti.
Skupinski klepeti dodajo vrteče se kratkotrajno prejemnik ključi na vrhu tega - glej Kako deluje skupinsko šifriranje.
Kripto primitivci so notri js/nym-crypto.js in
js/modules/key-vault.js v spletni aplikaciji in pod
android-ios-app/lib/core/crypto/ in
lib/services/mesh/noise/ v aplikaciji Flutter. The
repozitorij
je AGPL-3.0 in popoln — ni zaprte komponente, ki bi ji lahko zaupali.