OpenPGP(키워드: gpg) 공개 키의 사전 결정된 화이트리스트와 비교하여 그 중 하나의 서명이 유효한지 확인해야 하는 콘텐츠가 있습니다.
화이트리스트는 별도로 관리됩니다. 이상적으로는 일련의 ASCII 기반 공개 키 블록이겠지만, 파일당 하나의 공개 키가 있는 디렉터리도 괜찮습니다. 화이트리스트는 별도로 관리되므로 gpg의 키링 관리 기능은 사용하고 싶지 않습니다. 콘텐츠가 키 세트의 키로 서명되면 통과됩니다. 다양한 신뢰 수준이나 신뢰 네트워크 등이 없습니다.
이상적으로는 다음과 같은 인터페이스를 갖춘 프로그램이 있어야 합니다.
some-program KEYS_FILE CONTENT SIGFILE
또는 예시 인수를 통해
some-program /etc/ourapp/ourapps_trusted_pubkeys.asc /var/lib/ourapp/newcontent.tar.gz /var/lib/ourapp/newcontent.tar.gz.asc
gpg를 사용하여 이 작업을 수행하는 가장 빠른 방법은 다음과 같습니다.
- 임시 파일을 키링으로 사용
- --keyring을 사용하여 gpg에 이를 지정하고 --no-default-keyring도 제공합니다.
- ourapps_trusted_pubkeys.asc의 키를 반복하여 한 번에 하나씩 가져옵니다.
- 키를 다시 반복하여 gpg --import-ownertrust를 사용하여 신뢰할 수 있는 키로 설정합니다.
- gpg --verify 실행
이것은 일반적인 사용 사례라고 생각되는 것에 대한 엄청난 노력입니다. 내가 무엇을 놓치고 있나요? some-program(1)과 유사한 도구가 있습니까?
답변1
간단한 서명 확인을 위한 프로그램 gpgv
/ gpgv2
문제는 내보낸 키 파일이 키링으로 인식되지 않는다는 점입니다. 따라서 첫 번째 단계에서 키링을 생성해야 합니다.
cd /some/tmp/dir || exit 1
test -f pubring.gpg && { rm -f pubring.gpg || exit 1; }
gpg --no-options --no-default-keyring --keyring ./pubring.gpg \
--secret-keyring ./secring.gpg --import /etc/ourapp/ourapps_trusted_pubkeys.asc
이제 사용할 수 있는 키링 파일이 /some/tmp/dir/pubring.gpg
있습니다 .gpgv
gpgv --keyring /some/tmp/dir/pubring.gpg \
/var/lib/ourapp/newcontent.tar.gz.asc /var/lib/ourapp/newcontent.tar.gz
데이터 파일 경로가 서명되지 않은 경로인 경우 .asc
(예에서와 같이) 생략할 수 있습니다.