2장 위협 모델 및 신뢰 경계

이 장에서는 공통의 위협 모델과 신뢰 경계 용어를 정립합니다. 어떤 자산을 보호하는지, 공격자가 무엇을 할 수 있는지, 어떤 전제가 성립해야 하는지, 그리고 인증 또는 매개변수 불일치 시 시스템이 어떻게 실패 시 차단(fail-closed) 방식으로 동작해야 하는지(MUST)를 설명합니다.

문서 메타데이터

백서 버전
v1.0
최종 업데이트
2026-01-14

2.1 자산 목록

  • 콘텐츠 기밀성: 평문 파일 바이트와 복호화 키(CEK)를 보호해야 합니다(MUST).
  • 콘텐츠 무결성: 암호문과 메타데이터는 변조 여부를 확인할 수 있어야 합니다(MUST, AEAD 인증).
  • 접근 제어: 단기 접근 토큰, 보내는 사람의 로그인 토큰, 취소 상태.
  • 가용성: 일반적인 네트워크 환경에서 전송을 업로드, 다운로드, 재개할 수 있는 능력.

2.2 공격자 모델

  • 네트워크 공격자: 트래픽을 관찰, 지연, 삭제, 재전송할 수 있습니다. 최신 TLS/AEAD 암호화는 깨뜨릴 수 없습니다.
  • 웹 공격자: 악성 링크를 만들고, XSS/CSRF를 시도하며, UI 삽입 및 프롬프트 인젝션을 시도할 수 있습니다.
  • 악용 행위자: 업로드/다운로드를 자동화하여 할당량을 소진시키거나, 콘텐츠를 긁어 가거나, 트래픽을 증폭시킬 수 있습니다.
  • 서버 측 공격자는 CEK를 가지고 있지 않다고 가정합니다. CEK가 유출되면(예: 링크 공유) 설계상 기밀성은 상실됩니다.

2.3 보안 가정

  • 클라이언트는 신뢰할 수 있는 코드를 실행합니다(악성 확장 프로그램이나 악성코드가 없음). 그렇지 않으면 영지식 방식으로도 엔드포인트를 보호할 수 없습니다.
  • 표준 브라우저 동작에서 URL 프래그먼트(#...)는 HTTP 요청으로 서버에 전송되지 않습니다.
  • 암호 기본 요소(AES-GCM, SHA-256, TLS)가 올바르게 사용되며 깨지지 않았습니다.

2.4 신뢰 경계

  • 클라이언트 경계: 암호화/복호화와 CEK 관리는 클라이언트에서만 이루어집니다.
  • 엣지/API 경계: 서버는 토큰을 검증하고 암호문/매니페스트를 제공하며, CEK를 알게 되어서는 안 됩니다(MUST NOT).
  • 객체 스토리지 경계: 암호문 청크와 매니페스트를 저장하며, 기밀성 측면에서는 신뢰할 수 없는 영역으로 취급합니다.

2.5 실패 시 차단(fail-closed) 원칙

  • 토큰 오류, 매개변수 불일치 또는 AEAD 인증 실패가 발생하면 시스템은 반드시 실패 시 차단(fail-closed) 방식으로 동작해야 합니다(MUST).
  • 무결성 검사가 실패하면 일부 평문이라도 출력해서는 안 됩니다(MUST NOT).
  • 오류 메시지와 로그에는 민감한 데이터를 최소한으로만 남겨야 하며(SHOULD), URL 프래그먼트, CEK 또는 이를 유추할 수 있는 자료를 포함해서는 안 됩니다(MUST NOT).