Signaturen im Assured OSS-Free-Tier überprüfen

Auf dieser Seite wird beschrieben, wie Sie die Signatur für Assured OSS-Artefakte überprüfen.

Diese Seite gilt nur für das kostenlose Kontingent. Informationen zum Premium-Tarif finden Sie unter Auf Sicherheitsmetadaten zugreifen und Pakete prüfen.

Paketbestätigung

Paketsignaturen werden separat vom Paket in einem Cloud Storage-Bucket im ZIP-Format gespeichert. Sie können Signaturen mit dem Assured OSS-Prüftool (aoss-verifier) oder mit einem Prüfskript prüfen.

Tool „aoss-verifier“ verwenden

Bevor Sie dieses Tool verwenden, muss Go auf Ihrem System installiert sein. Wenn Go nicht installiert ist, installieren Sie Go über die Go-Website.

  1. Um die Authentizität und Integrität von Open-Source-Softwarepaketen zu prüfen, installieren Sie das Tool aoss-verifier.

  2. Exportieren Sie $(go env GOPATH)/bin und führen Sie den Befehl aoss-verifier verify-package aus.

    aoss-verifier verify-package \
       --language LANGUAGE \
       --package_id PACKAGE_ID \
       --version VERSION \
       --artifact_path ARTIFACT_PATH \
       [--disable_certificate_verification] \
       [--temp_downloads_path TEMP_DOWNLOADS_DIR_PATH] \
       [--disable_deletes]
    

    Ersetzen Sie Folgendes:

    • LANGUAGE: Die Sprache des Programmierpakets, entweder java oder python. Der Wert muss in Kleinbuchstaben angegeben werden.
    • PACKAGE_ID: Für Java ist es groupId:artifactId und für Python packageName. Der Wert muss in Kleinbuchstaben angegeben werden.
    • VERSION: Die Version des Pakets.
    • ARTIFACT_PATH: Der Pfad zur Datendatei in Ihrem lokalen Verzeichnis, die Sie überprüfen möchten. Verwenden Sie die folgenden Dateinamenerweiterungen:
      • jar-Dateiendung für ein Java-Paket
      • whl-Dateiendung für ein Python-Paket

    --disable_certificate_verification ist ein optionales Flag, mit dem der Abgleich des untergeordneten Zertifikats mit dem Root-Zertifikat über die Zertifikatskette übersprungen wird, sofern es verwendet wird.

    --temp_downloads_path ist ein optionales Flag, mit dem Sie den Pfad festlegen können, in den Sie die Dateien herunterladen möchten. (TEMP_DOWNLOADS_DIR_PATH ersetzen). Wenn dieses Flag nicht festgelegt ist, werden die Dateien in den Ordner tmp_downloads im aktuellen Verzeichnis heruntergeladen.

    --disable_deletes ist ein optionales Flag, mit dem die heruntergeladenen Dateien beibehalten werden. Standardmäßig werden alle heruntergeladenen Dateien bereinigt.

Weitere Informationen finden Sie in der README.

Bestätigungsskript verwenden

In diesem Abschnitt wird beschrieben, wie Sie mit einem Überprüfungsskript die Signaturen heruntergeladener Pakete überprüfen.

Schritt 1: Signatur-URL abrufen

Die URL der ZIP-Datei ist in den Sicherheitsmetadaten jedes Pakets verfügbar. Das folgende Beispiel stammt aus den Container Analysis-Metadaten.

Wie im folgenden Beispiel gezeigt, finden Sie die Signatur-ZIP-URL im Feld description: digestUrl.

package {
  distribution {
    cpe_uri: "cpe:2.3:a:JAVA::com.fasterxml.jackson.core:jackson-databind:2.13.3:*:*:*:*:*:*:*"
    maintainer: "<nil>"
    url: "https://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/com/fasterxml/jackson/core/jackson-databind/2.13.3/jackson-databind-2.13.3.jar"
    description: "{\n \"artifactMetadataList\": [\n {\n \"digestUrl\": \"gs://cloud-aoss/java/com.fasterxml.jackson.core:jackson-databind/2.13.3/jackson-databind-2.13.3_binary_2022-10-12T06:54:05Z.zip\"\n }\n ]\n}"
  }
  distribution {
    cpe_uri: "cpe:2.3:a:JAVA::com.fasterxml.jackson.core:jackson-databind:2.13.3:*:*:*:*:*:*:*"
    url: "https://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/com/fasterxml/jackson/core/jackson-databind/2.13.3/jackson-databind-2.13.3-sources.jar"
    description: "{\n  \"digestUrl\": \"gs://cloud-aoss/java/com.fasterxml.jackson.core:jackson-databind/2.13.3/jackson-databind-2.13.3-sources_source_2022-10-12T06:54:05Z.zip\"\n}"
  }
}

Beispiel aus Cloud Storage-Metadaten (buildInfo.json file). Wie im folgenden Beispiel gezeigt, können Sie die Signatur-ZIP-URL aus dem Feld externalRefs : referenceLocator abrufen.

"packages": [
        {
            "SPDXID": "SPDXRef-Package-logback-core-1.2.11.jar",
            "checksums": [
                {
                    "algorithm": "SHA256",
                    "checksumValue": "c847e0e310acda8bc1347c9d9cc051e91210b9f943e131fceb5034c2f0c9a5d8"
                }
            ],
            "downloadLocation": "https://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/ch/qos/logback/logback-core/1.2.11/logback-core-1.2.11.jar",
            "externalRefs": [
                {
                    "referenceCategory": "SECURITY",
                    "referenceLocator": "cpe:2.3:a:*:JAVA\\:\\:ch\\.qos\\.logback\\:logback\\-core:1\\.2\\.11:*:*:*:*:*:*:*",
                    "referenceType": "cpe23Type"
                },
                {
                    "referenceCategory": "OTHER",
                    "referenceLocator": "gs://cloud-aoss/java/ch.qos.logback:logback-core/1.2.11/logback-core-1.2.11_binary_2022-10-12T14:19:11Z.zip",
                    "referenceType": "digestURL"
                }
            ],

Sie können die lokale Signatur-ZIP-Datei für die manuelle Überprüfung oder die Cloud Storage-URL direkt für die Verwendung des Überprüfungsskripts verwenden. So laden Sie die Datei signature.zip herunter:

  1. Authentifizierung mit Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) einrichten

  2. Laden Sie signature.zip mit dem folgenden Befehl herunter:

      gcloud storage cp SIGNATURE_ZIP_URL PATH_TO_LOCAL_STORE --recursive
    

    Ersetzen Sie Folgendes:

    • SIGNATURE_ZIP_URL: Die ZIP-URL der Signatur.
    • PATH_TO_LOCAL_STORE: der lokale Pfad, in den Sie die Datei herunterladen möchten.

Schritt 2: Root-Zertifikat abrufen

Verwenden Sie die folgende URL, um auf das Root-Zertifikat zuzugreifen:

https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt

Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden. Führen Sie den folgenden Befehl aus, um das Zertifikat herunterzuladen:

curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt

Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, unter dem Sie das Zertifikat herunterladen möchten.

Schritt 3: Speicherort der Paketdatei abrufen

Die Datei, die wir überprüfen würden, ist die JAR-Datei für Java-Pakete und die Wheel-Datei für Python-Pakete. Diese Datei wäre die PATH_TO_DATA_FILE zur Bestätigung.

Schritt 4: Bestätigung

Sie können die Signatur-ZIP-Datei manuell anhand der Schritte unter Manuelle Signaturprüfung prüfen oder das Prüfskript verwenden.

Führen Sie die folgenden Befehle aus, um die Überprüfung mit einem Überprüfungsscript durchzuführen:

  1. Laden Sie das Bestätigungsskript herunter und erteilen Sie Berechtigungen.

      gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
      chmod +x signatureverification.sh
    
  2. Führen Sie das Überprüfungsskript aus und bestätigen Sie die Änderungen. Sie können die Remote-URLs oder lokalen Pfade für die Signatur-ZIP-Datei und das Stammzertifikat verwenden.

      ./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url SIGNATURE_ZIP_URL --root_cert_url ROOT_CERT_URL
    

    Ersetzen Sie Folgendes:

    • PATH_TO_DATA_FILE durch den Pfad zur Paketdatei, die in Schritt 3 identifiziert wurde
    • SIGNATURE_ZIP_URL durch die Signatur-ZIP-URL, die Sie in Schritt 1 erhalten haben.
    • ROOT_CERT_URL durch die Root-Zertifikat-URL, die Sie in Schritt 2 abgerufen haben.

Metadatenüberprüfung

In diesem Abschnitt wird beschrieben, wie Sie die Signatur für die über Cloud Storage aufgerufenen Assured OSS-Metadaten überprüfen können.

Tool „aoss-verifier“ verwenden

Verwenden Sie das aoss-verifier-Tool, um Metadaten zu überprüfen.

Installieren Sie Go, bevor Sie dieses Tool verwenden.

  1. Installieren Sie das aoss-verifier-Tool.

  2. Exportieren Sie $(go env GOPATH)/bin und führen Sie den Befehl aoss-verifier verify-metadata aus.

    aoss-verifier verify-metadata \
       --metadata_type TYPE \
       --language LANGUAGE \
       --package_id PACKAGE_ID \
       --version VERSION \
       [--disable_certificate_verification] \
       [--temp_downloads_path TEMP_DOWNLOADS_DIR_PATH] \
       [--disable_deletes]
    

    Ersetzen Sie Folgendes:

    • TYPE: Die möglichen Werte sind buildinfo, vexinfo und healthinfo.
    • LANGUAGE: Die Sprache des Programmierpakets, entweder java oder python. Der Wert muss in Kleinbuchstaben angegeben werden.
    • PACKAGE_ID: Für Java ist das Format groupId:artifactId. Für Python lautet das Format packageName. Der Wert muss in Kleinbuchstaben angegeben werden.
    • VERSION: Die Version des Pakets.

    --disable_certificate_verification ist ein optionales Flag, mit dem der Abgleich des untergeordneten Zertifikats mit dem Root-Zertifikat über die Zertifikatskette übersprungen wird, sofern es verwendet wird.

    --temp_downloads_path ist ein optionales Flag, mit dem Sie den Pfad festlegen können, in den die Dateien heruntergeladen werden sollen (ersetzen Sie TEMP_DOWNLOADS_DIR_PATH). Wenn dieses Flag nicht festgelegt ist, werden die Dateien in den Ordner tmp_downloads im aktuellen Verzeichnis heruntergeladen.

    --disable_deletes ist ein optionales Flag, mit dem die heruntergeladenen Dateien beibehalten werden. Standardmäßig werden alle heruntergeladenen Dateien bereinigt.

Weitere Informationen finden Sie in der README-Datei.

Bestätigungsskript verwenden

In diesem Abschnitt wird beschrieben, wie Sie ein Überprüfungsskript verwenden, um die Datei mit Sicherheitsmetadaten zu überprüfen.

Schritt 1: Signatur-ZIP-Datei und Metadatendatei abrufen

Wir können auf die Metadaten zugreifen, wie unter Auf Metadaten zugreifen beschrieben. Die Metadatendatei ist in der Datei „signature.zip“ enthalten.

Beispiel – Inhalt von buildInfo.zip

buildInfo.json
signature.zip

buildInfo.json ist die Metadatendatei, die überprüft werden muss, und signature.zip ist die Signatur-ZIP-Datei.

Schritt 2: Root-Zertifikat abrufen

Verwenden Sie den folgenden URL-Link, um das Stammzertifikat abzurufen:

https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt

Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden. Führen Sie den folgenden Befehl aus, um das Zertifikat herunterzuladen:

curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt

Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, unter dem Sie das Zertifikat herunterladen möchten.

Schritt 3: Bestätigung

Sie können die signature.zip manuell bestätigen oder das Bestätigungsskript verwenden.

Führen Sie die folgenden Befehle aus, um die Überprüfung mit einem Überprüfungsscript durchzuführen:

  1. Laden Sie das Bestätigungsskript herunter und erteilen Sie Berechtigungen.

      gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
      chmod +x signatureverification.sh
    
  2. Führen Sie das Überprüfungsskript aus und bestätigen Sie die Änderungen. Sie sollten den lokalen Pfad für die Signatur-ZIP-Datei verwenden. Für das Stammzertifikat können Sie entweder die URL oder den lokalen Pfad verwenden. Die Datendatei ist die Metadatendatei, die wir überprüfen – buildInfo.json, vexInfo.json oder healthInfo.json.

      ./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_local_path SIGNATURE_LOCAL_PATH --root_cert_url ROOT_CERT_URL
    

    Ersetzen Sie Folgendes:

    • PATH_TO_DATA_FILE mit der Metadatendatei, die wir in Schritt 1 erhalten haben.

    • SIGNATURE_LOCAL_PATH durch die URL der Signatur-ZIP-Datei, die Sie in Schritt 1 erhalten haben.

    • ROOT_CERT_URL durch die URL des Stammzertifikats, die Sie in Schritt 2 abgerufen haben.

      Wenn Sie ein bereits heruntergeladenes lokales Zertifikat verwenden möchten, wählen Sie stattdessen diese Option aus:

      --root_cert_local ROOT_CERT_LOCAL
      

      Ersetzen Sie ROOT_CERT_LOCAL durch den lokalen Zertifikatspfad.

Prüfung von Hilfsskripts

Assured OSS bietet drei Dienstprogramm-Scripts. In diesem Abschnitt wird beschrieben, wie Sie die Signatur dieser Skripts überprüfen.

Python-Requirements.txt-Generator

Die Signatur für diese Datei finden Sie unter gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator-sig.zip. Sie können die signature.zip entweder manuell oder mit dem Bestätigungsskript bestätigen. So überprüfen Sie die Signatur schnell mit dem Bestätigungsskript:

  1. Richten Sie die Authentifizierung ein.

  2. Wenn Sie die Scriptdatei für den requirements.txt-Generator noch nicht heruntergeladen haben, tun Sie dies jetzt.

     gcloud storage cp "gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh" . --recursive
    
  3. Rufen Sie das Root-Zertifikat ab. Der URL-Link lautet https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt. Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden. Führen Sie den folgenden Befehl aus, um das Zertifikat herunterzuladen:

    curl -o PATH_TO_LOCAL_STORE/ca.crt "https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt"
    

    Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, in den Sie das Zertifikat herunterladen möchten.

  4. Laden Sie das Überprüfungsskript herunter, falls Sie dies noch nicht getan haben.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  5. Führen Sie das Überprüfungsskript aus und bestätigen Sie die Änderungen.

    ./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url "gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator-sig.zip" --root_cert_url ROOT_CERT_URL
    

    Ersetzen Sie Folgendes:

    • Ersetzen Sie PATH_TO_DATA_FILE durch den lokalen Pfad des generator.sh-Skripts, das wir überprüfen möchten (siehe Schritt 2).
    • ROOT_CERT_URL durch die URL des Root-Zertifikats. Wenn Sie ein bereits heruntergeladenes lokales Zertifikat verwenden möchten, führen Sie den folgenden Befehl aus:
    –root_cert_local ROOT_CERT_LOCAL
    

    Ersetzen Sie ROOT_CERT_LOCAL durch den lokalen Pfad des Stammzertifikats.

Skript zur Signaturüberprüfung

Sie können unter gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification-sig.zip auf die Signatur für diese Datei zugreifen. Sie können die signature.zip entweder manuell oder mit dem Bestätigungsskript bestätigen. So überprüfen Sie die Signatur schnell mit dem Bestätigungsskript:

  1. Richten Sie die Authentifizierung ein.

  2. Wenn Sie das Skript zum Prüfen der Signatur noch nicht heruntergeladen haben, tun Sie dies jetzt.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  3. Rufen Sie das Root-Zertifikat ab. Der URL-Link lautet https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt. Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden. Befehl zum Herunterladen des Zertifikats:

    curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
    

    Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, in den Sie das Zertifikat herunterladen möchten.

  4. Führen Sie das Überprüfungsskript aus und bestätigen Sie die Änderungen.

    ./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification-sig.zip" --root_cert_url ROOT_CERT_URL
    

    Ersetzen Sie Folgendes:

    PATH_TO_DATA_FILE mit dem lokalen Pfad des Bestätigungsskripts, das wir bestätigen möchten (siehe Schritt 2). ROOT_CERT_URL durch die URL des Root-Zertifikats. Wenn Sie ein bereits heruntergeladenes lokales Zertifikat verwenden möchten, wählen Sie stattdessen diese Option aus:

    –root_cert_local ROOT_CERT_LOCAL
    

    Ersetzen Sie ROOT_CERT_LOCAL durch den lokalen Pfad des Root-Zertifikats.

Metadatenscript herunterladen

Sie können unter gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata-sig.zip auf die Signatur für diese Datei zugreifen. Sie können die signature.zip entweder manuell oder mit dem Bestätigungsskript bestätigen. So überprüfen Sie die Signatur schnell mit dem Bestätigungsskript:

  1. Richten Sie die Authentifizierung ein.

  2. Wenn Sie die download_metadata.py-Scriptdatei noch nicht heruntergeladen haben, tun Sie dies jetzt.

    gcloud storage cp "gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata.py" . --recursive
    
  3. Rufen Sie das Root-Zertifikat ab. Der URL-Link lautet https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt. Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden.

    Führen Sie den folgenden Befehl aus, um das Zertifikat herunterzuladen:

    curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
    

    Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, in den Sie das Zertifikat herunterladen möchten.

  4. Laden Sie das Bestätigungsskript herunter.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  5. Führen Sie das Überprüfungsskript aus und bestätigen Sie die Änderungen.

    ./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata-sig.zip --root_cert_url ROOT_CERT_URL
    

    Ersetzen Sie Folgendes:

    • Ersetzen Sie PATH_TO_DATA_FILE durch den lokalen Pfad des download_metadata.py-Skripts, das wir überprüfen möchten (siehe Schritt 2).
    • ROOT_CERT_URL durch die URL des Root-Zertifikats. Wenn Sie ein bereits heruntergeladenes lokales Zertifikat verwenden möchten, führen Sie den folgenden Befehl aus:
    –root_cert_local ROOT_CERT_LOCAL
    

    Ersetzen Sie ROOT_CERT_LOCAL durch den lokalen Pfad des Stammzertifikats.

Nächste Schritte