피드로 돌아가기
I Built a Clipboard Manager for Linux with AES-256 Encryption — DotGhostBoard v1.4.0 Eclipse
Dev.toDev.to
Security

DotGhostBoard v1.4.0에서 AES-256-GCM 암호화와 PBKDF2-SHA256 기반 마스터 패스워드로 클립보드 매니저에 보안 계층 추가

I Built a Clipboard Manager for Linux with AES-256 Encryption — DotGhostBoard v1.4.0 Eclipse

freerave2026년 3월 29일14intermediate

Context

Kali Linux에서 사용 가능한 클립보드 매니저는 대부분 Electron 기반으로 무거웠거나 기본 기능만 제공했다. 보안 기능이 실제로 구현되지 않은 채 토글 수준으로만 존재했다.

Technical Solution

  • AES-256-GCM으로 클립보드 항목 암호화: 12바이트 nonce + ciphertext + 16바이트 GCM 인증 태그를 base64url로 인코딩해 SQLite TEXT 컬럼에 저장
  • PBKDF2-HMAC-SHA256으로 마스터 패스워드 키 도출: 600,000 반복 횟수와 256비트 salt를 사용해 동일 패스워드로부터 동일 키 생성
  • 암호화된 센티널 방식으로 패스워드 검증: 원본 패스워드는 저장하지 않고 특정 문자열을 암호화한 토큰만 디스크에 보관
  • 프레임리스 lock screen 구현: Qt의 FramelessWindowHint, Escape 키 무시, 창 관리자 close 버튼 차단으로 3계층 보호
  • 사용자 선택 암호화: 우클릭 context menu로 항목별로 "Mark as Secret" 토글 가능하게 해 모든 데이터를 강제 암호화하지 않음
  • Auto-lock 타이머, stealth mode(taskbar 숨김), 멀티패스 바이트 덮어쓰기 방식 보안 삭제, 프로세스명 기반 whitelist/blacklist 필터링 구현

Key Takeaway

패스워드를 저장하지 않고 암호화된 센티널로 검증하는 설계는 salt 파일 삭제 시 모든 데이터를 영구적으로 복구 불가능하게 만든다. GCM 인증 태그를 사용하면 tamper 감지가 decryption 시점에 명시적으로 발생해 무시하지 않게 된다.


로컬 데스크톱 보안 도구를 개발할 때 PBKDF2 반복 횟수를 600,000 이상으로 설정하고 GCM 모드로 인증 태그를 포함한 암호화를 적용하면 가볍고도 tamper-proof한 보안 계층을 구현할 수 있다.

원문 읽기