PlayReady یک فناوری DRM است که توسط مایکروسافت برای حفاظت از محتوا در Windows، Xbox و سایر پلتفرمهای پشتیبانیکننده از محیط اجرایی جهانی UWP توسعه یافته است. این سیستم از مدل امنیتی سه سطحی SL (Security Level) از SL150 تا SL3000 استفاده میکند، که در آن بالاترین سطح نیاز به رمزگذاری سختافزاری از طریق TPM دارد. طبق مستندات Microsoft Docs (2025)، PlayReady 4.0 از رمزگذاری 4K HDR و تحلیلهای پیشرفته استفاده از محتوا پشتیبانی میکند.
نکات اصلی
PlayReady یک فناوری مدیریت حقوق دیجیتال (DRM) است که توسط مایکروسافت در سال 2007 برای حفاظت از محتوای رسانهای و سایر داراییهای دیجیتال توسعه یافته است. این فناوری جایگزین WMDRM (Windows Media DRM) شد و به استاندارد حفاظت برای Windows Media Center، Xbox Video و Microsoft Silverlight تبدیل گردید.
مزیت اصلی PlayReady — سیستم مجوزدهی یکپارچه برای انواع مختلف محتوا: ویدئو، صدا، کتابهای الکترونیکی، بازیها و اسناد است. این فناوری از مدلهای توزیع اشتراک (Subscription)، اجاره (Rental) و خرید (Purchase) پشتیبانی میکند که آن را برای سرویسهای رسانهای و پلتفرمهای آموزشی جذاب میسازد.
معماری PlayReady از سه جزء کلیدی تشکیل شده است: محیط اجرایی مشتری PlayReady Device Porting Kit، سرور مجوز PlayReady License Server و ابزار بستهبندی محتوا. محیط اجرایی PlayReady در برنامه یا پخشکننده تعبیه میشود و مسئول رمزگشایی محتوا در دستگاه است.
سرور مجوز کلیدهای مجوز را بر اساس سیاستهای تعیین شده توسط ارائهدهنده محتوا تولید میکند. بستهبند محتوا فایلهای رسانهای را با استفاده از استاندارد Common Encryption (CENC) رمزگذاری میکند و فرادادههایی برای ارتباط با مجوز خاص تعبیه مینماید.
فرآیند حفاظت PlayReady از مرحله بستهبندی آغاز میشود، هنگامی که محتوای رسانهای با یک کلید متقارن رمزگذاری میشود که سپس با کلید عمومی سرور مجوز محافظت میگردد. محتوای بستهبندی شده در CDN قرار میگیرد و برای دانلود یا پخش جریانی در دسترس است.
وقتی کاربر محتوای محافظتشده را درخواست میکند، پخشکننده یک درخواست مجوز به سرور مجوز ارسال میکند. سرور اعتبار کاربر، حقوق دسترسی او (اشتراک، اجاره، خرید) را بررسی کرده و مجوزی حاوی کلید رمزگشایی صادر میکند.
PlayReady از پروتکل تبادل مبتنی بر SOAP یا JSON استفاده میکند، که در آن درخواست مجوز شامل شناسه محتوا (Content ID)، شناسه دستگاه و امضای برنامه است. سرور مجوز را در قالب XML، رمزگذاریشده با کلید عمومی دستگاه بازمیگرداند.
مجوز حاوی کلید محتوا (CEK) پیچیدهشده در کلید دستگاه (Device Key) و مجموعهای از سیاستها است. سیاستها میتوانند زمان پخش، کیفیت ویدئو، تعداد دستگاهها و نوع خروجی (HDMI، کامپوزیت) را محدود کنند.
var mediaProtectionManager = new MediaProtectionManager();
var properties = new PropertySet();
properties["Windows.Media.Protection.MediaProtectionSystemId"] =
"9a22f0a1-9e6c-4f2d-bc8e-4d8d5a2c3f1e";
mediaProtectionManager.SetProtectionScheme(
MediaProtectionSystemType.PlayReady,
properties
);
var mediaSource = MediaSource.CreateFromUri(
new Uri(contentUrl)
);
mediaPlayer.Play(mediaSource);
PlayReady 3.0، منتشر شده در سال 2014، پشتیبانی از رمزگذاری سختافزاری از طریق TPM 2.0 و سطح امنیتی SL3000 برای محتوای 4K را معرفی کرد. این نسخه امکان پیوند مجوز به دستگاه خاص را از طریق مکانیزم Device Binding اضافه کرد که از انتقال مجوزها بین دستگاهها جلوگیری مینمود.
PlayReady 4.0، اعلام شده در سال 2020، عملکرد را با سه نوآوری کلیدی گسترش داد: پشتیبانی از تلهمتری پیشرفته استفاده از محتوا، تحلیلهای بهبودیافته برای ارائهدهندگان محتوا و بهینهسازی مصرف انرژی در دستگاههای موبایل.
| نسخه | سال | قابلیتهای کلیدی | بیشترین SL |
|---|---|---|---|
| PlayReady 2.0 | 2011 | رمزگذاری نرمافزاری، تا 1080p | SL2000 |
| PlayReady 3.0 | 2014 | رمزگذاری سختافزاری، 4K، Device Binding | SL3000 |
| PlayReady 4.0 | 2020 | تلهمتری، بهرهوری انرژی، HDR | SL3000 |
سطحهای امنیتی PlayReady نحوه انجام عملیات رمزنگاری و حداکثر وضوح محتوا را تعیین میکنند. SL150 یک پیادهسازی کاملاً نرمافزاری است، SL2000 نیاز به پشتیبانی سختافزاری جزئی دارد، SL3000 رمزگذاری سختافزاری کامل با TPM است.
دستگاههای با SL3000 میتوانند محتوا را در 4K HDR پخش کنند، و کلیدهای رمزگشایی هرگز منطقه حفاظتشده TPM را ترک نمیکنند. SL2000 به 1080p محدود است، SL150 به 720p محدود است و فقط برای مرورگرهای رومیزی بدون حفاظت سختافزاری مناسب است.
سیستم مجوزدهی PlayReady یکی از انعطافپذیرترین سیستمها در میان راهحلهای DRM است. این سیستم از مدلهای مختلف توزیع پشتیبانی میکند: اجاره با انقضای زمانی، فروش با دسترسی نامحدود، اشتراک با بهروزرسانی منظم کلیدها و پیشنمایش با مدت محدود.
هر مجوز حاوی مجموعهای از سیاستها است که سرور مجوز به کلید محتوا اعمال میکند. سیاستها میتوانند شامل: حداکثر وضوح ویدئو، نوع خروجی محافظتشده (HDCP برای 4K اجباری است)، تعداد فعالسازیها، محدودیتهای زمانی (مطلق و نسبی) باشند.
public async Task AcquireLicenseAsync(MediaProtectionManager manager)
{
var serviceRequest = new PlayReadyLicenseAcquisitionServiceRequest
{
ContentHeader = new PlayReadyContentHeader(
contentKeyId,
contentUrl,
licenseServerUrl,
null
),
DomainServiceId = domainId
};
var result = await serviceRequest.BeginServiceRequest();
if (result == PlayReadyLicenseAcquisitionResult.Success)
{
HandleLicenseAcquired(serviceRequest.GetLicenses());
}
}
PlayReady پشتیبانی میشود در طیف گستردهای از پلتفرمها، از جمله Windows (UWP، Win32)، Xbox، Android (از طریق PlayReady Porting Kit)، iOS (محدود) و Smart TV (Samsung Tizen، LG webOS). برای هر پلتفرم پیادهسازی خاص خود از محیط اجرایی و API وجود دارد.
در Windows یکپارچهسازی از طریق MediaProtectionManager و PlayReady API در فضای نام Windows.Media.Protection.PlayReady انجام میشود. در Android از PlayReady Porting Kit استفاده میشود که از طریق NDK در برنامه تعبیه میشود و لفافههای Java برای کار با DRM ارائه میدهد.
در محیط UWP، برنامه یک نمونه MediaProtectionManager ایجاد میکند، PlayReady را به عنوان سیستم حفاظت ثبت میکند و کنترلکنندههای رویداد مجوزدهی را پیکربندی مینماید. پخشکننده MediaPlayerElement به طور خودکار جریانهای محافظتشده را پردازش میکند اگر MediaProtectionManager به درستی پیکربندی شده باشد.
سرور مجوز PlayReady میتواند هم در زیرساخت Azure و هم در سرورهای اختصاصی مستقر شود. مایکروسافت راهحلهای آماده PlayReady License Server را در ترکیب Azure Media Services ارائه میدهد که یکپارچهسازی را برای پروژههای ابری سادهتر میکند.
در Android، PlayReady از طریق کتابخانه NDK libplayready.so یکپارچه میشود که API در C++ ارائه میدهد، در کلاسهای Java پیچیده شده است. ExoPlayer از PlayReady مانند Widevine، از طریق MediaDrm API استاندارد با UUID PlayReady پشتیبانی میکند.
UUID PlayReady برای MediaDrm — 9a22f0a1-9e6c-4f2d-bc8e-4d8d5a2c3f1e. در راهاندازی ExoPlayer با PlayReady، پیکربندی مشابه Widevine است: URL سرور مجوز، هدرهای احراز هویت و نوع DRM مشخص میشود.
برای کار صحیح PlayReady در Android، وجود محیط اجرایی PlayReady نصبشده ضروری است که معمولاً در دستگاههای Samsung، LG و سایر برندهای استفادهکننده از PlayReady Porting Kit از پیش نصب شده است. در دستگاههای بدون محیط اجرایی از پیش نصبشده، برنامه باید کتابخانه libplayready.so را در APK شامل کند.
PlayReady DRM غالب در پلتفرمهای Smart TV از جمله Samsung Tizen و LG webOS است. در این پلتفرمها محیط اجرایی داخلی PlayReady حفاظت سختافزاری را در سطح چیپست تلویزیون فراهم میکند که امکان پخش محتوا در 4K HDR بدون تنظیمات اضافی را میدهد.
یکپارچهسازی در Smart TV از طریق PlayReady Device Porting Kit برای SoC خاص (MediaTek، Realtek، Amlogic) انجام میشود. تولیدکنندگان تلویزیون محیط اجرایی PlayReady را در مرحله سیستمعامل از پیش نصب میکنند و برنامهها آن را از طریق EME API استاندارد در پخشکننده وب یا برنامه بومی راهاندازی میکنند.
برای ارائهدهندگان محتوا مهم است که در نظر بگیرند همه Smart TVها از بالاترین سطح SL3000 پشتیبانی نمیکنند — مدلهای قدیمیتر ممکن است به SL2000 و کیفیت 1080p محدود شوند. سازگاری با HDCP نیز برای خروجی محتوا در 4K از طریق HDMI الزامی است.
PlayReady 4.0 تلهمتری پیشرفتهای را معرفی کرد که به ارائهدهندگان محتوا امکان میدهد اطلاعات دقیقی درباره استفاده از محتوا به دست آورند: زمان تماشا، تلاشهای دسترسی غیرمجاز، نوع دستگاه، نسخه محیط اجرایی. دادههای تلهمتری از طریق کانال محافظتشده جمعآوری میشوند و با امضای دیجیتال برای جلوگیری از جعل امضا میشوند.
مکانیسم ابطال (revocation) در PlayReady 4.0 به ارائهدهندگان محتوا امکان میدهد دستگاهها یا نسخههای محیط اجرایی به خطر افتاده را در زمان واقعی مسدود کنند. فهرست ابطال از طریق سرور مجوز توزیع میشود و با هر درخواست مجوز به طور خودکار بهروز میشود که واکنش سریع به آسیبپذیریها را تضمین میکند.
سوالات متداول
PlayReady — راهحل DRM مایکروسافت برای حفاظت از محتوای دیجیتال. این فناوری از رمزگذاری سختافزاری و نرمافزاری، سیاستهای مجوزدهی انعطافپذیر پشتیبانی میکند و در Windows، Xbox، Android و Smart TV کار میکند.
نسخههای اصلی PlayReady: 3.0 (2014) با رمزگذاری سختافزاری و پشتیبانی از 4K، 4.0 (2020) با تلهمتری و بهرهوری انرژی. نسخههای جدیدتر با محتوای بستهبندیشده برای نسخههای قبلی سازگار هستند.
SL150 — رمزگذاری نرمافزاری (720p)، SL2000 — نیمه سختافزاری (1080p)، SL3000 — رمزگذاری سختافزاری کامل از طریق TPM (4K HDR). سطح امنیتی حداکثر کیفیت و روش ذخیرهسازی کلیدها را تعیین میکند.
بله، PlayReady در iOS پشتیبانی میشود، اما محدود — از طریق PlayReady Porting Kit برای iOS. با این حال، در دستگاههای Apple، DRM ترجیحی FairPlay باقی میماند زیرا به طور کامل در معماری سختافزاری Secure Enclave یکپارچه شده است.
PlayReady از مایکروسافت از Windows و Xbox پشتیبانی میکند، از TPM برای رمزگذاری سختافزاری استفاده میکند و تلهمتری پیشرفته ارائه میدهد. Widevine از Google برای Android و Chrome طراحی شده است، از TEE استفاده میکند و برای توسعهدهندگان نیاز به مجوز پولی ندارد.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید