Assured OSS 무료 등급의 서명 확인

이 페이지에서는 Assured OSS 아티팩트의 서명을 확인하는 방법을 설명합니다.

이 페이지는 무료 등급에만 적용됩니다. 프리미엄 등급의 경우 보안 메타데이터 액세스 및 패키지 확인을 참고하세요.

패키지 확인

패키지 서명은 패키지와 별도로 Cloud Storage 버킷에 zip 형식으로 저장됩니다. Assured OSS 인증 도구 (aoss-verifier)를 사용하거나 인증 스크립트를 사용하여 서명을 확인할 수 있습니다.

aoss-verifier 도구 사용

이 도구를 사용하기 전에 시스템에 Go가 설치되어 있는지 확인하세요. Go가 설치되어 있지 않으면 Go 웹사이트에서 Go를 설치합니다.

  1. 오픈소스 소프트웨어 패키지의 신뢰성과 무결성을 확인하려면 aoss-verifier 도구를 설치하세요.

  2. $(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 파일 확장자

    --disable_certificate_verification은 인증서 체인을 통해 리프 인증서와 루트 인증서의 일치를 건너뛰는 선택적 플래그입니다(사용되는 경우).

    --temp_downloads_path는 파일을 다운로드할 경로를 설정하는 선택적 플래그입니다. (TEMP_DOWNLOADS_DIR_PATH 대체). 이 플래그를 설정하지 않으면 파일이 현재 디렉터리의 tmp_downloads 폴더로 다운로드됩니다.

    --disable_deletes는 다운로드한 파일을 보관하는 선택적 플래그입니다. 기본적으로 이 도구는 다운로드한 모든 파일을 정리합니다.

자세한 내용은 README를 참고하세요.

확인 스크립트 사용

이 섹션에서는 확인 스크립트를 사용하여 다운로드한 패키지의 서명을 확인하는 방법을 설명합니다.

1단계: 서명 URL 가져오기

ZIP 파일의 URL은 각 패키지의 보안 메타데이터에서 확인할 수 있습니다. 다음 예는 컨테이너 분석 메타데이터의 샘플입니다.

다음 예와 같이 description: digestUrl 필드에서 서명 zip URL을 확인할 수 있습니다.

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 URL을 가져올 수 있습니다.

"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 URL을 직접 사용할 수 있습니다. 다음 단계에 따라 signature.zip 파일을 다운로드할 수 있습니다.

  1. 애플리케이션 기본 사용자 인증 정보 (ADC)를 사용하여 인증을 설정합니다.

  2. 다음 명령어를 사용하여 signature.zip를 다운로드합니다.

      gcloud storage cp SIGNATURE_ZIP_URL PATH_TO_LOCAL_STORE --recursive
    

    다음을 바꿉니다.

    • SIGNATURE_ZIP_URL: 서명 zip URL입니다.
    • PATH_TO_LOCAL_STORE: 파일을 다운로드할 로컬 경로입니다.

2단계: 루트 인증서 가져오기

루트 인증서에 액세스하려면 다음 URL을 사용하세요.

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 패키지의 휠 파일입니다. 이 파일이 인증을 위한 PATH_TO_DATA_FILE이 됩니다.

4단계: 확인

수동 서명 확인의 단계를 사용하여 서명 zip을 수동으로 확인할 수도 있고 확인 스크립트를 사용할 수도 있습니다.

확인 스크립트를 사용하여 확인하려면 다음 명령어를 실행합니다.

  1. 인증 스크립트를 다운로드하고 권한을 부여합니다.

      gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
      chmod +x signatureverification.sh
    
  2. 확인 스크립트를 실행하고 확인합니다. 서명 zip 및 루트 인증서에 원격 URL 또는 로컬 경로를 사용할 수 있습니다.

      ./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 URL로 바꿉니다.
    • ROOT_CERT_URL를 2단계에서 가져온 루트 인증서 URL로 바꿉니다.

메타데이터 확인

이 섹션에서는 Cloud Storage를 사용하여 액세스한 Assured OSS 메타데이터의 서명을 확인하는 방법을 설명합니다.

aoss-verifier 도구 사용

aoss-verifier 도구를 사용하여 메타데이터를 확인합니다.

이 도구를 사용하기 전에 Go를 설치합니다.

  1. aoss-verifier 도구를 설치합니다.

  2. $(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는 다운로드한 파일을 보관하는 선택적 플래그입니다. 기본적으로 이 도구는 다운로드한 모든 파일을 정리합니다.

자세한 내용은 README를 참조하세요.

확인 스크립트 사용

이 섹션에서는 확인 스크립트를 사용하여 보안 메타데이터 파일을 확인하는 방법을 설명합니다.

1단계: 서명 zip 및 메타데이터 파일 가져오기

메타데이터 액세스와 같이 메타데이터에 액세스할 수 있습니다. 메타데이터 파일은 signature.zip 파일과 함께 제공됩니다.

예 - buildInfo.zip 콘텐츠

buildInfo.json
signature.zip

buildInfo.json은 확인해야 하는 메타데이터 파일이고 signature.zip은 서명 zip입니다.

2단계: 루트 인증서 가져오기

다음 URL 링크를 사용하여 루트 인증서를 가져옵니다.

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수동 확인을 사용하거나 확인 스크립트를 사용하여 확인할 수 있습니다.

확인 스크립트를 사용하여 확인하려면 다음 명령어를 실행합니다.

  1. 인증 스크립트를 다운로드하고 권한을 부여합니다.

      gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
      chmod +x signatureverification.sh
    
  2. 확인 스크립트를 실행하고 확인합니다. 서명 zip의 로컬 경로를 사용해야 합니다. 루트 인증서의 경우 URL 또는 로컬 경로를 사용할 수 있습니다. 데이터 파일은 확인 중인 메타데이터 파일(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 URL로 바꿉니다.

    • ROOT_CERT_URL을 2단계에서 가져온 루트 인증서 URL로 바꿉니다.

      이미 다운로드한 로컬 인증서를 사용하려면 다음 옵션을 대신 사용하세요.

      --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수동 확인을 사용하거나 확인 스크립트를 사용하여 확인할 수 있습니다. 인증 스크립트를 사용하여 서명을 빠르게 인증하려면 다음 단계를 따르세요.

  1. 인증 설정

  2. requirements.txt 생성기 스크립트 파일을 아직 다운로드하지 않았다면 파일을 다운로드합니다.

     gcloud storage cp "gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh" . --recursive
    
  3. 루트 인증서를 가져옵니다. URL 링크는 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을 인증서를 다운로드할 로컬 경로로 바꿉니다.

  4. 아직 다운로드하지 않은 경우 인증 스크립트를 다운로드합니다.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  5. 확인 스크립트를 실행하고 확인합니다.

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

    다음을 바꿉니다.

    • 2단계에서 획득한 generator.sh 스크립트의 로컬 경로로 바꿉니다.PATH_TO_DATA_FILE
    • ROOT_CERT_URL을 루트 인증서 URL로 바꿉니다. 이미 다운로드한 로컬 인증서를 사용하려면 다음 명령어를 실행합니다.
    –root_cert_local ROOT_CERT_LOCAL
    

    ROOT_CERT_LOCAL을 루트 인증서의 로컬 경로로 바꿉니다.

서명 확인 스크립트

gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification-sig.zip에서 이 파일의 서명에 액세스합니다. signature.zip수동 확인을 사용하거나 확인 스크립트를 사용하여 확인할 수 있습니다. 인증 스크립트를 사용하여 서명을 빠르게 인증하려면 다음 단계를 따르세요.

  1. 인증 설정

  2. 서명 확인 스크립트 파일을 아직 다운로드하지 않은 경우 파일을 다운로드합니다.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  3. 루트 인증서를 가져옵니다. URL 링크는 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을 인증서를 다운로드할 로컬 경로로 바꿉니다.

  4. 확인 스크립트를 실행하고 확인합니다.

    ./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을 루트 인증서 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수동 확인을 사용하거나 확인 스크립트를 사용하여 확인할 수 있습니다. 인증 스크립트를 사용하여 서명을 빠르게 인증하려면 다음 단계를 따르세요.

  1. 인증 설정

  2. 아직 download_metadata.py 스크립트 파일을 다운로드하지 않았다면 파일을 다운로드합니다.

    gcloud storage cp "gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata.py" . --recursive
    
  3. 루트 인증서를 가져옵니다. URL 링크는 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을 인증서를 다운로드할 로컬 경로로 바꿉니다.

  4. 확인 스크립트를 다운로드합니다.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  5. 확인 스크립트를 실행하고 확인합니다.

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

    다음을 바꿉니다.

    • 2단계에서 획득한 download_metadata.py 스크립트의 로컬 경로로 바꿉니다.PATH_TO_DATA_FILE
    • ROOT_CERT_URL을 루트 인증서 URL로 바꿉니다. 이미 다운로드한 로컬 인증서를 사용하려면 다음 명령어를 실행합니다.
    –root_cert_local ROOT_CERT_LOCAL
    

    ROOT_CERT_LOCAL을 루트 인증서의 로컬 경로로 바꿉니다.

다음 단계