디지털 저작권 관리(DRM) 보호 수준
PC의 Microsoft Store 라이선스 시스템은 가장 기본적인 공격만 방어합니다. 보호가 필요한 콘텐츠에 대해서만 이 시스템에 의존해서는 안 됩니다. 다음은 보다 고급 공격에 대한 보호 계층을 추가할 수 있는 몇 가지 단계입니다.- 게임 시작 시 게임에서 시작한 라이선스 검사
- 게임의 라이선스 검사에 대한 변조 방지 보호
- 라이선스 토큰을 사용한 서비스 측 라이선스 확인
기본 라이선스 검사
최소한 DRM 보호가 필요한 모든 게임에 대해 기본 라이선스 검사를 추가하는 것이 좋습니다. 다음 코드 예제는 다른 Gaming Runtime 관련 API 호출을 사용하지 않더라도 이 검사를 수행하는 기본 구현을 보여줍니다. 시작 경로에 코드를 추가하고 라이선스 검사 실패 시 표시되는 특정 UI를 추가할 수 있습니다.XBOX Game Pass를 통해 부여된 라이선스는 구매한 라이선스와 마찬가지로
isActive = true를 반환합니다. XStoreGameLicense 구조체에는 라이선스 획득 방식을 식별하는 필드가 포함되어 있지 않으므로, 클라이언트 라이선스 검사로는 Game Pass 액세스와 직접 구매를 구분할 수 없습니다. 이를 구분하려면 서비스에서 XBOX Game Pass 구독 액세스 감지에 설명된 서비스 측 쿼리를 사용하세요.비Microsoft 변조 방지 보호
기본 라이선스 검사 예제는 어느 정도 보호를 제공하지만 공격자가 이 검사를 우회하도록 게임 실행 파일을 수정하여 이 유형의 보호를 우회하는 것은 흔한 일입니다. 따라서 게임을 보호하기 위한 다음 단계는 이러한 공격 경로를 차단하기 위해 비Microsoft 변조 방지 제품을 사용하는 것입니다. GDK PC 게임용으로 사용할 수 있는 옵션이 있습니다. 이 보호를 게임에 통합하는 방법에 대한 자세한 지침은 변조 방지 공급업체와 함께 진행하세요.서비스 측 라이선스 확인
변조 방지 보호는 출시 시점의 타이틀을 보호하는 데 효과적이지만 결국에는 많은 경우 우회됩니다. 한 단계 더 나아가려면 온라인 지원 게임은 서비스 측 라이선스 확인 검사를 수행하고 많은 클라이언트 측 공격을 차단할 수 있습니다. 자세한 내용은 라이선스 토큰 개요를 참고하세요. 기본 개요는 다음과 같습니다.- 게임 서비스는 게임 클라이언트에 라이선스 토큰을 요청하며 해당 고유 요청을 나타내는 게임 서비스에서 생성한 GUID를 포함합니다.
- 클라이언트는 클라이언트 API XStoreQueryLicenseTokenAsync를 호출합니다.
- API는 라이선스 서비스를 호출하고 해당 사용자에게 라이선스를 반환해야 하는지 여부를 결정합니다.
- API가 유효한 라이선스를 얻을 수 있는 경우 서비스에서 제공한 세션 식별자가 포함된 서명된 라이선스 토큰이 반환됩니다.
- 클라이언트는 라이선스 토큰을 다시 게임 서비스로 전달합니다.
- 게임 서비스는 서명을 검증하여 라이선스가 Microsoft Store에서 온 것이며 수정되지 않았음을 확인합니다.
- 그런 다음 게임 서비스는 세션 GUID가 1단계에서 클라이언트에 전달된 것과 일치하는지 확인합니다.
- 그 후 게임 서비스는 토큰의 라이선스 정보가 유효하다고 신뢰할 수 있습니다.
