분리된 서명을 확인하면 어떻게 되나요?

분리된 서명을 확인하면 어떻게 되나요?

분리된 GPG 서명을 확인할 때 어떤 일이 발생하는지 이해하려고 합니다.

다음은 gnupg의 예입니다.수동:

blake% gpg --verify doc.sig doc
gpg: Signature made Fri Jun  4 12:38:46 1999 CDT using DSA key ID BB7576AC
gpg: Good signature from "Alice (Judge) <[email protected]>"

gpg는 서명이 좋은지 어떻게 결정합니까? 서명에 서명된 파일의 해시가 포함되어 있습니까? 그렇다면 서명 자체에서 해당 해시를 어떻게 추출합니까?

시도했지만 gpg --list-packets <signature>전체 정보가 표시되지 않는 것 같습니다.

답변1

--list-packets이 옵션을 사용하여 gpg 파일의 내용을 덤프할 수 있습니다 . 파일 형식에 대한 설명은 다음과 같습니다.RFC 4880(OpenPGP 표준).

서명에는 해시가 직접 포함되지 않습니다. 여기에는 해시와 보낸 사람을 모두 확인할 수 있는 정보가 포함되어 있습니다.서명 검증 알고리즘, 해시 값과 공개 키를 입력으로 사용하여 반환합니다.또는아니요; 알고리즘이 반환주어진 개인 키를 가진 메시지에서 주어진 공개 키에 해당하는 개인 키로 서명이 이루어진 경우 반환됩니다.아니요다른 모든 상황(다른 해시의 서명, 다른 키로 만든 서명 또는 전혀 서명이 될 수 없는 바이트 묶음)에서. 아래의DSA알고리즘을 사용하는 경우 개인 키가 없으면 서명에서 해시를 추출하는 것이 불가능하다고 생각합니다.

서명 파일에는 서명자의 신원과 서명 값이 포함됩니다. 서명을 확인하기 위해 gpg는 키링에서 서명자의 공개 키를 읽고 데이터의 해시를 계산한 다음 서명 확인 알고리즘을 적용합니다.

답변2

$ gpg --list-packets myfile.asc
[...]
       digest algo 10, begin of digest 77 dd

이는 어떤 다이제스트 알고리즘이 사용되었는지 보여줍니다. 불행하게도 매뉴얼 페이지나 gpg --version어떤 알고리즘이 어떤 ID에 할당되어 있는지 알려주지 않습니다. 이 정보를 찾으려면 패킷 형식의 RFC를 자세히 살펴봐야 합니다.https://www.rfc-editor.org/rfc/rfc4880#section-9.4

ID           Algorithm                             Text Name
--           ---------                             ---------
1          - MD5 [HAC]                             "MD5"
2          - SHA-1 [FIPS180]                       "SHA1"
3          - RIPE-MD/160 [HAC]                     "RIPEMD160"
4          - Reserved
5          - Reserved
6          - Reserved
7          - Reserved
8          - SHA256 [FIPS180]                      "SHA256"
9          - SHA384 [FIPS180]                      "SHA384"
10         - SHA512 [FIPS180]                      "SHA512"
11         - SHA224 [FIPS180]                      "SHA224"
100 to 110 - Private/Experimental algorithm

답변3

예, 디지털 서명은 일반적으로 서명자의 비밀 키로 서명되는 보안 해시입니다.

전체 메시지에 서명하는 것은 훨씬 느리고 안전하지 않습니다. 또한 알고리즘은 블록 길이, 패딩(너무 많은 정보를 공개하지 않는 방식으로) 등을 처리해야 합니다.

참고: 비대칭 암호화에서도 속도상의 이유로 임시 대칭 키만 비대칭 암호화되고 나머지 메시지는 대칭 암호화됩니다.

관련 정보