GPG

Godssi·2025년 4월 5일

Programming

목록 보기
1/4

Github, Docker 등을 사용하려고 보면 GPG Key를 등록을 해야하는 경우가 있다.
처음엔 단순하게 GPG Key를 등록해서 사용하던 와중에

"GPG Key는 도대체 뭘까?
"내가 개인적으로 사용할 수 있는 방법은 없을까"

궁금해졌고, 이번 기회에 정리해보려고 한다.


🔐GPG란?

GPG는 "GNU Privacy Guard"약자로, 디지털 세계에서 문서 서명, 내용 암호화, 진짜 보낸 사람인지 검증을 해주는 도구

쉽게 말해 **"이 문서를 누가 만들었는지 증명하고, 허락된 사람만 읽게 하는" 디지털 잠금장치 같은 개념이다.

🧩 핵심 개념

  • 공개키 / 비공개 키
    → 나만 아는 비공개 키(Privacy key)
    → 모두에게 공개하는 공개 키(Public key)
  • 서명(Signing)
    → 이 문서를 내가 만들었고, 중간에 바뀌지 않았다는 디지털 사인
  • 암호화(Encryption)
    → 특정한 사람만 읽을 수 있게 디지털로 잠금하는 것

🔄 공개키 암호화의 흐름

  1. 키쌍 생성
    gpg --gen-key
    → 나만 아는 비밀키와 모두에게 공개 가능한 공개키 생성
  2. 공개키 배포
    → Github, E-Mail 서명, Vlog 등에 업로드
    → 사람들이 내 공개 키로 서명 검증, 암호화된 메시지 발송 가능
  3. 서명(Sign) + 검증(Verify)
    내가 보낸 문서에 서명을 남기면,
    → 상대방은 내 공개 키로 진짜 내가 보낸 건지 검증 가능
  4. 암호화(Encrypt) + 복호화(Decrypt)
    상대방이 내 공개키로 암호화한 메시지를 보내면,
    → 나는 비공개 키로만 해독 가능

🧰 사용처

사용처어떻게 활용되나?
✅ GitHub커밋에 서명해서 "이건 내가 한 커밋이에요!" 인증
🐳 Docker공식 이미지나 설치 스크립트가 "진짜 Docker에서 온 것인지" 확인
📦 Ubuntu, Node.js 등 설치 시.deb, .rpm 파일이 공식 서명되었는지 검증
✉️ 이메일 보안민감한 메일을 암호화하거나, 위조 방지 서명 첨부
🧾 계약서 전송문서가 위조되지 않았다는 디지털 보장 수단으로 사용 가능

GPG 명령어

동작명령어
키 생성gpg --gen-key
키 목록 확인gpg--list-keys
공개키 내보내기gpg --export -a 이름 -> key.asc
공개키 가져오기gpg --import key.asc
파일 서명gpg --sign file.txt
파일 암호화gpg --encrypt -r 상대방 file.txt
서명 검증gpg --verify file.txt.sig

실제로 해당 명령어들을 어떻게 사용하는지에 대한 예제는 다른 글에서 소개하겠습니다.😊


참고 자료

profile
세상을 도울 로봇 개발자

0개의 댓글