გადადით შინაარსზე
დაბრუნება Nymchat-ზე

ცოდნის ბაზა კაპოტის ქვეშ

პროტოკოლი და მოვლენები

რასაც Nymchat რეალურად აყენებს მავთულს, ვინც მას ეწინააღმდეგება, მისი აუდიტი, ან ნოსტრის სხვა კლიენტის მოვლენების წაკითხვა.

ღონისძიების სახეები

კეთილიგამოიყენებაშენიშვნები
0პროფილის მეტამონაცემებისტანდარტული Nostr პროფილი: სახელი, სურათი, ბანერი, შესახებ, lud16.
5წაშლის მოთხოვნებიNIP-09.
7რეაქციებიNIP-25, ა ['k', originalKind] ტეგი, რათა რეაქცია შეიტანოს სწორი არხის ტიპის წინააღმდეგ.
13ბეჭედიNIP-17 შეტყობინების შუა ფენა.
14პირადი შეტყობინების ჭორიხელმოუწერელია და არასოდეს გამოქვეყნებულა თავისით.
1059სასაჩუქრე შეფუთვაNIP-59. რა რეალურად აღწევს რელეს პირადი შეტყობინებებისა და ჯგუფური ჩეთებისთვის.
1984მოხსენებაNIP-56.
9734 / 9735Zap მოთხოვნა და zap ქვითარიNIP-57.
10030მორგებული emoji პაკეტების სიებიNIP-30.
20000Geohash არხის შეტყობინებაეფემერული, მონიშნული ['g', geohash].
23333დასახელებული არხის შეტყობინებაეფემერული, მონიშნული ['d', channel].
24420 / 24421საჯარო აკრეფის ინდიკატორები და წაკითხული ქვითრებიNymchat-ს სპეციფიკური, საჯარო არხებისთვის.
25051 / 25052Peer-to-peer სიგნალიზაცია და ფაილის გადაცემის სტატუსიNymchat-ს სპეციფიკური.
30030მორგებული emoji ნაკრებიNIP-30.
30078განაცხადის მონაცემებიNIP-78. გამოკითხვები და დაშიფრული პარამეტრების სინქრონიზაცია.
69420პირადი წაკითხვის ქვითრები და მიწოდების სტატუსიNymchat-ის სპეციფიკური, ჭორების სახით წარმოდგენილი საჩუქრის შეფუთვაში. ცალკე სახის 14 განზრახ, ამიტომ სხვა NIP-17 კლიენტები არ აწვდიან ცარიელ პირდაპირ შეტყობინებებს ყოველი ქვითრისთვის.

Nymchat ახორციელებს NIP-ებს

NIPრას აძლევს Nymchat-ს
NIP-07შედით ბრაუზერის გაფართოებით.
NIP-09წაშლის მოთხოვნები.
NIP-13სამუშაოს დადასტურება. გამავალი შეტყობინებები ამოღებულია მინიმუმ 16 ბიტით.
NIP-17პირადი პირდაპირი შეტყობინებები და ჯგუფური ჩეთის საფუძველი.
NIP-25რეაქციები.
NIP-30მორგებული emoji.
NIP-40ვადის გასვლის ვადის შტამპები — ქრება შეტყობინებები.
NIP-44ვერსიული დაშიფვრა, გამოიყენება ბეჭდების, შეფუთვისა და პარამეტრების სინქრონიზაციისთვის.
NIP-46დისტანციური ხელმოწერა - bunker://.
NIP-56მოხსენება.
NIP-57ელვისებური ზარები.
NIP-59სასაჩუქრე შეფუთვები.
NIP-78განაცხადის თვითნებური მონაცემები.
NIP-98HTTP ავტორიზაცია, ჰოსტინგის ბოლო წერტილებისთვის.

კრიპტოგრაფია

სადრა
პირადობა და ხელმოწერებიsecp256k1 Schnorr ხელმოწერებით (BIP-340), როგორც Nostr აკონკრეტებს.
პირადი შეტყობინებები და ჯგუფური ჩეთებიNIP-44 v2: ECDH secp256k1-ზე, HKDF-SHA256, ChaCha20 HMAC-SHA256-ით და შიფრული ტექსტის სიგრძე არ აშორებს შეტყობინებას.
Bluetooth mesh სესიებიNoise XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 გამოცხადების ხელმოწერებისთვის, SHA-256 და HMAC ქვემოთ.
იდენტურობა დასვენების დროსAES-GCM-256. გასაღები მომდინარეობს PBKDF2-SHA256-დან 310000 გამეორებით პაროლის ან PIN-ისთვის, ან WebAuthn PRF გამოსასვლელიდან HKDF-SHA256-დან პაროლის ან ბიომეტრიული მნიშვნელობისთვის.
ზარები და ფაილების გადაცემაWebRTC-ის საკუთარი DTLS-SRTP, მოლაპარაკება მოხდა NIP-17-ით შეფუთული სიგნალიზაციის შესახებ.
შემთხვევითობაპლატფორმა CSPRNG - კლავიშები, ნონსები და საჩუქრის შეფუთვის დროის ანაბეჭდი.

მეტამონაცემების დაცვა

საჩუქრის შეფუთვის გზაზე ორი დეტალი ღირს ყურადღების გამახვილება, რადგან ისინი განასხვავებენ NIP-59-ს "დაშიფრული, მაგრამ აშკარად შენგან მათგან":

  • ყოველ შეფუთვას ხელს აწერს ა ერთჯერადი გასაღები შექმნილი მხოლოდ ამ შეტყობინებისთვის, ასე რომ, არც ერთი შეფუთვა არ იზიარებს გამგზავნს.
  • ყოველი შეფუთვა created_at არის შემთხვევით დათარიღებული ორამდე საათები CSPRNG-ის გამოყენებით, ასე რომ, გაგზავნისა და მიღების დრო არ შეიძლება განლაგდეს.

ჯგუფური ჩეთები ამატებენ მბრუნავ ეფემერულს მიმღები გასაღებები თავზე - იხ როგორ მუშაობს ჯგუფური დაშიფვრა.

კითხულობს წყაროს

კრიპტო პრიმიტივები შედიან js/nym-crypto.js და js/modules/key-vault.js ვებ აპში და ქვემოთ android-ios-app/lib/core/crypto/ და lib/services/mesh/noise/ Flutter აპლიკაციაში. The საცავი არის AGPL-3.0 და სრული — არ არსებობს დახურული კომპონენტი ნდობის მისაღებად.