Ogłoszono system weryfikacji kryptograficznej Sigstore

Google poinformował o powstaniu pierwszych stabilnych wydań komponentów składających się na projekt Sigstore, który jest zadeklarowany jako nadający się do tworzenia działających implementacji. Sigstore rozwija narzędzia i usługi do weryfikacji oprogramowania za pomocą podpisów cyfrowych oraz utrzymywania publicznego dziennika potwierdzającego autentyczność zmian (transparency log). Projekt jest rozwijany pod auspicjami organizacji non-profit Linux Foundation przez Google, Red Hat, Cisco, vmWare, GitHub i HP Enterprise przy udziale OpenSSF (Open Source Security Foundation) i Purdue University.

Sigstore można traktować jako Let's Encrypt for code, dostarczając certyfikaty do cyfrowego podpisywania kodu oraz narzędzia do automatyzacji weryfikacji. Dzięki Sigstore programiści mogą cyfrowo podpisywać artefakty związane z aplikacjami, takie jak pliki wersji, obrazy kontenerów, manifesty i pliki wykonywalne. Materiał użyty do podpisania znajduje odzwierciedlenie w odpornym na manipulacje dzienniku publicznym, którego można użyć do weryfikacji i audytu.

Zamiast kluczy stałych Sigstore stosuje krótkotrwałe klucze efemeryczne, które są generowane na podstawie poświadczeń weryfikowanych przez dostawców OpenID Connect (w momencie generowania kluczy niezbędnych do stworzenia podpisu cyfrowego programista identyfikuje się za pośrednictwem dostawcy OpenID z wiązaniem e-mail ). Autentyczność kluczy jest weryfikowana przez publiczny scentralizowany dziennik, który pozwala upewnić się, że autor podpisu jest dokładnie tym, za kogo się podaje, a podpis został złożony przez tego samego uczestnika, który był odpowiedzialny za poprzednie wydania.

Gotowość Sigstore do wdrożenia wynika z powstania wydań dwóch kluczowych komponentów – Rekor 1.0 i Fulcio 1.0, których interfejsy programistyczne deklaruje się jako stabilne i zachowujące odtąd kompatybilność wsteczną. Komponenty usługi są napisane w Go i dystrybuowane na licencji Apache 2.0.

Komponent Rekor zawiera implementację dziennika do przechowywania podpisanych cyfrowo metadanych odzwierciedlających informacje o projektach. Aby zapewnić integralność i ochronę przed uszkodzeniem danych, używana jest struktura drzewa Merkle Tree, w której każda gałąź weryfikuje wszystkie leżące u jej podstaw gałęzie i węzły poprzez wspólne (drzewa) mieszanie. Mając końcowy hash, użytkownik może zweryfikować poprawność całej historii operacji, jak również poprawność przeszłych stanów bazy danych (hasz weryfikacyjny root nowego stanu bazy danych jest obliczany z uwzględnieniem stanu przeszłego ). Dostępny jest RESTful API do weryfikacji i dodawania nowych rekordów, a także interfejs wiersza poleceń.

Komponent Fulcio (SigStore WebPKI) zawiera system do tworzenia urzędów certyfikacji (root CA), które wystawiają certyfikaty krótkotrwałe na podstawie wiadomości e-mail uwierzytelnionych przez OpenID Connect. Żywotność certyfikatu to 20 minut, w czasie których programista musi mieć czas na wygenerowanie podpisu cyfrowego (jeśli w przyszłości certyfikat wpadnie w ręce atakującego, to już wygaśnie). Dodatkowo w ramach projektu rozwijany jest zestaw narzędzi Cosign (Container Signing), służący do generowania podpisów dla kontenerów, weryfikacji podpisów oraz umieszczania podpisanych kontenerów w repozytoriach zgodnych z OCI (Open Container Initiative).

Wprowadzenie Sigstore umożliwia zwiększenie bezpieczeństwa kanałów dystrybucji oprogramowania oraz ochronę przed atakami mającymi na celu podmiany bibliotek i zależności (łańcucha dostaw). Jednym z kluczowych problemów bezpieczeństwa w oprogramowaniu open source jest trudność w weryfikacji źródła programu i weryfikacji procesu kompilacji. Na przykład większość projektów używa skrótów do sprawdzania integralności wydania, ale często informacje niezbędne do uwierzytelnienia są przechowywane w niezabezpieczonych systemach i we współdzielonych repozytoriach z kodem, w wyniku czego w przypadku naruszenia bezpieczeństwa osoby atakujące mogą zastąpić pliki niezbędne do weryfikacji i bez wzbudzania podejrzeń wprowadzać złośliwe zmiany.

Wykorzystanie podpisów cyfrowych do weryfikacji wydania nie rozpowszechniło się jeszcze ze względu na trudności w zarządzaniu kluczami, dystrybucji kluczy publicznych i cofaniu skompromitowanych kluczy. Aby weryfikacja miała sens, dodatkowo wymagane jest zorganizowanie niezawodnego i bezpiecznego procesu dystrybucji kluczy publicznych i sum kontrolnych. Nawet w przypadku podpisu cyfrowego wielu użytkowników ignoruje weryfikację, ponieważ poznanie procesu weryfikacji i zrozumienie, który klucz jest godny zaufania, wymaga czasu. Projekt Sigstore stara się uprościć i zautomatyzować te procesy dostarczając gotowe i sprawdzone rozwiązanie.

Źródło: opennet.ru

Dodaj komentarz