Model bezpieczeństwa
Dokładnie to, co Aevumex szyfruje, jak działają klucze, jakie dane nasz serwer widzi, czego nie możemy zrobić i gdzie kończy się obietnica zero-knowledge. Napisane po to, by dało się to sprawdzić, nie po to, by przekonywać.
Ostatnia aktualizacja: 19 września 2026 · dotyczy aplikacji w wersji 0.1.4 i nowszych
Ten dokument uczciwie opisuje, co aplikacja robi z Twoimi danymi. Jest przeznaczony dla osób, które nie chcą wierzyć w „zero-knowledge” na słowo. Wszędzie tam, gdzie coś jest ograniczeniem albo kwestią otwartą, jest to napisane wprost.
W jednym akapicie
Twój sejf (każda moneta, sztabka, cena zakupu, dowód zakupu i notatka) jest szyfrowany na Twoim urządzeniu kluczem, który istnieje tylko na Twoim urządzeniu i jest wyprowadzany z Twojej frazy odzyskiwania. Nasz serwer przechowuje wyłącznie zaszyfrowane bloki i nie może ich odczytać. Co serwer widzi w postaci jawnej: Twój adres e-mail, liczbę pozycji w sejfie, Twoje alerty cenowe oraz wszystko, co publikujesz na rynku lub piszesz na czacie. Nie ma śledzenia, sieci reklamowej ani raportowania awarii. Nie ma też, jak dotąd, niezależnego audytu.
Co jest szyfrowane
- Każda pozycja w sejfie jako jeden blok: metal, waga i próba, liczba sztuk, cena, data i godzina zakupu, notatki, numery seryjne, miejsce przechowywania, dane sprzedaży i lista dowodów zakupu. Z pozycji serwer widzi tylko zaszyfrowany blok, numer wersji i znaczniki czasu.
- Dowody zakupu (zdjęcia) są zapisywane jako osobno zaszyfrowane pliki, lokalnie oraz, po zalogowaniu, w prywatnym magazynie na serwerze. Nigdy jako czytelne zdjęcie.
- Lokalna pamięć podręczna na Twoim urządzeniu (kursy, ustawienia, ostatnio wczytany sejf) znajduje się w zaszyfrowanej bazie danych, której klucz leży w pęku kluczy systemu operacyjnego.
Jak działają klucze
- Przy tworzeniu sejfu aplikacja generuje frazę odzyskiwania z 12 słów (BIP39, 128 bitów losowości). Fraza nie jest nigdzie zapisywana; masz ją tylko Ty.
- Z frazy, zgodnie ze standardem BIP39 (PBKDF2), obliczany jest seed, a z niego, za pomocą HKDF-SHA256, 256-bitowy klucz główny. Ta sama fraza zawsze daje ten sam klucz, więc sama fraza wystarczy, by odtworzyć wszystko na nowym urządzeniu.
- Klucz główny leży na Twoim urządzeniu w pęku kluczy iOS (Keychain) lub w Android Keystore, oznaczony jako „tylko to urządzenie” (nie trafia do kopii zapasowych) i, jeśli włączysz biometrię, jest udostępniany dopiero po Face ID, Touch ID lub odcisku palca. Na Androidzie liczy się tylko najsilniejsza klasa biometrii; słabsze odblokowywanie twarzą jest odrzucane, zamiast po cichu obniżać poziom ochrony.
- Twój PIN (od 6 do 8 cyfr) odblokowuje tylko aplikację. Jest hashowany algorytmem Argon2id i nie jest częścią szyfrowania: kto włamie się na serwer, nic nie zyska na PIN-ie, a kto odgadnie PIN, nadal nie ma klucza.
- Każda pozycja jest szyfrowana algorytmem AES-256-GCM z unikalnym nonce oraz z identyfikatorem pozycji i identyfikatorem Twojego konta jako dodatkowymi danymi uwierzytelnianymi. Bloku z jednego konta nie da się więc podłożyć pod inne konto ani inną pozycję: odszyfrowanie wtedy się nie powiedzie.
- Klucz nigdy nie opuszcza Twojego urządzenia. Aplikacja nie ma funkcji, która wysyłałaby go do nas, a serwer nie ma tabeli, w której mógłby go przechowywać.
Co serwer widzi
Zero-knowledge dotyczy sejfu. Inne funkcje działają tylko wtedy, gdy serwer coś wie. Oto pełna lista.
| Dane | Widoczne dla nas | Dlaczego |
|---|---|---|
| Adres e-mail, momenty logowania, czy logujesz się przez Apple lub Google | Tak | Konto i logowanie |
| Liczba pozycji w sejfie, kiedy zostały utworzone lub zmienione, rozmiar każdego zaszyfrowanego bloku | Tak (tylko metadane) | Synchronizacja i limit pięciu pozycji w wersji bezpłatnej |
| Treść pozycji w sejfie i dowodów zakupu | Nie | Szyfrowane na urządzeniu |
| Alerty cenowe: metal, kurs progowy, kierunek | Tak, w postaci jawnej | Serwer co minutę sprawdza, czy próg został osiągnięty, i wysyła powiadomienie push. Alert portfelowy (na przykład „ostrzeż przy 10 000 €”) jest na Twoim urządzeniu przeliczany na jeden kurs progowy; serwer widzi ten kurs i metal, nie Twój stan posiadania |
| Rynek: ogłoszenia, oferty, wiadomości na czacie, opinie, zgłoszenia, blokady, zapisane wyszukiwania | Tak, w postaci jawnej | Celowo: zgłaszanie i blokowanie, moderacja oraz obowiązki wobec sklepów z aplikacjami nie działają na zaszyfrowanej treści. Nigdy nie umieszczaj w ogłoszeniu ani na czacie niczego, czego nie chcesz nam powiedzieć |
| Token push Twojego urządzenia i język aplikacji | Tak | Wysyłanie powiadomień w Twoim języku |
| Status subskrypcji (Pro lub nie), identyfikator transakcji Apple lub Google | Tak, przez RevenueCat | Odblokowanie funkcji Pro. Nie widzimy danych płatniczych |
| Tytuł ogłoszenia, dla którego zamawiasz ilustrację AI | Tak, przekazywany do Google Gemini | Tylko na rynku; pozycje w sejfie nigdy nie otrzymują obrazu generowanego na serwerze |
| Statystyki użycia, identyfikatory urządzenia, raporty awarii, identyfikatory reklamowe | Nie | Aplikacja nie zawiera żadnego SDK do analityki, reklam ani raportowania awarii |
Kursy, historię i wiadomości aplikacja pobiera z tych samych publicznych tabel, z których korzysta ta strona; te zapytania nie zawierają żadnych danych o Twoim stanie posiadania.
Czego nie możemy
- Odczytać Twojego sejfu, nawet na Twoją prośbę, prośbę spadkobiercy ani organu władzy. Możemy jedynie przekazać zaszyfrowane bloki.
- Odzyskać Twojej frazy odzyskiwania ani zresetować PIN-u. Utrata frazy i urządzenia oznacza utratę sejfu. Dlatego aplikacja prosi Cię o zapisanie frazy, zanim cokolwiek trafi do sejfu.
- Przywrócić pozycji usuniętej przez Ciebie, gdy usunięcie zostało już zsynchronizowane.
Gdzie kończy się obietnica
To ograniczenia, które musisz znać, by właściwie ocenić tę obietnicę.
- Ufasz kodowi aplikacji. Aplikacja odszyfrowuje Twój sejf na Twoim urządzeniu, więc kod, który dostarczamy, także mógłby to wykorzystać. Dotyczy to każdej aplikacji z szyfrowaniem na urządzeniu. Co z tym robimy: skarbiec jest odszyfrowywany wyłącznie na Twoim urządzeniu, a klucz nigdy go nie opuszcza, więc nawet złośliwa aktualizacja nie pobrałaby niczego z naszych serwerów. Czego brakuje: podpisanych aktualizacji over-the-air oraz powtarzalnych kompilacji (reproducible builds), dzięki którym można by samodzielnie sprawdzić, że plik binarny odpowiada kodowi źródłowemu. Na iOS jest to praktycznie nieosiągalne. by samodzielnie sprawdzić, że plik binarny odpowiada kodowi źródłowemu. Na iOS jest to praktycznie nieosiągalne.
- Metadane coś zdradzają. Z liczby pozycji i progów alertów cenowych ktoś z dostępem do bazy danych mógłby wywnioskować, że posiadasz metale szlachetne i który metal w przybliżeniu waży u Ciebie najwięcej. Nie ile, nie które monety.
- Granicą jest Twoje urządzenie. Odblokowane urządzenie w niepowołanych rękach, nagranie ekranu, złośliwe oprogramowanie na urządzeniu po jailbreaku lub z rootem albo ktoś czytający Twoją frazę odzyskiwania przez ramię: przed tym szyfrowanie nie chroni. Aplikacja blokuje się automatycznie po wybranym przez Ciebie czasie i na żądanie ukrywa kwoty.
- Brak niezależnego audytu. Logika kluczy jest wyizolowana i w pełni przetestowana, ale nie została jeszcze oceniona przez zewnętrzny podmiot. Dlatego nigdzie nie nazywamy aplikacji „audytowaną” ani „zweryfikowaną”. Gdy to nastąpi, raport znajdzie się na tej stronie.
- Standardowe elementy, żadnej własnej kryptografii. AES-GCM, HKDF, Argon2 i BIP39 pochodzą z bibliotek noble i scure, które same przeszły audyt. Nie wymyśliliśmy żadnych algorytmów.
Serwer i infrastruktura
Backend działa na Supabase (PostgreSQL, region EU-West, Irlandia) z zabezpieczeniami na poziomie wierszy (row-level security): każda tabela ma reguły wymuszające, że konto może czytać i zapisywać tylko własne wiersze, a limity takie jak „pięć pozycji bezpłatnie” są wymuszane w bazie danych, nie tylko w aplikacji. Kursy pochodzą z metals.dev; klucz API do tej usługi znajduje się wyłącznie na serwerze. Ta strona odczytuje kursy publicznym kluczem tylko do odczytu i nie ustawia ciasteczek.
Zgłaszanie podatności
Zauważysz, że coś powyżej się nie zgadza, albo znajdziesz lukę? Napisz na support@aevumex.com (adres podany także w security.txt). Potwierdzamy zgłoszenie w ciągu pięciu dni roboczych, informujemy o postępach i nie podejmujemy kroków prawnych wobec nikogo, kto zgłasza w dobrej wierze, nie sięga do danych innych osób i daje nam czas na naprawę. Programu nagród (bug bounty) jeszcze nie ma.
Zmiany w tym dokumencie
- 19 września 2026: pierwsza wersja. Opublikowano security.txt.
- 21 września 2026: wycofano informację o podpisanych aktualizacjach over-the-air. Zabezpieczenie było skonfigurowane, ale nigdy nie zadziałało w wydanej aplikacji: żadna aktualizacja nie została podpisana i żadna zainstalowana wersja nie weryfikuje podpisów. To, co tu stało, było nieprawdziwe i zostało usunięte.