Połączenie z drukarkami
Gantry łączy się z drukarkami bezpośrednio w Twojej sieci lokalnej, protokołem producenta. Nie ma serwera pośredniczącego.
- Bambu Lab: MQTT szyfrowany TLS. Certyfikat drukarki jest przypinany przy pierwszym połączeniu (trust on first use), a późniejsza nieoczekiwana zmiana certyfikatu blokuje połączenie.
- Klipper, PrusaLink i inne API HTTP: gdy drukarka lub serwer działa po HTTPS, Gantry sprawdza certyfikat i nie rozluźnia jego walidacji. Błąd certyfikatu nie przełącza po cichu na inny adres.
- Wybór karty sieciowej: połączenie można przypiąć do konkretnej karty, a Gantry blokuje adresy, które mogłyby ominąć to przypięcie.
Kody dostępu, klucze API i tokeny
- macOS: Pęk kluczy.
- Windows: DPAPI, czyli szyfrowanie powiązane z kontem użytkownika.
- Linux: Secret Service (np. GNOME Keyring). Bez zgodnego magazynu Gantry odmawia zapisu haseł jawnym tekstem, a plik ustawień ma prawa tylko dla właściciela.
- Tokeny integracji (np. Bearer dla Spoolmana i webhooków) trafiają do tego samego magazynu, nie do zwykłych ustawień.
Zdalny dostęp i API
- Lokalny serwer podglądu działa tylko w Twojej sieci i służy do odczytu.
- Most na własny hosting podpisuje każde przesłanie HMAC-SHA256 kluczem mostu. Serwer liczy podpis z dokładnie tych bajtów, które przyszły, i odrzuca wszystko, czego nie podpisało Gantry, więc nikt po drodze nie dopisze drukarki ani nie zmieni temperatury.
- Panel WWW na hostingu działa po HTTPS. Hasło strony jest zapisane jako skrót, klucz mostu zostaje po stronie PHP i nie trafia do JavaScriptu. Sesja używa ciasteczka HttpOnly i SameSite, formularze mają ochronę CSRF, a próby logowania są limitowane.
- Sterowanie jest opcjonalne: tryb Tylko podgląd nie przyjmuje poleceń, a nawet po włączeniu sterowania polecenia wykonuje aplikacja na Twoim komputerze, w granicach tego, co dopuszcza drukarka.
- Telegram łączy się bezpośrednio z Bot API przez Twojego bota i odpowiada tylko w skonfigurowanym czacie.
Gantry Cloud: szyfrowanie end-to-end
Dane drukarek są szyfrowane na Twoim komputerze, zanim opuszczą sieć. Serwer przechowuje i przekazuje tylko szyfrogram.
- AES-256-GCM dla stanu drukarek, obrazu z kamer, farmy i statystyk. Odszyfrowuje dopiero Twoja przeglądarka.
- Klucz z dwóch części: na serwer trafia tylko część logująca, zapisana jako skrót. Część szyfrująca zostaje w aplikacji i w Twoich przeglądarkach.
- Polecenia (np. pauza) szyfruje przeglądarka, a odszyfrowuje dopiero aplikacja.
- Sejf kluczy możesz chronić osobnym hasłem: PBKDF2-HMAC-SHA256, 600 000 iteracji i losowa sól. Hasło i kod odzyskiwania nie są wysyłane na serwer.
- Konto: tylko HTTPS z HSTS, hasła jako skróty Argon2id, ścisła polityka bezpieczeństwa treści (CSP), a panel administratora wymaga drugiego składnika (TOTP).
- Integracje sklepów i fakturowania przechowują klucze API zaszyfrowane kluczem serwera (AES-256-GCM). To inny mechanizm niż dane drukarek, bo serwer musi z nimi rozmawiać w Twoim imieniu.
Szczegóły: Jak szyfrujemy w Gantry Cloud.
Aktualizacje i otwarty kod
- Kod Gantry jest otwarty na licencji MIT, więc każde zabezpieczenie z tej strony możesz sprawdzić na GitHubie.
- Pakiet aktualizacji jest weryfikowany podpisem kodu na macOS i sumą SHA-256 na Windows.
- Do każdego wydania publikujemy sumy kontrolne plików.
Uczciwie o ograniczeniach
- Przypięcie certyfikatu chroni kolejne połączenia, ale pierwsze połączenie z drukarką musi odbyć się w zaufanej sieci.
- Panel Gantry Cloud jest ładowany z serwera. Gdyby ktoś przejął serwer i podmienił kod strony, mógłby próbować przechwycić klucz w przeglądarce. Aplikacja na komputerze tego ryzyka nie ma.
- Serwer Cloud widzi metadane: kiedy i ile danych przesyła Twój komputer.
- Aplikacja na macOS nie jest jeszcze notaryzowana przez Apple, a paczki na Windows nie mają komercyjnego podpisu wydawcy.
Zgłoś problem z bezpieczeństwem
Jeśli znajdziesz lukę, nie publikuj jej w otwartym zgłoszeniu. Użyj prywatnego zgłoszenia podatności na GitHubie albo napisz na info@gantry3d.pl. Nie dołączaj kodów dostępu, numerów seryjnych ani adresów IP.