피드로 돌아가기
Why I Built a PGP Encryption Layer for Gmail (And Open-Sourced the Chrome Extension)
Dev.toDev.to
Security

개발자가 Chrome 확장 프로그램으로 Gmail에 PGP 암호화 계층을 추가해 서버 저장 시 평문 노출 문제 해결

Why I Built a PGP Encryption Layer for Gmail (And Open-Sourced the Chrome Extension)

Alain Picard2026년 3월 29일6intermediate

Context

Gmail은 전송 중 TLS 암호화를 제공하지만, Google 서버에 도착한 후에는 평문으로 저장된다. Google의 시스템은 스팸 필터링, Smart Reply, 광고 타겟팅을 위해 이메일 내용을 읽을 수 있다. 서버 침해, 정부 소환, 내부자 접근 시에는 TLS 암호화가 보호하지 못한다.

Technical Solution

  • OpenPGP.js 기반 클라이언트 사이드 암호화 구현: 메시지 본문을 수신자의 공개 키로 암호화한 후 Gmail로 전송
  • Chrome 확장 프로그램의 DOM 주입으로 Gmail 인터페이스에 암호화/복호화 버튼 추가: compose 창 이벤트 감지 후 메시지 본문 인터셉트
  • chrome.storage.local을 사용한 개인 키 관리: 개인 키는 Chrome의 확장 프로그램 샌드박스에만 저장되고 외부 서버로 전송되지 않음
  • 공개 키 교환 UX 단순화: 이메일에 공개 키를 한 번 버튼으로 첨부하면 수신자가 가져와 자신의 키를 돌려보내는 방식으로 30초 내 완료
  • API 서버 역할 제한: api.gmailkrypt.com은 라이선싱과 Stripe 구독만 처리하고 개인 키나 메시지 내용을 저장하지 않음

Impact

무료 티어에서 하루 5회 암호화 지원, Pro 플랜 $4.99/월로 무제한 제공.

Key Takeaway

오픈 표준 PGP를 Chrome 확장으로 감싸면 기존 서비스 위에 엔드-투-엔드 암호화를 추가할 수 있으며, 클라이언트 사이드 처리로 중앙 서버가 메시지 내용에 접근할 수 없는 진정한 영지식 구조를 실현할 수 있다.


민감한 정보(계약서, 송금 세부사항, 의료 기록)를 이메일로 주고받는 팀에서 GmailKrypt 같은 클라이언트 사이드 암호화 확장을 도입하면 TLS 전송 암호화의 한계를 보완하고 서버 침해 시에도 메시지 평문 노출을 방지할 수 있다.

원문 읽기