Laktaw sa sulod
Balik ngadto ha Nymchat

Base sa kahibalo Ubos sa tabon

Protocol ug mga panghitabo

Unsa ang gibutang sa Nymchat sa wire, alang sa bisan kinsa nga nagtukod batok niini, pag-audit niini, o pagbasa sa mga panghitabo gikan sa laing kliyente sa Nostr.

Mga matang sa panghitabo

BuotanGigamit alang saMga nota
0Metadata sa profileStandard nga profile sa Nostr: ngalan, litrato, banner, bahin, lud16.
5Mga hangyo sa pagtangtangNIP-09.
7Mga reaksyonNIP-25, nga adunay a ['k', originalKind] tag aron ang usa ka reaksyon gisang-at batok sa husto nga tipo sa channel.
13SelyoAng tunga nga layer sa usa ka NIP-17 nga mensahe.
14Ang hungihong sa pribadong mensaheWala gipirmahan, ug wala gayud gipatik sa iyang kaugalingon.
1059putos sa regaloNIP-59. Unsa ang tinuod nga nakaabot sa usa ka relay alang sa mga pribadong mensahe ug mga chat sa grupo.
1984PagreportNIP-56.
9734 / 9735Zap request ug zap receiptNIP-57.
10030Mga listahan sa custom nga emoji packNIP-30.
20000Mensahe sa channel sa GeohashEphemeral, gi-tag ['g', geohash].
23333Ginganlan nga mensahe sa channelEphemeral, gi-tag ['d', channel].
24420 / 24421Mga timailhan sa pag-type sa publiko ug mga resibo sa pagbasaAng Nymchat-specific, alang sa mga pampublikong channel.
25051 / 25052Peer-to-peer signaling ug file-transfer statusNymchat-espesipiko.
30030Mga set sa custom nga emojiNIP-30.
30078Data sa aplikasyonNIP-78. Ang mga botohan, ug gi-encrypt nga mga setting nag-sync.
69420Pribado nga mga resibo sa pagbasa ug kahimtang sa pagpadalaAng Nymchat-specific, gidala isip usa ka hungihong sa sulod sa usa ka gift wrap. Usa ka lahi nga matang sa 14 sa tinuyo, aron ang ubang mga kliyente sa NIP-17 dili mohatag og blangko nga direktang mensahe sa matag resibo.

NIPs Nymchat nagpatuman

NIPUnsa ang gihatag niini sa Nymchat
NIP-07Pag-login gamit ang extension sa browser.
NIP-09Mga hangyo sa pagtangtang.
NIP-13Pamatuod sa trabaho. Ang mga outgoing messages gimina sa labing menos 16 ka bits.
NIP-17Pribado nga direkta nga mga mensahe, ug ang sukaranan sa mga chat sa grupo.
NIP-25Mga reaksyon.
NIP-30Pasadya nga emoji.
NIP-40Expiration timestamp — nawala nga mga mensahe.
NIP-44Ang bersyon nga encryption, gigamit alang sa mga selyo, pagputos ug pag-sync sa mga setting.
NIP-46Hilit nga pagpirma - bunker://.
NIP-56Pagreport.
NIP-57Mga kilat.
NIP-59Mga putos sa regalo.
NIP-78Arbitraryong datos sa aplikasyon.
NIP-98HTTP auth, para sa gi-host nga mga endpoint.

Kriptograpiya

asaUnsa
Identidad ug pirmasecp256k1 nga adunay mga pirma sa Schnorr (BIP-340), ingon sa gitino sa Nostr.
Pribado nga mga mensahe ug mga chat sa grupoNIP-44 v2: ECDH sa secp256k1, HKDF-SHA256, ChaCha20 nga adunay HMAC-SHA256, ug padding aron ang ciphertext nga gitas-on dili makahatag sa gitas-on sa mensahe.
Mga sesyon sa Bluetooth meshNoise XX - X25519, ChaCha20-Poly1305 (IETF), Ed25519 alang sa pagpahibalo sa mga pirma, SHA-256 ug HMAC sa ilawom.
Identidad sa pagpahulayAES-GCM-256. Ang yawe gikan sa PBKDF2-SHA256 sa 310,000 nga mga pag-ulit para sa password o PIN, o gikan sa WebAuthn PRF output pinaagi sa HKDF-SHA256 para sa passkey o biometric.
Mga tawag ug pagbalhin sa fileAng kaugalingong DTLS-SRTP sa WebRTC, nakigsabot sa NIP-17-wrapped signalling.
RandomAng plataporma CSPRNG sa tibuok — yawe, nonces, ug ang gift-wrap timestamp jitter.

Proteksyon sa metadata

Duha ka mga detalye sa dalan nga giputos sa regalo angay nga tawagan, tungod kay kini ang lahi nga NIP-59 gikan sa "naka-encrypt, apan klaro nga gikan kanimo ngadto kanila":

  • Ang matag wrap gipirmahan sa a usa ka higayon nga yawe gihimo alang sa kana nga mensahe lamang, mao nga walay duha ka wraps nga magpaambit ug sender.
  • Ang matag putos created_at mao ang random nga gi-backdate sa hangtod sa duha oras gamit ang CSPRNG, mao nga ang mga oras sa pagpadala ug pagdawat dili mahimong linya.

Ang mga chat sa grupo nagdugang sa nagtuyok nga ephemeral tigdawat yawe sa ibabaw niana - tan-awa Giunsa ang pag-encrypt sa grupo molihok.

Pagbasa sa tinubdan

Ang crypto primitives anaa sa js/nym-crypto.js ug js/modules/key-vault.js sa web app, ug sa ubos android-ios-app/lib/core/crypto/ ug lib/services/mesh/noise/ sa Flutter app. Ang tipiganan mao ang AGPL-3.0 ug kompleto — walay sirado nga sangkap nga makuha sa pagsalig.