Przejdź do głównej zawartości

Autentyczność plików binarnych

Speedwave weryfikuje integralność wydań za pomocą dwóch niezależnych warstw kryptograficznych: podpisywania kodu na poziomie systemu operacyjnego podczas pierwszej instalacji oraz wewnętrznej weryfikacji podpisów przy aktualizacjach automatycznych. Szerszy kontekst znajdziesz w sekcji Architektura bezpieczeństwa.

W systemie macOS każdy plik wykonywalny wchodzący w skład paczki Speedwave.app (w tym wbudowane środowisko Lima, Node.js, mostki w języku Swift oraz CLI w Rust) jest podpisany oficjalnym certyfikatem Apple Developer ID firmy Speednet. Wszystkie binarki korzystają z mechanizmu Apple Hardened Runtime i posiadają bezpieczny znacznik czasu. Paczki instalacyjne przechodzą proces notaryzacji w usłudze Apple Notary Service z dołączonym biletem (stapled ticket), co umożliwia weryfikację przez Gatekeepera również w trybie offline.

Ta warstwa zapewnia potrójną ochronę:

  1. Jakakolwiek modyfikacja pliku w trakcie pobierania unieważnia podpis Gatekeepera.
  2. Wyłącznie pliki wygenerowane przy użyciu kluczy prywatnych Speednet są dopuszczane do uruchomienia.
  3. Apple Hardened Runtime uniemożliwia wstrzykiwanie obcego kodu do działających procesów.

W przypadku zainstalowanych aplikacji moduł automatycznej aktualizacji weryfikuje każde pobrane archiwum względem klucza publicznego Ed25519 wbudowanego na stałe w binarkę. Klucz prywatny znajduje się wyłącznie w odizolowanym środowisku CI i nie jest przechowywany na stacjach roboczych deweloperów. Nawet w razie przejęcia serwerów dystrybucyjnych mechanizm aktualizacji odrzuci każdy pakiet, który nie został podpisany autoryzowanym kluczem CI.

Pierwsza instalacja jest chroniona podpisem systemowym, natomiast aktualizacje przechodzą przez obie warstwy: weryfikację sumy i podpisu Ed25519 podczas pobierania oraz ponowną walidację Gatekeepera po restarcie aplikacji.

Szczegóły procedury uzgadniania wersji znajdziesz w rozdziale Aktualizacja i odzyskiwanie (architektura).