BD+

BD+

BD+블루레이 디스크 디지털 권리 관리 시스템의 구성 요소입니다. Cryptography Research Inc.에 의해 개발되었으며 자체 보호 디지털 콘텐츠 개념을 기반으로 합니다.[1] 블루레이 디스크의 무단 복사와 무단 장치를 사용한 블루레이 미디어 재생을 방지하려는 의도였습니다.

BD+는 "균열된" 고화질 콘텐츠의 흐름을 막지는 못했지만, 블루레이 영화를 복사하려는 사람들은 새로운 버전의 보안 코드를 깨기 위해 자원을 재투자해야 합니다.[2]

BD+는 블루레이와 HD DVD포맷 전쟁에서 중추적인 역할을 했습니다. 몇몇 스튜디오들은 블루레이 디스크 over HD DVD를 지원한 이유로 블루레이 디스크의 BD+ 복사 방지 시스템 채택을 꼽았습니다. Envisioneering Group의 분석가인 Richard Doherty에 따르면, 이 복제 방지 계획은 금이 가는 데 "10년"이 걸리는 것이었습니다.[3]

2007년 11월 19일, 매크로비전은 CRI로부터 SPDC 기술(특허 및 소프트웨어 코드 포함)을 현금 및 주식 워런트 4,500만 달러에 인수할 계획이라고 발표했습니다.[4]

2011년 7월 7일, 어데토는 로비 코퍼레이션으로부터 블루레이 디스크를 위한 BD+ 콘텐츠 보호 기술을 인수했습니다.[5][6]

성능

BD+는 사실상 공인된 플레이어에 내장된 가상 머신입니다. 콘텐츠 공급자가 블루레이 디스크에 실행 가능한 프로그램을 포함할 수 있습니다. 이러한 프로그램은 다음과 같습니다.[7]

  • 호스트 환경을 검사하여 플레이어가 조작되었는지 확인합니다. 모든 라이선스 재생 장치 제조업체는 BD+ 라이선스 기관에 해당 장치를 식별할 수 있는 메모리 발자국을 제공해야 합니다.
  • 플레이어의 키가 변경되지 않았는지 확인합니다.
  • 네이티브 코드를 실행합니다. 그렇지 않으면 안전하지 않은 시스템을 패치할 수 있습니다.
  • 오디오 및 비디오 출력을 변환합니다. BD+ 프로그램이 복구하지 않으면 콘텐츠의 일부를 볼 수 없습니다.

재생 장치 제조업체가 장치가 해킹된 것을 발견하면 잠재적으로 취약성을 감지하고 우회하는 BD+ 코드를 해제할 수 있습니다. 그런 다음 이러한 프로그램을 모든 새 디스크 릴리스에 포함할 수 있습니다.[8]

BD+ 가상 머신의 사양은 라이선스를 받은 장치 제조업체에서만 공식적으로 사용할 수 있습니다. 라이선스를 받은 입양인 목록은 BD+ 웹사이트에서 확인할 수 있습니다.[9] 그러나 SlySoft(현재 RedFox)와 Doom9 포럼 회원 모두 가상 머신 사양을 역설계했습니다.

역설계된 사양에 따르면 가상 머신은 4MB의 RAM이 있는 32비트 빅 엔디안 DLX와 같은 프로세서로 구성됩니다. 32개의 32비트 레지스터를 사용할 수 있습니다. TRAP 명령은 가상 시스템 호스트가 시스템 호출에 따라 보다 복잡한 작업을 수행할 수 있도록 하는 데 사용됩니다.[10]

BD+ 코드의 단순하고 정적인 분해를 방지하기 위해 opcode를 실행하기 전에 XOR 연산을 수행할 수 있는 명령어 필터를 사용할 수 있습니다. 컴파일러는 런타임에 명령 필터를 변경함으로써 상대방이 코드를 완전히 분해하기 전에 런타임에 코드를 추적하도록 강제할 수 있습니다.[11]

가상 머신

이 프로그램은 BD+ 보호 디스크의 BDSVM 디렉토리 내에서 볼 수 있습니다.[10] 콘텐츠 코드는 4MB의 메모리를 인터페이스하는 가상의 빅 엔디안 DLX-like 프로세서에서 실행됩니다. 프로세서는 59개의 상이한 명령어들 및 명령어 필터, 클록 사이클 카운터 및 프로그램 카운터를 위한 32개의 범용 레지스터들 및 3개의 특수 목적 레지스터들로 구성된 레지스터 세트를 지원합니다. BD+ 가상 머신은 메모리 액세스 주소가 지정된 메모리 영역 밖으로 떨어지지 않도록 마스킹하여 메모리 보호를 적용합니다. 콘텐츠 코드의 실행은 (BDSVM 디렉토리 내부에 위치한) 00001.svm 파일의 첫 번째 블록의 페이로드 시작과 관련하여 주소 0x1000에서 시작됩니다.

트랩

BD+ 가상 머신은 매우 간단하지만 가상 머신과 플레이어 간의 인터페이스는 다소 복잡합니다.[10] BD+는 콘텐츠 코드에 25개의 시스템 호출 또는 "트랩"을 제공합니다. 아래 표에 개요가 나와 있습니다. 트랩 ID의 비트 00–07은 그룹 내의 각 트랩을 고유하게 식별합니다. 그룹 ID 자체는 트랩 ID의 비트 08~16에 의해 지정됩니다. 지금까지 확인된 그룹 ID는 00(이벤트 처리), 01(암호화 연산), 02(산술 연산), 03(메모리 연산), 04(슬롯 메모리 액세스), 05(디바이스 액세스), 80(디버깅)입니다. [2]

그룹ID 트랩ID 이름. 매개변수
00 000010 TRAP_완료 0
000020 TRAP_변환표 2
01 000110 TRAP_Aes 5
000120 TRAP_PrivateKey 5
000130 TRAP_랜덤 2
000140 TRAP_샤 4
02 000210 TRAP_캐리와 함께 추가 3
000220 TRAP_배수리플과 함께 4
000230 TRAP_Xor블록 3
03 000310 TRAP_미무브 3
000320 TRAP_MemSearch 5
000330 TRAP_멤셋 3
04 000410 TRAP_슬롯첨부 2
000420 TRAP_슬롯리드 2
000430 TRAP_슬롯라이트 1
05 000510 TRAP_애플리케이션 계층 3
000520 TRAP_DeviceDiscovery 4
000530 TRAP_디스커버리램 3
000540 TRAP_LoadContentCode 5
000550 TRAP_미디어체크 6
000560 TRAP_런네이티브 4
80 008010 TRAP_디버그로그 2

이러한 각 시스템 호출은 TRAP 명령(opcode 0x39)에 의해 호출될 수 있습니다. 관례에 의해, 파라미터들의 메모리 어드레스를 유지하는 스택 포인터로서 레지스터(29)가 사용됩니다. 파라미터 검증 후 시스템 호출이 실행되고 반환 코드가 기록되어 레지스터 1이 됩니다. 실행하는 동안 컨텐츠 코드는 신뢰할 수 있는 환경에서 실행되고 있는지 확인하기 위해 일련의 테스트를 수행합니다. 이러한 테스트 중 하나는 플레이어에게 인증서를 요청하는 것입니다. TRAP_Discovery. 이 인증서의 RSA 서명은 나중에 컨텐츠 코드에 저장된 라이센스 관리자의 공개 키(선택적으로 난독화된 형태)를 사용하여 컨텐츠 코드에 의해 확인됩니다. 나중에 플레이어는 ECDSA에 전화를 걸어 임의 메시지에 서명하도록 요청받습니다. TRAP_PrivateKey. 생성된 서명은 이전에 확인된 인증서에 저장된 플레이어의 공개 키를 사용하여 이후에 확인됩니다.

이벤트

BD+ 가상 시스템은 이벤트 기반입니다. 5개의 콜백(이벤트)은 플레이어가 콘텐츠 코드에 영화의 다양한 부분의 재생, 종료, 미디어 이젝트 이벤트 또는 플레이어 보안 작업을 포함한 다양한 이벤트를 통지하기 위해 호출할 수 있는 인터페이스에 의해 정의됩니다. 이벤트 데이터는 전용 메모리 영역(0x00–0x3F)을 사용하여 교환됩니다. TRAP_Finished 내용 코드가 이벤트 처리를 완료할 때마다 호출됩니다. 첫 번째로 호출된 이벤트는 EVENT_Startup 내용 코드의 실행이 시작됩니다.

그룹ID 이벤트 ID 이름. 매개변수
00 000000 EVENT_MediaInit 1
000010 EVENT_셧다운 1
01 000110 EVENT_TitleInit 2
02 000210 EVENT_애플리케이션 계층 2
000220 EVENT_계산SP 3

환산표

BD+ 지원 디스크가 마스터되기 전에 .m2ts 파일의 랜덤 섹션이 랜덤 데이터에 의해 덮어쓰여 콘텐츠의 일부가 사실상 손상됩니다. 원본 데이터는 BD+ 콘텐츠 코드 내에 암호화되어 난독화되어 저장됩니다.[10] 콘텐츠 코드가 실행 환경의 보안을 확인한 후, 시스템 호출을 사용하여 플레이어에게 수리 명령이 포함된 테이블("변환 테이블" 또는 "고정 테이블")을 전송합니다. TRAP_FixUpTableSend. 변환 테이블은 디스크의 .m2ts 파일마다 하나의 하위 테이블로 구성됩니다. 하위 표는 복구 설명자를 포함하는 비어 있을 수 있는 여러 세그먼트로 구성됩니다. 그런 다음 각 복구 설명자는 원시 데이터와 .m2ts 파일의 작은 부분을 복구하는 데 필요한 오프셋을 제공하여 파일의 손상된 부분을 원래 데이터로 바꿉니다.

BD+ 구현의 리버스 엔지니어링 및 에뮬레이션

2007년 11월 8일, SlySoft는 BD+ 디스크를 AnyDVD HD 소프트웨어로 복사할 수 있다고 발표했습니다.[12] 이것은 1세대 BD+ 타이틀이 AACS 존재 여부를 확인하지 않았기 때문에 가능했습니다. 이를 통해 사용자는 BD를 하드 드라이브에 복사하여 특정 버전의 사이버링크의 PowerDVD(3319a)만 사용하여 재생할 수 있었지만, 트랜스코딩을 할 수 없었고, 그렇지 않으면 콘텐츠를 조작하거나 BD-R 또는 BD-RE에서 재생할 수 없었습니다. BD+ 보안 코드의 업데이트된 버전이 이 구멍을 막았습니다.

2008년 1월 9일, engadgethd.com 은 Fox가 BD+는 아직 타협하지 않았다고 발표했다고 보도했습니다. 20세기 폭스의 고화질 타이틀이 온라인에서 어떻게 이용 가능하게 되었는지에 대한 질문을 받았을 때, 담당자는 타이틀이 유럽에서 HD DVD로 이용 가능하다고 보고했습니다.

2008년 3월 3일, SlySoft는 AnyDVD HD를 업데이트하여 BD+[14]의 완전한 암호 해독을 허용함으로써 영화 자체를 볼 수 있을 뿐만 아니라 타사 소프트웨어로 디스크를 재생하고 복사할 수 있게 되었습니다.

2008년 3월 19일, 현재까지 출시된 모든 타이틀에 대해 BD+ 복사 보호 기능을 완전히 제거할 수 있도록 지원하는 AnyDVD HD의 새로운 버전(6.4.0.0)이 출시되었습니다.[15][16][17]

2008년 5월, 블루레이의 점퍼는 BD+ 보안 코드의 수정된 버전을 도입하여 슬리소프트 애니DVD HD 소프트웨어가 BD+를 제거하지 못하도록 했습니다. 이 수정된 버전은 점퍼가 처음 출시된 지 몇 달 후에 슬리소프트에 의해 다시 우회되었습니다.

2008년 8월, Doom9 포럼의 회원들은 [18]BD+의 오픈 소스 구현을 위한 독립적인 프로젝트를 시작했습니다.

2008년 10월 말, 같은 Doom9 멤버들이 이전에 개발된 오픈 소스 툴로 BD+ 무비를 처음으로 개발했고,[19] 2008년 11월 1일 현재 BD+의 가상 머신용으로 제작된 콘텐츠를 디버깅하기 위한 코드를 만들었습니다.[20]

2008년 11월 2일, 둠9 포럼은 초기(2008년 5월 이전) BD+ 디스크를 오픈 소스 소프트웨어를 통해서만 재생할 수 있다고 발표했습니다.[21]

2008년 11월 초에 여러 버전의 BD+ 보안 코드가 출시되었는데, Slysoft에 따르면 이 코드를 우회하는 데 몇 달이 걸릴 수도 있다고 합니다.[22]

2008년 12월 29일, Slysoft는 AnyDVD HD 6.5.0.2가 현재의 모든 Blu-ray 영화에서 복사 방지를 복호화한다고 발표했습니다.[23]

2009년 2월 13일, 영화 호주에서 BD+ 보안 코드의 4번째 버전이 발견되어 [24]슬리소프트의 기존 애니 DVD HD 소프트웨어가 작동하지 않게 되었습니다.

2009년 3월 19일, Slysoft는 AnyDVD HD 6.5.3.1이 영화에서 새로운 BD+ 보호 기능을 추가했다고 발표했습니다. 호주, 더 로브 그리고 남태평양.[25] 슬럼독 밀리어네어, 지구가 서 있는 날, 말리 & 미, 엑스맨 3부작과 같은 일부 BD+ 영화는 슬리소프트의 업데이트에서 지원되지 않았습니다.[26] 그 이후 Slysoft는 새로운 타이틀에 대한 지원을 추가하는 여러 업데이트를 발표했습니다.

2009년 10월 7일, MakeMKV에 대한 BD+ 지원이 발표되어 현재까지 출시된 모든 BD+ 디스크를 처리할 수 있는 두 번째 애플리케이션이 되었습니다.[27]

2010년에 4개의 다른 회사들이 BD+를 해독할 수 있는 소프트웨어를 출시했습니다: DVDFAB Blu-ray Copy, Pavtube Blu-ray Copy, BlindWrite.

2013년 12월 18일, 비디오LAN 개발자들은 BD+ 복호화를 위한 오픈 소스 라이브러리인 libdplus를 공개했습니다. libdvcss와 마찬가지로 API를 사용하면 미디어 플레이어가 투명하게 사용할 수 있습니다.[28]

참고 항목

참고문헌

  1. ^ "About SPDC". Cryptography Research, Inc. Archived from the original on 1 April 2009. Retrieved 2009-04-12.
  2. ^ BD+ 재담보, Slysoft beat
  3. ^ Ryan Singel (February 26, 2008). "How Crypto Won the DVD War". Wired. Archived from the original on 1 March 2008. Retrieved 2008-02-27.
  4. ^ "Macrovision to Acquire Blu-ray Disc Security Technology from Cryptography Research, Inc". Archived from the original on 2007-11-21.
  5. ^ "Irdeto fights piracy with BD+ technology". OnScreen Asia. 11 July 2011. Archived from the original on 25 October 2011. Retrieved 3 October 2011.
  6. ^ Rosenblatt, Bill (7 July 2011). "Irdeto Acquires BD+ Technology from Rovi". Copyright and Technology. Retrieved 9 November 2011.
  7. ^ "Blu-ray Disc Next-Generation Optical Storage: Protecting Content on the BD-ROM" (PDF). DELL. Archived (PDF) from the original on 31 March 2007. Retrieved 2007-05-03.
  8. ^ 미국 출원 2010169663, "인증된 플레이어 탐지 시스템 및 방법", 2010-07-01, CYBERLINK CORPORATION에 할당
  9. ^ BD+ Technologies LLC, Wayback Machine에서 아카이브 2007-11-06
  10. ^ a b c d 역공학의 Doom9 스레드
  11. ^ 지침 필터의 Doom9 스레드
  12. ^ "AnyDVD 6.1.9.6 beta - SlySoft Forum". Archived from the original on 2007-11-09. Retrieved 2007-11-09.
  13. ^ BD+는 아직 타협하지 않았지만, Engadget HD.
  14. ^ "Press Release: AnyDVD HD now with BD+ support - SlySoft Forum". Archived from the original on 2008-12-18. Retrieved 2008-03-29.
  15. ^ "AnyDVD 6.4.0.0 - SlySoft Forum". Archived from the original on 2008-03-21. Retrieved 2008-03-19.
  16. ^ ZDNet 블로그
  17. ^ "Press Release: AnyDVD HD now with BD+ support - SlySoft Forum". Archived from the original on 2008-12-18. Retrieved 2008-03-29.
  18. ^ BD+ - Doom9 Forum 최종 처리
  19. ^ [1]BD+ - Doom9 Forum 최종 처리
  20. ^ Dawson, K (2008-11-01). "Doom9 Researchers Break BD+". Slashdot. Archived from the original on 7 December 2008. Retrieved 2008-11-02.
  21. ^ Doom9 포럼에서 BD+ 디스크를 복사할 수 있다고 발표했습니다.
  22. ^ "BD+ movies that Anydvd HD 6.4.8.4 beta may not handle properly". Archived from the original on 2008-11-06. Retrieved 2008-11-14.
  23. ^ "SlySoft defeats Blu-ray's BD+ DRM scheme again". Archived from the original on 2009-01-06. Retrieved 2008-12-29.
  24. ^ "BD+ discs that may not work properly with Anydvd HD". Archived from the original on 2011-09-30. Retrieved 2009-03-13.
  25. ^ "AnyDVD (HD) 6.5.3.1 released". Archived from the original on 2011-07-16. Retrieved 2009-03-21.
  26. ^ "More BD+ discs that may not work properly with Anydvd HD". Archived from the original on 2009-04-06. Retrieved 2009-03-25.
  27. ^ BD+ 상태 페이지
  28. ^ "libbdplus". VideoLAN. 2013-12-18. Retrieved 2013-12-25.