저장소가 어떤 키로 서명되었는지(또는 그 반대)를 어떻게 알 수 있나요?

저장소가 어떤 키로 서명되었는지(또는 그 반대)를 어떻게 알 수 있나요?

signed-by/etc/apt/trusted.gpg.d의 키 대신 /usr/share/keyrings를 가리키는 /etc/apt/sources.list.d/debian.sources의 모든 저장소에서 이 옵션을 사용하고 싶습니다. 이 디렉토리를 보면 이 오래된 관행이 안전하지 않다는 것이 제가 이해한 바입니다. 이것이 타사 저장소에만 적용되는지는 모르겠지만 후회하는 것보다 안전한 것이 낫습니다.

그러나 signed-by옵션을 추가할 때 키 이름이 저장소와 일치하지 않기 때문에 어떤 키가 어떤 저장소에 연결되어 있는지 알 수 없다는 사실을 발견했습니다.

debian-archive-bullseye-automatic.gpg
debian-archive-bullseye-security-automatic.gpg
debian-archive-bullseye-stable.gpg
debian-archive-buster-automatic.gpg
debian-archive-buster-security-automatic.gpg
데비안 -archive-buster-stable.gpg
debian-archive-keyring.gpg
debian-archive-removed-keys.gpg
debian-archive-stretch-automatic.gpg
debian-archive-stretch-security-automatic.gpg
debian-archive-stretch- 안정적인 GPG

내 /etc/apt/sources.list.d/debian.sources는 다음과 같습니다:

유형: deb
URI:https://deb.debian.org/debian/
모음: Buster
구성 요소: main
서명자: /usr/share/keyrings/debian-archive-buster-stable.gpg

유형: deb-src
URI:https://deb.debian.org/debian/
모음: Buster
구성 요소: main
서명자: /usr/share/keyrings/debian-archive-buster-stable.gpg

유형: deb
URI:https://security.debian.org/debian-security
제품군: 버스터/업데이트
구성 요소: 메인
서명자: /usr/share/keyrings/debian-archive-buster-security-automatic.gpg

유형: deb-src
URI:https://security.debian.org/debian-security
제품군: 버스터/업데이트
구성 요소: 메인
서명자: /usr/share/keyrings/debian-archive-buster-security-automatic.gpg

유형: deb
URI:https://deb.debian.org/debian/
패키지: Buster-updates
구성 요소: main
서명자: /usr/share/keyrings/debian-archive-buster-automatic.gpg

유형: deb-src
URI:https://deb.debian.org/debian/
패키지: Buster-updates
구성 요소: main
서명자: /usr/share/keyrings/debian-archive-buster-automatic.gpg

유형: deb
URI:https://deb.debian.org/debian
패키지: Buster-backports
구성 요소: main
서명자: /usr/share/keyrings/debian-archive-buster-automatic.gpg

이로 인해 오류가 발생하지 않으며 소프트웨어를 설치할 수 있지만 추측할 필요 없이 각 저장소의 옵션 apt update에 어떤 키를 연결해야 하는지 결정하고 질문을 남길 수 있는 방법을 알고 싶습니다 .signed-by

알아요. apt-key list하지만 정보는 거의 같습니다. "Debian Secure Archive Auto-Signing Key"는 업데이트 중단 및 백포트 중단에 서명했음을 어떻게 알려줍니까? 여러 패키지에 대해 하나의 키가 서명되는 것이 정상입니까? 나는 각 스위트마다 열쇠를 갖고 싶었습니다.

또한 반대로, 주요 플래그가 무엇인지 어떻게 알 수 있습니까? /usr/share/keyrings에 쓸모없는 키가 없거나 악성 저장소에 서명하고 있다는 것을 어떻게 알 수 있나요?

답변1

맥락에 따라 타사 리포지토리에 대한 현재 모범 사례가 문서화되어 있습니다.데비안 위키 페이지의 타사 저장소 사용에 대한 정보그리고"apt를 사용하여 타사 데비안 저장소 서명 키를 올바르게 사용하는 방법" 블로그 게시물. 결국에는 데비안 자체 저장소로 확장되어야 합니다.이 문제예를 들어.

현재 설정을 신뢰한다고 가정하면 서명에 사용된 키를 나열하여 서명된 아카이브 버전 파일을 키에 매핑할 수 있습니다.

$ gpgv /var/lib/apt/lists/security.debian.org_dists_buster_updates_InRelease
gpgv: Signature made Mon 07 Jun 2021 23:03:07 CEST
gpgv:                using RSA key 379483D8B60160B155B372DDAA8E81B4331F7F50
gpgv: Can't check signature: No public key
gpgv: Signature made Mon 07 Jun 2021 23:03:07 CEST
gpgv:                using RSA key 5237CEEEF212F3D51C74ABE0112695A0E562B32A
gpgv: Can't check signature: No public key

Debian 10 보안 업데이트는 RSA 키 379483D8B60160B155B372DDAA8E81B4331F7F50 및 5237CEEEF212F3D51C74ABE0112695A0E562B32A로 서명된 것으로 표시됩니다. "Debian 보안 아카이브 자동 서명 키(9/stretch)" 및 "Debian 보안 아카이브 자동 서명 키(10/buster)"입니다. 확신하는저것/usr/share/keyrings, 다음과 같은 명령을 사용하여 그 안의 개별 키링을 확인하세요 for file in /usr/share/keyrings/*.gpg; do echo $file; gpg --list-keys --no-default-keyring --with-subkey-fingerprint --keyring $file; done.

이는 이상적이지 않습니다. 보다 권위 있는 사용 정보를 얻으려면 다음 규칙을 적용할 수 있습니다.

  • "안정" 키(예를 들어해당 안정 저장소와 함께 사용하기 위한 "Debian 안정 릴리스 키(10/buster)")
  • Autokey는 공지 이메일에 설명된 대로 사용됩니다.예를 들어 버스터 키그리고불스아이 키.

리포지토리 인덱스는 일반적으로 일부 중복을 허용하기 위해 두 개의 키로 서명됩니다.

개인에게 관심을 가져서는 안 된다문서다음으로 /usr/share/keyrings, 거기에서 파일을 제공하는 패키지(물론 패키지가 제공하지 않는 파일)에 관한 것입니다. 그러나 위의 지도에서는 ​​설정에서 더 이상 사용되지 않는 키도 찾을 수 있습니다.

APT 2.4부터는 다음이 가능해집니다..sources조각에 서명 키 지정,예를 들어

URIs: https://deb.debian.org
Suites: stable
Components: main contrib non-free
Signed-By:
 -----BEGIN PGP PUBLIC KEY BLOCK-----
...
 -----END PGP PUBLIC KEY BLOCK-----

관련 정보