Google heeft bekendgemaakt dat de eerste stabiele versies van de componenten die het Sigstore-project vormen, zijn opgesteld en geschikt zijn voor echte implementaties. Sigstore ontwikkelt tools en services voor de verificatie van software via digitale handtekeningen en het bijhouden van een openbaar logboek dat de authenticiteit van wijzigingen bevestigt (transparantielogboek). Het project wordt ondersteund door de niet-winstgevende organisatie Linux Foundation in samenwerking met Google, Red Hat, Cisco, vmWare, GitHub en HP Enterprise, met deelname van de organisatie OpenSSF (Open Source Security Foundation) en de Purdue Universiteit.
Sigstore kan worden beschouwd als een alternatief voor Let's Encrypt voor code, dat certificaten biedt voor het ondertekenen van code met digitale handtekeningen en het automatiseren van verificatie. Met Sigstore kunnen ontwikkelaars digitale handtekeningen genereren voor applicatiegerelateerde artefacten, zoals releasebestanden, containerimages, manifesten en uitvoerbare bestanden. Het materiaal dat voor de handtekening wordt gebruikt, wordt weergegeven in een openbaar logboek dat bestand is tegen wijzigingen en dat kan worden gebruikt voor verificatie en audit.
In plaats van permanente sleutels maakt Sigstore gebruik van kortlevende ephemere sleutels, die worden gegenereerd op basis van bevoegdheden die worden bevestigd door OpenID Connect-providers (op het moment van sleutelgeneratie, die nodig is voor het creƫren van digitale handtekeningen, identificeert de ontwikkelaar zichzelf via de OpenID-provider gekoppeld aan zijn e-mailadres). De authenticiteit van de sleutels wordt gecontroleerd via een openbaar gecentraliseerd logboek, dat bevestigt dat de ondertekenaar echt is wie hij zegt te zijn en dat de handtekening is gegenereerd door dezelfde deelnemer die verantwoordelijk was voor eerdere releases.
De paraatheid van Sigstore voor implementatie is het resultaat van de release van twee belangrijke componenten ā Rekor 1.0 en Fulcio 1.0, waarvan de programmeerinterfaces zijn verklaard als stabiel en die voortaan achterwaartse compatibiliteit behouden. De componenten van de service zijn geschreven in de programmeertaal Go en worden verspreid onder de Apache 2.0-licentie.
De Rekor-component bevat een logimplementatie voor het opslaan van ondertekende metadata die informatie over projecten weerspiegelt. Om integriteit te waarborgen en data-integriteit achteraf te beschermen, wordt een boomstructuur gebruikt, het 'Merkle Tree', waarbij elke tak alle onderliggende takken en knopen verifieert door middel van gezamenlijke (boombased) hashing. Met een eindhash kan de gebruiker de correctheid van de hele operatiehistorie en de correctheid van eerdere database-instanties bevestigen (de root checkhash van de nieuwe database-toestand wordt berekend rekening houdend met de vorige toestand). Voor verificatie en het toevoegen van nieuwe records is er een RESTful API en een commandoregelinterface beschikbaar.
De Fulcio-component (SigStore WebPKI) omvat een systeem voor het creƫren van certificeringsinstanties (root CA) die kortlevende certificaten op basis van e-mail uitgeven, geverifieerd via OpenID Connect. De levensduur van het certificaat bedraagt 20 minuten, waarin de ontwikkelaar een digitale handtekening moet vormen (als het certificaat later in handen van een aanvaller komt, is het al verlopen). Daarnaast ontwikkelt het project de Cosign-toolset (Container Signing) voor het genereren van handtekeningen voor containers, het verifiƫren van handtekeningen en het plaatsen van ondertekende containers in OCI-compatibele repositories (Open Container Initiative).
De implementatie van Sigstore maakt het mogelijk de beveiliging van software verspreidingskanalen te verbeteren en te beschermen tegen aanvallen die gericht zijn op het vervangen van bibliotheken en afhankelijkheden (supply chain). Een van de belangrijkste beveiligingsproblemen in open-source software is de complexiteit van het verifiƫren van de bron van de software en het verifiƫren van het buildproces. Bijvoorbeeld, voor het controleren van de integriteit van een release gebruiken de meeste projecten hashes, maar vaak is de benodigde informatie voor authenticatie opgeslagen op onbeveiligde systemen en in openbare code-repositories, waardoor aanvallers de noodzakelijke verificatiebestanden kunnen vervangen en schadelijke wijzigingen kunnen aanbrengen zonder argwaan te wekken.
Het gebruik van digitale handtekeningen voor de verificatie van releases heeft nog niet wijdverspreide toepassing gevonden vanwege de complexiteit van het beheer van sleutels, de distributie van openbare sleutels en het intrekken van gecompromitteerde sleutels. Om verificatie zinvol te maken, is het bovendien noodzakelijk om een betrouwbare en veilige proces voor de distributie van openbare sleutels en hashes op te zetten. Zelfs met een digitale handtekening negeren veel gebruikers de verificatie, omdat ze tijd moeten besteden aan het bestuderen van het verificatieproces en begrijpen welke sleutel betrouwbaar is. Het project Sigstore probeert deze processen te vereenvoudigen en te automatiseren door een kant-en-klaar en getest oplossing te bieden.
Bron: opennet.ru
