여전히 GPG 키와 하위 키에 대해 혼란스러워함

여전히 GPG 키와 하위 키에 대해 혼란스러워함

방금 다음을 사용하여 새 키를 생성했습니다.

gpg --빠른 생성 키

이제 내가 할 때

gpg --목록-키[이메일 보호됨]

나는 다음과 같은 것을 얻습니다 :

pub   rsa2048 2020-01-29 [SC] [expires: 2022-01-28]
      DEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEF
uid           [ultimate] [email protected]
sub   rsa2048 2020-01-29 [E]

하지만 내가 이렇게 하면:

gpg --편집 키[이메일 보호됨]

나는 다음과 같은 것을 얻습니다.

gpg (GnuPG) 2.2.17; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

sec  rsa2048/DEADBEEFDEADBEEF
     created: 2020-01-29  expires: 2022-01-28  usage: SC  
     trust: ultimate      validity: ultimate
ssb  rsa2048/BEEFDEADBEEFDEAD
     created: 2020-01-29  expires: never       usage: E   
[ultimate] (1). [email protected]

키와 하위 키의 개념을 어느 정도 이해했다고 생각했지만 여전히 이해가 되지 않습니다.

  1. 출력에 한 경우에는 공개 키가 표시되고 다른 경우에는 비밀 키가 표시되는 이유는 무엇입니까?
  2. 왜 첫 번째 경우에는 공개 키( pub)가 서명( )할 수 있는 것으로 표시되고 , 두 번째 경우에는 S비밀 키( ssb)가 암호화 가능( )으로 표시됩니까 ? E이는 공개 키 암호화 101에서 배운 내용과 반대되는 것이 아닌가요?

답변1

출력에 한 경우에는 공개 키가 표시되고 다른 경우에는 비밀 키가 표시되는 이유는 무엇입니까?

GnuPG 2.1 이상에서는 명령이 비밀 키를 표시하는 것 같습니다. --edit-key왜냐하면 그것이 항상 그랬기 때문입니다.

GnuPG 1.x(및 원래 PGP 2.x에서도 유사)에는 완전히 분리된 두 개의 키링(pubring 및 secring)이 있었습니다. 일부 작업은 한 작업과 함께 작동했고 일부 작업은 다른 작업과 함께 작동했습니다. 따라서 다른 파일에서 읽는 것을 제외하고는 --list-secret-keys정확히 같았으며 두 보기 사이를 전환하는 하위 명령이 있었습니다.--list-keys--edit-keys

첫 번째 경우에는 공개 키(pub)가 서명 가능(S)할 수 있는 것으로 표시되고 두 번째 경우에는 비밀 키(ssb)가 암호화 가능(E)으로 표시되는 이유는 무엇입니까? 이는 공개 키 암호화 101에서 배운 내용과 반대되는 것이 아닌가요?

아니요. 출력은 순수한 암호화 의미의 '키'가 아닌 PGP 객체의 '키'를 설명하며 사용 플래그는 PGP 작업이 무엇인지 설명합니다.의미했다 "내부" 키가 수학적으로 수행할 수 있는 암호화 작업에만 사용되는 것이 아닙니다. 이는 공개 부분을 보느냐 비공개 부분을 보느냐에 따라 변경되지 않음을 의미합니다.

예를 들어, 예제 PGP 키 블록에는 두 개의 RSA 키 쌍이 있으며 둘 다 기술적으로 서명/확인은 물론 암호화/암호 해독도 가능합니다. 그러나 두 개를 갖는 요점은 목적을 별도로 유지하려는 것입니다. 즉, GnuPG가 서명용 하위 키를 사용하여 암호화를 수행하는 것을 원하지 않으므로 사용 플래그가 이를 필터링합니다.

(메시지나 서명에 이미 사용할 키가 표시되어 있으므로 "암호 해독" 또는 "확인"에 대한 별도의 플래그는 없습니다.)

이는 또한 동일한 작업(서명 또는 확인)에 매핑되지만 컨텍스트가 다른 여러 사용 플래그가 있을 수 있음을 의미합니다.

  • "S"를 사용하면 메시지와 파일(이메일 등)에 서명하는 데 키를 사용할 수 있습니다.
  • "C"를 사용하면 다른 키/하위 키에 서명(인증)하는 데 키를 사용할 수 있습니다.
  • "A"를 사용하면 TLS 또는 SSHv2에서와 같이 인증 문제 서명에 키를 사용할 수 있습니다.

세 가지 모두 암호화폐 측면에서 동일한 종류의 디지털 서명을 생성하지만 키 자체는 정책상의 이유로 분리되는 경우가 많습니다. (예를 들어 '인증' 키는 '인증' 키보다 훨씬 더 강력하게 보호되어야 합니다.)

관련 정보