Automatyczne aktualizacje — dlaczego są bezpieczne
A4G Connect aktualizuje się sam, żeby poprawki i nowe funkcje docierały bez wizyty informatyka. Aktualizacja nie może jednak być furtką: dlatego każda nowa wersja musi być podpisana kluczem A4G, a program — także nowy — działa z tymi samymi, wąskimi uprawnieniami co wcześniej.
Jak przebiega aktualizacja
- Sprawdzenie. Zadanie systemowe „A4G Connect Updater” co godzinę (z losowym opóźnieniem do 10 minut) pobiera
przez HTTPS opis najnowszego wydania z
a4g.io. - Weryfikacja podpisu. Opis wydania musi mieć ważny podpis cyfrowy (Ed25519) złożony kluczem wydań A4G. Klucz publiczny do weryfikacji jest wbudowany w program — nie jest pobierany z internetu. Bez ważnego podpisu nic nie jest instalowane.
- Weryfikacja paczki. Pobrana paczka musi mieć dokładnie ten skrót SHA-256, który jest w podpisanym opisie. Sprawdzany i rozpakowywany jest ten sam plik, a z paczki wypakowywane są tylko dwa znane pliki programu.
- Tylko w przód. Instalowana jest wyłącznie wersja nowsza od obecnej. Starszej (nawet podpisanej) nie da się „podsunąć” — to chroni przed powrotem do wersji z poprawionym błędem.
- Instalacja obok. Nowa wersja trafia do osobnego katalogu
versions\<wersja>; poprzednia zostaje na dysku. - Kontrola zdrowia. Usługa startuje z nową wersją i w ciągu 5 minut musi działać i przejść autotest
(
check: konfiguracja, baza, uprawnienia, łączność z A4G). - Automatyczny powrót. Jeśli nowa wersja nie działa, aktualizator wraca do poprzedniej i nie próbuje już tej wersji ponownie. Wynik każdej aktualizacji widać na stronie Źródła danych.
Co ogranicza każdą wersję programu
Usługa A4G Connect — w każdej wersji, także po aktualizacji — działa jako konto usługi Windows
NT SERVICE\A4GConnect o minimalnych uprawnieniach. Aktualizacja zmienia tylko plik programu, nigdy konto ani
uprawnienia. Dlatego:
- w bazie Subiekta program może tylko czytać 16 wskazanych tabel — tak ustawił je SQL Server przy instalacji i żadna wersja programu tego nie zmieni (szczegóły);
- w KSeF może tylko przeglądać faktury — tak jak pozwala token z uprawnieniem „Przeglądanie faktur”, a to egzekwuje Ministerstwo Finansów (szczegóły);
- na komputerze może zapisywać tylko we własnym katalogu danych; katalog programu mogą zmieniać wyłącznie administratorzy.
Nawet wadliwa wersja programu nie może więc zmienić danych w Subiekcie ani wystawić czegokolwiek w KSeF.
Jak chroniony jest sam podpis
- Klucz prywatny, którym A4G podpisuje wydania, nie jest przechowywany na serwerach ani w repozytorium kodu — jest trzymany offline i używany tylko do podpisania wydania.
- Aktualizator przyjmuje wyłącznie podpisy kluczami wbudowanymi w program. Bez nich odrzuca każdą aktualizację (zasada „w razie wątpliwości — nie instaluj”).
- Paczki są serwowane przez HTTPS, ale bezpieczeństwo nie opiera się na serwerze: nawet podmieniona paczka nie przejdzie weryfikacji podpisu i skrótu.
Ważne
Uczciwie o granicach: sam aktualizator — mały, stały program — działa z uprawnieniami systemu Windows (SYSTEM), bo musi móc podmienić usługę. Ograniczenia bazy i tokenu KSeF chronią przed błędem w programie usługi; przed podrobionym wydaniem chroni podpis i to, że klucz wydań jest przechowywany offline. Jeśli Twoja polityka bezpieczeństwa wymaga, by każda aktualizacja była zatwierdzana ręcznie, wyłącz aktualizacje automatyczne (niżej).
Wyłączenie aktualizacji automatycznych
Aktualizacje automatyczne są domyślnie włączone. Możesz je wyłączyć:
- w instalatorze — odznaczając automatyczne aktualizacje;
- w pliku
C:\Program Files\A4G Connect\appsettings.json:"Updates": { "Enabled": false }.
Wtedy nowe wersje instalujesz ręcznie, uruchamiając nowy Setup.exe. Wszystkie wydania mają ten sam podpis i są
sprawdzane tak samo.
Aktualizacja na żądanie
Nie musisz czekać na kolejne sprawdzenie. W PowerShell jako administrator:
Start-ScheduledTask -TaskPath '\A4G\' -TaskName 'A4G Connect Updater'
Po kilku minutach nowa wersja jest w C:\Program Files\A4G Connect\versions\<wersja>.
Ostrzeżenie SmartScreen
Programy A4G Connect nie mają jeszcze podpisu Authenticode (certyfikatu wydawcy Windows), więc przy ręcznym uruchomieniu instalatora Windows może pokazać ostrzeżenie. Nie dotyczy to aktualizacji automatycznych, które weryfikują własny podpis wydań opisany wyżej.