피드로 돌아가기
Dev.toSecurity
원문 읽기
개발자가 Chrome 확장 프로그램으로 Gmail에 PGP 암호화 계층을 추가해 서버 저장 시 평문 노출 문제 해결
Why I Built a PGP Encryption Layer for Gmail (And Open-Sourced the Chrome Extension)
AI 요약
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 전송 암호화의 한계를 보완하고 서버 침해 시에도 메시지 평문 노출을 방지할 수 있다.