Skip to Content
BezpieczeństwoKlucze podpisujące

Klucze podpisujące

IronFlock podpisuje wszystko, co instalują urządzenia i Appliance. Każde urządzenie i każdy Appliance sprawdza podpis kluczami, które już posiada, zanim uruchomi lub wykorzysta to, co zostało pobrane. Ta strona wymienia te klucze, to, co podpisuje każdy z nich, oraz sposób wymiany klucza (rotacji) tak, aby każde urządzenie i każdy Appliance nadal mogły sprawdzić swoją następną aktualizację.

Klucze

KluczCo podpisujeKto go sprawdza
IronFlock Appliance Release — OpenPGP, RSA 4096, odcisk 8B37 990C 2980 0418 4664 75B8 D8E6 DD6C 025B B56Dinstalator Appliance, listę dostępnych wersji oraz manifest wydania każdej wersji (sumy kontrolne jej plików i tożsamości wszystkich jej obrazów kontenerów)ironflock-update i instalator na Appliance
IronFlock Bootstrap — OpenPGP, RSA 4096, odcisk F6C9 4D96 CE31 5377 ACA7 C8EA 4990 5433 7321 2788instalator urządzenia install.sh, jego plik wersji i program ironflock-initinstall.sh na urządzeniu
Aktualizacje agenta urządzenia — dwa klucze Ed25519, ID 4193db1f i 2b040fcfaktualizacje agenta urządzenia i klient zdalnego dostępu, który pobiera agentagent urządzenia i ironflock-init
IronFlock Code Signing Root — X.509, RSA 4096, odcisk SHA-256 1D:F4:F2:EC:32:E3:FF:2E:9E:CD:89:7E:92:F9:16:4C:C1:8A:CE:CF:96:DE:E8:55:7A:3F:5D:95:9E:8B:DB:69, ważny do lipca 2036certyfikat klucza podpisującego Windows poniżej i nic więcejagent urządzenia w systemie Windows
IronFlock Device Agent (klucz podpisujący Windows) — Authenticode, RSA 4096, numer seryjny certyfikatu D137272B35F0ED5211219674E8B052B4, wystawiony przez certyfikat główny podpisywania kodu, ważny do czerwca 2036agent urządzenia dla Windows i jego klient zdalnego dostępu frpc.exeagent urządzenia w systemie Windows, oprócz podpisu aktualizacji; od wersji agenta 1.5.6 plik, który nie przejdzie tego sprawdzenia, jest odrzucany

Oba klucze OpenPGP można pobrać do ręcznego sprawdzenia: klucz Appliance z https://instance-registry.ironflock.com/dl/appliance/appliance-release.asc (zobacz Sprawdź instalator przed pierwszą instalacją), a klucz bootstrap z https://instance-registry.ironflock.com/dl/device-init/ironflock-bootstrap.asc (zobacz Opcjonalnie: najpierw zweryfikuj instalator). Porównaj odcisk zgłoszony przez gpg z odciskiem podanym na tej stronie. Klucze agenta urządzenia są wbudowane w agenta; nie ma tu nic do sprawdzania ręcznie.

W systemie Windows agent urządzenia sprawdza każdą aktualizację i każdy pobierany frpc.exe względem wbudowanego w niego certyfikatu głównego podpisywania kodu: plik musi mieć prawidłowy podpis klucza podpisującego, którego certyfikat wystawił ten certyfikat główny. Od wersji 1.5.6 plik, który nie przejdzie sprawdzenia, jest usuwany i nie zostaje uruchomiony; wersje 1.5.4 i 1.5.5 tylko zapisywały błąd w logu. Certyfikat klucza podpisującego jest sprawdzany według czasu sprawdzenia, więc urządzenie z systemem Windows, którego zegar wskazuje czas spoza okresu ważności certyfikatu, nie aktualizuje się, dopóki zegar nie zostanie ustawiony prawidłowo. Przy każdym uruchomieniu agent sprawdza też własny plik wykonywalny i zapisuje codesign: self-check passed lub codesign: self-check FAILED w swoim logu, C:\ProgramData\IronFlock\DeviceAgent\device-agent.log; urządzenie, które zapisuje FAILED, odrzuca aktualizacje podpisane tak samo jak agent, którego uruchamia.

Instalator agenta dodaje też certyfikat główny podpisywania kodu do zaufanych certyfikatów głównych komputera. Sprawdzenie wykonywane przez agenta tego nie wymaga, więc urządzenie zainstalowane, zanim instalator zaczął to robić, sprawdza swoje aktualizacje w ten sam sposób. Aby sprawdzić, że jest to certyfikat główny z tej strony, uruchom w PowerShell Get-ChildItem Cert:\LocalMachine\Root | Where-Object Subject -like '*IronFlock Code Signing Root*' | Format-List Subject, Thumbprint, NotAfter; odcisk palca (Thumbprint) musi mieć wartość 6083E7E2446B8C95A6F6B2E3CFE354AE02859196. Gdy certyfikat główny tam jest, Get-AuthenticodeSignature "$env:ProgramData\IronFlock\DeviceAgent\device-agent.exe" | Select-Object Status, @{ n = 'Serial'; e = { $_.SignerCertificate.SerialNumber } } pokazuje Valid; Windows zapisuje numer seryjny z wiodącym 00, jako 00D137272B35F0ED5211219674E8B052B4. Agent urządzenia w wersjach starszych niż 1.5.4 oraz frpc.exe do wersji frp 0.71.1 są podpisane poprzednim certyfikatem klucza podpisującego Windows, numer seryjny 481360741E254378C38A5236940BFFA44CFDD809, wystawionym przez ten sam certyfikat główny. Nie podpisuje się nim już niczego nowego; agent akceptuje jego podpisy do wygaśnięcia certyfikatu w październiku 2028.

Jak przechowywane są klucze

  • Kluczy z tej strony nie można wyeksportować, z wyjątkiem certyfikatu głównego podpisywania kodu. Ich klucze prywatne są przechowywane w systemie zarządzania kluczami IronFlock i tam odbywa się podpisywanie. Certyfikat główny podpisywania kodu nie podpisuje oprogramowania, tylko certyfikat klucza podpisującego Windows, a jego klucz jest używany tylko wtedy, gdy ten certyfikat jest wymieniany.
  • Wydania są podpisywane przez ich potok wydań. Kluczem, którym podpisywane są wydania danego produktu, może się posłużyć wyłącznie zautomatyzowany proces wydania tego produktu, po przejściu jego kontroli i testów.
  • Agent urządzenia ufa dwóm niezależnym kluczom. Nowe wydania są podpisywane pierwszym z nich. Drugim podpisano wcześniejsze wydania i nadal podpisuje się nim ręcznie aktualizacje dla starszych agentów i starszych wersji ironflock-init, które ufają tylko temu kluczowi. Jest on też przechowywany na wypadek, gdyby pierwszego nie można było już używać; wtedy aktualizacje są podpisywane drugim, dzięki czemu urządzenia nadal się aktualizują bez żadnego ustawienia, które pomijałoby sprawdzenie.

Rotacja klucza

Klucz jest wymieniany, gdy dobiega końca jego planowany okres użytkowania, albo natychmiast, gdy istnieje podejrzenie, że został skompromitowany. Ta sekcja dotyczy powyższych kluczy podpisujących; własne wewnętrzne sekrety Appliance wymienia się poleceniem ironflock-update --rotate, zobacz Sekrety na hoście. Rotacja zawsze przebiega w trzech krokach, tak aby każde urządzenie i każdy Appliance mogły po drodze sprawdzić każdą aktualizację:

  1. Dodawany jest nowy klucz. Wydanie dodaje nowy klucz do kluczy, którym ufa urządzenie lub Appliance. To wydanie jest jeszcze podpisane bieżącym kluczem, więc wszystko, co się do niego aktualizuje, akceptuje je.
  2. Podpisywanie przechodzi na nowy klucz. Gdy w terenie działa już wydanie ufające obu kluczom, IronFlock podpisuje nowym kluczem. W tym okresie stary klucz jest nadal zaufany.
  3. Stary klucz jest wycofywany. Późniejsze wydanie usuwa stary klucz. Od tej chwili podpis starym kluczem jest odrzucany, a klucz jest wymieniony w sekcji Wycofane klucze.

Co to oznacza dla poszczególnych kluczy:

  • Klucz podpisujący wydania Appliance. Appliance ufa kluczom, z którymi zapisano jego ironflock-update, więc musi zainstalować wydanie z kroku 1, zanim będzie mógł sprawdzać aktualizacje podpisane w kroku 2. Appliance, który nie był aktualizowany przez cały okres przejściowy, zatrzymuje aktualizację, zanim cokolwiek się zmieni; uruchom wtedy raz ręcznie instalator, sprawdzony nowym kluczem, zgodnie z opisem w Sprawdź instalator przed pierwszą instalacją.
  • Klucze aktualizacji agenta urządzenia. Urządzenie ufa kluczom wbudowanym w agenta, którego uruchamia. Urządzenie, które było offline przez cały okres przejściowy, nie może sprawdzić aktualizacji podpisanych nowym kluczem; zainstaluj ponownie jego agenta za pomocą instalatora urządzenia, który ufa nowemu kluczowi.
  • Klucz bootstrap. install.sh jest pobierany na nowo przy każdej instalacji i zawiera klucz, którym sprawdza, więc nowy klucz zaczyna obowiązywać wraz z następnym wydaniem instalatora, bez okresu przejściowego. Zmienia się tylko sprawdzanie ręczne: porównuj z odciskiem podanym na tej stronie.
  • Podpisywanie kodu dla Windows. Urządzenie z systemem Windows ufa certyfikatowi głównemu podpisywania kodu, a nie kluczowi podpisującemu. Nowy certyfikat klucza podpisującego, wystawiony przez ten sam certyfikat główny, zaczyna obowiązywać wraz z następnym wydaniem, bez okresu przejściowego, i na urządzeniu nie trzeba nic robić. Ponieważ agent sprawdza certyfikat klucza podpisującego według czasu sprawdzenia, plik podpisany certyfikatem, który wygasł, jest odrzucany; dlatego certyfikat klucza podpisującego jest wymieniany na długo przed jego wygaśnięciem. Sam certyfikat główny jest wymieniany w trzech powyższych krokach, na długo przed jego wygaśnięciem w lipcu 2036; urządzenie z systemem Windows, które było offline przez cały okres przejściowy, wymaga ponownej instalacji agenta. Zaufane certyfikaty główne komputera zachowują certyfikat główny dodany przez instalator, więc po rotacji certyfikatu głównego powyższe sprawdzenie w PowerShell może pokazywać tylko poprzedni certyfikat główny; agent sprawdza względem certyfikatów głównych wbudowanych w niego.

W okresie przejściowym ta strona wymienia oba klucze wraz z ich odciskami, a uwagi do wydania zapowiadają każdy krok. Na Appliance lub urządzeniu, które jest na bieżąco aktualizowane, nie trzeba nic robić.

Jeśli klucz zostanie skompromitowany, IronFlock natychmiast przestaje nim podpisywać, w krótkim terminie przeprowadza jego rotację w opisany wyżej sposób i publikuje biuletyn bezpieczeństwa.

Wycofane klucze

Na razie brak.

Last updated on