DRM 버전 7 이상을 사용하여 파일 보호
[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 작성기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
Windows Media DRM 버전 7 이상으로 파일을 보호하려면 기록기 개체의 IWMDRMWriter::SetDRMAttribute 메서드를 사용하여 DRM 특성을 설정합니다. DRM 버전 7 이상 버전은 보호된 각 파일 또는 파일 집합에 대해 고유한 라이선스를 사용하도록 설정하므로 IWMDRMWriter 인터페이스에는 키를 만드는 메서드도 있습니다. 이러한 메서드는 편의를 위해서만 제공됩니다.
DRM 버전 7 이상을 사용하여 ASF 파일을 보호하려면 다음 단계를 수행합니다.
WMStubDRM.lib에 연결하고 필요한 경우 wmvcore.lib의 연결을 해제합니다.
WMCreateWriter 함수를 호출하여 DRM 작성기를 만듭니다. 첫 번째 인수는 예약되어 있으며 NULL로 설정해야 합니다.
IWMWriter::SetProfile 또는 IWMWriter::SetProfileByID를 호출하여 작성기에서 사용할 프로필을 설정합니다. DRM 특성을 설정하기 전에 작성기에서 프로필을 설정해야 합니다. DRM은 Windows Media Audio 또는 Windows Media Video 코덱을 사용하는 프로필에 대해서만 지원됩니다.
기록기 개체의 IWMDRMWriter 인터페이스를 가져옵니다.
IWMDRMWriter::SetDRMAttribute를 호출하고 Use_Advanced_DRMTRUE로 설정합니다.
새 키 시드를 생성해야 하는 경우 IWMDRMWriter::GenerateKeySeed를 호출합니다. 대부분의 경우 이전에 생성된 키 시드를 다시 사용합니다. 이 값은 비밀로 유지되어야 합니다. 파일에 기록되지 않습니다.
IWMDRMWriter::GenerateKeyID를 호출하여 실제 키를 만드는 데 사용되는 두 번째 값인 키 ID를 만듭니다. 키 시드와 달리 키 ID는 public이며 지우기에서 DRM 헤더의 파일에 기록됩니다. 새로 만드는 각 파일에 대한 새 키 ID를 만듭니다.
필요한 경우 IWMDRMWriter::GenerateSigningKeyPair를 호출하여 고급 DRM ASF Header 개체에 서명하는 데 사용할 공개 및 프라이빗 키를 생성합니다. 이러한 키에 대한 자세한 내용은 IWMDRMWriter::GenerateSigningKeyPair를 참조하세요.
필요한 경우 DRM 헤더의 디지털 서명 개체를 채우는 값을 가져옵니다. 시스템에 Windows Media Rights Manager의 작업 버전이 설치되어 있지 않은 경우 다음 네 가지 특성을 지정하여 ASF 파일 헤더의 디지털 서명 개체를 구성해야 합니다. 이 개체는 모두 Microsoft에서 가져와야 합니다.
Windows Media Rights Manager가 설치된 경우 애플리케이션에서 이러한 특성을 설정할 필요가 없습니다. DRM 구성 요소는 이러한 특성을 검색하고 헤더에 자동으로 서명하는 데 사용합니다. 다른 컴퓨터에 정품 인증된 버전의 Windows Media Rights Manager가 있고 이러한 디지털 서명 개체 값을 다시 사용하려는 경우 레지스트리에서 찾을 수 있습니다. 라이선스 서버 인증서는 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert1 아래에 저장되고 루트 인증서는 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert2 아래에 저장됩니다. DRM 버전 7로 파일을 보호하는 경우 이러한 레지스트리 키의 값을 사용해야 합니다. DRM_LASignaturePrivKey 속성의 경우 GenerateSigningKeysEx(Windows Media Rights Manager SDK를 통해)를 사용하거나 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server:Info_Cert0 Windows Media Rights Manager에서 설치한 값을 다시 사용합니다. DRM_LASignatureCert 속성의 경우 GenerateSigningKeysEx(Windows Media Rights Manager SDK를 통해) 또는 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert0에서 Windows Media Rights Manager가 설치한 값을 사용합니다.
필요한 DRM 헤더 특성을 설정하는 기록기 개체를 구성하기 위해 필요한 만큼 IWMDRMWriter::SetDRMAttribute 를 호출합니다. 이러한 속성은 기록기 개체의 수명 동안 또는 새 값으로 다시 설정될 때까지 유지됩니다. 새로 만드는 각 파일에 대해 다시 설정할 필요가 없습니다.
기록기 개체에는 다음 속성이 필요합니다.
다음 속성은 선택 사항입니다.
또한 DRM_DRMHeader 기본 특성을 사용하여 직접 사용자 정의 DRM 파일 특성을 지정할 수 있습니다. 예를 들어 라이선스 서버에서 라이선스를 만드는 데 사용할 추가 정보를 전달하는 방법으로 "DRMHeader.RequireSAP"와 같이 원하는 특성을 추가할 수 있습니다. 라이선스 서버는 추가하는 추가 속성에 앞서 알고 있어야 합니다. 알 수 없는 속성을 프로그래밍 방식으로 검색할 수 있는 방법은 없습니다.
이 설명서의 다른 곳에서 설명한 대로 IWMWriter 인터페이스 메서드를 사용하여 파일을 작성합니다. 라이브 DRM 스트림을 만들려면 네트워크 싱크에 쓰기만 하면됩니다. 푸시 싱크에 쓸 수도 있습니다.
필요한 경우 Windows Media Rights Manager를 사용하여 파일에 대한 라이선스를 만듭니다. 이 작업은 타사 라이선스 서버에서도 수행할 수 있습니다. 라이브 DRM 시나리오의 경우 최종 사용자는 스트림이 시작되기 전에 또는 처음 연결을 시도할 때 라이선스를 얻어야 합니다.
참고 DRM은 이 SDK의 x64 기반 버전에서 지원되지 않습니다.
관련 항목