Red Hat i Google wprowadziły Sigstore, usługę służącą do weryfikacji kodu kryptograficznego

Red Hat i Google wraz z Purdue University założyły projekt Sigstore, którego celem było stworzenie narzędzi i usług służących do weryfikacji oprogramowania za pomocą podpisów cyfrowych oraz prowadzenia publicznego dziennika potwierdzającego autentyczność (log przejrzystości). Projekt będzie rozwijany pod patronatem organizacji non-profit Linux Foundation.

Proponowany projekt poprawi bezpieczeństwo kanałów dystrybucji oprogramowania oraz zabezpieczy przed atakami mającymi na celu wymianę komponentów oprogramowania i zależności (łańcuch dostaw). Jednym z kluczowych problemów bezpieczeństwa oprogramowania open source jest trudność weryfikacji źródła programu i weryfikacji procesu jego kompilacji. Przykładowo większość projektów wykorzystuje skróty do weryfikacji integralności wydania, jednak często informacje niezbędne do uwierzytelnienia przechowywane są w niezabezpieczonych systemach oraz w udostępnionych repozytoriach kodu, w wyniku czego atakujący mogą złamać pliki niezbędne do weryfikacji i wprowadzić złośliwe zmiany bez wzbudzania podejrzeń.

Tylko niewielka część projektów wykorzystuje podpisy cyfrowe podczas dystrybucji wersji ze względu na trudności w zarządzaniu kluczami, dystrybucją kluczy publicznych i unieważnianiu skompromitowanych kluczy. Aby weryfikacja miała sens, konieczne jest także zorganizowanie niezawodnego i bezpiecznego procesu dystrybucji kluczy publicznych i sum kontrolnych. Nawet w przypadku podpisu cyfrowego wielu użytkowników ignoruje weryfikację, ponieważ muszą poświęcić czas na przestudiowanie procesu weryfikacji i zrozumienie, który klucz jest godny zaufania.

Sigstore jest reklamowany jako odpowiednik Let's Encrypt dla kodu, dostarczający certyfikaty do cyfrowego podpisywania kodu i narzędzia do automatyzacji weryfikacji. Dzięki Sigstore programiści mogą podpisywać cyfrowo artefakty związane z aplikacjami, takie jak pliki wersji, obrazy kontenerów, manifesty i pliki wykonywalne. Cechą szczególną Sigstore jest to, że materiał użyty do podpisania jest odzwierciedlony w odpornym na manipulacje dzienniku publicznym, który może być używany do weryfikacji i audytu.

Zamiast kluczy stałych Sigstore wykorzystuje krótkotrwałe klucze efemeryczne, które generowane są na podstawie danych uwierzytelniających potwierdzanych przez dostawców OpenID Connect (w momencie generowania kluczy do podpisu cyfrowego programista identyfikuje się poprzez dostawcę OpenID połączonego z adresem e-mail). Autentyczność kluczy weryfikowana jest za pomocą publicznego centralnego dziennika, który umożliwia weryfikację, czy 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.

Sigstore udostępnia zarówno gotową usługę, z której możesz już korzystać, jak i zestaw narzędzi pozwalających wdrożyć podobne usługi na własnym sprzęcie. Usługa jest bezpłatna dla wszystkich twórców i dostawców oprogramowania i jest hostowana na neutralnej platformie - Linux Foundation. Wszystkie komponenty usługi są open source, napisane w Go i rozpowszechniane na licencji Apache 2.0.

Wśród opracowanych komponentów możemy wyróżnić:

  • Rekor to implementacja dziennika służąca do przechowywania podpisanych cyfrowo metadanych odzwierciedlających informacje o projektach. Aby zapewnić integralność i zabezpieczyć dane przed uszkodzeniem po fakcie, stosowana jest drzewiasta struktura „Merkle Tree”, w której każda gałąź weryfikuje wszystkie podstawowe gałęzie i węzły, dzięki wspólnemu (drzewiastemu) haszowaniu. Posiadając końcowy hash użytkownik może zweryfikować poprawność całej historii operacji, a także poprawność przeszłych stanów bazy danych (hash weryfikacyjny root nowego stanu bazy wyliczany jest z uwzględnieniem stanu przeszłego ). Aby weryfikować i dodawać nowe rekordy, dostępny jest interfejs API Restful oraz interfejs CLI.
  • Fulcio (SigStore WebPKI) to system do tworzenia urzędów certyfikacji (Root-CA), które wystawiają certyfikaty krótkotrwałe na podstawie poczty elektronicznej uwierzytelnianej poprzez OpenID Connect. Czas życia certyfikatu wynosi 20 minut, podczas których programista musi mieć czas na wygenerowanie podpisu cyfrowego (jeśli certyfikat później wpadnie w ręce atakującego, będzie już wygasły).
  • Сosign (Container Signing) to zestaw narzędzi umożliwiający generowanie podpisów dla kontenerów, weryfikację podpisów oraz umieszczanie podpisanych kontenerów w repozytoriach kompatybilnych z OCI (Open Container Initiative).

Źródło: opennet.ru

Dodaj komentarz