郝勇鋼, 李汪蔚, 韋安明, 肖 輝, 黃 征, 郭 捷(上海交通大學信息安全工程學院,上海0040;國家新聞出版廣電總局廣播電視規劃院,北京00045)
基于TrustZone技術的DCAS終端設計*
郝勇鋼1, 李汪蔚2, 韋安明2, 肖 輝2, 黃 征1, 郭 捷1
(1上海交通大學信息安全工程學院,上海200240;2國家新聞出版廣電總局廣播電視規劃院,北京100045)
傳統的條件接收系統(CA)的終端認證依賴硬件,當CA終端需要更換系統或者增加新的服務的時候,就必須更換硬件,這需要巨大的資源消耗。可下載的條件接收系統(DCAS)是一種在開放環境的認證授權體系,CA算法和密鑰可以動態下載,使得軟硬件分離,DCAS終端可以適配不同的DCAS系統,降低了CA的私有性也解除了相應的潛在風險。DCAS終端為DCAS系統的客戶端,它可以在不改變硬件的條件下通過下載CA應用來更新自身的CA系統。ARM TrustZone技術是ARM架構的安全擴展,本文提出了基于TrustZone技術的DCAS終端設計,介紹了系統的硬件軟件結構,分析了其安全認證機制和安全啟動流程,綜合給出了一個DCAS終端設計方案。
DCAS終端;可下載條件接收系統;TrustZone
[Abstract]Terminal authentication of traditional CA(Access System)relies on hardware,and when CA terminal tries to replace a system or add new services,the hardware must be replaced,this would result in requires huge consumption of resources.DCAS (Downloadable Conditional Access System)is a kind of authorization system in open environment,in which CA algorithm and the key could be dynamically download,and the software be from the separated hardware,so that DCAS terminal could be adaptable to different DCAS system,thus reducing the private property of CA and relieving the potential risks.DCAS terminal,as the client of DCAS system,it could download the CA application and update the CA system itself without any change of the hardware.ARM TrustZone technology is the security extension of ARM architecture.This paper describes,the design of DCAS terminal based on TrustZone technology,including,the design of hardware and software structure,discusses,its secure authentication mechanisms and secure boot process,and gives a comprehensive design scheme of DCAS terminal is also given.
[Key words]DCAS terminal;downloadable conditional access system;Trust Zone
傳統的CA系統的終端認證依賴硬件(智能卡),當CA終端需要更換系統或者增加新的服務的時候,就必須更換硬件。
DCAS是一種在雙向環境下的認證授權體系,CA算法和密鑰可以動態下載。該技術不需要智能卡,不但能實現機頂盒的市場化銷售,而且還可以方便電視機廠家規模化生產可直接接收廣電加密數字電視信號的一體機。DCAS可以應用在PC機及高性能智能終端上的新一代電視加密,也可以在互聯網環境下安全運行,保障廣播電視信息安全,有益于促進三網合一[1-3]。
DCAS終端為DCAS系統的客戶端,它可以在不改變硬件的條件下通過下載CA應用來更新自身的CA系統而不需要更換硬件。
DCAS的系統架構如圖1所示。DCAS系統由系統前端(Headend)和用戶終端(User Terminal)組成。系統前端包含以下幾種服務器:認證代理(Authentication Proxy,AP),集成定制服務器(Integrated Personalized Server,IPS),下載策略服務器(Download Policy Server,DPS)和本地密鑰服務器(Local Key Server,LKS)。DCAS前端支持DCAS協議,并借此與用戶終端通信來認證終端內部的安全微模塊(Secure Microchip,SM),或者把CA客戶端軟件下載到安全微模塊中。
AP依靠DCAS網絡協議與SM進行雙向認證。AP也控制和監控前端和終端的整個交互過程,包括終端下載CA客戶端。IPS儲存著與用戶終端和CA客戶端軟件相關的信息,并且作為一個CA客戶端的下載服務器。DPS通過調整AP的認證信息來使DCAS網絡效率更高。LKS擁有DCAS前端其他服務器所有的密鑰信息和用戶終端的認證歷史。當服務器恢復失敗,LKS分發恢復密鑰給其他服務器。DCAS的前端服務器也會與可信認證服務器(Trusted Authority,TA)進行通信。TA向前端和終端分發會話密鑰。
這里說的終端不僅僅是通過下載CA客戶端軟件實現CA的認證,也包括接收信號和解碼信號的作用。當一個DCAS用戶終端連接進入網絡的時候,終端會周期性的接收到DCAS前端中的AP發出的消息。之后,用戶終端開始利用消息中的信息與AP通信。兩者通過TA來共享會話密鑰。前端終端相互認證之后可以,終端可以安全地下載CA客戶端軟件。

圖1 DCAS的系統架構[4]
1.1 TrustZone簡介
ARM TrustZone技術是ARM架構的安全擴展,在ARMv6以及以后版本的架構中引入了安全區域(Secure)和非安全區域(普通區域)(Non Secure)的概念,并加入了安全監視器(Secure Monitor)在安全區域和非安全區域之間切換,其架構圖如圖2所示。

圖2 TurstZone架構[5]
1.2 硬件和軟件結構
DCAS終端設備的硬件設計要點如下:
1)為了滿足低成本的設計原則和使用TrustZone安全技術,DCAS終端采用ARM結構的處理器。DCAS終端設備中采用一個ARM Cortext-A9處理器。
2)總線結構采用支持 TrustZone技術的 AMBA3 AXI High Performance Bus Matrix。
系統使用on-SoC Secure Boot ROM來存儲系統加電后的安全啟動代碼的代碼,保證代碼存儲的安全性。
4)使用 OTP Fuse來存儲運營商和設備制造商公鑰的SHA256值。系統使用運營商和制造商公鑰的時候要計算SHA256,計算結果和OTP存儲的值進行比較驗證,以保證運營商和制造商公鑰的完整性。
5)DCAS終端和運營商核心網之間需要建立IPsec的連接,為了提高系統的響應速度,系統采用了專門的on-SoC IPSEC加速硬件,其中包含多種密碼學算法的硬件加速器。STB的私鑰由IPSEC硬件產生,并且存儲在IPSEC加速硬件中。
6)在系統的開發和調試階段,系統保留了JTAG接口。STB進入市場以后,JTAG接口不再保留。
7)中斷控制器使用支持TrustZone的PrimeCell Generic Interrupt Controller。
8)安全相關的計算需要在SoC中進行。
9)STB提供有線以太網接口。
10)Access Chip1為Wi-Fi接口。Wi-Fi芯片通過SDIO與SoC連接。
11)Access Chip2為廣播網絡接口。
基于TrustZone的DCAS終端整體的硬件架構如圖3所示。

圖3 DCAS終端硬件架構
DCAS終端的Normal World運行一個操作系統,Secure World也運行一個操作系統,兩個操作系統之間通過Monitor進行切換。Normal World中運行的應用程序如果需要用到安全相關的操作,通過Security Client調用TrustZone Driver將調用的接口和參數傳到Secure World,并且通過Monitor切換到Secure World。Secure World系統中的Security Service響應用戶的調用請求,并返回結果。安全相關的計算始終在Secure World中完成,需要保密的數據(會話密鑰和設備的私鑰)和需要認證的數據(運營商的公鑰和設備制造商的公鑰)始終在Secure World中,也始終在SoC中,從而保證保密數據的隱私,保證須認證數據的不可篡改性。DCAS終端的軟件架構如圖4所示。
據了解,借助領先的技術和產品,目前,蓋瑞特正在與幾乎所有的主流汽車和發動機企業合作,包括大眾、標致、日產、福特等國際廠商,也包括上汽通用五菱、吉利、長安、上汽、濰柴、玉柴和錫柴等中國品牌的廠商,為他們配套前裝零部件和軟件解決方案。在賽車和改裝車社群中,長久以來,蓋瑞特已經書寫渦輪增壓的傳奇。此外,蓋瑞特還為全球獨立售后市場提供零部件,滿足各類終端客戶的需求。
最簡單的切換形式是:當普通世界的用戶模式需要獲取安全世界的服務時,首先需要進入到普通世界的特權模式,在該模式下調用SMC,處理器將進入到monitor模式,monitor模式備份普通世界的上下文,然后進入到安全世界的特權模式,此時的運行環境是安全世界的執行環境,此后進入到安全世界的用戶模式,執行相應的安全服務。這里把安全世界的用戶模式和特權模式分離,是因為通常特權模式中的執行環境是系統級別的,而用戶模式的安全服務是應用級別的,兩者的提供者通常是不同的。也就是說,安全世界的執行環境要管理用戶模式的服務和應用,并給它們提供編程接口[6]。

圖4 DCAS終端軟件架構[5]
2.1 使用DCAS協議
基于TrustZone的STB可以通過DCAS協議與前端進行認證,并獲取解擾所需信息[7-9]。DCAS客戶端和解擾算法都可以在Secure World中用軟件方式實現。具體描述如下:在開放的媒體安全環境下,利用“層級密鑰”分發解擾密鑰,利用“質詢-響應”機制可以判斷消息到達情況。
“層級密鑰”機制主要應用在開放的媒體安全環境中保護和傳遞解擾密鑰。“層級密鑰”機制的基礎是三層密鑰結構和質詢-響應機制,其中根密鑰輸入時,根密鑰進入日標設備的OTP中(芯片組中的一次性內存,不可復制)。三層密鑰結構是用來傳遞和產生解擾密鑰的,而響應-質詢機制是用來保證日標設備的認證和判斷消息是否到達日標設備。
“層級密鑰”機制旨在保證源設備和日標設備完整性、安全性的前提下,可以動態的替換兩者中的部分信息。這樣的機制保證了日標設備的可移植性:它可以允許日標設備在并沒有源設備安全信息的情況下進行升級系統;同樣的它也增強了源設備在無須更改日標設備信息的情況下進行升級的能力。
根密鑰派生函數針對不同的Vendor_ID值產生不同的密鑰組,使得不同的CA系統可以同時安全并行的使用此系統;同樣的不同的Module_ID也可以產生不同的密鑰。
涉及認證的核心過程名詞和符號解釋:
1)Chip ID(Chip-ID):設備芯片組的8字節的全球唯一識別碼,由此可以得到生產商和型號。
2)SCK(secret chipset key):芯片組的私密密鑰,唯一,至少16字節。SCK存儲于SM芯片中,由提供安全芯片的CA廠商生成,終端設備出廠時預置SCK于SM芯片中。SCK也可以由可信第三方的密鑰管理機構(如數字證書管理機構CA)產生,可信第三方密鑰管理機構調用CA廠商提供的接口將SCK預置到SM芯片。
4)ESCK(ESCK):“混淆私密密鑰”在OTP中物理存儲,與SCK同等長度,在生產過后不可編輯和讀取。
5)Secret Mask Key:由廠商創造并物理存儲在芯片中的一個嵌入的秘密值,至少16字節。這個值對于不同組件版本來說可能是一樣的。
6)Key Ladder Root Key or Root Key(K3):16字節密鑰在層級密鑰底層用來加密K2。如果在芯片組中有n層的層級密鑰加密,根密鑰就是Kn。
7)Control Word(CW):用來加擾視頻的密鑰,字節長度由加擾算法決定(8或16字節)。
8)Open Media Security(OMS):使用層級密鑰的系統。
9)OMS Key 1(K1):用來解密CW的16字節密鑰。
10)OMS Key 2(K2):用來解密K1的16字節密鑰。
11)Authentication key(A):由K2派生出來,在質詢響應機制中使用的16字節密鑰。A可以用來在質詢響應中認證日標設備,或者由日標設備通過派生密鑰認證源設備。
12)Vendor_ID:用來認證CA賣家、MSO和其他使用OMS的芯片組,大小由文檔決定。
13)Module_ID:用來產生與K3有關的額外加密的8比特值。
14)PID(Packet ID):在MPEG-2傳輸流中代表一個基礎組件。
15)Ek(Y):代表用K密鑰加密的Y。
16)Triple-DESor T-DES:3DES/AES算法——如果密鑰為A或者B,則函數式為DA(EB(DA(x))),如果3DES算法中的塊大小大于64bits,加密要用ECB模式。
層級密鑰認證流程圖如圖5所示。
認證原理和過程:
前提是軟件應用平臺保存著關于芯片組的一切信息(包括密鑰),它的安全性是層級密鑰協議的基礎。
當chip-id被軟件平臺讀取后,平臺可以生成該芯片可以生成的一切秘密信息:K3,K2,K1,A。由于Vendor_ID和Module_ ID,ScretKey的唯一性,這一組秘密信息也是唯一的。
然后平臺向用戶終端發送Vendor_ID,Module_ID,Ek3(K2),Ek2(K1),nonce;終端得到Vendor_ID與Module_ID后,通過根密鑰派生算法得到K3;利用得到的K3解密平臺發送的Ek3(K2),得到K2;再利用K2解密平臺發送的Ek2(K1),得到K1;同時利用K2可以生成A用來解密平臺發送的nonce。
當芯片生成A之后,終端向平臺響應Da(nonce),即用A將nonce進行解密來回復。由于軟件平臺擁有以上全部的安全信息,所以終端的身份得以認證,軟件平臺可以通過質詢響應來認證芯片組。同樣的,芯片也可以通過相應的協議認證軟件平臺。這樣即完成了雙向認證。
進行認證后,緊接著平臺發送利用密鑰K1加密的控制字(CW)和加擾的多媒體內容,終端得到Ek1(CW)后,進行解密得到CW從而可以解擾內容進行解讀。
根密鑰派生圖如圖6所示。
《SCTE-Open Media Security(OMS)Root Key Derivation Profiles and Test Vectors》[10]標準中詳細解釋了根密鑰派生圖中的各個函數:
Preliminary SCK Manipulation Function:輸入 Vendor_ID,以SCK為密鑰,輸出SCKv。算法根據不同的文檔有三種,雙密鑰TDES,AES加密,AES解密。
Vendor Separation Function:輸入Vendor_ID,以Secret Mask Key為密鑰,輸出Seedv。算法根據不同的文檔有三種,雙密鑰TDES,AES加密,AES解密。

圖5 層級密鑰認證流程圖[10]
Final Root Key Derivation Function:輸入Seedv,以SCKv為密鑰,輸出 Modkv。算法根據不同的文檔有三種,基于雙密鑰TDES,AES加密,AES解密。
Module Key Derivation Function:輸入Module_ID,以Modkv為密鑰,輸出K3。算法同樣有三種。

圖6 根密鑰派生圖[10]
2.2 基于公鑰密碼的兩次傳輸雙向認證
在開放的互聯網環境中,我們也可以利用基于公鑰密碼的兩次傳輸認證來進行終端和前端的雙向認證。并通過認證來后建立的安全信道來協商一個CW加擾或者解擾數據。
需要保護數據和密鑰如表1所示。

表1 需保護數據的安全需求Table 1 Security requirements of the protected data
假設Operator是運營商,Terminal是終端,[TOI SNo]為運營商簽名時的時間戳和隨機數,[TTI SNT]為終端簽名時的時間戳和隨機數,Certo和CertT為運營商和終端的證書。那么運營商和終端相互認證并且交換密鑰過程如下:
1)終端計算SignT([TTI SNT],Terminal ID),將所得結果和[TTISNT],Terminal ID一起發送給運營商;
2)運營商計算Signo([ToISNo],Operator ID),將所得結果和[ToISNo],Operator ID一起發送給A。
3)由于雙方都有對方的公鑰,所以可以認證對方的身份。
4)運營商和終端之間定期使用密鑰交換協議生成會話密鑰Ks。Ks的有效期可以為24小時。
5)運營商使用Ks加密CW的密鑰傳給終端,然后終端得到加密的CW后,用來Ks解密CW進行解擾。
傳輸認證過程如圖7所示。

圖7 傳輸認證過程
終端設備有一個安全的啟動機制(Secure Boot),確保設備使用片上BOOT ROM、片上的OTP Fuse和設備的安全功能來建立安全可信的運行環境。安全啟動的作用在于確保系統處于一個已知的狀態并且執行的是可信的代碼。
上電后,Soc首先在安全特權模式下從片內安全引導代碼區Boot ROM啟動(First Level Boot)。Boot ROM引導代碼在通過自我驗證以后完成系統安全狀態的設置,之后提取Secure World Bootloader中的制造商公鑰,并且驗證制造商公鑰的SHA256值和存儲在OTP Fuse中的值是否一致;如果一致,用制造商公鑰驗證Secure World Bootloader是否有合法的簽名,如果驗證成功,加載Secure World Bootloader。
Secure World Bootloader啟動運行(Second Level Boot),提取Secure World OS Image中的制造商公鑰,并且驗證制造商公鑰的SHA256值和存儲在OTP Fuse中的值是否一致;如果一致,用制造商公鑰驗證Secure World OS Image是否有合法簽名;如果驗證簽名合法,Bootloader計算Secure World OS Image的SHA256值,并檢驗是否與Bootloader中指定的值一致,如果驗證成功,加載Secure World OS Image。如果上述驗證不成功,則OS Image可能被篡改,不能加載篡改的OS Image。
Secure World OS啟動,Secure World OS為嵌入式Linux系統,Linux系統啟動完成對Secure World的初始化,加載基本通訊和密碼學運算模塊。如果系統啟動成功,自動加載硬件完整性檢查程序。Secure World OS會驗證并加載Normal World OS的Bootloader,然后Bootloader驗證并加載Normal World OS啟動。這樣完成整個系統的安全啟動。
Secure Boot過程是這樣一個不斷迭代的過程。制造商公鑰的SHA256值存儲在OTP Fuse中,用來檢驗需要加載的軟件系統image是否具有制造商的合法簽名。Secure Boot的整個過程如圖8示。

圖8 STB安全啟動過程[5]
1)安全性:整個STB系統的安全性基于Soc硬件,解擾密鑰CM不出芯片,可以解決“高級安全”問題。
2)開放性:由于使用開放架構芯片,STB的硬件和軟件結構的開放性好,硬件的選型、軟件開發都相對容易。
3)保護終端資產:通過TrustZone技術建立可信計算硬件平臺,防止惡意用戶對STB終端進行燒機操作,保護運營商的終端資產。
4)克隆機問題:SCK存放于SoC中,和SCK相關的運算也在Secure World中進行,在Secure World保證安全的情況下,只要Secure World不提供SCK讀接口,可以有效防止終端克隆。
5)兼容性:只要實現相應的單向CAS軟件,就可以實現兼容單向CAS系統。
6)保證服務質量:雙向網絡失效的情況下,如果兼容單向CAS,即帶內和帶外結合,可以保證廣播網絡的服務質量。
7)信源認證(阻止非法信息在廣電終端上的播放):由于TrustZone建立的可信計算的硬件和軟件環境,所以只有運營商簽名的播放器可以運行,可以有效防止非法信息的播放。
8)應用的擴展性:可以在STB上做大量的應用擴展,如用戶行為分析(如收視率分析)、支付相關的應用擴展(如電視購物等)。
由上述DCAS實現的設計可以得出結論:DCAS技術的實現在技術上是可行的。基于TrustZone技術的DCAS終端,可以解決“高級安全問題”,防止克隆機問題,有效保護終端資產,并可以提供開發平臺開展豐富的第三方應用,有非常大的應用價值。
[1] Kamperman F,Van Rijnsoever B.Conditional Access System Interoperability through Software Downloading[J].Consumer Electronics,IEEE Transactions on,2001,47(1):47-54.
[2] Cable Television Laboratories,Inc.DCAS System Overview Technical Report,OC-TR-DCAS-D02-060912.[R].U.S.:Cable Television Laboratories,September 2006.
[3] Moon J,Kim J,Park J,et al.A Dynamic Conditional Access System for IPTV Multimedia Systems[C]//Systems and Networks Communications,2009.ICSNC'09.Fourth International Conference on.IEEE,2009:224-229.
[4] W You,Lee J,Cho Y S,et al.Design and Implementation of DCAS User Terminal[C]//Broadband Multimedia Systems and Broadcasting(BMSB),2011 IEEE International Symposium on.IEEE,2011:1-5.
[5] ARMLimited.Building A Secure System using TrustZone Technology.[EB/OL].UK:ARM Limited.2009.http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_TrustZone_security_whitepaper.pdf
[6] CSDN.TrustZone技術簡介.[EB/OL].China:CSDN,2013. http://blog.csdn.net/braveheart95/article/details/8878319
[7] Jeong H,Kim S,Won D.On the Security of An Novel Protocol for Downloadable CAS[C]//Proceedings of the 6th International Conference on Ubiquitous Information Management and Communication.ACM,2012:65.
[8] Kim H.Secure Communication in Digital TV Broadcasting[J]. International Journal of Computer Science and Network Security,2008,8(9):1-5.
[9] IANG T,HOU Y,ZHENG S.Secure Communication Between Set-top Box and Smart Card in DTV Broadcasting[J].Consumer Electronics,IEEE Transactions on,2004,50(3):882-886.
[10] Society of Cable Telecommunications Engineers,Inc.SCTEOpen Media Security(OMS)Root Key Derivation Profiles and Test Vectors.[EB/OL].U.S.:Society of Cable Telecommunications Engineers,2013.http://www.scte.org/documents/pdf/standards/ANSI_SCTE%20201%202013.pdf
DCAS Terminal Design based on TrustZone
HAO Yong-gang1,LI Wang-wei2,WEI An-ming2,XIAO Hui2,HUANG Zheng1,GUO Jie1
(1School of Information Security Engineering,Shanghai Jiaotong University,Shanghai 200240,China;2Planning Institute of Radio and Television,SAPPRFT,Beijing 100045,China)
TP309
A
1009-8054(2016)02-0099-07
2015-09-22
郝舅鋼(1990—),男,碩士,研究生,主要研究方向為可信計算,事件挖掘;
李汪蔚(1985—),女,碩士,工程師,主要研究方向為廣播電視數字化、信息安全;
韋安明(1975—),男,博士,高級工程師,主要研究方向為廣播電視數字化、網絡化的標準、科研和測試工作;
肖 輝(1977—),男,碩士,廣播電視規劃院廣播電視中心所制播網絡實驗室主任,主要研究方向為制播網絡、信息安全、應用軟件、測試測量等;
黃 征(1975—),男,博士,副教授,主要研究方向為人工智能、安全多方計算和數字取證信息的收集與分析;
郭 捷(1980—),女,博士,副研究員,主要研究方向為圖象處理與視頻通信。