解決DRM 部署所面臨的障礙
標(biāo)簽:OEM DRM
本文引用地址:http://cafeforensic.com/article/165126.htm數(shù)字媒體播放器 OEM 廠商在考慮是否支持 DRM 這一爭議性問題之前,要首先了解高效實(shí)施 DRM 技術(shù)所面臨的障礙。高效 DRM 實(shí)施技術(shù)不僅限于優(yōu)化的加密庫,要是采用錯(cuò)誤的實(shí)施方法,就會(huì)導(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 時(shí)延與性能問題的關(guān)鍵在于盡可能減少 DRM 處理任務(wù)對關(guān)鍵路徑的影響。DRM 處理任務(wù)的計(jì)劃安排通常是實(shí)現(xiàn)上述目的的關(guān)鍵,我們可以采用預(yù)取 (prefetching) 或預(yù)處理數(shù)據(jù)、后臺(tái)處理等方案,也可以在用戶做思考決定、時(shí)延影響不大時(shí)進(jìn)行處理。工程師應(yīng)側(cè)重于解決以下三個(gè)問題,一是啟動(dòng)期間,二是播放,三是內(nèi)容傳輸,這三個(gè)階段均會(huì)對性能、易用性以及電池使用壽命造成影響。
啟動(dòng)時(shí)間
DRM 會(huì)影響啟動(dòng)時(shí)間,這一點(diǎn)相當(dāng)重要,起初我們可能還難以直觀地察覺到。說到底,DRM 是一種驗(yàn)證使用權(quán)限的技術(shù)方法,因此就算人們會(huì)問,它怎么會(huì)影響設(shè)備啟動(dòng)時(shí)間呢,也不足為奇。要了解這一點(diǎn),我們就要考慮在任何 DRM 規(guī)范中都非常重要的一部分要求,那就是穩(wěn)健性與符合性認(rèn)證規(guī)則 (RCR)。
RCR 是定義著 OEM 廠商如何避免 DRM 軟、硬件被欺騙或修改的指南。請注意,盡管這些指南根據(jù)具體 DRM 標(biāo)準(zhǔn)的不同可能采用不同的名稱,但它們的基本目的都是一樣的,即穩(wěn)健的設(shè)備必須能夠識(shí)別企圖改變應(yīng)用代碼的行為,避免 DRM 機(jī)制被破解或失效。在對受保護(hù)的內(nèi)容進(jìn)行解鎖或允許存取之前,設(shè)備必須先確認(rèn) DRM 機(jī)制已經(jīng)就緒,沒有被篡改,而且能正常工作。此外,設(shè)備必須避免調(diào)試工具的使用,因?yàn)檫@些工具會(huì)讓黑客有機(jī)會(huì)破解或更改許可證。
RCR 要求根據(jù)特定的系統(tǒng)資產(chǎn)或組件的不同要求采用不同層次的保護(hù)機(jī)制。舉例來說,在基于證書的 DRM 方案中,確認(rèn)播放器能夠播放內(nèi)容服務(wù)器內(nèi)容的證書就是一種高級(jí)資產(chǎn),要求最高級(jí)別的保護(hù),因?yàn)樽C書受損就會(huì)導(dǎo)致設(shè)備上的所有內(nèi)容失去保護(hù)。如果特定設(shè)備的證書由具體 OEM 廠商的證書生成,那么這種證書受損就會(huì)導(dǎo)致該 OEM 廠商基于該證書推出的所有設(shè)備保護(hù)失效。與此相對的是,破譯某首歌曲的密鑰就不是一種特別重要的資產(chǎn),因?yàn)檫@種密鑰僅保護(hù)一項(xiàng)內(nèi)容。上述資產(chǎn),不管是證書、密鑰還是基于其它一些保護(hù)機(jī)制或秘密機(jī)制,都應(yīng)得到正確的保護(hù)??傮w說來,內(nèi)容受損的風(fēng)險(xiǎn)越大,對穩(wěn)健性等級(jí)的要求就越高,并且對用戶使用體驗(yàn)的潛在影響也就越大。
損壞的代碼不見得一定是因?yàn)閻阂夤舳鴵p壞的,但這是對 DRM 構(gòu)成最危險(xiǎn)的威脅之一;如果應(yīng)用本身就能被修改,那么密鑰與內(nèi)容都可能受損。因此,在執(zhí)行任何應(yīng)用代碼之前,設(shè)備必須確認(rèn)應(yīng)用來源的可信賴性。此外,這種驗(yàn)證必須在每次設(shè)備加電時(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 啟動(dòng)加載程序 (ROM Boot Loader),那么它就不會(huì)受到破壞,因此加電時(shí)毋需確認(rèn)就可以得到信任。
表 1. 安全啟動(dòng)加載程序技術(shù)確認(rèn)設(shè)備首次加電啟動(dòng)時(shí)軟、硬件都處于已知的可信賴狀態(tài)。為了盡可能降低時(shí)延,代碼分幾個(gè)階段進(jìn)行驗(yàn)證并載入。如果檢測到某個(gè)階段遭到破壞,設(shè)備會(huì)啟動(dòng)災(zāi)難恢復(fù)模式并進(jìn)行設(shè)備再配置,如果沒有問題,設(shè)備就會(huì)載入首個(gè)代碼影像,即 ROM 啟動(dòng)加載程序,這是由硅芯片廠商提供的,不能修改,因此能確保驗(yàn)證有效。將使用散列方法進(jìn)行后續(xù)代碼驗(yàn)證,有時(shí)還會(huì)采用唯一芯片 ID 進(jìn)行驗(yàn)證,之后進(jìn)行解密。我們將啟動(dòng)進(jìn)程分解為幾個(gè)階段,這使設(shè)備能加速與用戶進(jìn)行互動(dòng),縮短了用戶所覺察到的啟動(dòng)時(shí)延時(shí)間。
安全啟動(dòng)加載程序技術(shù)是避免執(zhí)行兩難困境的關(guān)鍵,也是成功確認(rèn)軟、硬件均處于已知可信賴狀態(tài)的關(guān)鍵(見表 1)。當(dāng)設(shè)備首次加電后,處理器會(huì)執(zhí)行已知的 ROM 啟動(dòng)加載程序。這個(gè)代碼影像是設(shè)備專用的,并只支持最基本的功能,其中包括有限的加密功能,以驗(yàn)證并確認(rèn)后續(xù)啟動(dòng)加載程序代碼,并在檢測到破壞情況下啟動(dòng)災(zāi)難恢復(fù)模式。該代碼不能修改,這一點(diǎn)至關(guān)重要;換言之,由于其不能被更改,因此不會(huì)遭到損壞,也毋需進(jìn)行確認(rèn)。請注意,諸如顯示功能等確認(rèn)故障通知信息等功能可能實(shí)現(xiàn)片外存儲(chǔ),或在通過 ROM 啟動(dòng)加載程序確認(rèn)的代碼中有選擇性的執(zhí)行,不過在確認(rèn)已發(fā)生故障的情況下,ROM 啟動(dòng)加載程序不能確保相關(guān)代碼的可用性。
在許多情況下,ROM 啟動(dòng)加載程序由硅芯片廠商提供,除非雙方有特定的協(xié)議規(guī)定,否則 OEM 廠商不能修改。其首要任務(wù)就是確認(rèn)用戶啟動(dòng)加載程序。用戶啟動(dòng)加載程序是通過硅芯片廠商開發(fā)工具的可配置框架構(gòu)建而成,由 OEM 廠商確定。它能提供底層驅(qū)動(dòng)程序和連接接口,如顯示屏、USB 接口或硬盤等,此外還能補(bǔ)充設(shè)備的加密功能。在產(chǎn)品設(shè)計(jì)階段,能夠根據(jù)需要對其進(jìn)行更新修改,但通常產(chǎn)品上市后就不能再修改了。
ROM 啟動(dòng)加載程序確認(rèn)用戶啟動(dòng)加載程序的常見方法是采用散列來確認(rèn)代碼是否被改動(dòng),隨后再對代碼解密(代碼加密是為了避免有可能導(dǎo)致代碼安全性受影響或者泄露加密信息的逆向工程破解)。一旦 ROM 啟動(dòng)加載程序驗(yàn)證了用戶啟動(dòng)加載程序,用戶啟動(dòng)加載程序就可依次驗(yàn)證并確認(rèn)主應(yīng)用(即應(yīng)用啟動(dòng)加載程序),然后用戶就能開始存取受保護(hù)的內(nèi)容。如果處理器采用唯一的硅芯片 ID,只可以讀取但不能修改,那么代碼確認(rèn)的安全性還能進(jìn)一步提高。此外,OEM 廠商除了能用這種唯一的 ID 作為密鑰根 (root for secret key) 而外,也能用它來對內(nèi)容加密,使內(nèi)容鎖定于特定的播放器。
評論