How to revoke GPG Key
gpg 키 전체 폐기
Primary key 유출이 의심되거나, 신뢰 체인을 더 이상 유지할 수 없는 경우 기존 GPG identity를 완전히 폐기한다.
1 Revocation certificate import
gpg --import revoke-3456MNOP7890QRST.asc
- 해당 fingerprint에 대응하는 key를 영구적으로 폐기(revoked) 상태로 표시
- 로컬 키링 기준에서 identity 종료 선언
2 폐기된 공개키 재배포 (키서버 반영)
- Revocation은 내 로컬에만 import하면 아무 의미가 없음.
- 반드시 외부에 공개되어야 함.
1) 키서버로 revoked key 업로드
gpg --keyserver hkps://keys.openpgp.org --send-keys ABCD1234EFGH5678
- 기존 public key + revoke 정보가 함께 전송됨
- 키서버에 등록된 해당 key는 revoked 상태로 표시
주의
- 이 단계가 누락되면 외부에서는 여전히 "유효한 키" 로 인식함
2) 주요 키서버 반영 관례
GnuPG 기본 설정 기준으로 다음이 대상이 됨.
keys.openpgp.org
확인
gpg --keyserver hkps://keys.openpgp.org --send-keys ABCD1234EFGH5678
3 키서버 특이 사항 (중요)
- keys.openpgp.org
- UID(email) 검증 중심
- revoke는 정상 반영됨
- revoked 상태가 명확히 표시됨
- 과거 SKS 계열
- 네트워크 불안정
- 현재는 보조적 의미
관례적으로
revocation은 반드시
keys.openpgp.org에 반영
4 외부 서비스 재배포 (필수)
키서버만으로는 충분하지 않음. 다음 위치에 폐기 사실 또는 새 키를 명시적으로 반영해야 함.
- GitHub / GitLab
- GPG key 삭제
- revoked key 제거
- 새 key fingerprint 등록
- 개인 웹사이트
- 이메일 서명
- 문서, 논문, 명함 등에 기재된 fingerprint
원칙
“키서버 + 직접 배포”가 동시에 이뤄져야 폐기가 완결됨
5 새 key pair 생성
gpg --full-generate-key
- 기존 key와 완전히 무관한 새 identity
- fingerprint 절대 재사용 불가
6 새 fingerprint 재배포
gpg --armor --export NEWKEYID > publickey-new.asc
- 새 public key export
gpg --keyserver hkps://keys.openpgp.org --send-keys NEWKEYID
-
키서버 업로드
-
외부 서비스 등록 (GitHub, 서버, 이메일 등)
7 문서화 관례 (권장)
기존 fingerprint가 공개된 문서가 있다면 다음과 같이 처리함.
“이 fingerprint는 202X-XX-XX부로 폐기되었으며, 새 fingerprint는 XXXX이다.”
이는 장기 신뢰 관리에서 매우 중요함.
핵심 체크리스트
- revoke.asc import
- 키서버로 revoked key 전송
- GitHub 등 외부 서비스 정리
- 새 key 생성
- 새 fingerprint 재배포