피드로 돌아가기
Why Your Diff Tool Shouldn't See Your Code
Dev.toDev.to
Security

Web Crypto API 기반 Client-side Diff 및 PII 탐지 설계

Why Your Diff Tool Shouldn't See Your Code

Shivam2026년 4월 27일5intermediate

Context

기존 Server-side Diff 도구의 데이터 전송 구조로 인한 API Key 및 기밀 정보 유출 위험 존재. 브라우저의 연산 능력을 활용하지 않고 서버에서 Diff를 처리하는 불필요한 아키텍처로 인한 보안 취약점 발생.

Technical Solution

  • Myers Algorithm을 JavaScript로 구현하여 서버 전송 없는 로컬 Diff 연산 구조 설계
  • 6가지 PII 카테고리 탐지 로직을 통한 민감 데이터 Redaction 및 사전 필터링 체계 구축
  • Web Crypto API를 활용한 End-to-End Encryption 기반의 보안 공유 메커니즘 도입
  • PBKDF2(100,000 iterations)와 SHA-256을 통한 강력한 키 유도 함수 적용
  • AES-GCM 256-bit 암호화 및 Random IV/Salt 적용으로 URL 내 데이터 기밀성 확보
  • Plaintext와 Password의 서버 전송을 완전히 배제한 Zero-knowledge 아키텍처 구현

- 민감 데이터 처리 도구 설계 시 Serverless/Client-side 연산 가능 여부 검토 - 외부 공유 링크 생성 전 PII 스캔 및 Redaction 단계 필수 적용 - 암호화 구현 시 외부 라이브러리 대신 브라우저 표준 Web Crypto API 사용 권장 - 키 유도 시 PBKDF2와 같은 적절한 Iteration 횟수를 적용한 KDF 사용 확인

원문 읽기