W skrócie: SaaufAI prowadzi jedna osoba na zarządzanej infrastrukturze (Vercel, Google Cloud oraz Supabase w UE). Dane uwierzytelniające są szyfrowane albo przechowywane jako skróty, treść zapytań API i czatów w Playground nie jest zapisywana, dostęp do środowiska produkcyjnego ma tylko operator, a każda zmiana jest rejestrowana i można ją wycofać. Jeśli naruszenie zagraża Twoim danym, zgłaszamy je organowi nadzorczemu w ciągu 72 godzin, gdy jest to wymagane, a Ciebie zawiadamiamy bez zbędnej zwłoki.
Ta strona opisuje to, co faktycznie robimy. Jeśli czegoś typowego dla większych firm brakuje (na przykład niezależnego audytu), piszemy o tym wprost.
1. Zakres i odpowiedzialność
- Polityka obejmuje stronę SaaufAI, API, Playground, Wispy, Aplikacje, program Safeguards i panel administracyjny pod adresem ai.saauf.xyz oraz systemy, na których działają.
- SaaufAI prowadzi osoba fizyczna mieszkająca w Polsce, która odpowiada za każdą część tej polityki: jej ustalenie, stosowanie, sprawdzanie i zmiany. Nie ma pracowników ani współpracowników.
- Jeśli ktokolwiek inny otrzyma kiedyś dostęp do systemów produkcyjnych lub danych osobowych, musi najpierw podpisać umowę o zachowaniu poufności i przyjąć tę politykę, dostać własne konta (nigdy wspólne) z dostępem tylko do tego, czego potrzebuje, i traci ten dostęp w dniu zakończenia swojej roli.
- Główne wymagania prawne to RODO (w szczególności art. 5 ust. 1 lit. f, art. 25, 28 oraz 32–34) i ustawa o ochronie danych osobowych. SaaufAI jest mikroprzedsięwzięciem, więc nie podlega dyrektywie NIS2 ani ustawie o krajowym systemie cyberbezpieczeństwa; sprawdzamy to ponownie co roku. Obowiązki przejrzystości AI z aktu w sprawie sztucznej inteligencji (art. 50) opisują Nota prawna i Informacje o modelach.
- Publikujemy samoocenę STAR for AI Level 1 (CAIQ v4.1 i AI-CAIQ) w Cloud Security Alliance. To nasza własna ocena, a nie niezależny audyt ani certyfikat.
2. Gdzie działa usługa
- Vercel utrzymuje stronę, API i Wispy jako funkcje bezserwerowe.
- Google Cloud prowadzi serwer API pod adresem api.saauf.xyz na zabezpieczonej maszynie wirtualnej (USA), dostępnej tylko przez HTTPS, z dostępem administracyjnym wyłącznie przez serwer proxy Google z weryfikacją tożsamości, i przechowuje kopie zapasowe bazy w UE (Warszawa).
- Supabase prowadzi bazę danych w UE (Frankfurt). Baza jest niedostępna z poziomu przeglądarek; łączy się z nią tylko serwer, kluczem przechowywanym jako sekret serwera.
- SaaufAI nie ma własnych biur, serwerów ani centrów danych. Bezpieczeństwo fizyczne i środowiskowe (budynki, zasilanie, chłodzenie, sprzęt i jego utylizacja) zapewniają ci dostawcy i centra danych, z których korzystają, w ramach własnych, niezależnie audytowanych programów bezpieczeństwa.
- Pełna lista dostawców przetwarzających dane osobowe i miejsc, w których działają, jest w Polityce prywatności.
3. Klasy danych
| Klasa | Przykłady | Jak je traktujemy |
|---|---|---|
| Tajne | Klucze szyfrowania i podpisywania, klucze dostawców zewnętrznych, hasła, klucze API, tokeny sesji, dane uwierzytelniające Aplikacji | Szyfrowane algorytmem AES-256-GCM albo przechowywane tylko jako skrót. Nigdy nie trafiają do logów, nie są ponownie pokazywane po utworzeniu i nie są wysyłane do modeli. |
| Poufne | Dane konta, rozliczenia, rozmowy i pamięć Wispów, logi zapytań i zabezpieczeń, wiadomości do pomocy | Przechowywane w bazie w UE, dostępne tylko po stronie serwera dla konta, do którego należą (i dla operatora, gdy jest to potrzebne do prowadzenia usługi lub obsługi wniosku), przez okresy podane w Polityce prywatności. |
| Tylko w przesyle | Treść zapytań API i czatów w Playground, tekst wysyłany do programu Safeguards | Trzymane w pamięci na czas sprawdzenia, przetłumaczenia i przekazania, a potem usuwane. Nie są zapisywane ani logowane. |
| Publiczne | Strony i informacje o modelach, zasady, dokumentacja, publiczne Aplikacje z Marketplace | Publikowane celowo. Dane uwierzytelniające publicznych Aplikacji nigdy nie są pokazywane. |
4. Szyfrowanie i klucze
- Cały ruch do SaaufAI, do bazy danych i do dostawców zewnętrznych jest szyfrowany protokołem TLS (HTTPS).
- Klucze dostawców zewnętrznych, klucze połączeń i dane uwierzytelniające Aplikacji są szyfrowane w spoczynku algorytmem AES-256-GCM. Hasła są przechowywane jako skróty scrypt, a klucze API i tokeny sesji wyłącznie jako skróty SHA-256, więc nie możemy ich odczytać. Pliki cookie sesji są podpisywane HMAC-SHA256 i mają atrybuty HttpOnly i Secure.
- Klucze i tokeny są generowane kryptograficznie bezpiecznym generatorem liczb losowych. Każdy sekret ma jedno zastosowanie (szyfrowanie danych, podpisywanie sesji, powiadomienia push, weryfikacja webhooków) i jest przechowywany wyłącznie jako zaszyfrowana zmienna środowiskowa na platformie hostingowej, nigdy w repozytorium kodu.
- Sekret, który mógł zostać ujawniony, wymieniamy natychmiast. Własne klucze API możesz unieważnić w każdej chwili; klucze dostawców zewnętrznych można natychmiast wycofać w panelu administracyjnym.
- Nie oferujemy kluczy szyfrowania zarządzanych przez klienta.
5. Kontrola dostępu
- Środowisko produkcyjne: dostęp do kont hostingu, bazy danych, poczty, repozytorium kodu, domeny i alertów ma tylko operator. Każde z tych kont korzysta z uwierzytelniania wieloskładnikowego i unikalnego hasła z menedżera haseł.
- Panel administracyjny: dostępny przez nieogłaszaną ścieżkę logowania i tylko dla jednej tożsamości Discord. Każdy inny widzi zwykłe „nie znaleziono”. Każda strona i akcja panelu sprawdza podpisaną sesję administratora.
- Twoje konto: hasło musi mieć co najmniej 10 znaków i nie może być zbudowane z adresu e-mail; powtarzane nieudane logowania są spowalniane; logowanie na nieznany adres trwa tyle samo co z błędnym hasłem. Logowanie wieloskładnikowe nie jest jeszcze dostępne.
- Klucze API: losowe, pokazywane raz; można je ograniczyć do jednego modelu lub dostawcy, do limitu na minutę, godzinę lub dzień oraz do budżetu tokenów, zapytań, wydatków lub daty.
- Oddzielenie kont: każde zapytanie do bazy jest ograniczone do zalogowanego konta lub właściciela klucza API, a na tabelach jest włączone zabezpieczenie na poziomie wierszy (row level security).
- Operator zagląda do danych klientów tylko wtedy, gdy jest to potrzebne do prowadzenia usługi, obsługi wniosku, wyjaśnienia nadużycia albo wykonania obowiązku prawnego.
6. Zmiany i rozwój
- Każda zmiana kodu i schematu bazy to sprawdzony commit w prywatnym repozytorium git, a zmiany bazy są numerowanymi migracjami stosowanymi po kolei.
- Przed wdrożeniem zmiana jest sprawdzana pod kątem typów, a jeśli wpływa na to, co widzą użytkownicy, testowana w podglądzie. Wdrożenia buduje platforma hostingowa z repozytorium, a każde wdrożenie można natychmiast cofnąć do poprzedniego.
- Sekrety nigdy nie trafiają do repozytorium. Dane produkcyjne nie są kopiowane do środowisk deweloperskich ani testowych.
- Zmiany wpływające na wykorzystanie danych osobowych są opisywane w Polityce prywatności, zanim zaczną działać, a o istotnych zmianach informujemy posiadaczy kont e-mailem z wyprzedzeniem.
7. Podatności i zależności
- Kod korzysta z niewielu pakietów zewnętrznych, z oficjalnego rejestru npm, z wersjami zapisanymi w pliku blokady (lockfile).
- Co najmniej raz w miesiącu sprawdzamy zależności pod kątem znanych podatności i instalujemy aktualizacje bezpieczeństwa frameworka i bibliotek. Poprawki wdrażamy w ciągu 7 dni dla problemów krytycznych, 30 dni dla poważnych i 90 dni dla pozostałych, a szybciej, jeśli problem jest wykorzystywany.
- Zgłaszanie problemu: napisz na ai@saauf.xyz albo skorzystaj ze strony pomocy (zakres i zasady są na stronie Security disclosure, po angielsku). Odpowiadamy w ciągu kilku dni, informujemy o postępach i, jeśli chcesz, wymieniamy Cię z nazwiska. Nie podejmiemy kroków prawnych wobec badań prowadzonych w dobrej wierze, które szanują dane innych osób, nie zakłócają działania usługi i nie polegają na masowym automatycznym skanowaniu.
8. Logi i monitorowanie
- Przy każdym zapytaniu zapisujemy tylko metadane: który klucz i które konto, który model, liczbę tokenów, koszt, status i czas. Zdarzenia zabezpieczeń zapisują, która reguła zadziałała. Treść nie trafia do logów.
- Logi przechowujemy przez 30 dni, a potem usuwa je automatyczne codzienne czyszczenie; zostają tylko dzienne sumy dla modelu i klucza, przez 365 dni. Są dostępne tylko po stronie serwera i w panelu administracyjnym.
- Konta są automatycznie oceniane pod kątem oznak nadużyć lub nietypowej aktywności, a operator przegląda oznaczone konta. Zabezpieczenia i awarie mogą od razu wysyłać alerty do operatora.
- Modele i dostawców można w każdej chwili sprawdzić testem działania. Awarie po stronie dostawców są wykrywane automatycznie, a ruch przechodzi na inny klucz, innego dostawcę albo ujawniony model zapasowy.
9. Zabezpieczenia związane z AI
- Dostawca, modele zapasowe i model zabezpieczający każdego modelu są podane na jego stronie, więc wiesz, dokąd trafiają Twoje prompty.
- Reguły zabezpieczeń ograniczają częstotliwość zapytań, budżet tokenów i rozmiar danych wejściowych oraz mogą sprawdzać kategorie treści modelem klasyfikującym, zanim zapytanie dotrze do modelu.
- Wispy proszą Cię o zgodę przed działaniami bez Twojej wcześniejszej zgody, na przykład przed wysłaniem e-maila. Tekst odczytany z e-maili, stron internetowych lub Aplikacji traktują jako informację, a nie Twoje polecenia.
- Tekst wysyłany do programu Safeguards jest sprawdzany w pamięci i nie jest zapisywany ani wykorzystywany do trenowania.
10. Incydenty bezpieczeństwa
- Wykrycie: z alertów, monitorowania, powiadomienia od dostawcy albo zgłoszenia na ai@saauf.xyz.
- Ograniczenie: na przykład unieważnienie lub wymiana kluczy i sekretów, zablokowanie kont, modeli lub dostawców, ogłoszenie awarii albo cofnięcie wdrożenia.
- Ocena: co się stało, których danych i osób dotyczy i jak poważne jest ryzyko.
- Zawiadomienie: jeśli naruszenie ochrony danych osobowych może powodować ryzyko dla osób, zgłaszamy je Prezesowi Urzędu Ochrony Danych Osobowych w ciągu 72 godzin od jego stwierdzenia (art. 33 RODO); jeśli może powodować wysokie ryzyko, zawiadamiamy osoby, których dotyczy, bez zbędnej zwłoki (art. 34). Jeśli dotyczy tekstu przetwarzanego dla uczestnika programu Safeguards, informujemy tego uczestnika bez zbędnej zwłoki (art. 33 ust. 2). Poważne incydenty możemy też zgłosić do CERT Polska, a przestępstwa policji.
- Naprawa i wnioski: usuwamy przyczynę, sprawdzamy, czy poprawka działa, i w razie potrzeby zmieniamy tę politykę lub usługę.
Każde naruszenie ochrony danych osobowych dokumentujemy, wraz z okolicznościami, skutkami i podjętymi działaniami, także jeśli nie wymagało zgłoszenia (art. 33 ust. 5 RODO).
11. Dostępność i kopie zapasowe
- Modele mogą mieć kilku dostawców i uporządkowaną listę modeli zapasowych; klucze dostawców są łączone w pule, rotowane i automatycznie pomijane, gdy zawodzą; awarie są pokazywane na stronach modeli, których dotyczą.
- Baza danych jest zarządzaną bazą Supabase. Co noc jest też kopiowana do Google Cloud Storage w UE (Warszawa), szyfrowana w spoczynku i przechowywana przez 30 dni; zadanie kopii może dodawać kopie, ale nie może ich zmieniać ani usuwać. Co najmniej raz w roku i po istotnych zmianach sprawdzamy, czy kopię da się odtworzyć.
- Kod i migracje bazy są w repozytorium git z kopią poza platformą hostingową, więc usługę można odbudować.
- SaaufAI nie gwarantuje określonego poziomu dostępności (zob. Regulamin).
12. Dostawcy
- Wybieramy dostawców, którzy oferują umowy powierzenia przetwarzania zgodne z art. 28 RODO, publikują niezależne poświadczenia bezpieczeństwa i, gdy to możliwe, przechowują dane w UE.
- Dostawcy przetwarzający dla nas dane osobowe są wymienieni w Polityce prywatności, a dostawcy modeli AI na stronie każdego modelu. Listę i warunki każdego dostawcy przeglądamy co najmniej raz w roku i przed dodaniem nowego.
13. Urządzenia operatora
- Urządzenia używane do prowadzenia SaaufAI mają pełne szyfrowanie dysku, blokadę ekranu po kilku minutach, zaporę sieciową oraz aktualny system operacyjny i przeglądarkę.
- Sekrety są przechowywane w menedżerze haseł, a nie w dokumentach czy wiadomościach. Dane osobowe trafiają na urządzenia tylko wtedy, gdy jest to potrzebne do zadania, i są potem usuwane.
- Zgubione lub skradzione urządzenie traktujemy jako incydent bezpieczeństwa: jego sesje są wylogowywane, a przechowywane na nim sekrety wymieniane.
14. Co zależy od Ciebie
Bezpieczeństwo jest wspólne. My dbamy o usługę, Ty o sposób, w jaki z niej korzystasz:
- Trzymaj klucze API w tajemnicy: nie w kodzie po stronie klienta, publicznych repozytoriach ani na zrzutach ekranu. Używaj osobnego klucza dla każdej aplikacji, ograniczaj zakres i limity kluczy i od razu unieważnij klucz, który mógł wyciec.
- Używaj do konta SaaufAI silnego, unikalnego hasła.
- Wybieraj modele na podstawie ich informacji i nie wysyłaj szczególnych kategorii danych osobowych ani danych dzieci, chyba że musisz i masz do tego prawo.
- Sprawdzaj, na co pozwalasz Wispom oraz jakie Aplikacje i połączenia im dajesz.
- Jeśli używasz SaaufAI we własnym produkcie, poinformuj swoich użytkowników, jak przetwarzane są ich dane, w tym że trafiają do dostawców AI podanych na stronie każdego modelu.
- Jeśli podejrzewasz nadużycie swojego konta, od razu napisz na ai@saauf.xyz.
15. Przegląd
Przeglądamy tę politykę co najmniej raz w roku oraz po każdej istotnej zmianie usługi, prawa lub dostawców albo po incydencie. Data wejścia w życie na górze strony wskazuje aktualną wersję.