보안 및 개인정보 보호 백서(개요)9장

9장 웹 보안 및 클라이언트 격리

웹 계층은 가장 많이 노출되는 영역입니다. 이 장에서는 FileBolt의 기본 웹 보안 태세를 정의합니다. 엄격한 CSP와 헤더, 민감한 페이지에서 서드파티 스크립트 사용 금지, 그리고 스크립트 삽입과 UI 악용에 대한 방어 조치입니다.

9.1 위협

  • XSS, DOM 삽입, 공급망 스크립트, 클릭재킹, UI 리드레스(UI redress) 공격.
  • 사용자가 링크나 비밀 정보를 노출하도록 유도하는 프롬프트 삽입이나 UI 속임수.
  • 안전하지 않은 저장 방식이나 리퍼러 유출을 통한 토큰 탈취.

9.2 페이지 격리

  • 민감한 페이지(다운로드/복호화)는 서드파티 스크립트를 쓰지 않고 의존성을 최소화하는 것이 좋습니다.
  • 성능이나 보안 기능에 필요한 경우 교차 출처 격리(cross-origin isolation)를 사용할 수 있지만, 호환성은 반드시 유지해야 합니다.
  • 페이지는 URL이 유출되지 않도록 엄격한 리퍼러 정책을 적용하는 것이 좋습니다.

9.3 삽입 공격 방어 / UI 악용 방지

  • 신뢰할 수 없는 모든 입력은 DOM에 삽입하기 전에 반드시 이스케이프하거나 정제해야 합니다.
  • 신뢰할 수 없는 HTML은 렌더링하지 마세요. 텍스트 렌더링과 안전한 템플릿 방식을 우선합니다.
  • 사용자가 지정하는 이름이나 메타데이터가 있는 경우, 길이와 사용할 수 있는 문자를 제한합니다.

9.4 보안 헤더 및 브라우저 정책

9.4.1 권장 헤더(예시)

  • 제한적인 script-src와 적절한 connect-src를 갖춘 Content-Security-Policy.
  • 페이지 요구 사항에 따라 Referrer-Policy: no-referrer 또는 strict-origin-when-cross-origin.
  • X-Content-Type-Options: nosniff, Permissions-Policy, HSTS(5장 참조).

9.5 검증 가능한 증거

  • 제3자 보고서의 공개 링크는 /status에 모아 두었습니다.
  • 증거는 기본적인 웹 보안 태세(TLS, 헤더)에 중점을 둡니다. 프로토콜 수준의 영지식 주장은 설계상의 제약 조건과 클레임 ID(Claim ID)로 뒷받침됩니다.