數(shù)字媒體播放器 OEM 廠商在考慮是否支持 DRM 這一爭議性問題之前,要首先了解高效實(shí)施 DRM 技術(shù)所面臨的障礙。高效 DRM 實(shí)施技術(shù)不僅限于優(yōu)化的加密庫,要是采用錯誤的實(shí)施方法,就會導(dǎo)致商業(yè)決策失誤,甚至實(shí)施失敗。本文將深入探討如何減小 DRM 對數(shù)字媒體播放器的影響,以幫助那些希望采用 DRM 技術(shù)的 OEM 廠商避免對技術(shù)產(chǎn)生恐慌和不確定性情緒,減少對 DRM 實(shí)施可行性的不確定因素,從而使他們能專心致力于 DRM 的高效實(shí)施問題。本文探討的方案能解決 DRM 實(shí)施所面臨的最常見障礙,適用于任何標(biāo)準(zhǔn)或架構(gòu)。
通常說來,解決 DRM 時延與性能問題的關(guān)鍵在于盡可能減少 DRM 處理任務(wù)對關(guān)鍵路徑的影響。DRM 處理任務(wù)的計劃安排通常是實(shí)現(xiàn)上述目的的關(guān)鍵,我們可以采用預(yù)取 (prefetching) 或預(yù)處理數(shù)據(jù)、后臺處理等方案,也可以在用戶做思考決定、時延影響不大時進(jìn)行處理。工程師應(yīng)側(cè)重于解決以下三個問題,一是啟動期間,二是播放,三是內(nèi)容傳輸,這三個階段均會對性能、易用性以及電池使用壽命造成影響。
啟動時間
DRM 會影響啟動時間,這一點(diǎn)相當(dāng)重要,起初我們可能還難以直觀地察覺到。說到底,DRM 是一種驗(yàn)證使用權(quán)限的技術(shù)方法,因此就算人們會問,它怎么會影響設(shè)備啟動時間呢,也不足為奇。要了解這一點(diǎn),我們就要考慮在任何 DRM 規(guī)范中都非常重要的一部分要求,那就是穩(wěn)健性與符合性認(rèn)證規(guī)則 (R&CR)。
R&CR 是定義著 OEM 廠商如何避免 DRM 軟、硬件被欺騙或修改的指南。請注意,盡管這些指南根據(jù)具體 DRM 標(biāo)準(zhǔn)的不同可能采用不同的名稱,但它們的基本目的都是一樣的,即穩(wěn)健的設(shè)備必須能夠識別企圖改變應(yīng)用代碼的行為,避免 DRM 機(jī)制被破解或失效。在對受保護(hù)的內(nèi)容進(jìn)行解鎖或允許存取之前,設(shè)備必須先確認(rèn) DRM 機(jī)制已經(jīng)就緒,沒有被篡改,而且能正常工作。此外,設(shè)備必須避免調(diào)試工具的使用,因?yàn)檫@些工具會讓黑客有機(jī)會破解或更改許可證。
R&CR 要求根據(jù)特定的系統(tǒng)資產(chǎn)或組件的不同要求采用不同層次的保護(hù)機(jī)制。舉例來說,在基于證書的 DRM 方案中,確認(rèn)播放器能夠播放內(nèi)容服務(wù)器內(nèi)容的證書就是一種高級資產(chǎn),要求最高級別的保護(hù),因?yàn)樽C書受損就會導(dǎo)致設(shè)備上的所有內(nèi)容失去保護(hù)。如果特定設(shè)備的證書由具體 OEM 廠商的證書生成,那么這種證書受損就會導(dǎo)致該 OEM 廠商基于該證書推出的所有設(shè)備保護(hù)失效。與此相對的是,破譯某首歌曲的密鑰就不是一種特別重要的資產(chǎn),因?yàn)檫@種密鑰僅保護(hù)一項內(nèi)容。上述資產(chǎn),不管是證書、密鑰還是基于其它一些保護(hù)機(jī)制或秘密機(jī)制,都應(yīng)得到正確的保護(hù)??傮w說來,內(nèi)容受損的風(fēng)險越大,對穩(wěn)健性等級的要求就越高,并且對用戶使用體驗(yàn)的潛在影響也就越大。
損壞的代碼不見得一定是因?yàn)閻阂夤舳鴵p壞的,但這是對 DRM 構(gòu)成最危險的威脅之一;如果應(yīng)用本身就能被修改,那么密鑰與內(nèi)容都可能受損。因此,在執(zhí)行任何應(yīng)用代碼之前,設(shè)備必須確認(rèn)應(yīng)用來源的可信賴性。此外,這種驗(yàn)證必須在每次設(shè)備加電時進(jìn)行,這樣才能確保硬件沒有被篡改。這里要面臨的挑戰(zhàn)是,確認(rèn)應(yīng)用的代碼本身也容易受到破壞,因此它也要在執(zhí)行前進(jìn)行確認(rèn)(見圖 1)。
圖 1. 在加電執(zhí)行任何應(yīng)用代碼之前,設(shè)備必須驗(yàn)證并確認(rèn)應(yīng)用來自可信賴的來源。所面臨的挑戰(zhàn)是,如果驗(yàn)證并確認(rèn)應(yīng)用的代碼本身也容易受到破壞,那么其也要在被執(zhí)行前進(jìn)行驗(yàn)證并確認(rèn)。但是,如果不能修改 ROM 啟動加載程序 (ROM Boot Loader),那么它就不會受到破壞,因此加電時毋需確認(rèn)就可以得到信任。
表 1. 安全啟動加載程序技術(shù)確認(rèn)設(shè)備首次加電啟動時軟、硬件都處于已知的可信賴狀態(tài)。為了盡可能降低時延,代碼分幾個階段進(jìn)行驗(yàn)證并載入。如果檢測到某個階段遭到破壞,設(shè)備會啟動災(zāi)難恢復(fù)模式并進(jìn)行設(shè)備再配置,如果沒有問題,設(shè)備就會載入首個代碼影像,即 ROM 啟動加載程序,這是由硅芯片廠商提供的,不能修改,因此能確保驗(yàn)證有效。將使用散列方法進(jìn)行后續(xù)代碼驗(yàn)證,有時還會采用唯一芯片 ID 進(jìn)行驗(yàn)證,之后進(jìn)行解密。我們將啟動進(jìn)程分解為幾個階段,這使設(shè)備能加速與用戶進(jìn)行互動,縮短了用戶所覺察到的啟動時延時間。