Bezpieczeństwo
Ostatnia aktualizacja 14 września 2026. Wymienione są tylko środki, które istnieją. To, czego brakuje, jest opisane jako brakujące.

Dlaczego ta strona jest dosadna. Samotna osoba mówi towarzyszowi rzeczy, których nie mówi nikomu innemu: co boli, czego się boi, kto przestał dzwonić. Gdyby to wyciekło, nie byłaby to niedogodność, tylko upokorzenie. Dlatego ta strona opisuje, co faktycznie jest wdrożone, a na końcu, czego jeszcze nie ma.
Jaki jest stan
Dedykowana maszyna w UE, nie hosting współdzielony. Dostawca: Hetzner Online GmbH.
Mowa jest przetwarzana na żywo. Nie istnieje nagranie, które może wyciec, zostać wezwane do sądu albo zaginąć.
Certyfikaty z Let's Encrypt, odnawiane automatycznie.
Długi losowy token na osobę. Brak współdzielonych kont, brak haseł do ponownego użycia albo zgubienia.
Logowanie hasłem do serwera jest całkowicie wyłączone.
Wymieniony z nazwy w polityka prywatności. Nic innego nie otrzymuje danych.
Jak pamięć jednej osoby pozostaje jej własna
To jest ryzyko, które ma największe znaczenie w takiej usłudze: ktoś otwiera rozmowę i słyszy o życiu obcej osoby, albo co gorsza swoje życie czytane przez kogoś innego.
Każde żądanie niesie własny token osoby. Każde wyszukiwanie w pamięci jest ograniczone do tego tokena na poziomie bazy danych, więc nie ma zapytania, które mogłoby zwrócić odcinki innej osoby. Tokeny są długie i losowe, nie sekwencyjne, więc nie da się ich zgadnąć ani przejść po nich, zwiększając numer.
Sprawdzamy to przy każdej zmianie kodu. Tworzy się dwóch towarzyszy, jeden dostaje pamięć, a test próbuje się do niej dostać przez token drugiego. Jeśli kiedykolwiek się to uda, zmiana nie trafia do wydania. To nie jest zasada na stronie, to test, który musi przejść.
Co opuszcza nasz serwer, a co nie
Przechowywane tylko na naszej maszynie: tekst rozmów, pamięć, profile, imiona członków rodziny, daty, notatki o zdrowiu i nastroju.
Opuszcza naszą maszynę: na żywo mowa i tekst rozmowy, do dostawcy modelu mowy wskazanego w polityka prywatności, w celu rozpoznania i odpowiedzi. Zgodnie z warunkami ich API ta treść nie jest używana do trenowania modeli. To jedyna część rozmowy, która trafia gdziekolwiek indziej, i wolimy to powiedzieć wprost, niż pozwolić Panu/Pani odkryć to samemu.
Nigdzie nie wysyłamy: nic nie jest sprzedawane, nic nie trafia do reklamodawców i na tej stronie nie ma żadnych skryptów analitycznych ani śledzących. Nie ma banera cookie, ponieważ nie ma na co wyrazić zgody.
Wyszukiwanie bez wycieków
Kiedy James znajduje klinikę, książkę lub przepis, odpytuje otwarte publiczne serwisy: OpenStreetMap, Open Library, Wikisource, TheMealDB. Otrzymują one hasło wyszukiwania i przybliżony obszar, nigdy imię i nigdy nic innego z rozmowy.
Używamy prawdziwych źródeł celowo zamiast pozwalać, by model językowy odpowiadał z pamięci. Pewny siebie zmyślony adres kliniki, podany komuś, kto potrzebuje lekarza, to błąd bezpieczeństwa, a nie kosmetyczny.
Wiadomości awaryjne
Do dostawcy wiadomości trafia tylko sama wiadomość i identyfikator odbiorcy. Rozmowa nie trafia. Każda próba jest logowana razem z wynikiem i porażka jest zgłaszana osobie na głos zamiast zostać po cichu pominięta. Przekonanie, że pomoc nadchodzi, gdy tak nie jest, to najgorszy wynik, jaki ten system może wyprodukować, więc traktuje się to jako cechę bezpieczeństwa, a nie uprzejmość.
Utrzymywanie uczciwości oprogramowania
- Przed każdym wdrożeniem uruchamiane są testy automatyczne, obejmujące izolację pamięci, odmowę wymyślania przeszłej rozmowy, uczciwe zgłaszanie nieudanych wiadomości i zasady kryzysowe.
- Każdy plik zmieniany na działającym serwerze jest najpierw archiwizowany z sygnaturą czasu, więc złą zmianę można natychmiast odwrócić.
- Sekrety są trzymane w plikach czytelnych tylko dla konta usługi, nigdy na stronie, nigdy w repozytorium.
- Prompt systemowy zabrania wymyślania wspomnień. Zestaw testów sprawdza zachowanie, ponieważ reguła w promcie jest prośbą, a test jest dowodem.
Czego jeszcze nie ma
Wymienienie tego jest celem tej strony. Każdy może twierdzić, że ma dobre części.
- Każda baza danych jest zaszyfrowana w spoczynku. SQLCipher, AES-256, na naszym własnym serwerze w Finlandii. Plik klucza jest czytelny tylko dla roota, a kopie w postaci jawnej tworzone podczas migracji zostały zniszczone, a nie skasowane. Dźwięk w ogóle nie jest zapisywany na dysku.
- Brak niezależnego audytu bezpieczeństwa. Żadna zewnętrzna firma nie sprawdziła tego systemu. Napiszemy o tym na tej stronie, gdy jakaś to zrobi, z datą.
- Brak certyfikacji ISO 27001 ani SOC 2. Nie mamy ani jednego, ani drugiego i nie sugerujemy nic innego.
- Sam dysk nie jest zaszyfrowany. Bazy danych są (patrz wyżej), ale szyfrowanie całego dysku jest wyłączone, co jest normalne dla maszyny, która musi się sama restartować. Fizyczny dostęp do hosta więc dalej jest realną granicą ryzyka i w tym polegamy na zabezpieczeniach centrum danych dostawcy.
- Klucz do bazy danych znajduje się na tym samym serwerze. Musi tak być, żeby James odpowiedział o trzeciej nad ranem bez człowieka odblokowującego cokolwiek. Więc szyfrowanie chroni skradziony dysk albo wyciekły plik kopii zapasowej. Nie chroni przed atakującym, który już ma dostęp administracyjny do działającego serwera. Kto twierdzi inaczej o takiej usłudze, przecenia ją.
- Brak uwierzytelniania dwuskładnikowego na kontach, ponieważ nie ma haseł: dostępem jest prywatny link. To prostsze dla 80-latka i oznacza też, że wycieknięty link to wycieknięte konto. Proszę nam powiedzieć, a wydamy go ponownie od razu.
- Brak formalnego programu bug bounty. Ale patrz niżej, i odpowiadamy.
Jeśli zauważy Pan/Pani problem
Proszę napisać na security@hellojames.io albo legal@hellojames.io. Proszę napisać, co Pan/Pani znalazł(a) i jak to odtworzyć. Odpowiadamy w ciągu 72 godzin, nie będziemy Panu/Pani grozić i podamy Pana/Pani nazwisko, jeśli będzie Pan/Pani tego chciał(a).
Jeśli uważa Pan/Pani, że doszło do ujawnienia danych, proszę napisać to w temacie wiadomości, a potraktujemy to od razu jako incydent: organ zostanie powiadomiony w ciągu 72 godzin tam, gdzie jest to wymagane, a osoby, których to dotyczy, dostaną bezpośrednią informację prostymi słowami.
