База на знаење Под хаубата
Протокол и настани
Што всушност Nymchat го става на жицата, за секој што гради против него, ревизија или читање настани од друг клиент на Nostr.
Оваа страница е машински преведена за погодност. Англискиот оригинал е верзијата што се применува.
Видови настани
| Љубезен | Се користи за | Белешки |
|---|---|---|
0 | Метаподатоци на профилот | Стандарден Nostr профил: име, слика, банер, за, lud16. |
5 | Барања за бришење | НИП-09. |
7 | Реакции | НИП-25, со а ['k', originalKind] ознака за да се поднесе реакција против вистинскиот тип на канал. |
13 | Печат | Средниот слој на порака NIP-17. |
14 | Гласини за приватна порака | Непотпишана и никогаш не е објавена самостојно. |
1059 | Обвивка за подарок | НИП-59. Што всушност стигнува до реле за приватни пораки и групни разговори. |
1984 | Известување | НИП-56. |
9734 / 9735 | Zap барање и zap потврда | НИП-57. |
10030 | Прилагодени списоци на пакети со емотикони | НИП-30. |
20000 | Порака за каналот Geohash | Ефемерни, означени ['g', geohash]. |
23333 | Порака со именуван канал | Ефемерни, означени ['d', channel]. |
24420 / 24421 | Јавни индикатори за пишување и сметки за читање | Специфичен за Nymchat, за јавни канали. |
25051 / 25052 | Peer-to-peer сигнализација и статус на пренос на датотеки | Специфичен за Nymchat. |
30030 | Прилагодени комплети емотикони | НИП-30. |
30078 | Податоци за апликација | НИП-78. Анкети и синхронизирани шифрирани поставки. |
69420 | Приватни сметки за читање и статус на испорака | Специфичен за Nymchat, пренесен како гласина во обвивката за подарок. Посебен вид од 14 намерно, така што другите NIP-17 клиенти не даваат празни директни пораки за секоја потврда. |
NIPs Nymchat спроведува
| НИП | Она што го дава Nymchat |
|---|---|
| НИП-07 | Најавете се со екстензија на прелистувачот. |
| НИП-09 | Барања за бришење. |
| НИП-13 | Доказ за работа. Појдовните пораки се минираат на најмалку 16 бита. |
| НИП-17 | Приватни директни пораки и основа за групни разговори. |
| НИП-25 | Реакции. |
| НИП-30 | Прилагодени емотикони. |
| НИП-40 | Временски печати за истекување - пораки што исчезнуваат. |
| НИП-44 | Верзија за шифрирање, што се користи за пломби, обвивки и синхронизација на поставките. |
| НИП-46 | Далечинско потпишување - bunker://. |
| НИП-56 | Известување. |
| НИП-57 | Молња запира. |
| НИП-59 | Облоги за подароци. |
| НИП-78 | Произволни податоци за апликацијата. |
| НИП-98 | HTTP auth, за хостирани крајни точки. |
Криптографија
| Каде | Што |
|---|---|
| Идентитет и потписи | 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 со 310.000 повторувања за лозинка или PIN, или од WebAuthn PRF излез преку HKDF-SHA256 за лозинка или биометриски. |
| Повици и пренос на датотеки | Сопствениот DTLS-SRTP на WebRTC, преговаран за сигнализација обвиткана со 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. На
складиште
е AGPL-3.0 и е комплетен - нема затворена компонента за да се преземе доверба.