영상 보안

HLS AES-128 암호화란 — 강의 영상 보안에 대한 7가지 질문

mp4 링크는 왜 위험한가, HLS AES-128은 무엇을 막고 무엇을 못 막나. 강의 영상 암호화에 대해 강사들이 실제로 묻는 질문 7가지에 하나씩 답합니다.

노트북과 자물쇠 — 영상 스트리밍 암호화를 상징하는 이미지
사진: Rafael Minguet Delgado (Pexels)

HLS AES-128은 영상 세그먼트를 암호화해 키 없이는 내용을 재생하기 어렵게 만드는 방식입니다. 키와 영상 데이터를 함께 확보한 사람의 복사나 화면 촬영까지 막지는 못하며, DRM과도 동일한 기술이 아닙니다. 강의 운영자는 암호화 여부뿐 아니라 키 요청의 로그인·수강권 검증과 만료 처리를 함께 확인해야 합니다. 강사들이 묻는 순서대로 범위와 점검 방법을 정리합니다.

1. mp4 파일을 서버에 올려 재생하면 왜 위험한가요?

인증 없이 열리는 MP4 주소는 공유받은 사람도 파일을 내려받을 수 있기 때문입니다. MP4라는 형식 자체에 접근 제어가 불가능한 것은 아닙니다. 서명 URL이나 서버 인증을 붙일 수 있지만, 정상적으로 전송받은 파일의 복사를 별도로 통제해야 합니다. 따라서 파일 확장자만 비교하지 말고 재생 요청 때 수강권을 어디에서 확인하는지 살펴보세요.

2. HLS란 정확히 무엇인가요?

재생 목록과 미디어 세그먼트를 이용해 영상을 전송하는 스트리밍 방식입니다(IETF RFC 8216). 재생 목록 파일(m3u8)이 세그먼트의 순서를 안내합니다. 실제 재생 가능 여부는 운영체제·브라우저의 HLS 지원, 별도 플레이어, 코덱과 인증 구성에 따라 확인해야 합니다.

3. AES-128 암호화는 무엇을 하나요?

각 세그먼트를 열쇠(키) 없이는 재생할 수 없는 암호문으로 만듭니다. 핵심은 영상과 열쇠를 분리해서 배달한다는 것입니다:

  1. 서버가 세그먼트를 AES-128 키로 암호화해 둔다.
  2. 수강생이 재생을 누르면 플레이어가 재생 목록(m3u8)과 세그먼트를 받는다.
  3. 재생 목록에는 키 서버 주소가 적혀 있다 — “이 조각을 풀려면 열쇠가 필요하다”.
  4. 서비스가 별도로 구현한 키 서버가 로그인·수강권·토큰을 검증한 뒤 키를 내준다. HLS 표준 자체가 결제나 수강권을 확인해주는 것은 아니다.
  5. 검증을 통과한 플레이어만 복호화해 재생한다.

조각이 유출되어도 그 자체로는 재생이 안 되고, 보안의 초점이 “키를 누구에게 내줄 것인가”라는 통제 가능한 문제로 좁혀집니다.

4. mp4 직링크와 뭐가 달라지는 건가요?

구분mp4 직링크HLS + AES-128
파일 다운로드인증 없는 공개 주소라면 다운로드 가능암호화된 조각만으로는 재생 곤란; 키까지 확보하면 복호화 가능
재생 권한 제어인증 없는 공개 링크에는 없음별도 키 서버에 수강권 검증을 구현해야 함
링크 공유 시공개 주소라면 접근 가능키 요청 인증·만료 정책에 따라 보호 범위가 달라짐
기기·브라우저코덱·플레이어 호환성 확인HLS 지원 플레이어·코덱·인증 방식 확인

5. AES-128이면 절대 안 뚫리나요?

암호화만으로 유출을 완전히 막을 수는 없습니다. 정상 재생 권한이 있는 사용자가 키와 세그먼트를 함께 확보하면 복호화할 수 있고, 재생 중인 화면을 촬영할 수도 있습니다. 일회용 토큰은 토큰 재사용과 무권한 키 요청을 줄이는 수단이지만, 정당하게 발급된 키를 복사하는 행위까지 막아주는 것은 아닙니다. RFC 8216의 보안 고려 사항은 키 전송 보호 등을 다룹니다. HLS AES-128과 별도 DRM의 보안 범위를 동일하게 보지 않아야 합니다.

6. 그럼 화면 녹화는 어떻게 막나요?

암호화와 화면 캡처 제어는 따로 점검해야 합니다. 지원 환경의 캡처 제어와 시청자 워터마크를 함께 검토할 수 있지만, 화면에 표시하는 워터마크와 보이지 않는 정보를 검출하는 포렌식 워터마킹은 다른 기술입니다. 적용 환경과 실패 조건은 인강 화면 녹화 방지 기술 비교에서 확인하세요.

도입 전에 직접 해볼 점검

점검 상황기대 결과확인할 대상
비로그인 상태로 키 주소 요청접근 거부키 서버 인증
다른 강좌 수강생의 키 요청접근 거부강좌별 권한
수강 기간 종료 후 새 재생 요청접근 거부만료 정책·캐시
지원 기기에서 정상 재생끊김 없이 재생코덱·HLS 플레이어
정상 재생 후 이미 받은 데이터서버 접근 회수만으로 삭제를 보장하지 못함보호 범위 설명

이 표는 권한 제어의 점검 기준이며, 배로 또는 특정 제품의 시험 결과를 뜻하지 않습니다.

권한 설정 뒤 정상 수강생에게 재생 문제가 생기면 영상 재생 문의 확인 순서로 증상을 구분하세요. 콘텐츠를 다시 인코딩해야 할 때를 대비한 원본 백업 점검도 운영 준비에 포함할 수 있습니다.

7. 개발자 없이도 적용할 수 있나요?

인코딩·키 전달·플레이어 연동을 제공하는 서비스를 선택할 수 있지만, 수강권 연동 범위는 별도로 확인해야 합니다. 업로드가 끝났다는 사실만으로 환불·기간 만료 후 접근 회수까지 검증됐다고 보기는 어렵습니다.

재생 목록에서 무엇을 확인하나요?

아래는 RFC 8216 제4.3.2.4절의 태그를 설명하기 위한 축약 예시입니다. 실제 키·토큰이나 서비스 주소를 포함하지 않습니다.

#EXT-X-KEY:METHOD=AES-128,URI="https://example.com/keys/lesson"

METHOD=AES-128은 해당 암호화 방식을 표시하고, URI는 키를 얻을 위치입니다. 이 줄이 있다고 해서 키 서버가 수강권을 검사한다는 뜻은 아닙니다. 운영자는 실제 키를 문서나 문의 채널에 복사하지 말고, 자신의 시험 계정으로 다음 항목을 담당 개발자와 확인하세요.

관찰한 현상담당자에게 확인할 질문
로그인하지 않아도 키 요청이 성공함공개 키 전달이 의도된 것인가, 강좌별 권한을 어디에서 검사하는가
정상 수강생도 키 요청이 거절됨로그인 전달·수강 기간·요청 경로 중 어느 단계에서 거절됐는가
환불 뒤 새 세션에서 계속 재생됨키뿐 아니라 재생 목록·세그먼트·캐시 정책도 확인했는가
특정 기기에서만 재생 실패코덱과 플레이어 지원, 인증·교차 출처 요청 조건이 맞는가

이 표는 편집팀의 진단 질문이며 특정 제품의 시험 성적표가 아닙니다. 암호화, 화면 녹화 제어, 워터마크의 역할을 나누어 검토하면 필요한 보호 범위를 설명하기 쉽습니다. 강의 운영 서비스를 비교하고 있다면 배로에서 안내를 확인하고, 도입 전 시험 계정으로 권한 만료와 대상 기기의 재생을 함께 점검해 보세요.

수정 내용: 키가 함께 유출되는 경우의 한계를 도입부와 비교표에도 명시하고, 재생 목록 확인 예시와 권한 오류 진단표를 추가했습니다.

자주 묻는 질문

HLS는 유료 기술인가요?

HLS 규격은 IETF RFC 8216에서 공개적으로 확인할 수 있습니다. 실제 비용은 인코딩·전송·키 서버 운영과 사용하는 소프트웨어 및 서비스 계약에 따라 달라지므로 표준 공개 여부만으로 비용을 판단하지 마세요.

유튜브 비공개 영상으로 강의를 팔면 안 되나요?

공개 범위 설정과 결제한 수강생의 재생 권한 검증은 별개입니다. 유튜브 비공개·일부공개 설정의 차이와 최신 이용약관을 확인하고, 환불·수강기간 만료 시 실제로 접근을 회수할 수 있는지 점검하세요.

이미 올려둔 mp4 영상도 HLS로 바꿀 수 있나요?

가능합니다. 원본 mp4를 인코딩 과정에서 세그먼트 분할·암호화하면 되므로, 재촬영 없이 기존 영상 그대로 전환할 수 있습니다.

모바일 앱에서도 동작하나요?

HLS 재생을 지원하는 모바일 플레이어에서 사용할 수 있습니다. 웹에서는 브라우저의 기본 HLS 지원 또는 별도 JavaScript 플레이어가 필요할 수 있고, 영상 코덱·운영체제·키 요청 인증 방식에 따라 동작이 달라집니다. 실제 대상 기기에서 재생과 인증을 확인해야 합니다.

참고 자료

  1. IETF, 「RFC 8216 — HTTP Live Streaming (HLS) 표준 문서」 (2017) — 원문 보기