Aktualności · Bezpieczeństwo w Blackbear

Czego nie możemy przeczytać

15 sierpnia 2026 Xavi Group Część 1 z 3
Ilustracja: czarny niedźwiedź przy drewnianym biurku odciska pieczęć woskową na kopercie, obok stosu już zapieczętowanych kopert

Blackbear działa najpierw lokalnie. Każda funkcja działa na twoim urządzeniu i domyślnie twoje dane są tylko tam, bez żadnego serwera po drodze.

Gdy włączysz synchronizację w chmurze, nasze serwery zaczynają przenosić twoje dane między twoimi urządzeniami i twoimi ludźmi. Ta seria wyjaśnia, co to oznacza dla twojej prywatności. Część 1 dotyczy szyfrowania: co opuszcza twoje urządzenie i dlaczego nie możemy tego przeczytać. Część 2 to uczciwy rejestr metadanych, które nasze serwery rzeczywiście przechowują. Część 3 opisuje udostępnianie i współpracę.

Wszystko poniżej opisuje działający kod, a nie zamiary. Gdy podajemy nazwę algorytmu albo liczbę, to ta, która dziś działa w produkcji.

Szyfrowanie odbywa się na twoim urządzeniu

Każda synchronizowana zmiana jest szyfrowana, zanim trafi do sieci. Notatki, dokumenty, zadania, wydarzenia, wpisy w dzienniku, arkusze, płótna, audio, historia wersji. Każda z nich jest zapieczętowana algorytmem XChaCha20-Poly1305, czyli szyfrem z uwierzytelnianiem, przy użyciu klucza, który nigdy nie opuszcza twojego urządzenia bez ochrony. Nasze serwery dostają szyfrogram i przechowują szyfrogram.

Obrazy i pliki audio są traktowane tak samo: szyfrowane na twoim urządzeniu i wysyłane jako nieprzejrzyste bloby.

Kod, który to wszystko robi, to jedna implementacja w Ruście oparta na ekosystemie RustCrypto, skompilowana do WebAssembly. Aplikacja i CLI Blackbear dzielą ją bajt w bajt, a testujemy ją na wspólnych danych testowych dla wielu języków, więc żadna druga implementacja nie może się po cichu rozjechać.

Przed czym to chroni, a przed czym nie

Szyfrowanie to konkretne narzędzie, a nie pole siłowe. Zanim przejdziemy do szczegółów — granice.

Ten projekt chroni cię przed:

  • Biernym włamaniem do naszych serwerów lub bazy danych — kradzieżą przechowywanych danych. Wycieka wtedy szyfrogram i opakowane klucze.
  • Nami. Nasze działające systemy produkcyjne nigdy nie dostają kluczy do twoich treści ani jawnego tekstu, więc żądanie prawne dotyczące twoich treści daje tylko to, co rzeczywiście mamy: metadane (część 2) i zapieczętowane bloby.

Nie chroni cię przed:

  • Przejętym, skradzionym albo odblokowanym urządzeniem. Twoje urządzenie trzyma twoje klucze; jego bezpieczeństwo to fundament, na którym stoi cała reszta.
  • Kimkolwiek, kto zna twoje hasło albo twoje dwanaście słów odzyskiwania.
  • Tym, co upoważnieni odbiorcy zrobią z tym, co im udostępnisz. Udostępnianie to zaufanie do ludzi, nie tylko matematyka.
  • Metadanymi ruchu: kto, kiedy, ile. To cały temat części 2.
  • Samą aplikacją. W przeglądarce aplikacja przychodzi z naszych serwerów przy każdym otwarciu; na komputerze — w podpisanych wydaniach. Żaden schemat szyfrowania nie przetrwa złośliwej aplikacji, niezależnie od tego, kto ją dostarcza.
  • Chwilami, w których celowo decydujesz się wysłać dane jawnym tekstem: gdy prosisz Paxa o użycie modelu w chmurze, podłączasz zewnętrzny kalendarz, eksportujesz pliki albo wysyłasz zaproszenie e-mailem. Te dane trafiają do wybranej przez ciebie strony i podlegają jej zasadom, a nie naszemu szyfrowaniu.

Hierarchia kluczy

Twoje hasło nigdy nie opuszcza twojego urządzenia. Wszystko z niego wyrasta:

Twoje hasło
12 słów odzyskiwania
↓ Argon2id
↓ HKDF
Klucz konta
Klucz odzyskiwania
każdy z nich opakowuje ↓
Klucz sejfu · losowy, 256-bitowy, nigdy nie opuszcza urządzenia bez opakowania
↓ szyfruje
notatki · dokumenty · zadania · wydarzenia · arkusze · multimedia · historia

Serwer przechowuje tylko opakowane kopie: szyfrogram chroniący szyfrogram.

Po co ten pośredni krok? Pozwala zmienić hasło bez ponownego szyfrowania całego twojego życia, a odzyskiwanie może istnieć bez osłabiania drzwi wejściowych.

Przestroga, którą warto zapisać czarno na białym: Argon2id sprawia, że zgadywanie jest kosztowne, ale nie zrobi silnego hasła ze słabego. Opakowany klucz sejfu jest dokładnie tak silny jak hasło, które go opakowuje. Wybierz długie.

Odzyskiwanie to dwanaście słów

Gdy konfigurujesz synchronizację, Blackbear daje ci frazę odzyskiwania: dwanaście słów (BIP39) kodujących 128 bitów entropii. Wyprowadza się z nich niezależny klucz, który opakowuje twój klucz sejfu po raz drugi.

Zapomnisz hasła? Dwanaście słów pozwoli ci wrócić. Stracisz jedno i drugie? Twoje zsynchronizowane dane przepadną. Nie możemy ich zresetować i żadne zgłoszenie do pomocy technicznej nas do tego nie nakłoni, bo po naszej stronie nie ma czego resetować. To nie luka w naszej pomocy. To projekt, który działa tak, jak powinien.

Dodawanie urządzenia

Na nowym urządzeniu wpisujesz hasło. Urządzenie lokalnie wyprowadza z niego klucz konta i odpakowuje klucz sejfu z opakowanej kopii, którą trzyma nasz serwer. Serwer nigdy nie widzi hasła ani wyniku.

Istniejące, odblokowane urządzenie może też przekazać klucz bezpośrednio. Pieczętuje klucz sejfu kluczem publicznym X25519 nowego urządzenia i odkłada go w miejscu przekazania, które samo się niszczy po pięciu minutach, użyte czy nie. Uczciwie o jednej granicy: twoje istniejące urządzenie poznaje klucz publiczny nowego urządzenia przez twoje zalogowane konto, więc ta wspomagana ścieżka ufa, że nasz serwer przekaże właściwy klucz wybranego przez ciebie urządzenia. Ścieżka z hasłem takiego zaufania nie wymaga.

Ponieważ dokładnie tego słownictwa użyłby oszust, zasada warta zapisania czarno na białym: nigdy nie poprosimy cię o hasło ani słowa odzyskiwania i nigdy nie poprosimy o zatwierdzenie przekazania na nowe urządzenie. Takie pytania należą wyłącznie do aplikacji, którą otworzysz samodzielnie. Każdy inny, kto o to prosi, to atak.

Wiadomości

Wiadomości używają własnych kluczy, oddzielnych od synchronizacji. Każde konto ma tożsamość do wiadomości opartą na X25519, a każda wiadomość wyprowadza unikalny klucz ze świeżej soli przez HKDF-SHA256. Wiadomości podróżują jako zapieczętowane koperty. Serwer je przekazuje; nie może ich otworzyć. Część 2 opisuje, co zdradza wierzch koperty.

Jedna uwaga o projekcie, powiedziana wprost: unikalne klucze dla każdej wiadomości to nie mechanizm zapadki z rotacją kluczy, którego używają niektóre komunikatory. Gdyby długoterminowy klucz wiadomości urządzenia został kiedyś przejęty, zagrożone byłyby wiadomości zapieczętowane dla niego. Klucze dla każdej wiadomości ograniczają zasięg szkód; nie są utajnianiem przekazywania (forward secrecy) i wolimy, żeby ta różnica była dla ciebie jasna.

Historia bez odcisków treści

Historia wersji synchronizuje się jako zaszyfrowane migawki, adresowane identyfikatorami w obrębie twojego sejfu. Jeśli ty i ktokolwiek obcy zapiszecie identyczny plik, serwer zobaczy dwa niepowiązane identyfikatory: identycznej zawartości nie da się dopasować między kontami. Rozmiar i czas pozostają widoczne, jak w całym ruchu synchronizacji. To metadane, a ten temat należy do części 2.

Dowód bez ujawniania

Nieodwracalne operacje na koncie wymagają dowodu posiadania sejfu: podpisu kluczem Ed25519 wyprowadzonym z klucza sejfu. Dowodzisz, że masz sejf, a sam sejf nigdzie nie podróżuje. A gdy klucze skończą pracę w pamięci, są zerowane.

Nic z tego nie jest egzotyczne. XChaCha20-Poly1305, Argon2id, X25519, Ed25519, HKDF-SHA256: standardowe, nudne, gruntownie przebadane prymitywy. Ciekawa jest dyscyplina stosowania ich wszędzie i mówienia na głos, czego nie obejmują. O tej dyscyplinie jest reszta tej serii.

Dalsza lektura

Bezpieczeństwo w Blackbear

  1. 1. Czego nie możemy przeczytać (jesteś tutaj)
  2. 2. Co widzą nasze serwery
  3. 3. Jak udostępnianie pozostaje zapieczętowane

Wypróbuj Blackbear

Za darmo. Bez karty kredytowej.

Otwórz Blackbear