부록: 용어집
이 용어집은 백서에서 사용하는 주요 용어와 약어를 정의합니다. 특정 장에 해당 용어의 더 구체적인 구현 내용이 있는 경우, 그 장의 사양이 우선합니다.
용어 및 약어
- FileBolt
- 업로드, 공유, 다운로드 기능을 제공하는 파일 전송 플랫폼입니다. 이 문서는 FileBolt의 보안 및 개인정보 보호 설계 경계를 설명합니다.
- 보안 및 개인정보 보호 백서
- 보안 목표, 위협 모델, 아키텍처, 접근 제어, 암호화 사양을 설명하고 검증 가능한 Claim ID와 증거(Evidence) 링크를 제공하는 문서 모음입니다.
- MUST / SHOULD / MAY
- 규범적 표현: MUST(필수), SHOULD(권장), MAY(선택). 구현 요구 사항과 권장 사항을 나타내는 데 사용합니다.
- E2EE(종단 간 암호화)
- 암호화와 복호화가 클라이언트 측에서 이루어집니다. 서버는 암호문과 필요한 메타데이터만 처리하며 복호화 능력이 없습니다.
- 영지식(Zero-Knowledge)
- 서버는 정상 운영 및 일상적인 유지 관리 중에 복호화 키 자료를 얻을 수 없으므로 사용자 파일의 평문을 복호화할 수 없습니다.
- CEK(콘텐츠 암호화 키)
- 이 문서에서는 파일마다 하나씩 사용하는 16바이트(128비트) 키로, AES-128-GCM 청크 암호화/복호화에 사용됩니다.
- AES-128-GCM
- AEAD(연관 데이터를 포함한 인증 암호화) 알고리즘입니다. 기밀성과 무결성을 제공하며, 인증에 실패하면 실패 시 차단(fail-closed) 방식으로 평문 출력을 거부합니다.
- AEAD(연관 데이터를 포함한 인증 암호화)
- 무결성 결합을 위해 AAD(추가 인증 데이터)까지 함께 인증하는 암호화 방식입니다.
- IV / Nonce
- 초기화 벡터/한 번만 사용하는 값(Number used once). AES-GCM에서는 보안을 유지하기 위해 같은 키로 IV를 반복해서 사용해서는 안 됩니다.
- noncePrefix
- 파일마다 한 번 생성하는 무작위 접두사(예: 8바이트)로, chunkIndex와 결합하여 청크별 IV를 만들며 같은 CEK에서 IV가 고유하도록 보장합니다.
- chunk / chunkIndex
- 파일 청크와 그 인덱스. 파일은 고정 크기 청크(예: 16MB)로 나뉘며, chunkIndex는 0부터 증가하고 위치 지정과 IV/AAD 결합에 사용됩니다.
- chunkSize
- 청크의 크기. 이 문서의 예시는 16MB(16777216바이트)이며, 대용량 파일 업로드/다운로드와 스트리밍 암호화에 사용됩니다.
- ciphertext(암호문)
- 클라이언트가 평문 청크를 암호화한 결과입니다.
- tag(GCM 태그)
- AES-GCM이 출력하는 인증 태그로, 암호문과 AAD의 무결성 및 일관성을 검증하는 데 사용됩니다.
- AAD(추가 인증 데이터)
- 컨텍스트(transferId, fileId, chunkIndex)를 암호문에 결합하여 파일 간/청크 간 바꿔치기와 재전송 공격을 방지합니다.
- transfer / transferId
- 하나의 전송(공유) 기록과 그 고유 식별자. 해당 전송의 메타데이터, 접근 제어, 파일 모음을 찾는 데 사용됩니다.
- file / fileId
- 전송 내의 파일 개체와 고유 ID. 같은 전송 안에서 파일과 각 파일의 암호화 매개변수를 구분합니다.
- manifest(매니페스트)
- CEK를 제외한 공개 매개변수와 매핑(cryptoVersion, noncePrefix, chunkSize, 청크 맵 등)의 모음입니다.
- cryptoVersion
- 암호화/프로토콜 버전 식별자(예: v1). 알고리즘, 인코딩, 파생 규칙을 제약하며 향후 발전과 호환성을 지원합니다.
- URL 프래그먼트(#...)
- URL에서 "#" 뒤의 부분. 브라우저 표준에 따라 서버로 전송되지 않으며, 클라이언트 측에서 복호화 자료를 전달하는 데 사용됩니다.
- token(토큰)
- 접근 제어를 위한 자격 증명. 이 문서에서는 단기 세션 토큰(범위 지정, 만료)과 장기 로그인 토큰(보내는 사람의 관리용)을 구분합니다.
- 단기 세션 토큰
- 서버가 발급하고 테이블과 대조하여 확인하며, 만료되고 범위(read_manifest / read_chunk / upload_chunk)가 지정된 접근 토큰입니다.
- 장기 로그인 토큰
- 유료 사용자가 일회용 로그인(매직 링크)으로 얻는 관리 측 로그인 상태로, 보내는 사람용 대시보드(취소, 삭제, 감사)에 사용됩니다.
- scope(범위)
- 토큰에 부여된 권한의 범위로, 최소 권한과 격리를 위해 사용됩니다(예: 암호문 다운로드와 매니페스트 읽기를 분리).
- 매직 링크(magic link)
- 일회용 로그인 링크. 사용자가 클릭하면 인증되어 관리용 로그인 상태를 얻습니다.
- 감사(audit)
- 전송과 관련하여 관찰할 수 있는 데이터(다운로드 횟수, 진행률)로, 보내는 사람이 전달 여부를 확인하는 데 사용되며 다운로드하는 사람의 화면과는 분리되어 있습니다.
- CSP(콘텐츠 보안 정책)
- 리소스 출처와 실행을 제한하는 브라우저 보안 헤더로, XSS와 인젝션 위험을 줄입니다.
- 보안 헤더(Security Headers)
- 브라우저 보안을 강화하는 HTTP 응답 헤더 모음(예: HSTS, Referrer-Policy, X-Content-Type-Options, Permissions-Policy).
- HSTS(Strict-Transport-Security)
- HTTPS로만 접속하도록 강제하는 헤더입니다.
- Referrer-Policy
- 페이지 이동이나 리소스 로딩 시 전송되는 Referer 정보를 제어하여 URL 유출 위험을 줄입니다.
- 클릭재킹(Clickjacking)
- 대상 사이트를 iframe에 삽입하여 클릭을 유도하는 공격. CSP frame-ancestors와 X-Frame-Options로 방어합니다.
- COOP / COEP / CORP
- 교차 출처 격리를 위한 Cross-Origin Opener/Embedder/Resource Policy 헤더(호환성 평가 필요).
- WAF(웹 애플리케이션 방화벽)
- 일반적인 공격과 악용 트래픽(스캔, 인젝션, 무차별 대입)을 탐지하고 차단합니다.
- 요청 제한(Rate limiting)
- 요청 빈도, 동시 처리량 또는 리소스 사용량에 임계값을 두어 악용, 열거 공격, DoS 위험을 줄입니다.
- IR(사고 대응)
- 분류(Triage), 격리(Containment), 포렌식(Forensics), 복구(Remediation), 검토(Review), 커뮤니케이션(Communication)을 포함하는 프로세스입니다.
- VDP(취약점 공개 프로그램)
- 취약점 공개를 위한 체계(접수, 검증, 수정, 공지)로, 책임 있는 제보를 장려합니다.
- 증거(Evidence)
- Claim을 검증할 수 있는 재현 가능한 진입점. 장 앵커(규범 사양)나 제3자 보고서(TLS, 헤더 스캔)가 될 수 있습니다.
- Claim / Claim ID
- 검증 가능한 진술과 그 고유 ID. "약속/정책/사양"을 "증거"와 연결하여 감사와 변경 추적을 지원합니다.
참고 사항
- 향후 버전에서 용어 정의가 변경되면 이 용어집을 업데이트하고 변경 내역(Changelog)에 기록합니다.
- 용어가 구현 사양(예: v1 IV/AAD 인코딩)에 사용된 경우에는 해당 장의 사양이 우선합니다.