Assured Open Source Software menyediakan paket, metadata paket, dan skrip utilitas. Setiap paket OSS Tepercaya ditandatangani menggunakan sertifikat terpisah yang dikeluarkan Google yang menggunakan algoritma ECDSA P256 untuk pembuatan kunci. Setiap metadata paket dan skrip utilitas juga ditandatangani menggunakan satu sertifikat yang dikeluarkan Google yang menggunakan algoritma ECDSA P256 untuk pembuatan kunci. Sertifikat ini diterbitkan menggunakan Certificate Authority Service dan sertifikat root publik yang sesuai dapat ditemukan di bucket Cloud Storage.
Dokumen ini berlaku untuk paket gratis. Untuk mengetahui informasi tentang tanda tangan di tingkat premium, lihat Mengakses metadata keamanan dan memverifikasi paket.
Ringkasan tanda tangan
Tanda tangan disimpan dalam file signature.zip. File signature.zip
berisi file berikut:
digest.txt: File ini menyimpan algoritma hashing beserta ringkasan paket dalam format yang dienkode hex. Lihat contoh berikut:SHA-256:c5feab6f4de0878e94cf2a3074039b4f16a0c93a03501f047ee6eea29a8e33e0`.signature.txt: File ini menyimpan algoritma tanda tangan beserta tanda tangan yang dienkode dalam hex. Lihat contoh berikut:ECDSAP256_DER:30450220585d2a01f20de98dfe6cfab2c01a8f11787dbafbc6541304d23cc582e61be016022100f05a19f5ce473144579dfefc47905fd650584a1c7a31bd9d5bf93ecce739a7cb`cert.pem: File ini menyimpan sertifikat publik.certChain.pem: File ini menyimpan rantai sertifikat untuk sertifikat publik.
Verifikasi tanda tangan
Anda dapat memverifikasi tanda tangan menggunakan salah satu cara berikut:
- Alat aoss-verifier
- secara manual
- skrip verifikasi
Memverifikasi tanda tangan menggunakan alat aoss-verifier
Untuk memverifikasi keaslian dan integritas paket software open source, instal alat aoss-verifier.
Untuk memverifikasi paket, teruskan nilai LANGUAGE, PACKAGE_ID, dan VERSION serta PATH_TO_DATA_FILE yang ingin Anda verifikasi menggunakan flag
--language,--package_id,--version, dan--artifact_path.aoss-verifier verify-package \ --language LANGUAGE \ --package_id PACKAGE_ID \ --version VERSION \ --artifact_path ARTIFACT_PATHGanti kode berikut:
- LANGUAGE: Bahasa paket. 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.
- ARTIFACT_PATH: Jalur ke file data di direktori lokal yang ingin Anda verifikasi. Gunakan ekstensi nama file berikut:
- Ekstensi file
jaruntuk paket Java - Ekstensi file
whluntuk paket Python
- Ekstensi file
Memverifikasi tanda tangan secara manual
Untuk memverifikasi tanda tangan secara manual, lakukan hal berikut:
Instal Google Cloud CLI dan software OpenSSL, versi 3.0.1 atau yang lebih tinggi.
Verifikasi ringkasan.
Mengidentifikasi algoritma hashing. File
digest.txtberisi algoritma hashing yang digunakan untuk menghitung ringkasan. Identifikasi algoritma hashing menggunakan perintah berikut:cut -d ':' -f1 digest.txtPastikan outputnya adalah
SHA256.Menghitung ringkasan file data. Anda dapat menghitung ringkasan file data menggunakan berbagai alat command line, bergantung pada algoritma hash yang digunakan. Untuk file dan skrip data OSS yang Terjamin, gunakan algoritma hash SHA-256 untuk membuat ringkasan.
Di Linux, gunakan perintah berikut untuk menghitung hash:
sha256sum PATH_TO_DATA_FILE | cut -d ' ' -f1 > datadigest.txtUntuk verifikasi paket, ganti PATH_TO_DATA_FILE dengan jalur ke paket di direktori lokal Anda untuk verifikasi paket.
Untuk verifikasi metadata, ganti PATH_TO_DATA_FILE dengan nama file metadata. Misalnya,
buildInfo.json,vexInfo.json, atauhealthInfo.json.Di macOS, gunakan perintah berikut:
shasum -a 256 PATH_TO_DATA_FILE | cut -d ' ' -f1 > datadigest.txtEkstrak hash dari file
digest.txtmenggunakan perintah berikut:cut -d ':' -f2 digest.txt > signaturedigest.txtBandingkan kedua ringkasan menggunakan perintah berikut:
diff datadigest.txt signaturedigest.txtJika tidak ada perbedaan, maka tidak akan ada output.
Memverifikasi tanda tangan
Dapatkan kunci publik dari
cert.pemmenggunakan perintah berikut:openssl x509 -pubkey -noout -in cert.pem > pubkey.pemEkstrak tanda tangan dalam format biner menggunakan perintah berikut (instal perintah
xxdjika tidak ada):cut -d ':' -f2 signature.txt | xxd -r -p > sig.sigEkstrak ringkasan dalam format biner menggunakan perintah berikut:
cut -d ':' -f2 digest.txt | xxd -r -p > digest.binVerifikasi tanda tangan menggunakan salah satu perintah berikut:
Opsi 1
openssl pkeyutl -in digest.bin -inkey pubkey.pem -pubin -verify -sigfile sig.sigPerintah akan menampilkan output berikut:
Signature Verified SuccessfullyOpsi 2
openssl dgst -sha256 -verify pubkey.pem -signature sig.sig PATH_TO_DATA_FILEGanti PATH_TO_DATA_FILE dengan jalur ke file data di direktori lokal Anda.
Perintah akan menampilkan output berikut:
Verified OK
Memverifikasi sertifikat
Untuk memverifikasi sertifikat, jalankan perintah berikut:
openssl verify -verbose -CAfile ca.crt -untrusted certChain.pem cert.pemca.certadalah sertifikat root yang dapat didownload menggunakan perintah ini:curl -o PATH_TO_LOCAL_STORE https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtOutput berikut akan ditampilkan jika berhasil:
cert.pem: OK
Memverifikasi tanda tangan menggunakan skrip
Untuk menggunakan skrip verifikasi guna memverifikasi tanda tangan, ikuti langkah-langkah berikut:
Download skrip verifikasi.
Siapkan autentikasi menggunakan Kredensial Default Aplikasi (ADC).
Download
signatureverification.sh,README.md, dansignature.zipuntuk skrip verifikasi menggunakan perintah berikut:gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0" PATH_TO_LOCAL_STORE --recursiveGanti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin mendownload file.
Anda juga dapat melakukan verifikasi skrip utilitas menggunakan skrip verifikasi.
Jalankan skrip menggunakan langkah-langkah berikut:
Instal Google Cloud CLI dan software OpenSSL, versi 3.0.1 atau yang lebih tinggi.
Lakukan autentikasi dengan akun layanan yang memiliki izin untuk mengakses Assured OSS.
Berikan izin yang diperlukan untuk menjalankan skrip menggunakan perintah berikut:
chmod +x signatureverification.shJalankan skrip menggunakan perintah berikut jika Anda belum mendownload file
signature.zip:./signatureverification.sh --data_file_path PATH_TO_DATA_FILE \ --signature_url SIGNATURE_ZIP_URL \ --root_cert_url ROOT_CERT_URLGanti kode berikut:
- PATH_TO_DATA_FILE: jalur ke file data di direktori lokal yang ingin Anda verifikasi
- SIGNATURE_ZIP_URL: URL file zip tanda tangan
- ROOT_CERT_URL: URL sertifikat root publik
Contoh output
Output berikut menunjukkan bahwa skrip verifikasi telah berhasil dijalankan.
Signature verification successful
Certificate verification successful
Langkah berikutnya
- Verifikasi tanda tangan
- Memverifikasi provenance build
- Mempelajari cara melindungi supply chain software Anda