Bezpieczeństwo
Każde zabezpieczenie ma status i wskazany sposób sprawdzenia. Opisujemy tylko to, co jest zaimplementowane, oraz to, co jeszcze przed nami.
- Siećaplikacja i Git tylko na 127.0.0.1
- Tożsamośćhasło + TOTP, tokeny agentów
- Uprawnieniakonto → projekt → zakres tokenu
- Daneszyfrowanie sekretów, CSRF, CSP
- Operacjeaudyt, kopie, rollback
Zabezpieczenia i ich weryfikacja
Tożsamość
- Dwuskładnikowe logowanie właścicieladziała
Hasło (scrypt) i kod TOTP (RFC 6238) z blokadą ponownego użycia kodu. 8 jednorazowych kodów odzyskiwania.
Weryfikacja: testy jednostkowe (wektory RFC) i E2E
- Ochrona sesjidziała
Sesje po stronie serwera, w bazie tylko skrót identyfikatora. 30 min bezczynności, nowy identyfikator po MFA, SameSite=Strict.
Weryfikacja: tests/unit/http.test.ts
- Ochrona przed zgadywaniemdziała
Limit prób na adres IP, blokada konta na 15 minut po 5 błędach, limit prób kodu MFA.
Weryfikacja: tests/e2e
Uprawnienia
- Izolacja kontdziała
Każdy rekord należy do konta; sprawdzenie konta jest pierwszym warunkiem każdej operacji. Brak dostępu wygląda jak brak zasobu.
Weryfikacja: tests/unit/security.test.ts
- Najmniejsze uprawnienia agentówdziała
Token = lista zakresów ∩ dostęp do wskazanych projektów (odczyt/zapis). Wygasanie i natychmiastowe odwołanie.
Weryfikacja: tests/unit/kernel.test.ts, tests/e2e
- Brak zdalnej powłokidziała
MCP i API udostępniają wyłącznie operacje silnika. Nie ma narzędzi do poleceń systemowych ani odczytu sekretów.
Weryfikacja: przegląd kodu src/api/ops.ts
Dane
- Sekrety zaszyfrowanedziała
Tokeny Google, klient OAuth i klucz API: AES-256-GCM. Hasła i tokeny agentów wyłącznie jako skróty.
Weryfikacja: tests/unit/crypto.test.ts, google.test.ts
- Formularze i nagłówkidziała
Token CSRF i kontrola Origin, Content-Security-Policy bez skryptów zewnętrznych, nosniff, zakaz osadzania w ramkach.
Weryfikacja: tests/unit/http.test.ts
- Kontrola indeksowaniadziała
noindex w treści i nagłówku X-Robots-Tag do decyzji właściciela. Panele i API pozostają prywatne zawsze.
Weryfikacja: test automatyczny polityki
Operacje
- Dziennik działań administracyjnychdziała
Logowania, nieudane próby, zmiany dostępu, tokeny i integracje zapisywane z czasem i adresem IP.
Weryfikacja: panel: Dziennik
- Kopie i odtworzeniedziała
Codzienna kopia i kopia przed każdym wdrożeniem: baza, repozytoria, konfiguracja. Odtworzenie ćwiczone na zapasowych portach.
Weryfikacja: scripts/restore-drill.sh
- Szyfrowanie kopii poza serweremdziała
Szyfrowanie kluczem publicznym (X25519 + AES-256-GCM); serwer nie ma klucza do odczytu. Kopie pobierane poza serwer przy każdym wdrożeniu.
Weryfikacja: scripts/backup-verify.sh: odszyfrowanie i odtworzenie kopii z VM
Sieć
- Usługi tylko lokalniedziała
Aplikacja i Git nasłuchują wyłącznie na 127.0.0.1. Dostęp do podglądu przez tunel SSH.
Weryfikacja: weryfikacja gniazd na serwerze
- Publiczny HTTPSplanowane
TLS przez zewnętrzny reverse proxy, HSTS, cookies Secure. Uruchomienie po decyzji o publicznym starcie.
Weryfikacja: —
Twoje dane
Kod, zadania i historia są w bazie i repozytoriach na Twojej maszynie.
Dane z Google Analytics i Search Console nie są kopiowane. PiviKernel przechowuje zaszyfrowany token i pobiera raport w chwili zapytania.
Po odłączeniu konta Google PiviKernel usuwa token z bazy i wysyła żądanie jego odwołania do Google. Panel informuje, czy Google potwierdziło odwołanie.
Kopie zapasowe powstają codziennie i przed każdym wdrożeniem. Wersja przeznaczona do przechowywania poza serwerem jest szyfrowana kluczem publicznym właściciela — serwer nie ma klucza, który pozwala ją odczytać.
Czego PiviKernel nie robi
- Nie prosi o hasło do konta Google ani innych usług — tylko o zgodę OAuth.
- Nie kopiuje danych z Google Analytics i Search Console — pobiera raport w chwili zapytania.
- Nie wykonuje poleceń systemowych na żądanie agenta.
- Nie publikuje niczego w wyszukiwarkach bez decyzji właściciela.