Konesans baz Anba kapo a
Pwotokòl ak evènman yo
Ki sa Nymchat aktyèlman mete sou fil la, pou nenpòt moun ki bati kont li, odit li, oswa lekti evènman ki soti nan yon lòt kliyan Nostr.
Paj sa a se machin-tradui pou konvenyans. Orijinal angle a se vèsyon ki aplike a.
Kalite evènman yo
| Janti | Itilize pou | Nòt |
|---|---|---|
0 | Metadata pwofil | Standard Nostr pwofil: non, foto, banyè, sou, lud16. |
5 | Demann pou efase | NIP-09. |
7 | Reyaksyon | NIP-25, ak yon ['k', originalKind] tag pou yon reyaksyon depoze kont kalite kanal la dwat. |
13 | Bouche | Kouch mitan yon mesaj NIP-17. |
14 | Rimè mesaj prive | Non-signed, ak pa janm pibliye sou tèt li. Yon repons fil pote yon ['nymthread', rootId] tag nan fenèt la enkripte, referans id mesaj pataje nan wout la. |
1059 | Anbalaj kado | NIP-59. Ki sa ki aktyèlman rive nan yon relè pou mesaj prive ak gwoup chat. |
1984 | Rapòte | NIP-56. |
9734 / 9735 | Zap demann ak resi zap | NIP-57. |
10030 | Lis pake emoji koutim | NIP-30. |
20000 | Mesaj chanèl Geohash | Efemèr, tagged ['g', geohash]Yon repons thread ajoute yon NIP-10 marqueur ['e', rootId, '', 'root'] Tag nan. |
23333 | Mesaj chanèl non | Efemèr, tagged ['d', channel]Yon repons thread ajoute yon NIP-10 marqueur ['e', rootId, '', 'root'] Tag nan. |
24420 / 24421 | Endikatè sezisman piblik ak resi lekti | Nymchat-espesifik, pou chanèl piblik yo. |
25051 / 25052 | Siyal kanmarad-a-kanmarad ak estati transfè dosye | Nymchat-espesifik. |
30030 | Ansanm emoji koutim | NIP-30. |
30078 | Done aplikasyon yo | NIP-78. Biwo biwo vòt yo, senkronize anviwònman chiffres, ak anons kle apre pwopòsyon (tagged nym-pq, ki gen yon kle piblik ML-KEM-768 ak yon ekspirasyon NIP-40). |
69420 | Li resi prive ak estati livrezon | Nymchat-espesifik, te pote kòm yon rimè andedan yon vlope kado. Yon kalite separe de 14 fè espre, kidonk lòt kliyan NIP-17 pa bay mesaj dirèk vid pou chak resi. |
NIPs Nymchat aplike
| NIP | Ki sa li bay Nymchat |
|---|---|
| NIP-07 | Konekte avèk yon ekstansyon navigatè. |
| NIP-09 | Demann pou efase. |
| NIP-10 nan | Marked repons tags - ki jan yon chanèl thread repons pwen sou mesaj wout li yo. |
| NIP-13 | Prèv travay. Mesaj sortan yo min nan omwen 16 bits. |
| NIP-17 | Mesaj dirèk prive, ak baz pou gwoup chat. |
| NIP-25 | Reyaksyon. |
| NIP-30 | Emoji koutim. |
| NIP-40 | Timestamps ekspirasyon - mesaj k ap disparèt. |
| NIP-44 | Vèsyon chifreman, itilize pou sele, vlope ak anviwònman senkronize. |
| NIP-46 | Siyen adistans - bunker://. |
| NIP-56 | Rapòte. |
| NIP-57 | Zap zèklè. |
| NIP-59 | Anbalaj kado. |
| NIP-78 | Done aplikasyon abitrè. |
| NIP-98 | HTTP otorizasyon, pou pwen final yo òganize. |
Kriptografi
| Ki kote | Ki sa |
|---|---|
| Idantite ak siyati | secp256k1 ak siyati Schnorr (BIP-340), jan Nostr espesifye. |
| Mesaj prive ak gwoup chat | NIP-44 v2: ECDH sou secp256k1, HKDF-SHA256, ChaCha20 ak HMAC-SHA256, ak padding pou longè tèks chifreman pa bay longè mesaj la. |
| Mesaj prive ak gwoup chat, ant itilizatè Nymchat yo | menm NIP-44 v2 pèfòmans, san yo pa modifye, selebre yon dezyèm fwa nan ChaCha20-Poly1305 kle soti nan yon ML-KEM-768 (FIPS 203) enkapsulasyon nan HKDF-SHA256. tèks la enkapsulasyon enkapsulasyon an ak tou de kle idantite yo konekte kòm done ki gen rapò, ak rezilta a pote yon pq2. Prefix pou yon lektè chwazi wout la pa tcheke payload la. Tou de kouch yo dwe ranpli pou retounen yon mesaj. Al gade nan chifreman ki reziste pwopòsyon. |
| Sesyon may Bluetooth | Bri XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 pou anonse siyati, SHA-256 ak HMAC anba. |
| Idantite nan repo | AES-GCM-256. Kle a soti nan PBKDF2-SHA256 nan 310,000 iterasyon pou yon modpas oswa PIN, oswa soti nan yon pwodiksyon WebAuthn PRF atravè HKDF-SHA256 pou yon passkey oswa byometrik. |
| Apèl ak transfè dosye | DTLS-SRTP pwòp WebRTC, negosye sou siyal NIP-17 ki anvlope. |
| Aleatwa | Platfòm nan CSPRNG nan tout - kle, nonces, ak kado-vlope timestamp jitter la. |
Pwoteksyon metadata
De detay nan chemen an kado-vlope yo vo rele, paske yo se sa ki separe NIP-59 soti nan "chiffre, men evidamman soti nan ou a yo":
- Chak vlope siyen pa yon kle yon sèl fwa pwodwi pou mesaj sa a pou kont li, kidonk pa gen de vlope pataje yon moun k ap voye.
- Chak vlope
created_atse owaza backdated pa jiska de èdtan lè l sèvi avèk CSPRNG a, kidonk voye ak resevwa fwa yo pa ka aliyen.
Gwoup chat ajoute wotasyon efemèr moun k ap resevwa kle sou tèt sa - wè Kouman gwoup cryptage travay.
Primitif kript yo nan js/nym-crypto.js epi
js/modules/key-vault.js nan aplikasyon entènèt la, ak anba
android-ios-app/lib/core/crypto/ epi
lib/services/mesh/noise/ nan aplikasyon Flutter la. La
depo
se AGPL-3.0 epi li konplè — pa gen okenn eleman fèmen pou pran konfyans.