4.5 KiB
4.5 KiB
제품 요구사항 문서 (PRD): 전문가용 보안 정보 사이트 (초안)
1. 개요
본 문서는 특정 분야의 전문가들에게만 민감한 정보를 제공하기 위한 보안 웹사이트의 요구사항을 정의합니다. 사용자는 여러 단계의 강력한 인증 절차와 법적 동의(NDA)를 거쳐야만 내부 정보에 접근할 수 있습니다.
2. 목표
- 보안: 검증되고 신원이 확인된 사용자만이 정보에 접근할 수 있도록 보장합니다.
- 사용자 경험: 복잡한 인증 절차를 최대한 명확하고 원활하게 안내하여 이탈을 최소화합니다.
- 효율성: 콘텐츠 변경 시, 대상 사용자에게 신속하게 알림을 전달하여 정보의 적시성을 확보합니다.
3. 사용자 페르소나
- 대상: 특정 산업 분야(예: 금융, 법률, 의료)의 전문가, 연구원, 고위 관계자.
- 특징: 제공되는 정보의 가치와 민감도를 이해하고 있으며, 다소 복잡하더라도 보안 절차를 준수할 의향이 있습니다.
4. 핵심 기능 요구사항 (Features)
4.1. 사용자 인증 및 접근 흐름
- Public Zone (랜딩 페이지):
- 프로젝트의 목적과 개요를 설명하는 정적 페이지.
- 인증 절차를 시작할 수 있는 ‘콘텐츠 보기’ 또는 ‘로그인/인증’ 버튼을 제공합니다.
- Authentication Zone (인증 페이지):
- 1단계: NICE 본인인증: 사용자는 NICE 실명인증 서비스를 통해 본인임을 증명해야 합니다.
- 2단계: 카카오톡 또는 전화번호 인증: 본인인증 완료 후, 추가적인 연락처 확인을 위해 카카오톡 또는 SMS 인증을 거쳐야 합니다.
- 모든 인증 정보는 안전하게 관리되어야 하며, 세션 또는 토큰 기반으로 인증 상태가 유지되어야 합니다.
- Legal Zone (NDA 서명):
- 3단계: NDA 서명: 모든 인증을 통과한 사용자는 eFormSign을 통해 온라인으로 NDA(비밀유지협약)에 서명해야 합니다.
- 서명 완료 전까지는 콘텐츠에 접근할 수 없으며, 서명 페이지로 강제 이동됩니다.
- Private Zone (콘텐츠 페이지):
- 모든 인증 및 NDA 서명을 완료한 사용자에게만 노출되는 보안 콘텐츠 영역입니다.
- URL을 직접 입력하여 접근하더라도, 인증 및 서명 상태를 확인하여 권한이 없으면 인증 페이지로 리디렉션해야 합니다.
- 해당 내용은 메인 페이지 뿐 아니라, 모든 이미지 영상 등의 리소스에도 해당합니다.
4.2. 푸시 알림
- 트리거: 관리자가 새로운 콘텐츠를 게시하거나 중요 업데이트를 할 경우.
- 채널: 사용자가 2단계 인증 시 제공한 카카오톡 또는 전화번호를 통해 알림을 발송합니다.
- 내용: “새로운 정보가 업데이트되었습니다.“와 같이 간결한 메시지와 함께 사이트 링크를 포함합니다.
4.3. 디지털 워터마킹 (Digital Watermarking)
- 목표: 콘텐츠 내 모든 이미지와 비디오에 사용자 식별 정보를 삽입하여, 유출 시 출처를 추적할 수 있도록 합니다.
- 적용 대상: Private Zone에서 제공되는 모든 이미지 및 비디오 리소스.
- 구현 방식:
- 이미지 (보이지 않는 워터마크):
- 서버 사이드에서 스테가노그래피(Steganography) LSB(최하위 비트) 변조 방식을 사용합니다.
- 사용자가 이미지를 요청할 때, 실시간으로 해당 사용자의 고유 식별자를 이미지 픽셀 데이터에 보이지 않게 삽입하여 제공합니다.
- 비디오 (보이는 워터마크):
- 비디오 플레이어 화면 위에 사용자의 식별 정보(예: 이메일, IP 주소)를 반투명 텍스트 오버레이로 표시합니다.
- 이 워터마크는 비디오 재생 내내 표시되어 스크린 녹화를 통한 유출을 억제하고, 유출 시 출처를 명확히 합니다.
- 이미지 (보이지 않는 워터마크):
5. 비기능적 요구사항
- 보안: 모든 API 통신은 HTTPS를 사용하며, 민감한 사용자 데이터는 안전하게 처리되어야 합니다.
- 성능: Vite 기반의 빠른 페이지 로딩 속도를 보장해야 합니다.
- 호환성: 최신 버전의 주요 웹 브라우저(Chrome, Safari, Edge)에서 정상적으로 동작해야 합니다.
6. 기술 스택 제안
- 프론트엔드: React, Vite, React Router
- 상태 관리: Zustand
- 백엔드 (필요 시): Node.js/Express - 인증 콜백 처리, 알림 발송 등