NIP-17: Prywatne Wiadomości Bezpośrednie - Kompletny Przewodnik
Dowiedz się o NIP-17, bezpiecznym zamienniku dla NIP-04, i jak migrować swoje prywatne wiadomości w Nostr
NIP-17 reprezentuje znaczącą aktualizację bezpieczeństwa dla prywatnych wiadomości w Nostr. Ten przewodnik wyjaśnia dlaczego powinieneś dbać o tę poprawę protokołu, jak migrować ze starego standardu NIP-04 oraz praktyczne kroki do zabezpieczenia swoich komunikacji.
Czym jest NIP-17?
NIP-17 to specyfikacja protokołu Nostr, która definiuje Prywatne Wiadomości Bezpośrednie używając dwuwarstwowego systemu szyfrowania zwanego “seal + gift wrap”. Została stworzona, aby rozwiązać fundamentalne luki bezpieczeństwa w poprzedniej metodzie szyfrowania NIP-04.
W przeciwieństwie do NIP-04, który używał pojedynczej warstwy szyfrowania AES-256-CBC, NIP-17 używa:
- Seal - Wewnętrzna warstwa szyfrowania chroniąca treść wiadomości
- Gift Wrap - Zewnętrzna warstwa szyfrowania ukrywająca metadane nadawcy i odbiorcy
To podejście dwuwarstwowe zapewnia, że:
- Treść wiadomości pozostaje prywatna
- Nawet operatorzy relayów nie widzą kto z kim rozmawia
- Wzorce wiadomości i metadane są chronione przed obserwatorami sieci
Dlaczego NIP-17 Ma Znaczenie: Problem Bezpieczeństwa NIP-04
NIP-04 był oryginalnym protokołem wiadomości bezpośrednich w Nostr, ale ma kilka krytycznych problemów bezpieczeństwa, które czynią go nieodpowiednim dla naprawdę prywatnej komunikacji.
Porównanie: NIP-04 vs NIP-17
| Cecha | NIP-04 | NIP-17 |
|---|---|---|
| Szyfrowanie | Pojedyncza warstwa AES-256-CBC | Dwuwarstwowe (seal + gift wrap) |
| Metadane Nadawcy | Widoczne dla relayów | Ukryte przed wszystkimi oprócz odbiorcy |
| Metadane Odbiorcy | Widoczne dla relayów | Ukryte przed wszystkimi oprócz odbiorcy |
| Treść Wiadomości | Zaszyfrowana | Zaszyfrowana |
| Ochrona przed Replay | Brak | Wbudowane timestamps |
| Forward Secrecy | Nie | Lepsza (klucze per-wiadomość) |
| Status Bezpieczeństwa | Przestarzały | Zalecany |
| Interoperacyjność | Powszechnie wspierany | Rosnące wsparcie |
Podstawowy Problem z NIP-04
Wiadomości NIP-04 ujawniają kto z kim rozmawia w blockchainie. Podczas gdy treść wiadomości jest zaszyfrowana, koperta zawiera:
# Struktura Eventu NIP-04 (uproszczona)
{
"pubkey": "<sender_public_key>", # Każdy może zobaczyć kto to wysłał
"tags": [["p", "<recipient_pubkey>"]], # Każdy może zobaczyć kto to otrzymał
"content": "<encrypted_content>" # Tylko treść jest ukryta
}
Oznacza to, że operatorzy relayów, obserwatorzy sieci i scrapery danych mogą:
- Budować grafy społeczne pokazujące kto z kim komunikuje się
- Śledzić wzorce i częstotliwość komunikacji
- Wnioskować o relacjach z timingów wiadomości
NIP-17 rozwiązuje to poprzez owinięcie całej struktury wiadomości w dodatkową warstwę szyfrowania, czyniąc niemożliwym zobaczenie nadawcy lub odbiorcy bez klucza deszyfrującego.
Jak Działa NIP-17: Seal + Gift Wrap
Zrozumienie implementacji technicznej pomaga docenić ulepszenia bezpieczeństwa.
Warstwa Gift Wrap (Zewnętrzna)
Gift wrap to zewnętrzna koperta ukrywająca wszystkie metadane. Jest szyfrowana do specjalnego “gift wrap key” wyprowadzonego z klucza publicznego odbiorcy. Ta warstwa zawiera:
- Losowy klucz publiczny (nie powiązany z prawdziwym nadawcą)
- Klucz publiczny odbiorcy
- Timestamp
- Zapieczętowaną wiadomość wewnętrzną
Warstwa Seal (Wewnętrzna)
Wewnątrz gift wrapa znajduje się seal, który zawiera faktyczną wiadomość. Ta warstwa:
- Jest szyfrowana używając świeżej pary kluczy efemerycznych
- Zawiera prawdziwy klucz publiczny nadawcy
- Zawiera treść wiadomości
- Ma własny timestamp dla ochrony przed replay
Reprezentacja Wizualna:
┌─────────────────────────────────────┐
│ Gift Wrap (Warstwa Zewnętrzna) │
│ ┌─────────────────────────────────┐ │
│ │ Seal (Warstwa Wewnętrzna) │ │
│ │ ┌─────────────────────────────┐ │ │
│ │ │ Faktyczna Treść Wiadomości │ │ │
│ │ │ Nadawca: real_pubkey │ │ │
│ │ │ Timestamp: 1234567890 │ │ │
│ │ └─────────────────────────────┘ │ │
│ │ Zaszyfrowane kluczem efemerycznym│ │
│ └─────────────────────────────────┘ │
│ Losowy pubkey, wskazówka odbiorcy │
└─────────────────────────────────────┘
Kluczowe Korzyści
- Prywatność Metadanych: Nikt oprócz odbiorcy nie może ustalić kto wysłał wiadomość lub komu została wysłana
- Niepowiązywalność: Wielokrotne wiadomości między tymi samymi stronami wyglądają jako niepowiązane eventy dla obserwatorów
- Lepsza Forward Secrecy: Każda wiadomość używa unikalnych kluczy efemerycznych
Przewodnik Migracji: Przełączanie z NIP-04 na NIP-17
Migrowanie do NIP-17 jest proste z nowoczesnymi klientami Nostr. Oto jak dokonać zmiany.
Krok 1: Sprawdź Wsparcie Swojego Klienta
Przed migracją, zweryfikuj czy Twój klient wspiera NIP-17:
| Klient | Wsparcie NIP-17 | Status |
|---|---|---|
| Damus | Tak | Domyślny dla nowych DM |
| Amethyst | Tak | Domyślny dla nowych DM |
| Primal | Tak | Wspierany |
| Coracle | Tak | Wspierany |
| Iris | Tak | Wspierany |
| Snort | Tak | Wspierany |
| Nos | Tak | Wspierany |
Krok 2: Włącz NIP-17 w Swoim Kliencie
Damus (iOS/macOS)
- Otwórz Ustawienia → Prywatność i Bezpieczeństwo
- Przewiń do “Szyfrowanie Wiadomości”
- Przełącz “Używaj NIP-17 dla nowych wiadomości” na WŁĄCZONE
- Twoje nowe DM-y będą automatycznie używać NIP-17
Uwaga: Starsze wiadomości NIP-04 pozostają czytelne, ale nowe używają NIP-17.
Amethyst (Android)
- Idź do Ustawienia → Wiadomości
- Włącz “Używaj NIP-17 dla DM-ów”
- Uruchom ponownie aplikację dla pełnego efektu
Primal (iOS/Android/Web)
- Przejdź do Ustawienia → Prywatność
- Pod “Wiadomości Bezpośrednimi,” wybierz “NIP-17 (Zalecany)”
- Zmiany mają zastosowanie natychmiast do nowych rozmów
Krok 3: Skomunikuj się ze Swoimi Kontaktami
NIP-17 działa tylko jeśli obie strony mają wsparcie NIP-17. Wyślij wiadomość do częstych kontaktów:
nostr:note1... # Szablon wiadomości migracji
"Hej! Aktualizuję do NIP-17 dla lepszej prywatności w naszych DM-ach.
Proszę zaktualizuj swojego klienta Nostr, jeśli jeszcze tego nie zrobiłeś.
Nasze przyszłe wiadomości będą bezpieczniejsze!"
Krok 4: Zweryfikuj Sukces Migracji
Aby potwierdzić, że NIP-17 działa:
- Wyślij wiadomość testową do siebie lub znajomego
- Sprawdź rodzaj eventu (powinien być
1059dla gift wrapów) - Szukaj
kind: 1059w szczegółach wiadomości - Tag
ppowinien wskazywać na losowy klucz efemeryczny, nie prawdziwy klucz znajomego
// Przykładowy event NIP-17 (uproszczony)
{
"kind": 1059, // Event gift wrap
"pubkey": "<random_ephemeral_key>", // Nie prawdziwy nadawca!
"tags": [["p", "<recipient_pubkey>"]],
"content": "<encrypted_seal_content>"
}
Przewodniki Konfiguracji Specyficzne dla Klienta
Damus
Damus uczynił NIP-17 domyślnym dla nowych wiadomości bezpośrednich w najnowszych wersjach. Jeśli używasz starszej wersji:
- Zaktualizuj do najnowszego Damus z App Store
- NIP-17 jest automatycznie włączony dla nowych rozmów
- Sprawdź szczegóły wiadomości (przytrzymaj) aby zobaczyć odznakę “NIP-17”
Wskazówka: Damus pokazuje ikonę kłódki z tekstem “NIP-17” na bezpiecznych wiadomościach.
Amethyst
Amethyst wspiera NIP-17, ale może wymagać jawnego włączenia:
- Ustawienia → Zaawansowane → Ustawienia Protokołu
- Włącz “NIP-17 gift wrap dla DM-ów”
- Klient automatycznie będzie negocjować NIP-17 ze wspierającymi kontaktami
Uwaga: Amethyst elegancko fallbackuje do NIP-04, jeśli odbiorca nie wspiera NIP-17.
Primal
Primal ma doskonałe wsparcie NIP-17:
- Ustawienia → Bezpieczeństwo i Prywatność
- Pod “Protokół Wiadomości” wybierz “NIP-17 (Prywatny)”
- Opcjonalnie: Włącz “Auto-upgrade rozmów NIP-04” aby konwertować istniejące czaty
Najlepsze Praktyki Bezpieczeństwa
Maksymalizuj swoją prywatność używając NIP-17:
1. Weryfikuj Wsparcie Klienta Przed Wrażliwą Komunikacją
Zawsze potwierdzaj, że Twój kontakt używa klienta wspierającego NIP-17 przed udostępnieniem wrażliwych informacji. Wysyłanie NIP-17 do klienta tylko-NIP-04 spowoduje nieczytelne wiadomości.
2. Nie Mieszaj Protokołów w Tym Samym Wątku
Unikaj dezorientacji używając jednego protokołu na rozmowę. Jeśli zaczniesz z NIP-04, zakończ z NIP-04, lub wyraźnie wskaż kiedy się przełączasz.
3. Używaj Świeżych Kluczy dla Rozmów o Wysokim Bezpieczeństwie
Dla maksymalnego bezpieczeństwa:
- Utwórz dedykowaną parę kluczy dla wrażliwej komunikacji
- Udostępnij klucz publiczny przez bezpieczny kanał poza pasmem
- Rotuj klucze okresowo
4. Bądź Świadomy Metadanych w Innych Typach Eventów
NIP-17 chroni tylko wiadomości bezpośrednie. Inne typy eventów (notatki, reakcje, obserwacje) nadal ujawniają dane grafu społecznego. Używaj wielu tożsamości dla kompartmentalizacji.
5. Wybieraj Relaye Skupione na Prywatności
Nawet z NIP-17, Twoje wzorce ruchu są widoczne dla relayów. Używaj:
- Tor lub VPN dla dodatkowej prywatności na poziomie sieci
- Relayów, które nie logują lub nie zachowują metadanych wiadomości
- Wielu relayów do rozproszenia Twojego ruchu
6. Zrozum Ograniczenia
NIP-17 zapewnia doskonałą prywatność, ale nie jest doskonały:
- Relaye nadal widzą adresy IP (używaj VPN/Tor)
- Analiza timingowa może ujawniać wzorce komunikacji
- Skompromitowani klienci mogą wyciekać informacje
- Odbiorca zawsze widzi tożsamość nadawcy
Rozwiązywanie Powszechnych Problemów
”Wiadomości wyświetlają się jako nieczytelne lub bełkot”
Przyczyna: Odbiorca nie wspiera NIP-17 Rozwiązanie: Poproś odbiorcę o aktualizację klienta, lub tymczasowo wróć do NIP-04
”Nie widzę, czy ktoś przeczytał moją wiadomość NIP-17”
Przyczyna: Potwierdzenia przeczytania nie są jeszcze standaryzowane dla NIP-17 Rozwiązanie: To oczekiwane zachowanie. NIP-17 priorytetyzuje prywatność nad potwierdzeniem dostarczenia.
”Wiadomości pojawiają się poza kolejnością”
Przyczyna: Różnica czasu między urządzeniami Rozwiązanie: Upewnij się, że czas Twojego urządzenia jest zsynchronizowany (włącz automatyczną synchronizację czasu)
“Relay odrzuca eventy NIP-17”
Przyczyna: Stare oprogramowanie relaya Rozwiązanie:
- Sprawdź wspierane NIP-y relaya
- Dodaj nowoczesne relaye wspierające NIP-17
- Zgłoś operatorowi relaya
”Klient pokazuje zarówno opcje NIP-04 jak i NIP-17”
Oczekiwane zachowanie: Wielu klientów wspiera oba podczas okresu przejściowego. Zawsze wybieraj NIP-17 gdy dostępny.
Przyszłość Prywatnych Wiadomości w Nostr
NIP-17 to obecny złoty standard dla prywatnych wiadomości w Nostr, ale rozwój trwa:
- NIP-44: Ulepszony schemat szyfrowania, który może zastąpić NIP-17
- Szyfrowanie grupowe: Protokoły prywatnych wiadomości grupowych są rozwijane
- Integracja płatności: Prywatne wiadomości z płatnościami Lightning
Bądź na bieżąco śledząc:
- nostr:npub1… # Rozwój protokołu Nostr
- nostr:npub1… # Najlepsze praktyki bezpieczeństwa
Podsumowanie
NIP-17 reprezentuje duży krok naprzód dla prywatności w Nostr. Rozwiązując problemy wycieku metadanych NIP-04, umożliwia naprawdę prywatne wiadomości bezpośrednie chroniące zarówno treść jak i wzorce komunikacji.
Proces migracji jest prosty: zaktualizuj klienta, zweryfikuj czy Twoi kontakty wspierają NIP-17 i ciesz się wzmocnioną prywatnością. Z powszechnym wsparciem klientów już dostępnym, nie ma powodu kontynuować używania przestarzałego protokołu NIP-04.
Zadania do wykonania:
- ✅ Zaktualizuj swojego klienta Nostr do najnowszej wersji
- ✅ Włącz NIP-17 w ustawieniach
- ✅ Zweryfikuj ze swoimi kontaktami, że wspierają NIP-17
- ✅ Zacznij używać NIP-17 dla wszystkich nowych prywatnych rozmów
Pamiętaj: Prywatność to praktyka, nie produkt. NIP-17 daje Ci narzędzia—używaj ich mądrze.
Przetestuj Swoją Wiedzę o NIP-17
Gotowy sprawdzić swoje zrozumienie bezpiecznych wiadomości?
NIP-17 Private Messages Quiz
NIP-17 Purpose
Question 1 of 5
Ostatnia aktualizacja: 11 lutego 2025
Masz pytania? Dołącz do dyskusji na Nostr lub otwórz issue w tym repozytorium dokumentacji.