PlaynPlay
PlaynPlay

보안성 검토 자료

내부 보안성 검토에 붙일
데이터 흐름과 통제 목록

정보보호 담당자가 PlaynPlay 도입을 검토할 때 묻는 순서대로 정리했습니다. 어떤 데이터가 어디로 가는지, 학습자 기기에서 무엇이 실행되는지, 위협마다 어떤 통제가 있는지를 개발 문서 기준으로 적었습니다. 문서로 답할 수 없는 항목은 마지막 표에 따로 모았습니다.

최종 수정

보안성 검토를 표현한 PlaynPlay 일러스트
Boundaries

구성 요소와 책임 경계

검토서의 구성도는 학습자 기기, 고객사 영역, PlaynPlay 측 서버 세 구역으로 나눠 그리면 질문이 정리됩니다.

구성 요소 실행 위치 맡는 일 다루는 데이터
PlaynPlay App 학습자 PC(Windows 10 이상, macOS 11 이상), 별도 설치 재생, 다운로드, 녹화 차단 패키징 파일, 다운로드 파일
agent.js와 설정 파일 고객사 웹 페이지. agent.js는 app.playnplay.com 또는 CDNetworks 도메인에서, 설정 파일은 고객사 경로에서 불러옴 앱 실행과 재생 정보 전달 영상 URL, App ID, 사용자 ID, userData
Android·iOS SDK 고객사 앱 안 앱 안 재생과 다운로드 위 항목과 장치 ID
인증 서버 PlaynPlay 측 라이선스 키 발급, 세션 관리 App ID, 사용자 ID, 세션
PlaynPlay Console PlaynPlay 측 웹 App·키 발급, 보안 정책, Callback URL 설정, 기록 조회 App ID·App Key, 사용자·세션·미디어별 재생 기록, 녹화 차단 기록
DRM 패키징 도구 고객사 작업 PC나 서버(macOS, Windows, Linux) 영상 파일 암호화 원본 영상, 패키징 결과
미디어 서버 고객사 패키징 파일 제공 패키징 파일
Callback 서버 고객사 재생 허용 판단, 보고 수신 다음 표의 필드

패키징은 콘솔에서 내려받은 명령줄 도구를 고객사 환경에서 실행하는 방식이고, 플레이어는 미디어 서버의 패키징 파일을 URL로 받아 재생합니다. 콘솔 메뉴는 콘솔 기능 소개에 있습니다.

Data Flow

Callback URL로 고객사 서버에 오는 데이터

Callback URL은 콘솔에 등록하며, 플레이어는 이 주소로 JSON 본문의 POST 요청을 보낸 뒤 돌아온 응답대로 움직입니다. 모든 요청에 type, appId, userId, userData, mediaUrl이 실리고, 아래는 그 밖의 필드입니다.

보고 추가로 오는 필드 고객사 응답
접근 권한 검사
CheckAccessRights
deviceId, offline(다운로드 콘텐츠 여부) Ok, Expired, NoRights, DeviceLimitExceeded 중 하나. Ok이면 expiresOn(Unix epoch time)
재생 진행 상태
NotifyPlaybackProgress
sessionId, position·duration(밀리초), playTime, watchTime Ok 또는 PlaybackLimitExceeded
재생 상태
NotifyPlaybackStatus
sessionId, status(Started·Stopped), createdAt Ok
재생 종료
NotifyPlaybackFinish
sessionId, position, duration, playTime, watchTime, reason Ok
오프라인 재생 정보
NotifyOfflinePlaybackLog
items: 세션별 sessionId, startedAt, stoppedAt, position, duration, playTime, watchTime, finishReason Ok
다운로드 상태
NotifyDownloadStatus
sessionId, status(Started·Completed·Canceled·Failed), createdAt Ok
북마크 제공·업데이트
GetBookmarks, UpdateBookmarks
sessionId. 업데이트는 bookmarks(위치, 제목) Ok. 제공 요청에는 북마크 목록을 함께 반환

Authorization 문자열은 선택 항목입니다. 콘솔에 등록하면 모든 요청에 Authorization: Bearer 헤더로 실려 오므로 서버에서 검사하고 교체 주기를 정해 두기를 권합니다. userId와 userData는 고객사가 실행할 때 넣는 값이라, 이름이나 연락처 대신 내부 식별번호를 쓰면 보고 데이터의 개인정보 범위가 줄어듭니다. 북마크 보고는 실행할 때 useBookmarkCallback을 켠 경우에 씁니다.

On Device

학습자 기기에서 실행되는 것

사내 PC 표준이나 모바일 기기 관리 정책과 부딪히는 지점을 채널별로 봅니다.

채널 실행 요소 기기에 남는 것 필요한 권한·설정
PC 웹 연동 PlaynPlay App, 웹 페이지의 agent.js 다운로드 파일, 오프라인 재생 위치와 기록(온라인 연결 때 전송) 앱 설치 권한
PC 커스텀 페이지 앱 안에서 도는 고객사 웹 페이지, 서비스 워커 스크립트(playnplay-service.js), nPlayer 스크립트 위와 같음 서비스 워커 등록
Android 앱 SDK(aar)와 Media3, OkHttp, Room 등 의존 라이브러리 다운로드 파일, 오프라인 재생 기록 INTERNET, READ_MEDIA_VIDEO, FOREGROUND_SERVICE, FOREGROUND_SERVICE_MEDIA_PLAYBACK, 다운로드 완료 수신기
iOS 앱 NPlayerSDK 프레임워크 다운로드 파일, 오프라인 재생 기록 Background Modes(Audio, AirPlay, and Picture in Picture)

2026년 2월 Android·iOS SDK 배포본은 다운로드 파일에 쓰는 DRM 키의 저장 방식을 개선했습니다. 키의 저장 위치와 보호 방식은 아래 확인 목록에 넣었습니다. PC 앱 변경 이력(1.0.32)에는 WebView2 새 버전에서 로컬 네트워크 접근 제한이 기본값이 된 뒤 나타난 재생 오류의 수정이 있으니, 사내 PC의 WebView2 갱신 정책도 함께 보세요.

Controls

위협별 통제와 적용 범위

플랫폼마다 문서로 확인되는 범위가 다르므로 적용 범위 칸을 검토서에 그대로 옮기세요.

위협 통제 적용 범위 문서
저장소·CDN의 파일 복사 DRM 패키징, 재생할 때 라이선스 필요 전 채널 DRM Packaging, 소개
재생 주소 공유 라이선스 발급 때 고객사 서버가 NoRights·Expired로 거절 전 채널 접근 권한 검사
계정 공유, 기기 돌려쓰기 동시 접속 감지, 기기 제한 초과 오류. 고객사 서버의 DeviceLimitExceeded 응답 PC 커스텀 페이지, Android, iOS SessionError, MediaPlayerException, MediaPlayerError
위조·재포장 앱 콘솔에 올린 패키지 이름(Bundle ID)과 다른 앱은 등록되지 않은 앱 오류로 거부 Android, iOS 사용 방법, 오류 목록
화면 녹화·캡처 PC App 녹화 차단, Android 녹화·캡처 차단, iOS 녹화 차단과 화면 캡처 감지 오류 전 채널 소개, 변경 이력, MediaPlayerError
카메라 촬영 유출 워터마크 PlaynPlay App, Android 소개, WatermarkSettings
루팅 기기·앱 플레이어 감지하면 앱에 알림, 재생 중단 등 대응은 앱이 구현 Android MediaPlayerBaseFragment
통신 가로채기 분석 디버깅 프록시 방어(2026년 1월) Android, iOS 변경 이력
PC 개발자 도구 악용 브라우저 단축키 비활성화(1.0.29), 개발툴 열기 API는 운영 환경에서 쓰지 말라는 권고 Windows, 커스텀 페이지 Desktop 변경 이력, 커스텀 페이지
다운로드본 장기 보관 오프라인 재생 기한 지정. 0이면 오프라인 재생 불가 PC, Android, iOS Agent › DRM, 오류 목록
배수·횟수 정책 위반 진행 보고에 PlaybackLimitExceeded로 응답하면 재생 제한 초과 오류로 처리 전 채널 재생 진행 상태 보고

기능 설명은 보안 기능, 거부 원인별 안내 문구는 오류 처리 가이드에서 이어집니다.

Open Items

문서로 답할 수 없는 항목

공개 개발 문서에 설명이 없는 항목입니다. 검토서에 추정으로 채우지 말고 Newin에 서면으로 확인받으세요.

항목 검토에서 필요한 이유 상태
DRM 방식, 암호화 알고리즘, 키 관리 구조, 오프라인용 키 저장 위치 암호화 수준 평가 문서에 없음 — 확인 필요
인증 서버와 콘솔의 호스팅 위치 개인정보 국외 이전 여부 판단 문서에 없음 — 확인 필요
PlaynPlay 측에 남는 사용자·세션 기록 항목과 보관 기간 처리 위탁 범위 산정 문서에 없음 — 확인 필요
Callback 요청의 출발지와 IP 범위 방화벽 허용 규칙 문서에 없음 — 확인 필요
Callback 서버 무응답·지연 때 재생 처리 장애 영향 평가 문서에 없음 — 확인 필요
전송 구간 암호화 요구 사항 Callback 서버 설정 기준 문서에 없음 — 확인 필요
콘솔 관리자 권한 분리, 접속 기록, 추가 인증 관리자 계정 통제 문서에 없음 — 확인 필요
장치 ID 생성 방식과 초기화 조건 개인정보 해당 여부 문서에 없음 — 확인 필요
동시 접속·기기 수 허용 범위 정책 설계 문서에 없음 — 확인 필요
패키징 도구의 외부 통신 여부, ndrmconfig 파일 보관 방법 작업 서버 통제 문서에 없음 — 확인 필요
외부 출력(HDMI·미러링), iOS 탈옥 기기, iOS 워터마크 플랫폼 간 통제 차이 파악 문서에 없음 — 확인 필요
Review Steps

검토 진행 권장 순서

위 표를 사내 검토 양식에 옮길 때 아래 순서를 권합니다.

  1. 흐름도 작성

    구성 요소 표를 세 구역 그림으로 옮기고 요청 방향과 필드를 화살표마다 적습니다.

  2. 넘길 식별값 확정

    사용자 ID와 userData에 들어갈 값을 정하고 개인정보가 섞이지 않게 합니다.

  3. 통제 시연

    테스트 계정으로 위협 표의 거부 상황을 재현하고 화면과 서버 로그를 증적으로 남깁니다.

  4. 미확인 항목 회신

    문서로 답할 수 없는 항목을 Newin에 보내고 회신을 검토서에 첨부합니다.

  5. 운영 통제 지정

    Authorization 교체 주기, 녹화 차단 로그 점검 주기, 콘솔 계정 담당자를 정합니다.

보안 담당자의 역할 범위는 보안 담당자 안내, 데이터 원문은 Callback URL 문서에 있습니다.

Get Started

PlaynPlay 도입을 위한
기술적 지원과 서비스를 제공합니다.

제품 문의부터 데모 시연까지, 모든 지원을 위해 세일즈 및 기술 지원 팀이 준비되어 있습니다.

  • 제품 및 도입 문의

    도입 범위, 일정, 견적을 상담합니다. 서비스 형태와 사용자 규모를 알려주시면 맞는 연동 방식과 보안 설정을 제안합니다.

  • Trial 신청

    PlaynPlay의 기능을 먼저 테스트해 보세요. 트라이얼 기간 동안 귀사의 제품과 PlaynPlay를 연동하고 성능과 기능을 직접 검증할 수 있습니다.

  • PlaynPlay 기술 문의

    SDK 연동, Callback URL 설계, DRM 패키징 중에 생기는 질문에 기술팀이 답합니다. 공개된 개발 문서와 샘플 프로젝트도 함께 확인하세요.