Laktawan ti linaonna
Agsubli iti Nymchat

Batayan ti pannakaammo Iti sirok ti hood

Protocol ken dagiti pasamak

Ti aktual nga ikabil ti Nymchat iti alambre, para iti siasinoman a mangbangon a maibusor iti dayta, . panag-audit iti dayta, wenno panagbasa kadagiti pasamak manipud iti sabali a kliyente ti Nostr.

Dagiti kita ti pasamak

KitaNausar para itiDagiti Pakaammo
0Metadata ti profileStandard Nostr profile: nagan, ladawan, bandera, maipapan iti, . lud16.
5Dagiti kiddaw a panangikkatNIP-09 nga.
7Dagiti ReaksionNIP-25, nga addaan iti a ['k', originalKind] tag isu a ti reaksion ket maipila a maibusor iti umno a kita ti kanal.
13MarkaTi tengnga a suson ti mensahe ti NIP-17.
14Pribado a mensahe ti damagDi napirmaan, ken pulos a di naipablaak a bukodna.
1059Gift wrapNIP-59 nga. No ania ti aktual a makadanon iti relay para kadagiti pribado a mensahe ken group chat.
1984PanagreportNIP-56 nga.
9734 / 9735Zap request ken zap ti resiboNIP-57 nga.
10030Dagiti listaan ​​ti kostumbre nga emoji packNIP-30 nga.
20000Mensahe ti kanal ti GeohashEphemeral, nai-tag ['g', geohash].
23333Nainaganan a mensahe ti channelEphemeral, nai-tag ['d', channel].
24420 / 24421Public typing indicators ken dagiti resibo ti panagbasaNymchat-espesipiko, para kadagiti publiko a kanal.
25051 / 25052Peer-to-peer a panagsenyas ken kasasaad ti panagiyakar ti fileEspesipiko ti Nymchat.
30030Dagiti kostumbre nga emoji setNIP-30 nga.
30078Datos ti aplikasionNIP-78 nga. Ag-sync dagiti surbey, ken dagiti na-encrypt a setting.
69420Pribado a mabasa dagiti resibo ken kasasaad ti pannakaitedNymchat-specific, awit kas damag iti uneg ti gift wrap. Maysa a naisina a kita manipud 14 inggagara, isu a dagiti dadduma a kliyente ti NIP-17 ket dida mangited kadagiti blangko a direkta a mensahe para iti tunggal maysa a resibo.

NIPs Nymchat nga implementaren

NIPNo ania ti itedna ken ni Nymchat
NIP-07 ngaAglogin babaen ti browser extension.
NIP-09 ngaDagiti kiddaw a panangikkat.
NIP-13 ngaPammaneknek ti trabaho. Dagiti rumrummuar a mensahe ket mamina iti di kumurang a 16 a bit.
NIP-17 ngaPribado a direkta a mensahe, ken ti nakaibatayan dagiti group chat.
NIP-25Dagiti Reaksion.
NIP-30 ngaKostumbre nga emoji.
NIP-40 ngaDagiti timestamp ti panagleppas — dagiti agpukaw a mensahe.
NIP-44 ngaBersioned encryption, maus-usar para kadagiti seal, wraps ken settings sync.
NIP-46 ngaRemote nga panagpirma — . bunker://.
NIP-56 ngaPanagreport.
NIP-57 ngaKimat ti zaps.
NIP-59 ngaDagiti balkot ti regalo.
NIP-78 ngaArbitrary nga datos ti aplikasion.
NIP-98 ngaHTTP auth, para kadagiti naisangayan a puntos ti panagpatingga.

Kriptograpia

SadinnoAnia
Kinasiasino ken pirmasecp256k1 nga addaan kadagiti pirma ti Schnorr (BIP-340), a kas ti Nostr ket mangikeddeng.
Pribado a mensahe ken group chatNIP-44 v2: ECDH iti secp256k1, HKDF-SHA256, ChaCha20 nga addaan iti HMAC-SHA256, ken padding isu a ti kaatiddog ​​ti ciphertext ket saan a mangted ti kaatiddog ​​ti mensahe iti adayo.
Dagiti sesion ti Bluetooth meshArimbangaw XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 para kadagiti pirma ti anunsio, SHA-256 ken HMAC iti baba.
Kinasiasino iti panaginanaAES-GCM-256 nga. Ti tulbek ket naggapu manipud iti PBKDF2-SHA256 iti 310,000 nga iterasionda para iti password wenno PIN, wenno manipud iti WebAuthn PRF output babaen ti HKDF-SHA256 para iti passkey wenno biometric.
Tawag ken panagyakar ti fileTi bukod a DTLS-SRTP ti WebRTC, a nakinegosio babaen ti NIP-17-nabalkot a panagsenyas.
KinarandomTi plataporma CSPRNG iti intero — tulbek, nonces, ken ti gift-wrap timestamp jitter.

Panangsalaknib ti metadata

Dua a detalye iti dalan ti gift-wrap ti maikari a awagan, gapu ta isuda ti mangisina iti NIP-59 manipud iti "na-encrypt, ngem nalawag manipud kenka agingga kadakuada":

  • Tunggal wrap ket pirmaan ti a maminsan laeng a tulbek napataud para laeng iti dayta a mensahe, . isu nga awan ti dua a wraps a makibingbingay iti maysa a nangipatulod.
  • Tunggal wrap's created_at ket naiparna a na-backdated agingga iti dua oras nga agus-usar ti CSPRNG, isu a saan a mailinya dagiti oras ti panangipatulod ken panangawat.

Dagiti chat ti grupo ket mangnayon iti agturong nga ephemeral umawat tulbek iti rabaw dayta — kitaen No kasano ti panagandar ti group encryption.

Panagbasa iti gubuayan

Dagiti crypto primitives ket adda iti js/nym-crypto.js ken js/modules/key-vault.js iti web app, ken iti baba android-ios-app/lib/core/crypto/ ken lib/services/mesh/noise/ iti Flutter app. Ti pagidulinan ket AGPL-3.0 ken kompleto — awan ti naserraan a paset a mangala iti panagtalek.