-
EME (Encrypted Media Extension)란?보안 2019. 4. 12. 16:05
EME는 Encrypted Media Extension의 약자로, DRM이 걸려있는 영상 컨텐츠를 사용자가 단말기에서 보안 프로그램 설치 없이 사용할 수 있게 해주는 기술이다.
사실 번지르르한 설명 전 EME 를 짧게 설명한다면 아래와 같이 요약할 수 있다.
DRM 솔루션 이용시 필요한 보안 프로그램을 대기업(구글, MS, 애플)이 브라우저(크롬, 엣지, 사파리)에 미리 심어둔 것
그래서 보안 프로그램 설치가 따로 필요 없는 것이다. 그럼 이제 EME 가 어떤 방식으로 동작하는지 살펴보자.
EME를 적용하기 위해선 암호화된 영상이 저장되어있는 스토리지 서버 와 복호화 키가 들어있는 라이센스 서버 , 그리고 CDM 이 기본적으로 필요하다.
넷플릭스를 예로 들어보자. A씨가 넷플릭스에 접속해 로그인을 한다.
로그인 후의 사용자라면 시청 가능한 영상 리스트를 확인할 수 있을 것이다. 아이유 주연의 페르소나를 보고싶었던 A씨는 썸네일을 클릭해 영상 시청 페이지로 이동한다. 재생 버튼을 누르는 순간 EME 기술이 시작된다.
먼저 넷플릭스 스토리지 서버 어딘가에 있는 컨텐츠를 스트리밍으로 조금씩 끊어서 가져올 것이다. 저작권 보호를 위해 영상 스트림은 암호화 되어있을 것이다. 하지만 넷플릭스는 A씨에게 돈을 받았기 때문에 영상을 복호화 해 제공해야 한다. 그러기 위해 크롬 브라우저에 내장되어 있는 CDM (Contents Decryption Module) 이라는 복호화 모듈을 사용한다. CDM에선 복호화 키가 들어있는 라이센스 서버 와 통신해 페르소나의 복호화 키를 가져오고 영상 스트림을 복호화해 A씨에게 제공한다.
이게 EME 기술이 암호화된 컨텐츠를 복호화해 사용자에게 제공하는 방식이다.그럼 이제 EME를 구현하는 방법에 대해 자세히 알아보자.
먼저 영상을 암호화하는 방법이다.
나의 경우, 암호화는 구글에서 제공하는 Shaka packager 라는 암호화 툴을 이용해 진행하였다.
이에 대한 사용법은 https://google.github.io/shaka-packager/html/ 여기서 확인하면 된다.암호화는 했다. 이제 암호화한 영상을 서버에 올렸다고 치자.
Shaka packager 문서대로 암호화를 했다면 복호화 키가 생성된다. 생성된 복호화 키를 라이센스 서버를 구축해 DB에 넣어준다. 우리가 구현해야 할 스토리지 서버와 라이센스 서버 구축이 끝났다.
이제 영상을 재생할 수 있는 웹페이지만 개발하면 컨텐츠를 감상할 수 있다. 일반 비디오 태그로도 구현이 가능하지만 인증서 등 적용해야하는 절차가 복잡해 구글이 간편하게 EME를 적용할 수 있는 플레이어를 제공하고 있다.
바로 Shaka player 다. (샤카라는 이름을 자꾸 쓰는데 뭔뜻인진 모르겠다. 아시는분은 말해주세요..)
그리고 이 플레이어에서 사용할 수 있도록 구글이 만들어놓은 CDM이 있다. 바로 Widevine 이라는 기술이다.
Shaka player에 대한 내용은 https://shaka-player-demo.appspot.com/docs/api/tutorial-welcome.html 여기에 있다.player 사용법에 대해 보다보면 Widevine 인증서와 관련된 내용이 나올것이다. 당황할 필요 없다.
Widevine을 이용해 컨텐츠를 복호화 하기 위해선 인증서가 필요한데 개인적으로 발급받기는 너무 어렵다. 따라서 미리 인증서를 받아놓고 우리에게 인증서를 나눠주는 좋은 서비스를 하는 업체들이 몇 군데 있다.난 Pallycon 이라는 서비스를 사용했다. (60일 Trial은 무료다)
EME의 장단점
장점
별도의 보안프로그램 설치 없이 DRM 컨텐츠 이용이 가능하다.
다양한 환경에서 컨텐츠를 이용할 수 있다. (Widevine CDM 의 경우, 크롬에서 동작하는데 크롬이 설치된 어떤 OS에서든이용이 가능하다)
단점
Widevine에는 보안단계별로 L1, L2, L3가 있는데 가장 낮은 단계인 L3는 이미 뚫렸다고 한다.
결국 화면 녹화는 막을 수 없다.
브라우저 별로 기본 지원하는 CDM이 달라 Widevine을 IE에서 사용하기 위해선 플러그인을 설치해야 한다.
대표적인 CDM
Widevine
Google에서 개발
Chrome, Android, Firefox, Opera 기본지원
Playready
Microsoft에서 개발
IE, Edge, Smart TV 기본지원
Fairplay
Apple에서 개발
Safari, IOS 기본지원'보안' 카테고리의 다른 글
안티 드론 기법에 대해 (2) 2023.02.27 MITRE ATT&CK 프레임워크에 대해 (0) 2023.02.13 Little Endian, Big Endian (0) 2019.02.20 블록체인 작업증명 C++로 구현하기 (0) 2019.02.19 댓글