1. 프로젝트 개요
KeyShield는 브라우저 환경에서 발생하는 민감 정보 유출을 사전에 차단하기 위한 Zero Trust 기반 보안 시스템이다.
단순한 문자열 탐지나 정규식 필터링을 넘어, 정책(Policy)에 기반한 중앙 판단 구조를 목표로 한다.
이 프로젝트는 개인 학습용이지만, 단순 토이 프로젝트 수준을 넘어서 실제 서비스 환경에서 적용 가능한 Zero Trust 아키텍처를 코드 단위로 구현하는 것을 목표로 설계되었다.
2. 프로젝트를 시작한 이유
기존의 보안 도구나 브라우저 확장 프로그램은 대부분 다음과 같은 한계를 가진다.
- 단순 정규식 기반 탐지
- 클라이언트 단에서의 즉각적인 차단 로직
- 정책 변경 시 재배포 필요
- 보안 판단 로직의 중앙화 부족
하지만 실무 환경에서는 다음과 같은 요구가 존재한다.
- 정책은 중앙에서 관리되어야 한다
- 사용자·컨텍스트·위험도에 따라 동적으로 판단되어야 한다
- Data Plane과 Control Plane은 분리되어야 한다
KeyShield는 이러한 요구를 만족하기 위해 Zero Trust 아키텍처의 핵심 개념을 브라우저 보안 영역에 적용하는 시도로 시작되었다.
3. Zero Trust 관점에서의 KeyShield 아키텍처
KeyShield는 Zero Trust 모델의 전형적인 구성 요소를 따른다.

3.1 구성 요소 개요
- PEP (Policy Enforcement Point)
- Chrome Extension
- 사용자 입력(붙여넣기 등)을 감지
- 원문 데이터는 저장/전송하지 않음
- 신호(Signals)만 생성
PEP는 실제로 정책을 집행(enforce) 하는 지점이다.
KeyShield에서 PEP는 Chrome MV3 기반 확장 프로그램이며,
사용자의 브라우저 내 행동을 가장 먼저 관찰한다.
- PDP (Policy Decision Point)
- Spring Boot 기반 서버
- 정책(rule)에 따라 허용/차단/경고 여부 판단
- 중앙 정책 엔진 역할
PDP는 KeyShield의 정책 두뇌 역할을 담당한다.
Spring Boot 기반으로 구현되며,
확장 프로그램(PEP)으로부터 이벤트를 전달받아 다음을 수행한다.
- PIP (Policy Information Point)
- Context / Threat Intelligence / AI 신호
- 정책 판단에 필요한 외부 정보 제공
PIP는 KeyShield에서 가장 “Zero Trust다운” 역할을 수행한다.
PIP는 단일 이벤트가 아니라,
시간에 따라 누적되는 사용자 행동 컨텍스트를 관리한다.
이 구조를 통해 탐지(PEP)와 판단(PDP)을 명확히 분리하고,
보안 정책을 서버 중심으로 관리할 수 있도록 설계했다.
3.2 전체 흐름
아래는 KeyShield의 대표적인 이벤트 처리 흐름이다.
- 사용자가 브라우저에서 텍스트를 붙여넣기
- PEP가 paste 이벤트 감지
- 로컬에서 정규식 + 엔트로피 기반 사전 분석
- 요약 정보만 PDP로 전달
- PDP가 정책 평가 후 결정 반환
- PEP가 즉시 정책 집행
- PDP는 Audit Event 기록
- 이벤트가 PIP로 전달되어 리스크 컨텍스트 업데이트
- 필요 시 정책이 자동 강화(Restricted overlay)
이 구조를 통해
실시간 차단 + 장기적 행동 분석이 동시에 가능해진다.
4. 기술 스택 및 구조 선택 이유
4.1 Chrome Extension (MV3)
- 브라우저 입력 흐름에서 가장 앞단에 위치
- 사용자의 실제 행동에 가장 근접한 Data Plane
- Manifest V3 기반으로 장기 지원 고려
4.2 PDP – Spring Boot + Kotlin
- 정책 엔진 및 Control Plane 역할
- 확장성과 구조적 명확성을 고려하여 Spring Boot 선택
- Kotlin을 통해
- 정책/DTO 모델링의 간결함
- Null-safety 기반 안정성 확보
4.3 멀티 모듈 구조
2025-KeyShield/
├─ apps/
│ ├─ extension # PEP (Chrome Extension)
│ ├─ pdp # Policy Decision Point
│ └─ pip # Context / Intelligence
각 컴포넌트를 명확한 역할 단위로 분리하여
향후 서비스 확장 및 실험에 유리한 구조를 유지한다.
5. 프로젝트의 방향성과 확장 목표
KeyShield는 다음과 같은 방향성을 가진다.
- 정책 기반 보안 판단 구조의 명확한 분리
- 정책 변경이 즉시 반영되는 중앙 통제 모델
- 클라이언트에는 최소한의 책임만 부여
- 향후 CTI / AI 신호 연계를 고려한 구조 확장
이 프로젝트는 단순한 브라우저 보안 도구가 아니라,
Zero Trust 아키텍처를 실제 코드와 흐름으로 이해하고 검증하기 위한 실험적 프로젝트이다.
6. 개발 기록
KeyShield 는 단기간에 완성된 프로젝트가 아니라,
학습을 위한 실험 프로젝트이다. 아래는 프로젝트 관련 주요 개발 기록과 공부 기록이다.
깃허브 링크 : https://github.com/yeseul-kim01/2025-KeyShield
GitHub - yeseul-kim01/2025-KeyShield: Browser-based DLP platform that prevents secret leakage before it happens, with Zero Trust
Browser-based DLP platform that prevents secret leakage before it happens, with Zero Trust–style policy automation based on user context and risk. - yeseul-kim01/2025-KeyShield
github.com
'Project > keyshield' 카테고리의 다른 글
| [Project : KeyShield] 개발일지 ① — Day 1~3: 브라우저에서 Secret 유출 막기 (0) | 2025.12.11 |
|---|