gpg —full-gen-key

agnusdei·2025년 9월 6일
0

CTF

목록 보기
87/154

🔐 GPG(GNU Privacy Guard) 키 생성과 활용 가이드

GNU Privacy Guard(GPG)는 암호화와 디지털 서명을 제공하는 강력한 오픈소스 툴로, 안전한 통신과 데이터 보호를 위해 널리 사용됩니다.
본 포스팅에서는 키 생성, 관리, 백업/복원, 암호화/복호화, 서명 검증까지 GPG의 전반적인 사용법을 정리합니다.


1️⃣ GPG 키 생성

gpg --full-gen-key

gpg --full-gen-key 명령어는 새로운 공개키(Public Key)/개인키(Private Key) 쌍을 생성할 때 사용됩니다.
실행하면 다음과 같은 절차를 거칩니다.

  1. 키 종류 선택

    • (1) RSA and RSA (기본값, 권장)
    • (2) DSA and Elgamal
    • (3) DSA (서명 전용)
    • (4) RSA (서명 전용)
  2. 키 길이 선택

    • 권장: 2048 ~ 4096 비트
    • 보안이 중요하다면 4096 비트 선택
  3. 키 유효기간 설정

    • 기본: 만료 없음
    • 필요 시 1y, 2y 형태로 설정 가능
  4. 사용자 정보 입력

    • 이름(Name)
    • 이메일(Email)
    • 코멘트(Comment, 선택)
  5. 패스프레이즈(Passphrase) 설정

    • 개인키 보호용 비밀번호
    • 최소 12자 이상, 복잡한 조합 권장
  6. 키 생성 완료

    • 생성 후 확인:

      gpg --list-keys
      gpg --list-secret-keys

2️⃣ GPG 키 관리

🔹 공개키 내보내기

gpg --armor --export <이메일>

다른 사람과 공유할 수 있음. 암호화 및 서명 검증에 사용.

🔹 개인키 내보내기 (⚠️ 절대 공유 금지)

gpg --armor --export-secret-keys <이메일>

안전한 보관 필수. 외부 유출 시 전체 보안 무력화 가능.

🔹 키 삭제

gpg --delete-secret-keys <이메일>
gpg --delete-keys <이메일>

3️⃣ GPG 키 백업과 복원

🔹 키 백업

개인키를 내보내 백업 파일로 저장합니다.

gpg --armor --export-secret-keys <이메일> > backup.key

🔹 키 복원

백업한 키를 다시 가져올 수 있습니다.

gpg --import backup.key

4️⃣ 파일 암호화와 복호화

🔹 암호화

수신자의 공개키로 파일을 암호화합니다.

gpg --encrypt --recipient <이메일> confidential_message.txt

→ 결과: confidential_message.txt.gpg

🔹 복호화

수신자는 자신의 개인키로 복호화합니다.

gpg --decrypt confidential_message.txt.gpg

5️⃣ 디지털 서명과 검증

🔹 파일 서명

gpg --sign document.txt

또는 ASCII Armor 서명:

gpg --clearsign document.txt

🔹 서명 검증

gpg --verify document.txt.gpg

6️⃣ 동작 원리 (핵심 이해)

  1. 공개키/개인키 쌍

    • 공개키(Public Key): 공유 가능, 암호화·서명 검증에 사용
    • 개인키(Private Key): 본인만 보관, 복호화·서명 생성에 사용
  2. 암호화 과정

    • 송신자가 공개키로 메시지 암호화
    • 수신자가 개인키로 복호화
  3. 서명 과정

    • 송신자가 개인키로 메시지 서명
    • 수신자가 공개키로 검증

7️⃣ 요약

  • gpg --full-gen-key: 공개키/개인키 쌍 생성
  • gpg --armor --export: 공개키 내보내기
  • gpg --armor --export-secret-keys: 개인키 백업
  • gpg --import: 백업된 키 복원
  • gpg --encrypt / gpg --decrypt: 파일 암호화·복호화
  • gpg --sign / gpg --verify: 디지털 서명·검증

👉 GPG는 보안 통신·파일 보호·신뢰성 검증에 필수적인 도구입니다.
개인 또는 조직에서 안전한 협업을 위해 반드시 익혀 두어야 할 보안 기본기입니다.


profile
DevSecOps ⚙️ + CTF🚩

0개의 댓글