本頁說明如何驗證 Assured OSS 構件的簽章。
本頁面僅適用於免費層級。如為進階層級,請參閱「存取安全性中繼資料並驗證套件」。
套件驗證
套件簽章會以 zip 格式儲存在 Cloud Storage bucket 中,與套件分開儲存。您可以使用 Assured OSS 驗證工具 (aoss-verifier) 或驗證指令碼驗證簽章。
使用 aoss-verifier 工具
使用這項工具前,請確認系統已安裝 Go。如果尚未安裝 Go,請前往 Go 網站安裝。
如要驗證開放原始碼軟體套件的真實性和完整性,請安裝 aoss-verifier 工具。
匯出
$(go env GOPATH)/bin,然後執行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]更改下列內容:
- LANGUAGE:程式設計套件語言,可以是
java或python。值必須為小寫。 - PACKAGE_ID:Java 為 groupId:artifactId,Python 為 packageName。值必須為小寫。
- VERSION:套件版本。
- ARTIFACT_PATH:要驗證的本機目錄中資料檔案路徑。請使用下列副檔名:
- Java 套件的
jar副檔名 - Python 套件的
whl副檔名
- Java 套件的
--disable_certificate_verification是選用標記,如果使用,會略過透過憑證鏈結將分葉憑證與根憑證相符的程序。--temp_downloads_path是選用旗標,可用於設定要下載檔案的路徑。(取代 TEMP_DOWNLOADS_DIR_PATH)。如果未設定這個旗標,檔案會下載至目前目錄中的tmp_downloads資料夾。--disable_deletes是選用旗標,可保留下載的檔案。根據預設,這項工具會清除所有已下載的檔案。- LANGUAGE:程式設計套件語言,可以是
詳情請參閱 README。
使用驗證指令碼
本節說明如何使用驗證指令碼,驗證下載套件的簽章。
步驟 1:取得簽章網址
每個套件的安全中繼資料中,都會提供 ZIP 檔案的網址。以下是「容器分析中繼資料」的範例。
如下列範例所示,您可以在 description: digestUrl 欄位中找到簽章 zip 網址。
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}"
}
}
Cloud Storage 中繼資料的範例 (buildInfo.json file)。如下列範例所示,您可以從 externalRefs : referenceLocator 欄位取得簽章 ZIP 網址。
"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"
}
],
您可以手動驗證本機簽章 ZIP 檔案,或直接使用 Cloud Storage 網址來執行驗證指令碼。如要下載 signature.zip 檔案,請按照下列步驟操作:
使用應用程式預設憑證 (ADC) 設定驗證。
使用下列指令下載
signature.zip:gcloud storage cp SIGNATURE_ZIP_URL PATH_TO_LOCAL_STORE --recursive更改下列內容:
- SIGNATURE_ZIP_URL:簽章 ZIP 網址。
- PATH_TO_LOCAL_STORE:要下載檔案的本機路徑。
步驟 2:取得根憑證
如要存取根憑證,請使用下列網址:
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
您可以將憑證下載到本機,也可以直接使用憑證連結。 如要下載憑證,請執行下列指令:
curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
將 PATH_TO_LOCAL_STORE 替換為要下載憑證的本機路徑。
步驟 3:取得套件檔案位置
我們會驗證 Java 套件的 JAR 檔案,以及 Python 套件的 Wheel 檔案。該檔案會是驗證用的 PATH_TO_DATA_FILE。
步驟 4:驗證
您可以按照「手動驗證簽名」一文中的步驟手動驗證簽名 ZIP 檔,也可以使用驗證指令碼。
如要使用驗證指令碼進行驗證,請執行下列指令:
下載驗證指令碼並授予權限。
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.sh執行驗證指令碼並驗證。簽章 ZIP 檔案和根憑證可以使用遠端網址或本機路徑。
./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url SIGNATURE_ZIP_URL --root_cert_url ROOT_CERT_URL更改下列內容:
- PATH_TO_DATA_FILE,並提供步驟 3 中識別的套件檔案路徑
- SIGNATURE_ZIP_URL,並換成您在步驟 1 取得的簽章 ZIP 網址。
- ROOT_CERT_URL,並使用步驟 2 中取得的根憑證網址。
中繼資料驗證
本節說明如何驗證使用 Cloud Storage 存取的 Assured OSS 中繼資料簽章。
使用 aoss-verifier 工具
使用 aoss-verifier 工具驗證中繼資料。
使用這項工具前,請先安裝 Go。
安裝 aoss-verifier 工具。
匯出
$(go env GOPATH)/bin,然後執行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]更改下列內容:
- TYPE:可能的值為
buildinfo、vexinfo和healthinfo。 - LANGUAGE:程式設計套件語言,可以是
java或python。值必須為小寫。 - PACKAGE_ID:如果是 Java,格式為 groupId:artifactId。如果是 Python,格式為 packageName。值必須為小寫。
- VERSION:套件版本。
--disable_certificate_verification是選填的標記,如果使用,系統會略過透過憑證鏈結將分葉憑證與根憑證相符的程序。--temp_downloads_path是選用旗標,可設定要下載檔案的路徑 (請替換 TEMP_DOWNLOADS_DIR_PATH)。如果未設定這個旗標,檔案會下載至目前目錄中的tmp_downloads資料夾。--disable_deletes是選用旗標,可保留下載的檔案。根據預設,這項工具會清除所有已下載的檔案。- TYPE:可能的值為
詳情請參閱 README。
使用驗證指令碼
本節說明如何使用驗證指令碼驗證安全性中繼資料檔案。
步驟 1:取得簽章 ZIP 檔案和中繼資料檔案
我們可以如「存取中繼資料」一節所述存取中繼資料。中繼資料檔案會與 signature.zip 檔案一起提供。
範例 - buildInfo.zip 的內容
buildInfo.json
signature.zip
buildInfo.json 是需要驗證的中繼資料檔案,signature.zip 則是簽章 ZIP 檔。
步驟 2:取得根憑證
請使用下列網址連結取得根憑證:
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
您可以將憑證下載到本機,也可以直接使用憑證連結。 如要下載憑證,請執行下列指令:
curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
將 PATH_TO_LOCAL_STORE 替換為要下載憑證的本機路徑。
步驟 3:驗證
您可以手動驗證 signature.zip,也可以使用驗證指令碼。
如要使用驗證指令碼進行驗證,請執行下列指令:
下載驗證指令碼並授予權限。
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.sh執行驗證指令碼並驗證。簽章 ZIP 檔應使用本機路徑。根憑證可以使用網址或本機路徑。資料檔案是我們要驗證的中繼資料檔案 -
buildInfo.json、vexInfo.json或healthInfo.json。./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_local_path SIGNATURE_LOCAL_PATH --root_cert_url ROOT_CERT_URL更改下列內容:
PATH_TO_DATA_FILE,並附上我們在步驟 1 驗證的中繼資料檔案。
SIGNATURE_LOCAL_PATH,並換成您在步驟 1 取得的簽章 ZIP 網址。
ROOT_CERT_URL,並在步驟 2 中取得根憑證網址。
如要使用已下載的本機憑證,請改用這個選項:
--root_cert_local ROOT_CERT_LOCAL將 ROOT_CERT_LOCAL 替換為本機憑證路徑。
驗證公用程式指令碼
Assured OSS 提供三種公用程式指令碼。本節將說明如何驗證這些指令碼的簽章。
Python Requirements.txt 生成器
如要存取這個檔案的簽章,請前往 gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator-sig.zip。您可以signature.zip手動驗證,或使用驗證指令碼。
如要使用驗證指令碼快速驗證簽章,請按照下列步驟操作:
如果尚未下載
requirements.txt產生器指令碼檔案,請下載該檔案。gcloud storage cp "gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh" . --recursive擷取根憑證。網址連結為
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt您可以下載憑證到本機,或直接使用憑證連結。 如要下載憑證,請執行下列指令:curl -o PATH_TO_LOCAL_STORE/ca.crt "https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt"將 PATH_TO_LOCAL_STORE 替換為要下載憑證的本機路徑
如果尚未下載驗證指令碼,請立即下載。
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.sh執行驗證指令碼並驗證。
./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更改下列內容:
- PATH_TO_DATA_FILE,並提供我們要在步驟 2 中驗證的指令碼本機路徑。
generator.sh - ROOT_CERT_URL,並提供根憑證網址。如要使用已下載的本機憑證,請執行下列指令:
–root_cert_local ROOT_CERT_LOCAL將 ROOT_CERT_LOCAL 替換為根憑證的本機路徑。
- PATH_TO_DATA_FILE,並提供我們要在步驟 2 中驗證的指令碼本機路徑。
簽章驗證指令碼
如要查看這個檔案的簽章,請前往 gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification-sig.zip。您可以signature.zip手動驗證,或使用驗證指令碼。
如要使用驗證指令碼快速驗證簽章,請按照下列步驟操作:
如果尚未下載簽章驗證指令碼檔案,請下載該檔案。
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.sh擷取根憑證。網址連結為
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt您可以下載憑證到本機,或直接使用憑證連結。 下載憑證的指令:curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt將 PATH_TO_LOCAL_STORE 替換為要下載憑證的本機路徑
執行驗證指令碼並驗證。
./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更改下列內容:
PATH_TO_DATA_FILE,並在步驟 2 中取得要驗證的驗證指令碼本機路徑。 ROOT_CERT_URL,並提供根憑證網址。如要使用已下載的本機憑證,請改用這個選項:
–root_cert_local ROOT_CERT_LOCAL將 ROOT_CERT_LOCAL 替換為根憑證的本機路徑。
下載中繼資料指令碼
如要查看這個檔案的簽章,請前往 gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata-sig.zip。您可以signature.zip手動驗證,或使用驗證指令碼。
如要使用驗證指令碼快速驗證簽章,請按照下列步驟操作:
如果尚未下載
download_metadata.py指令碼檔案,請下載該檔案。gcloud storage cp "gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata.py" . --recursive擷取根憑證。網址連結為
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt您可以下載憑證到本機,或直接使用憑證連結。如要下載憑證,請執行下列指令:
curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt將 PATH_TO_LOCAL_STORE 替換為要下載憑證的本機路徑
下載驗證指令碼。
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.sh執行驗證指令碼並驗證。
./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更改下列內容:
- PATH_TO_DATA_FILE,並提供我們要在步驟 2 中驗證的指令碼本機路徑。
download_metadata.py - ROOT_CERT_URL,並提供根憑證網址。如要使用已下載的本機憑證,請執行下列指令:
–root_cert_local ROOT_CERT_LOCAL將 ROOT_CERT_LOCAL 替換為根憑證的本機路徑。
- PATH_TO_DATA_FILE,並提供我們要在步驟 2 中驗證的指令碼本機路徑。