Podpisanie Kompilacji Serwera

Model podpisywania APK systemu Android zakłada, że klucz podpisu będzie taki sam przez cały czas życia aplikacji. Widać to w zalecanym typie życia klucza podpisu Androida: 20+ lat. Poza tym trudno jest przenieść aplikację na nowy klucz. Ponieważ klucz podpisujący jest niezbędnym elementem zapobiegającym podszywaniu się plików APK, klucze do podpisów Androida muszą być bezpiecznie przechowywane przez cały okres życia aplikacji.

Klucze do podpisywania repo F-Droida działają według bardzo podobnego modelu: klucz podpisujący jest podstawowym sposobem bezpiecznego zidentyfikowania repozytorium F-Droid. Tak więc te same uwagi odnoszą się do kluczy podpisywania repo F-Droida, jak do kluczy podpisujących APK. Zapewnia to również kilka naprawdę użytecznych korzyści. Ponieważ integralność pliku indeksu repo i plików APK jest gwarantowana przez sygnaturę repo, pliki mogą być dostarczane za pomocą dowolnej metody, a ich integralność zostanie automatycznie zweryfikowana przez aplikację kliencką F-Droid, f-droid.org wdrożyć proces i Repomaker.

Oznacza to, że obciążenie związane z bezpieczeństwem zostaje przeniesione z internetowego, publicznego serwera WWW na prywatny komputer podpisujący. Wyłączenie tej maszyny z publicznego punktu widzenia stanowi długą drogę do poprawy bezpieczeństwa. Istnieje szereg dodatkowych środków, które można podjąć w celu dalszej poprawy bezpieczeństwa procesu podpisywania. Oto kilka podejść, poczynając od najłatwiejszego i najmniejszego bezpieczeństwa, a kończąc na bezpieczniejszych konfiguracjach, które wymagają więcej pracy do skonfigurowania i uruchomienia. Podpisywanie nie jest procesem wymagającym dużych zasobów, więc każda maszyna będzie działać, nawet 10-letni, podstawowy laptop. Zalecamy instalację minimalną Debian i przebudowanie maszyny od nowa.

Automatyczny serwer podpisywania z HSM

Aby w pełni zautomatyzować konfigurację podpisywania, urządzenie, na którym jest podpisane, musi być w trybie online i działać. Idealnie byłoby, gdyby ten komputer nie miał dostępu zdalnego, a przynajmniej dostęp zdalny powinien być bardzo dokładnie kontrolowany i monitorowany. Laptop ułatwia pracę nawet, gdy zdalny dostęp jest wyłączony, ponieważ zapewnia wbudowaną klawiaturę i monitor. Jeśli wymagany jest dostęp zdalny, wówczas każdy podstawowy komputer będzie działał prawidłowo. Używanie modułu bezpieczeństwa sprzętowego (HSM) do przechowywania kluczy zapobiega ich kradzieży w przypadku włamania do serwera. Osoba atakująca może uruchomić proces podpisywania tylko na tym serwerze.

Idealnie byłoby, gdyby ten komputer był dostępny tylko przez Tora. Ukrywa fizyczną lokalizację serwera i ukrywa ruch sieciowy. To znacznie utrudnia atakującym znalezienie maszyny do ataku.

W przypadku HSM zalecamy korzystanie ze sprzętu Nitrokey, ponieważ są one wolnym oprogramowaniem/sprzętem i oferują szeroki zakres opcji. Użyj osobnego komputera, aby umieścić klucze podpisu w HSM. Dobry HSM będzie utrzymywał dziennik audytu liczby podpisów, tak aby można było wykorzystać informacje do stworzenia automatycznego procesu audytu w celu podniesienia alarmów, gdyby wykonano zbyt wiele podpisów. Może to oznaczać, że serwer został naruszony i używany do podpisywania nieautoryzowanych pakietów.

Inna możliwość to użycie konfiguracji jak Sigul Fedory, który wykorzystuje trzy maszyny.

Podstawowy laptop dedykowany do podpisu

Zacznij od laptopa, który można wyczyścić i przebudować od zera. Najważniejsze jest to, że zainstalowane jest na nim tylko niezbędne oprogramowanie i nic więcej. W ogóle nie włączaj żadnej przeglądarki, ponieważ jest to najpowszechniejszy wektor ataku. Żadne ustawienia dostępu zdalnego (np. SSH lub VNC) nie powinny być instalowane ani konfigurowane. Aby podpisywać aplikacje i repozytorium, ktoś wyjąłby tego laptopa, podłączył go do sieci i uruchomił proces podpisywania. Podpisane wyniki można następnie opublikować za pośrednictwem połączenia sieciowego. Po zakończeniu podpisywania urządzenie można wyłączyć, odłączyć i przechowywać w bezpiecznym miejscu.

Można to zrobić całkiem automatycznie za pomocą niektórych niestandardowych skryptów. Osoba prowadząca proces musiałaby jedynie wyjąć maszynę, podłączyć ją, włączyć, poczekać, aż proces się zakończy, a następnie odłożyć wszystko ponownie.

W pełni offline, podpisując laptopa z pamięci USB

en proces opiera się na tym samym podstawowym, zdemontowanym laptopie, jak w poprzednim przykładzie. Ale tym razem sieć powinna być całkowicie wyłączona przed procesem instalacji. Na przykład w wielu laptopach łatwo jest fizycznie usunąć kartę WiFi. Dlatego warto używać laptopa, który nie ma gniazda ethernetowego, którego zwykle nie można usunąć. W przeciwnym razie wystarczy czarna lista wszystkich modułów jądra związanych z nowością. Ponieważ to urządzenie jest w pełni niedostępne, dodatkowa praca z wykorzystaniem HSM nie jest tak ważna, ale nie zaszkodzi go uwzględnić.

Pobierz pełny obraz „CD” lub „DVD” Debiana, aby uruchomić instalację. Pamiętaj o weryfikacji podpisów GPG i skrótów SHA-256. Aby zaktualizować maszynę offline, wymagana jest konfiguracja „apt offline”.

Aby zachować szczególną ostrożność, całe oprogramowanie powinno zostać zweryfikowane. Chromebooki to ładne, tanie laptopy z systemem Linux. Używają także Coreboot do BIOS-u.

  • Kup komputer z półki za gotówkę, unikaj wysyłania go, zwłaszcza za granicę
  • Kup obsługiwany przez Debiana Chromebook z odłączanym sprzętem WiFi i nie wymaga binarnych bloków plam
  • Zainstaluj powtarzalnie kompilowalny plik binarny Coreboot
  • Zainstaluj z odtwarzanego obrazu Debiana, całkowicie usuwając system operacyjny Chrome

Środowisko fizyczne

Ostatnią rzeczą do rozważenia jest fizyczna lokalizacja, w której odbywają się podpisy i gdzie przechowywane są niezbędne urządzenia. Warunki podpisywania muszą być fizycznie bezpieczne. W przeciwnym razie nie można zapobiec zgubieniu laptopów lub HSM lub użyć ich do podpisywania nieodpowiednich treści. W przypadku urządzeń pracujących w trybie offline utrzymanie ich w zamkniętym pomieszczeniu to dobry początek. W przypadku komputera online wymuszenie całego ruchu sieciowego i zdalnego dostępu przez Tora powoduje ukrycie fizycznej lokalizacji urządzenia przed obserwatorami sieci.

W przypadku kluczy podpisywania wysokiego ryzyka ważne jest używanie wielu warstw obrony:

  • Ograniczony fizyczny dostęp do HSM lub kart inteligentnych
  • Kamery bezpieczeństwa
  • Ochroniarze na miejscu
  • Rejestracja odwiedzających
  • Bezpieczny serwer odporny na ataki dla serwerów podpisujących kody online

Serwer podpisujący powinien być fizycznie oddzielony od reszty infrastruktury. Dzienniki, maszyny i sieć powinny być okresowo kontrolowane.

Trudne decyzje

Najlepiej byłoby, gdyby wszystkie te praktyki zostały wprowadzone, ale każdy z tych środków bezpieczeństwa wiąże się z kosztem trudności, kosztów i złożoności. Mogą również opóźnić proces uzyskiwania regularnych aktualizacji. Istnieje ryzyko wprowadzenia zbyt restrykcyjnych polityk bezpieczeństwa, podobnie jak ryzyko niewystarczającego wdrożenia.