다운로드 검증#
Altifigence 아티팩트를 설치하기 전에 릴리스 체크섬과 서명을 확인하십시오.
한국어 번역 검토 중 기술적 의미가 충돌하는 경우 영어 원문을 기준으로 사용하세요.
개요#
별도로 배포된 Docs 페이지는 고정된 검증 공개 키 바이트, 패키지 서명 지문 및 확인 명령을 소유합니다. 회사 사이트 런타임 구성은 현재 릴리스 튜플을 소유하며, 서명된 매니페스트는 아래에 사용된 파일 이름과 체크섬을 제공합니다. 이 페이지는 두 번째 릴리스 튜플을 정의하지 않습니다. 아래에서 허용된 최소 릴리스 시퀀스와 매니페스트 다이제스트는 독립적인 안티 롤백 핀입니다. Docs 핀과 다운로드한 신뢰 자료가 일치하지 않거나 제거되지 않는 경우, 명령을 실행하지 않습니다.
안티-롤백 핀 외에도 이 페이지에는 버전이 없습니다. 해당 아티팩트에 대해 게시된 값에 대해 아티팩트가 확인되므로 아래 모든 명령은 다운로드한 파일 이름을 대체하도록 요청합니다. 파일 이름을 정확하게 유지하십시오. 서명된 매니페스트에서 항목을 선택하는 것입니다.
SystemVerilog IDE 설치 프로그램은 로그인이 필요하지만 Free와 유료 계정은 동일한 서명된 파일을 요청할 수 있습니다. 인증되지 않은 설치 관리자 요청은 HTTP 302를 로그인 페이지로 반환합니다. 신뢰 파일은 공개 상태로 유지되므로 다른 승인된 전송을 통해 받은 아티팩트를 로그인하지 않고 확인할 수 있습니다.
ISA Design Studio는 서명된 릴리스 매니페스트를 사용하지만, SystemVerilog IDE에서 사용하는 불변의 내보내기/가져오기/안정된 배포 레일에 들어가지 않았습니다. 이는 다른 제품 출시 상태가 아니라 배포 메타데이터 차이입니다. Altifigence CLI는 별도의 서명된 아카이브 배포본을 사용하며 데스크탑 카탈로그 밖에 있습니다.
현재 릴리스 소스#
제품 |
분포 경계 |
현재 기록 |
|---|---|---|
SystemVerilog IDE |
불변의 릴리스 ID로 서명된 데스크톱 배포 |
다운로드 페이지 및 라이브 서명 매니페스트 |
ISA Design Studio |
서명된 데스크톱 릴리스; 변경할 수 없는 ID 레일이 아직 적용되지 않음 |
다운로드 페이지입니다 |
Altifigence CLI입니다 |
데스크톱 카탈로그 밖에서 서명된 아카이브 분리하기 |
다운로드 페이지입니다 |
SystemVerilog IDE 서페이스는 이러한 고정된 경로입니다. 버전 범위가 아닙니다. 각 서페이스는 카탈로그가 현재 홍보하는 모든 기능을 제공합니다.
영역 |
오시는 길 |
접근 |
|---|---|---|
설치 프로그램 |
|
Free를 포함한 모든 로그인 계정; 인증되지 않은 요청은 |
직접 체크섬 |
|
공개 |
체크섬 매니페스트 |
|
공개 |
매니페스트 서명 |
|
공개 |
패키지 정책 |
|
공개 |
패키지 키링 |
|
공개 |
검사 가능한 패키지 키 |
|
공개 |
각 제품에 대한 새 디렉토리를 사용하고 모든 검사가 통과할 때까지 다운로드된 아티팩트와 신뢰 파일을 함께 유지합니다. 일치하는 SHA-256은 서명된 매니페스트에 대해 바이트를 확인하지만 레코드를 게시한 사람이 직접 인증하지는 않습니다. 아래의 해당 서명 검사를 완료하십시오.
아래의 순서는 각 검사가 이전 검사에서 확인할 수 없는 내용을 다루고 있기 때문에 수정되었습니다. 일치하는 SHA-256은 게시자를 인증하지 않으며, 패키지 서명 명령은 매니페스트 명령이 동일한 디렉토리에서 성공한 후에만 의미가 있습니다. CLI 릴리스가 데비안 패키지가 아닌 서명된 아카이브이므로 해당 서명 검사만 적용되기 때문에 경로가 분할됩니다.
경로가 정지 상태에 도달하면 검증이 실패할 때를 따릅니다.
데스크톱 릴리스 매니페스트 확인#
각 데스크톱 릴리스에는 자체 Ed25519 키가 있습니다. 이 명령은 먼저 서명된 SHA256SUMS 매니페스트를 확인한 다음 정확히 하나의 패키지 항목을 선택하고 로컬 패키지를 확인합니다. 서명이 유효하지 않거나, 예상된 항목이 없거나 중복되었거나, 패키지 바이트가 일치하지 않으면 실패합니다.
ISA Design Studio#
필드 |
값 |
|---|---|
설치 프로그램 파일 이름 |
|
설치 프로그램 SHA-256 |
아래 서명된 |
체크섬 키 ID |
|
공개 키 바이트 |
|
매니페스트 |
SHA256SUMS입니다 |
매니페스트 서명 |
(
set -euo pipefail
curl -fLO https://www.altifigence.com/downloads/isa-design-studio/trust/SHA256SUMS
curl -fLO https://www.altifigence.com/downloads/isa-design-studio/trust/SHA256SUMS.sig
{ printf '302a300506032b6570032100' | xxd -r -p
printf 'qqPYrXLxnAe3qE/rVcmf7wNUj3ZQR38VaEYOF+3QzV8=' | base64 -d
} | { echo "-----BEGIN PUBLIC KEY-----"; base64 -w64; echo "-----END PUBLIC KEY-----"; } > isa-download.pem
openssl pkeyutl -verify -pubin -inkey isa-download.pem \
-rawin -in SHA256SUMS -sigfile SHA256SUMS.sig
grep -E '^[0-9a-f]{64} altifigence-isa-design-studio_[0-9]+(\.[0-9]+)+_amd64\.deb$' \
SHA256SUMS > PACKAGE.SHA256
test "$(wc -l < PACKAGE.SHA256)" -eq 1
sha256sum -c PACKAGE.SHA256
)
SystemVerilog IDE#
필드 |
값 |
|---|---|
최소 허용된 릴리스 |
|
설치 프로그램 파일 이름 |
|
설치 프로그램 SHA-256 |
아래 서명된 |
고정되는 |
|
체크섬 키 ID |
|
공개 키 바이트 |
|
매니페스트 |
SHA256SUMS입니다 |
매니페스트 서명 |
(
set -euo pipefail
curl -fLO https://www.altifigence.com/downloads/systemverilog-ide/trust/SHA256SUMS
curl -fLO https://www.altifigence.com/downloads/systemverilog-ide/trust/SHA256SUMS.sig
EXPECTED_MANIFEST_SHA256=b67ac49e6c69247c10518d39cf7472b8c7c798d697e2d9752646e27b45295089
printf '%s SHA256SUMS\n' "$EXPECTED_MANIFEST_SHA256" | sha256sum -c -
{ printf '302a300506032b6570032100' | xxd -r -p
printf '0Km02/+3ttNrM7J6RZ7dTFIPa4TLTMrbrJ0OUOvgjsE=' | base64 -d
} | { echo "-----BEGIN PUBLIC KEY-----"; base64 -w64; echo "-----END PUBLIC KEY-----"; } > ide-download.pem
openssl pkeyutl -verify -pubin -inkey ide-download.pem \
-rawin -in SHA256SUMS -sigfile SHA256SUMS.sig
grep -E '^[0-9a-f]{64} altifigence-systemverilog-ide_[0-9]+(\.[0-9]+)+_amd64\.deb$' \
SHA256SUMS > PACKAGE.SHA256
test "$(wc -l < PACKAGE.SHA256)" -eq 1
sha256sum -c PACKAGE.SHA256
)
매니페스트 서명이 성공해야 하고, 필터가 하나의 항목을 선택해야 하며, 최종 체크섬이 OK를 보고해야 합니다. 다른 결과는 실패입니다.
필터는 패키지 이름과 모든 버전과 일치하며, 정확히 하나의 항목이 필요합니다. 따라서 이 페이지가 아닌 서명 확인 매니페스트에서 버전을 가져옵니다. 매니페스트가 두 개의 패키지 버전을 한 번에 나열하는 경우, count 검사가 실패하고 중지됩니다. 즉, 의도된 결과이며 명령의 버그가 아닙니다. sha256sum -c 단계는 선택한 항목의 파일 이름을 읽은 다음, 디렉터리의 파일이 다른 릴리스를 홍보하는 경우 명시적으로 실패합니다.
테이블의 두 핀은이 페이지의 비 버전 규칙에 대한 고의적 인 예외이며 완화되어서는 안됩니다. Minimum accepted release는 반 롤백 바닥입니다. 그렇지 않으면 올바르게 서명되었지만 대체 된 릴리스가 다른 모든 검사를 통과합니다. 고정 된 SHA256SUMS는 별도로 배포 된 페이지가 작성된 매니페스트 생성을 고정시킵니다. 둘 다 프로모션 후에 닫히지 않을 것으로 예상됩니다. 그런 일이 발생하면 새 핀을 삭제하고 릴리스를 확인하십시오.
임베디드 데스크톱 패키지 서명 확인#
각 .deb에는 패키지 원본 서명도 있습니다. 이 서명은 SHA256SUMS가 근처에 없을 때 패키지와 함께 유지됩니다. 공개 파일에는 다음과 같은 고유한 역할이 있습니다.
altifigence-desktop.pol는 열쇠가 포장을 서명할지도 모르다dpkg를 말합니다;altifigence-desktop.gpg는debsig-verify에 의해 읽힌 열쇠 고리입니다;altifigence-desktop-packages.asc는 검사 가능한 장갑 형태의 동일한 공개 키입니다.
debsig-verify를 설치하면 이후의 모든 dpkg에 영향을 미치고 일치하는 정책 없이 패키지의 압축을 풀고 거부합니다. 아래 명시적인 패키지별 검사를 사용하십시오. 해당 시스템에 사용되는 모든 패키지에 대한 정책을 유지 관리하지 않는 한 설치 상태를 유지하지 마십시오. 다음을 사용하여 패키지를 제거하십시오.
sudo apt-get remove debsig-verify
위의 일치하는 매니페스트 명령이 동일한 디렉터리에서 성공한 후에만 패키지 명령을 실행합니다.
ISA Design Studio#
가득 차있는 포장 서명 지문: 424A21FF75925085003DBD46C0DA0C25F6B82E42
(
set -euo pipefail
sudo apt-get install debsig-verify gnupg
FPR=424A21FF75925085003DBD46C0DA0C25F6B82E42
curl -fLO https://www.altifigence.com/downloads/isa-design-studio/trust/altifigence-desktop.pol
curl -fLO https://www.altifigence.com/downloads/isa-design-studio/trust/altifigence-desktop.gpg
grep -E '^[0-9a-f]{64} altifigence-desktop\.(pol|gpg)$' SHA256SUMS > TRUST.SHA256
test "$(wc -l < TRUST.SHA256)" -eq 2
sha256sum -c TRUST.SHA256
sudo mkdir -p "/usr/share/debsig/keyrings/$FPR" "/etc/debsig/policies/$FPR"
sudo cp altifigence-desktop.gpg "/usr/share/debsig/keyrings/$FPR/"
sudo cp altifigence-desktop.pol "/etc/debsig/policies/$FPR/"
PACKAGE=$(cut -d' ' -f3 PACKAGE.SHA256)
test -n "$PACKAGE"
debsig-verify "$PACKAGE"
)
SystemVerilog IDE#
가득 차있는 포장 서명 지문: 1AD14D70B6EB0DDE1119E705F44BC2496665A843
(
set -euo pipefail
sudo apt-get install debsig-verify
FPR=1AD14D70B6EB0DDE1119E705F44BC2496665A843
curl -fLO https://www.altifigence.com/downloads/systemverilog-ide/trust/altifigence-desktop.pol
curl -fLO https://www.altifigence.com/downloads/systemverilog-ide/trust/altifigence-desktop.gpg
curl -fLO https://www.altifigence.com/downloads/systemverilog-ide/trust/altifigence-desktop-packages.asc
for KEY in altifigence-desktop.gpg altifigence-desktop-packages.asc; do
ACTUAL_FPR=$(gpg --batch --show-keys --with-colons "$KEY" \
| awk -F: '$1 == "fpr" { print $10; exit }')
test "$ACTUAL_FPR" = "$FPR"
done
grep -E '^[0-9a-f]{64} altifigence-desktop\.(pol|gpg)$' SHA256SUMS > TRUST.SHA256
test "$(wc -l < TRUST.SHA256)" -eq 2
sha256sum -c TRUST.SHA256
sudo mkdir -p "/usr/share/debsig/keyrings/$FPR" "/etc/debsig/policies/$FPR"
sudo cp altifigence-desktop.gpg "/usr/share/debsig/keyrings/$FPR/"
sudo cp altifigence-desktop.pol "/etc/debsig/policies/$FPR/"
PACKAGE=$(cut -d' ' -f3 PACKAGE.SHA256)
test -n "$PACKAGE"
debsig-verify "$PACKAGE"
)
패키지 확인 결과 읽기#
숫자는 스텝 번호가 아닌 명령 종료 상태입니다. 0만 종료하면 패키지가 검증을 통과했습니다.
종료 |
의미 |
동작 |
|---|---|---|
|
요청한 작업이 성공적으로 완료되었습니다. |
설치를 계속합니다. |
|
검증되지 않은 작업 중에 일반적인 오류가 발생했습니다. |
중지하고 명령 출력을 검사합니다. |
|
패키지에 서명이 없거나 원본 서명을 찾을 수 없습니다. |
패키지를 설치하지 마십시오. |
|
원본 서명이 발견되었지만 정책 디렉터리가 없습니다. |
게시 된 정책 및 키링이 아직 존재하지 않으면 다시 시도하십시오. 그렇지 않으면 지문과 경로를 검사하십시오. |
|
원본 및 정책 디렉터리가 존재하지만 정책을 선택하지 않았으므로 확인이 수행되지 않았습니다. |
패키지를 설치하지 마십시오. |
|
잘못된 서명 또는 다른 충족되지 않은 검증 규칙으로 인해 정책 검증이 실패했습니다. |
패키지를 설치하지 마십시오. |
|
복구할 수 없는 내부 오류(예: 손상된 패키지 또는 비정상적인 서명 처리 실패)가 발생했습니다. |
패키지를 설치하지 마십시오. |
11 종료를 확인 성공으로 간주하지 않습니다. 정책 설치가 이미 올바른 경우 지문, 디렉터리 이름 및 파일이 검사될 때까지 중지하십시오.
CLI 아카이브 확인#
CLI는 데비안 패키지가 아닌 서명된 아카이브입니다. 고정 릴리스 공개 키 다이제스트, SHA-256 아카이브 및 분리 된 아카이브 서명을 추출하기 전에 확인하십시오.
필드 |
값 |
|---|---|
중요한 ID |
|
공개 키 DER SHA-256 |
|
체크섬 매니페스트 |
SHA256SUMS입니다 |
매니페스트 서명 |
|
보관 서명 |
|
공개 키 공개 |
아래 처음 두 개의 과제를 기입하십시오. CLI_VERSION는 다운로드한 파일 이름에 있는 버전 문자열입니다. EXPECTED_CLI_ARCHIVE_SHA256는 위에 링크된 SHA256SUMS 매니페스트에 있는 해당 아카이브에 대해 게시된 체크섬입니다. 검사하는 아카이브에서 신뢰 자료를 읽어서는 안 됩니다. 세 번째 과제는 공개 키로 이 페이지 핀을 소화하는 것입니다. 이것은 버전에 특화된 것이 아니므로, 기록되지 않은 상태로 두십시오.
(
set -euo pipefail
CLI_VERSION=VERSION
EXPECTED_CLI_ARCHIVE_SHA256=PUBLISHED_ARCHIVE_SHA256
EXPECTED_CLI_PUBLIC_KEY_SHA256=d4b5b6c2d55fa8fe46a2f8e2fd80ac3b4cb06082fa537bb9ac57df0bd58e0564
if [ "$CLI_VERSION" = VERSION ] || [ "$EXPECTED_CLI_ARCHIVE_SHA256" = PUBLISHED_ARCHIVE_SHA256 ]; then
printf 'Set CLI_VERSION and EXPECTED_CLI_ARCHIVE_SHA256 from the release you downloaded.\n' >&2
exit 1
fi
CLI_ARCHIVE="altifigence-cli-v$CLI_VERSION-x86_64-unknown-linux-gnu.tar.gz"
curl -fLO "https://www.altifigence.com/downloads/cli/trust/$CLI_ARCHIVE.sig"
curl -fLO https://www.altifigence.com/downloads/cli/trust/CLI-RELEASE-PUBLIC-KEY.pem
ACTUAL_CLI_PUBLIC_KEY_SHA256="$(openssl pkey -pubin \
-in CLI-RELEASE-PUBLIC-KEY.pem -outform DER \
| sha256sum | cut -d' ' -f1)"
test "$ACTUAL_CLI_PUBLIC_KEY_SHA256" = "$EXPECTED_CLI_PUBLIC_KEY_SHA256"
printf '%s %s\n' "$EXPECTED_CLI_ARCHIVE_SHA256" "$CLI_ARCHIVE" | sha256sum -c -
openssl dgst -sha256 -verify CLI-RELEASE-PUBLIC-KEY.pem \
-signature "$CLI_ARCHIVE.sig" \
"$CLI_ARCHIVE"
)
체크섬은 OK를 보고해야 하며 OpenSSL은 Verified OK를 보고해야 합니다. 결과가 누락된 경우 아카이브를 추출하지 마십시오.
서명 검사는 아카이브를 인증하는 것으로, 모든 버전에 적용됩니다. 고정 된 공개 키 다이제스트는 키를 수정하고 키는 가지고 있는 바이트에 대해 분리 된 서명을 유효성 검사합니다. 체크섬 비교는 동일한 릴리스 레코드의 두 번째 독립적 인 읽기이므로이 페이지에서가 아니라 게시 된 신뢰 자료에서 값이 와야합니다.
검증이 실패할 때#
실패한 아티팩트 및 신뢰 파일을 삭제합니다.
새 브라우저 세션에서 공식 HTTPS 다운로드 페이지로 돌아갑니다.
제품의 다운로드 시작 페이지를 열고 아티팩트를 다시 요청하고 이 페이지에서 새로 일치하는 신뢰 파일을 다운로드합니다.
프록시, 미러 또는 다운로드 관리자가 이름을 변경하거나 수정하지 않았는지 확인합니다.
두 번째 시도가 실패하면 설치하지 마십시오. 파일 이름, 예상 버전, 계산된 SHA-256 및 실패한 명령을 알티피지언스로 보냅니다.
인증 보고서와 함께 자격 증명, 브라우저 쿠키, 액세스 토큰, 개인 키 또는 프로젝트 소스를 보내지 마십시오.
신뢰 파일은 공용이므로 다른 곳에서받은 파일을 독립적으로 확인할 수 있습니다. 공개 신뢰 자료는 공식 아티팩트 경로에 필요한 로그인을 대체하지 않으며 유료 제품 기능, 데스크톱 라이선스 또는 클라우드 액세스를 부여하지 않습니다. 독립적 인 공개 빌드 검증 경로는 현재 게시되지 않았습니다.