이 지침에 따라 커널을 다운로드하고 압축을 풀었습니다. https://priyachalakkal.wordpress.com/2013/01/19/verifying-digital-signature-using-gpg/
그런 다음 서명을 확인하려고 시도했지만 예상치 못한 오류가 발생했습니다. 이는 기본 접근 방식을 문서화한 웹 사이트에서 설명하는 성공 또는 실패 시나리오 중 하나가 아닙니다.
공개 키를 찾을 위치를 알려주는 명령줄 플래그를 제공해야 합니까?
~# gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 79BE3E4300411886
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 79BE3E4300411886: public key "Linus Torvalds <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
~# gpg --verify linux-5.6.9.tar.sign
gpg: assuming signed data in 'linux-5.6.9.tar'
gpg: Signature made Fri 01 May 2020 11:51:56 PM PDT
gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Can't check signature: No public key
업데이트 1: @StephenKitt의 답변을 바탕으로 첫 번째 메시지에 표시된 키를 가져오려고 했지만(사용자 ID를 찾으려면 키 서버를 지정해야 했습니다) 결과는 예상했던 것과 다릅니다.
~# gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 647F28654894E3BD457199BE38DBBDC86092693E
gpg: key 38DBBDC86092693E: public key "Greg Kroah-Hartman <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
~# gpg --verify linux-5.6.9.tar.sign
gpg: assuming signed data in 'linux-5.6.9.tar'
gpg: Signature made Fri 01 May 2020 11:51:56 PM PDT
gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Good signature from "Greg Kroah-Hartman <[email protected]>" [unknown]
gpg: aka "Greg Kroah-Hartman <[email protected]>" [unknown]
gpg: aka "Greg Kroah-Hartman (Linux kernel stable release signing key) <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: 서명이 소유자에게 속한다는 표시가 없습니다. 기본 키 지문: 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E
업데이트 2: 인터넷 검색을 통해 신뢰할 수 없는 서명 경고를 처리하는 방법을 알아낼 수 있었습니다(해당 답변에서 Stephen의 의견/답글 참조).
~# gpg2 --tofu-policy good 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Setting TOFU trust policy for new binding <key: 647F28654894E3BD457199BE38DBBDC86092693E, user id: Greg Kroah-Hartman <[email protected]>> to good.
gpg: Setting TOFU trust policy for new binding <key: 647F28654894E3BD457199BE38DBBDC86092693E, user id: Greg Kroah-Hartman <[email protected]>> to good.
gpg: Setting TOFU trust policy for new binding <key: 647F28654894E3BD457199BE38DBBDC86092693E, user id: Greg Kroah-Hartman (Linux kernel stable release signing key) <[email protected]>> to good.
~# gpg2 --trust-model tofu --verify linux-5.6.9.tar.sign
gpg: assuming signed data in 'linux-5.6.9.tar'
gpg: Signature made Fri 01 May 2020 11:51:56 PM PDT
gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Good signature from "Greg Kroah-Hartman <[email protected]>" [full]
gpg: aka "Greg Kroah-Hartman <[email protected]>" [full]
gpg: aka "Greg Kroah-Hartman (Linux kernel stable release signing key) <[email protected]>" [full]
gpg: [email protected]: Verified 1 signatures in the past 0 seconds.
Encrypted 0 messages.
gpg: [email protected]: Verified 1 signatures in the past 0 seconds. Encrypted
0 messages.
gpg: [email protected]: Verified 1 signatures in the past 0 seconds. Encrypted
0 messages.
답변1
올바른 키가 없습니다. 5.6.9 아카이브는 Linus가 아닌 Greg Kroah-Hartman이 서명했습니다. 달리기
gpg --recv-keys 647F28654894E3BD457199BE38DBBDC86092693E
아카이브를 확인할 수 있습니다. (두 번째 통화의 지문입니다 gpg
.)
키를 검색한 후 수신된 메시지는 다음 두 가지를 나타냅니다.
- 프로필에 서명이 잘 되어 있습니다("좋은 서명은 다음에서 왔습니다"...).
- 하지만 다운로드한 키가 실제로 Greg의 것인지에 대한 증거는 없습니다.
기본적으로 이는 키를 신뢰하는 한 아카이브도 신뢰할 수 있음을 의미합니다. GPG는 귀하의 키에서 다른 사람과의 링크를 추적하는 신뢰 데이터베이스를 유지 관리합니다. 이는 신뢰 네트워크를 기반으로 하며 범용 도구로는 실용적이지 않은 것으로 간주됩니다. 대부분의 경우 TOFU(Trust on First Use)가 더 간단하고 똑같이 유용합니다. 다음 옵션을 사용하여 신뢰 모델을 변경할 수 있습니다 --trust-model
.GnuPG 매뉴얼자세히 알아보고 토론하세요.