Memverifikasi tanda tangan di paket gratis Assured OSS

Halaman ini menjelaskan cara memverifikasi tanda tangan pada artefak Assured OSS.

Halaman ini hanya berlaku untuk paket gratis. Untuk tingkat premium, lihat Mengakses metadata keamanan dan memverifikasi paket.

Verifikasi paket

Tanda tangan paket disimpan secara terpisah dari paket dalam bucket Cloud Storage dalam format zip. Anda dapat memverifikasi tanda tangan menggunakan alat verifikasi OSS Tepercaya (aoss-verifier) atau menggunakan skrip verifikasi.

Menggunakan alat aoss-verifier

Sebelum menggunakan alat ini, pastikan Go diinstal di sistem Anda. Jika Go belum diinstal, instal Go dari situs Go.

  1. Untuk memverifikasi keaslian dan integritas paket software open source, instal alat aoss-verifier.

  2. Ekspor $(go env GOPATH)/bin, lalu jalankan perintah aoss-verifier verify-package.

    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]
    

    Ganti kode berikut:

    • LANGUAGE: Bahasa paket pemrograman, java atau python. Nilai harus dalam huruf kecil.
    • PACKAGE_ID: untuk Java, ini adalah groupId:artifactId dan untuk Python, ini adalah packageName. Nilai harus dalam huruf kecil.
    • VERSION: Versi paket.
    • ARTIFACT_PATH: Jalur ke file data di direktori lokal yang ingin Anda verifikasi. Gunakan ekstensi nama file berikut:
      • Ekstensi file jar untuk paket Java
      • Ekstensi file whl untuk paket Python

    --disable_certificate_verification adalah tanda opsional yang melewati pencocokan sertifikat leaf dengan sertifikat root melalui rantai sertifikat, jika digunakan.

    --temp_downloads_path adalah tanda opsional untuk menetapkan jalur tempat Anda ingin mendownload file. (ganti TEMP_DOWNLOADS_DIR_PATH). Jika tanda ini tidak disetel, file akan didownload ke folder tmp_downloads di direktori saat ini.

    --disable_deletes adalah tanda opsional yang menyimpan file yang didownload. Secara default, alat ini akan membersihkan semua file yang didownload.

Lihat README untuk mengetahui informasi selengkapnya.

Menggunakan skrip verifikasi

Bagian ini menjelaskan cara menggunakan skrip verifikasi untuk memverifikasi tanda tangan paket yang didownload.

Langkah 1: Dapatkan URL tanda tangan

URL file ZIP tersedia di metadata keamanan setiap paket. Contoh berikut adalah sampel dari metadata Analisis Container.

Seperti yang ditunjukkan dalam contoh berikut, Anda dapat menemukan URL zip tanda tangan di kolom 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}"
  }
}

Contoh dari metadata Cloud Storage (buildInfo.json file). Seperti yang ditunjukkan dalam contoh berikut, Anda bisa mendapatkan URL zip tanda tangan dari kolom externalRefs : referenceLocator.

"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"
                }
            ],

Anda dapat menggunakan zip tanda tangan lokal untuk verifikasi manual atau URL Cloud Storage secara langsung untuk menggunakan skrip verifikasi. Anda dapat mendownload file signature.zip menggunakan langkah-langkah berikut:

  1. Siapkan autentikasi menggunakan Kredensial Default Aplikasi (ADC).

  2. Download signature.zip menggunakan perintah berikut:

      gcloud storage cp SIGNATURE_ZIP_URL PATH_TO_LOCAL_STORE --recursive
    

    Ganti kode berikut:

    • SIGNATURE_ZIP_URL: URL zip tanda tangan.
    • PATH_TO_LOCAL_STORE: jalur lokal tempat Anda ingin mendownload file.

Langkah 2: Dapatkan sertifikat root

Untuk mengakses sertifikat root, gunakan URL berikut:

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

Anda dapat mendownload sertifikat secara lokal atau menggunakan link sertifikat secara langsung. Untuk mendownload sertifikat, jalankan perintah berikut:

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

Ganti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin mendownload sertifikat.

Langkah 3: Dapatkan lokasi file paket

File yang akan kami verifikasi adalah jar untuk paket Java dan file wheel untuk paket Python. File tersebut akan menjadi PATH_TO_DATA_FILE untuk verifikasi.

Langkah 4: Verifikasi

Anda dapat memverifikasi zip tanda tangan secara manual menggunakan langkah-langkah di verifikasi tanda tangan manual atau dapat menggunakan skrip verifikasi.

Untuk memverifikasi menggunakan skrip verifikasi, jalankan perintah berikut:

  1. Download skrip verifikasi dan berikan izin.

      gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
      chmod +x signatureverification.sh
    
  2. Jalankan skrip verifikasi dan verifikasi. Anda dapat menggunakan URL jarak jauh atau jalur lokal untuk zip tanda tangan dan sertifikat root.

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

    Ganti kode berikut:

    • PATH_TO_DATA_FILE dengan jalur ke file paket yang diidentifikasi di langkah 3
    • SIGNATURE_ZIP_URL dengan URL zip tanda tangan yang diperoleh pada langkah 1.
    • ROOT_CERT_URL dengan URL sertifikat root yang diperoleh pada langkah 2.

Verifikasi metadata

Bagian ini menjelaskan cara memverifikasi tanda tangan pada metadata Assured OSS yang diakses menggunakan Cloud Storage.

Menggunakan alat aoss-verifier

Gunakan alat aoss-verifier untuk memverifikasi metadata.

Sebelum menggunakan alat ini, instal Go.

  1. Instal alat aoss-verifier.

  2. Ekspor $(go env GOPATH)/bin, lalu jalankan perintah aoss-verifier verify-metadata.

    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]
    

    Ganti kode berikut:

    • TYPE: Nilai yang mungkin adalah buildinfo, vexinfo, dan healthinfo.
    • LANGUAGE: Bahasa paket pemrograman, java atau python. Nilai harus dalam huruf kecil.
    • PACKAGE_ID: Untuk Java, formatnya adalah groupId:artifactId. Untuk Python, formatnya adalah packageName. Nilai harus dalam huruf kecil.
    • VERSION: Versi paket.

    --disable_certificate_verification adalah tanda opsional yang melewati pencocokan sertifikat leaf dengan sertifikat root melalui rantai sertifikat, jika digunakan.

    --temp_downloads_path adalah tanda opsional untuk menetapkan jalur tempat Anda ingin mendownload file (ganti TEMP_DOWNLOADS_DIR_PATH). Jika tanda ini tidak ditetapkan, file akan didownload ke folder tmp_downloads di direktori saat ini.

    --disable_deletes adalah tanda opsional yang menyimpan file yang didownload. Secara default, alat ini akan membersihkan semua file yang didownload.

Untuk mengetahui informasi selengkapnya, lihat README.

Menggunakan skrip verifikasi

Bagian ini menjelaskan cara menggunakan skrip verifikasi untuk memverifikasi file metadata keamanan.

Langkah 1: Dapatkan file metadata dan zip tanda tangan

Kita dapat mengakses metadata seperti di Mengakses Metadata. File metadata akan ada bersama file signature.zip.

Contoh - isi buildInfo.zip

buildInfo.json
signature.zip

buildInfo.json adalah file metadata yang harus diverifikasi dan signature.zip adalah zip tanda tangan.

Langkah 2: Dapatkan sertifikat root

Gunakan link URL berikut untuk mendapatkan sertifikat root:

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

Anda dapat mendownload sertifikat secara lokal atau menggunakan link sertifikat secara langsung. Untuk mendownload sertifikat, jalankan perintah berikut:

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

Ganti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin mendownload sertifikat.

Langkah 3: Verifikasi

Anda dapat memverifikasi signature.zip menggunakan verifikasi manual atau dengan menggunakan skrip verifikasi.

Untuk memverifikasi menggunakan skrip verifikasi, jalankan perintah berikut:

  1. Download skrip verifikasi dan berikan izin.

      gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
      chmod +x signatureverification.sh
    
  2. Jalankan skrip verifikasi dan verifikasi. Anda harus menggunakan jalur lokal untuk zip tanda tangan. Untuk sertifikat root, Anda dapat menggunakan URL atau jalur lokal. File data akan menjadi file metadata yang kita verifikasi - buildInfo.json, vexInfo.json, atau healthInfo.json.

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

    Ganti kode berikut:

    • PATH_TO_DATA_FILE dengan file metadata yang kami verifikasi sebagai yang diperoleh di Langkah 1.

    • SIGNATURE_LOCAL_PATH dengan URL zip tanda tangan yang diperoleh di langkah 1.

    • ROOT_CERT_URL dengan URL sertifikat root yang diperoleh di langkah 2.

      Jika Anda ingin menggunakan sertifikat lokal yang sudah didownload, gunakan opsi ini:

      --root_cert_local ROOT_CERT_LOCAL
      

      Ganti ROOT_CERT_LOCAL dengan jalur sertifikat lokal.

Verifikasi skrip utilitas

Assured OSS menyediakan tiga skrip utilitas. Bagian ini menjelaskan cara memverifikasi tanda tangan pada skrip ini.

Generator Python Requirements.txt

Akses tanda tangan untuk file ini di gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator-sig.zip. Anda dapat memverifikasi signature.zip baik menggunakan verifikasi manual atau menggunakan skrip verifikasi. Untuk memverifikasi tanda tangan dengan cepat menggunakan skrip verifikasi, ikuti langkah-langkah berikut:

  1. Siapkan autentikasi.

  2. Jika Anda belum mendownload file skrip generator requirements.txt, download file tersebut.

     gcloud storage cp "gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh" . --recursive
    
  3. Ambil root certificate. Link URL adalah https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt Anda dapat mendownload sertifikat secara lokal atau menggunakan link sertifikat secara langsung. Untuk mendownload sertifikat, jalankan perintah berikut:

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

    Ganti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin mendownload sertifikat

  4. Download skrip verifikasi jika Anda belum melakukannya.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  5. Jalankan skrip verifikasi dan verifikasi.

    ./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
    

    Ganti kode berikut:

    • PATH_TO_DATA_FILE dengan jalur lokal skrip generator.sh yang ingin kita verifikasi seperti yang diperoleh di Langkah 2.
    • ROOT_CERT_URL dengan URL sertifikat root. Jika Anda ingin menggunakan sertifikat lokal yang sudah didownload, jalankan perintah berikut:
    –root_cert_local ROOT_CERT_LOCAL
    

    Ganti ROOT_CERT_LOCAL dengan jalur lokal sertifikat root.

Skrip verifikasi tanda tangan

Akses tanda tangan untuk file ini di gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification-sig.zip. Anda dapat memverifikasi signature.zip baik menggunakan verifikasi manual atau menggunakan skrip verifikasi. Untuk memverifikasi tanda tangan dengan cepat menggunakan skrip verifikasi, ikuti langkah-langkah berikut:

  1. Siapkan autentikasi.

  2. Jika Anda belum mendownload file skrip verifikasi tanda tangan, download file tersebut.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  3. Ambil root certificate. Link URL adalah https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt Anda dapat mendownload sertifikat secara lokal atau menggunakan link sertifikat secara langsung. Perintah untuk mendownload sertifikat:

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

    Ganti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin mendownload sertifikat

  4. Jalankan skrip verifikasi dan verifikasi.

    ./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
    

    Ganti kode berikut:

    PATH_TO_DATA_FILE dengan jalur lokal skrip verifikasi yang ingin kita verifikasi seperti yang diperoleh pada Langkah 2. ROOT_CERT_URL dengan URL sertifikat root. Jika Anda ingin menggunakan sertifikat lokal yang sudah didownload, gunakan opsi ini:

    –root_cert_local ROOT_CERT_LOCAL
    

    Ganti ROOT_CERT_LOCAL dengan jalur lokal sertifikat root.

Mendownload skrip metadata

Akses tanda tangan untuk file ini di gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata-sig.zip. Anda dapat memverifikasi signature.zip baik menggunakan verifikasi manual atau menggunakan skrip verifikasi. Untuk memverifikasi tanda tangan dengan cepat menggunakan skrip verifikasi, ikuti langkah-langkah berikut:

  1. Siapkan autentikasi.

  2. Jika Anda belum mendownload file skrip download_metadata.py, download file tersebut.

    gcloud storage cp "gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata.py" . --recursive
    
  3. Ambil root certificate. Link URL adalah https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt Anda dapat mendownload sertifikat secara lokal atau menggunakan link sertifikat secara langsung.

    Untuk mendownload sertifikat, jalankan perintah berikut:

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

    Ganti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin mendownload sertifikat

  4. Download skrip verifikasi.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  5. Jalankan skrip verifikasi dan verifikasi.

    ./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
    

    Ganti kode berikut:

    • PATH_TO_DATA_FILE dengan jalur lokal skrip download_metadata.py yang ingin kita verifikasi seperti yang diperoleh di Langkah 2.
    • ROOT_CERT_URL dengan URL sertifikat root. Jika Anda ingin menggunakan sertifikat lokal yang sudah didownload, jalankan perintah berikut:
    –root_cert_local ROOT_CERT_LOCAL
    

    Ganti ROOT_CERT_LOCAL dengan jalur lokal sertifikat root.

Langkah berikutnya