본문으로 건너뛰기
AZ Tools

PGP 공개키 검사기

ASCII 아머 형식의 OpenPGP 공개키 블록을 브라우저에서 해독해 그 안에 실제로 무엇이 있는지 보여 줍니다. 기본 키와 모든 서브키의 전체 지문을 규격이 정의한 방식대로 직접 계산해서 보여 주고, 긴 키 ID, 알고리즘과 길이, 생성일, 자체 서명에 들어 있다면 만료일, 그리고 키에 묶인 모든 사용자 ID를 표시합니다. 이걸 확인하는 이유는 거의 언제나 같습니다. 프로젝트 웹사이트나 키서버, 데비안 저장소에서 얻은 지문이 있고, 지금 눈앞의 블록이 그 키가 맞는지 알아야 하는 것입니다. 아머의 CRC-24 체크섬, 즉 맨 아래 `=` 뒤의 네 글자도 검증합니다. 이 값은 채팅창이나 위키를 거치며 한 줄을 잃어버린 블록을 잡아내려고 존재합니다. 그런 키는 겉모습은 완벽해 보이면서 실제로는 손상된 상태입니다. 그리고 정말 중요한 조언 하나를 반복합니다. 짧은 키 ID가 아니라 지문 전체를 대조하십시오. 32비트짜리 식별자는 노트북으로도 충돌을 만들 수 있고, 누군가는 이미 strong set의 모든 키에 대해 일치하는 가짜를 공개해 두었습니다. 실수로 개인키 블록을 붙여 넣으면 처리를 거부하고 그 사실을 알려 줍니다. 업로드되지 않으며 키는 전부 이 페이지에서 해석됩니다.

사용법

  1. 아머 형식 공개키 블록을 붙여 넣거나 .asc, .gpg 파일을 상자에 끌어다 놓습니다.
  2. 전체 지문 40자리를 키 소유자가 공개한 값과 대조합니다.
  3. 생성일과 만료일을 확인합니다. 만료된 키는 만료 이후에 만들어진 서명을 검증할 수 없습니다.
  4. 사용자 ID로 이 키가 주장하는 이름과 주소를 보고, 서브키 목록으로 실제 서명·암호화를 담당하는 키를 확인합니다.
  5. 노란색으로 표시된 항목은 키를 신뢰하기 전에 해결하는 편이 좋습니다.

자주 묻는 질문

키 ID 대신 왜 지문을 대조해야 합니까?
짧은 키 ID는 지문의 마지막 32비트일 뿐이고, 32비트로는 무엇도 식별할 수 없기 때문입니다. 같은 짧은 ID를 갖는 다른 키를 만드는 데는 평범한 하드웨어로 몇 분이면 충분하고, 2019년 Evil 32 프로젝트가 PGP strong set의 모든 키에 대해 바로 그 작업을 해서 결과를 공개했습니다. 당신이 신경 쓰는 키의 충돌본이 이미 존재할 수 있다는 뜻입니다. 긴 키 ID는 64비트로 조금 낫지만 여전히 신뢰의 근거로는 안전하지 않습니다. 버전 4 키의 전체 지문은 160비트이고, 프로젝트들이 웹사이트에 그 값을 올려 두는 데는 이유가 있습니다.
블록 맨 아래의 `=XXXX` 줄은 무엇입니까?
이진 데이터의 CRC-24 체크섬으로, RFC 4880이 아머 형식의 일부로 정의한 값입니다. 키를 여기저기 옮기다 생기는 평범한 사고를 잡아냅니다. 채팅 클라이언트가 삼킨 한 줄, 블록을 다시 흘려 버린 위키, 마지막 행을 빠뜨린 붙여넣기 같은 것들입니다. base64는 중간에 한 줄이 빠진 블록도 아무렇지 않게 해독하고 패킷 파서까지 통과할 수 있어서, 체크섬이 없으면 망가진 키가 그럴듯해 보입니다. 이 도구는 그 값을 검증하고 맞지 않으면 알려 줍니다. 다만 이건 사고에 대한 무결성 검사일 뿐 서명이 아니며, 누군가 의도적으로 키를 바꿔치기하는 것은 막지 못합니다.
여기에 키를 붙여 넣어도 안전합니까?
공개키라면 안전합니다. 애초에 공개하라고 만든 것이고 이 페이지는 어디로도 보내지 않습니다. 파싱과 지문을 만드는 SHA-1 계산 모두 브라우저에서 실행되며, 페이지를 연 다음 네트워크를 끊고 키를 붙여 넣어 보면 그대로 동작하는 것으로 확인할 수 있습니다. 개인키는 다릅니다. 이 페이지를 포함해 어떤 웹 페이지에도 붙여 넣지 마십시오. 블록이 PRIVATE KEY로 시작하면 조용히 파싱하는 대신 처리를 거부합니다.
SHA-1이 깨졌는데 지문은 왜 SHA-1을 씁니까?
버전 4 키 형식이 그렇게 정의했고, 지문은 어디서 계산하든 똑같이 나와야 서로 대조가 가능하기 때문입니다. SHA-1은 충돌 저항성이 깨졌고, 그건 공격자가 두 입력을 모두 통제할 때 문제가 됩니다. 지문에서는 실제로 우려되는 지점이라, 그래서 RFC 9580의 새 버전 6 키 형식은 SHA-256으로 바뀌었습니다. 이 도구는 키 자신의 버전이 요구하는 쪽으로 계산하므로, v4 키에는 gpg와 모든 키서버가 보여 주는 것과 같은 SHA-1 지문이 나옵니다.
기본 키와 서브키는 무엇이 다릅니까?
기본 키가 신원입니다. 사용자 ID를 담고 나머지 전부를 인증합니다. 서브키는 거기에 매달려 일상 작업을 처리하는데 보통 서명용과 암호화용이 하나씩이며, 그래서 기본 키를 오프라인에 보관할 수 있습니다. 키 블록에 지문이 여러 개 보이는 이유이고, 메일 서명에 찍힌 키가 프로젝트 웹사이트의 그것과 다를 수 있는 이유이기도 합니다. 그 서명은 서브키가 만든 것이니까요. 여기서는 둘 다 각자의 지문과 함께 나열하므로 어느 쪽인지 구분할 수 있습니다.
키가 폐기되었는지, 누가 서명했는지도 확인할 수 있습니까?
할 수 없습니다. 이 도구는 패킷을 읽어 키와 사용자 ID, 날짜를 보고할 뿐 서명을 검증하거나 인증을 따라가거나 신뢰의 웹을 해석하지 않습니다. 그 작업에는 다른 키들이 필요하고 폐기 여부는 키서버 조회가 필요합니다. 어제 폐기된 키도 여기서는 그 전날과 똑같이 파싱됩니다. 폐기 상태와 서명 검증에는 gpg와 키서버에서의 새 조회가 필요합니다.

관련 도구