許 濤武傳坤張衛(wèi)明
1(信息安全國(guó)家重點(diǎn)實(shí)驗(yàn)室(中國(guó)科學(xué)院信息工程研究所) 北京 100093)2(中國(guó)科學(xué)院大學(xué) 北京 100049)3(中國(guó)科學(xué)技術(shù)大學(xué)信息科學(xué)技術(shù)學(xué)院 合肥 230026)(xutao@iie.ac.cn)
?
基于白盒密碼的DCAS終端安全芯片方案
許 濤1,2武傳坤1張衛(wèi)明3
1(信息安全國(guó)家重點(diǎn)實(shí)驗(yàn)室(中國(guó)科學(xué)院信息工程研究所) 北京 100093)2(中國(guó)科學(xué)院大學(xué) 北京 100049)3(中國(guó)科學(xué)技術(shù)大學(xué)信息科學(xué)技術(shù)學(xué)院 合肥 230026)(xutao@iie.ac.cn)
在國(guó)家廣電總局2012年發(fā)布的可下載條件接收系統(tǒng)(downloadable conditional access system, DCAS)技術(shù)規(guī)范中,終端的密碼操作都被置于安全芯片內(nèi),用安全硬件技術(shù)加以保護(hù).然而安全芯片中過多的黑盒內(nèi)容降低了芯片的通用性,增加了研發(fā)成本.因此提出一種基于白盒密碼的DCAS安全芯片改進(jìn)方案,利用芯片外的白盒解密軟件模塊和芯片內(nèi)的外部編碼,替換原方案中的層級(jí)密鑰模塊,并給出了一種在安全芯片內(nèi)根據(jù)參數(shù)生成外部編碼的算法,重新設(shè)計(jì)了DCAS終端的解密和握手驗(yàn)證過程.改進(jìn)后的方案不但彌補(bǔ)了技術(shù)規(guī)范中原方案的缺點(diǎn),還增加了如下優(yōu)點(diǎn):解密算法與業(yè)務(wù)密鑰都包含在白盒密碼模塊內(nèi),可以同時(shí)通過網(wǎng)絡(luò)下載更新;握手驗(yàn)證過程不僅對(duì)DCAS終端設(shè)備進(jìn)行可用性驗(yàn)證,還能夠進(jìn)行唯一性驗(yàn)證.
條件接收系統(tǒng);可下載條件接收系統(tǒng);安全芯片;白盒密碼;外部編碼
條件接收系統(tǒng)(conditional access system, CAS)對(duì)數(shù)字電視廣播業(yè)務(wù)進(jìn)行控制和授權(quán),確保僅當(dāng)用戶滿足特定的條件時(shí)才能正常使用該業(yè)務(wù).在CAS技術(shù)的早期,客戶端被固化在機(jī)頂盒硬件中.為了抵抗某種盜版攻擊或者增加新的服務(wù),系統(tǒng)運(yùn)營(yíng)商需要更換所有用戶的機(jī)頂盒.為了解決這個(gè)問題,目前大部分運(yùn)營(yíng)商采用了分離式的安全模塊,即機(jī)頂盒+智能卡的方式.這種方式允許系統(tǒng)運(yùn)營(yíng)商在升級(jí)CAS終端應(yīng)用或者更換CAS時(shí)不用替換整個(gè)機(jī)頂盒.然而機(jī)頂盒+智能卡的方式并不能改變當(dāng)前CAS終端上軟硬件捆綁、難以實(shí)施標(biāo)準(zhǔn)化和智能化的局面.隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,在數(shù)字電視廣播網(wǎng)絡(luò)內(nèi)封閉發(fā)展的有線電視系統(tǒng)面臨巨大的挑戰(zhàn),越來越多帶有屏幕的智能終端正在對(duì)傳統(tǒng)的有線電視起替代作用.于是,能夠在智能平臺(tái)上運(yùn)行的可下載CAS(downloadable CAS, DCAS)受到了人們的關(guān)注.
DCAS使用戶能夠通過網(wǎng)絡(luò)下載CAS客戶端到本地設(shè)備,包括機(jī)頂盒、智能電視、PC、平板電腦和智能手機(jī)等任何符合DCAS終端標(biāo)準(zhǔn)的設(shè)備.依托DCAS,數(shù)字電視運(yùn)營(yíng)商可以擺脫單純依賴機(jī)頂盒開展業(yè)務(wù)的模式.2012年3月,為了規(guī)范我國(guó)的DCAS發(fā)展,廣電總局頒布了《可下載條件接收系統(tǒng)技術(shù)規(guī)范》(以下簡(jiǎn)稱《DCAS技術(shù)規(guī)范》)[1],規(guī)定了DCAS的總體要求、安全機(jī)制、系統(tǒng)架構(gòu)和功能、終端系統(tǒng)和終端安全芯片等內(nèi)容.
下載到智能終端中的CAS終端軟件,其運(yùn)行環(huán)境是不安全的.潛在的攻擊者可能是從網(wǎng)絡(luò)下載的惡意軟件或者終端的持有者.所以,DCAS終端的設(shè)計(jì)者必須以如下假設(shè)作為設(shè)計(jì)前提:攻擊者可以任意觀察與控制軟件的運(yùn)行、用逆向工程的方法分析軟件模塊以及任意篡改軟件.這樣的運(yùn)行環(huán)境被稱為白盒攻擊環(huán)境.
在白盒攻擊環(huán)境下,若CAS終端軟件中的解密密鑰以變量的形式存放在存儲(chǔ)器中,則很容易被攻擊者直接抓取并利用.為了抵抗這種攻擊,《DCAS技術(shù)規(guī)范》將DCAS終端的解密解擾操作都放置在安全芯片內(nèi).整個(gè)終端的安全基礎(chǔ)建立在用硬件技術(shù)對(duì)安全芯片進(jìn)行保護(hù)之上.但是這樣的做法使得安全芯片內(nèi)的黑盒內(nèi)容過多,限制了芯片使用時(shí)的靈活性和通用性,芯片的研發(fā)成本也高.
白盒密碼[2]是為了抵抗白盒攻擊而提出的一項(xiàng)技術(shù),其主要手段是在密碼算法的軟件實(shí)現(xiàn)中對(duì)密鑰進(jìn)行隱藏,使得密鑰不會(huì)直接出現(xiàn)在存儲(chǔ)器中.本文針對(duì)《DCAS技術(shù)規(guī)范》中DCAS終端安全芯片的設(shè)計(jì),提出了一種基于白盒密碼的改進(jìn),將安全芯片中的層級(jí)解密功能交由芯片外的白盒密碼軟件模塊和芯片內(nèi)的外部編碼配合完成,并給出了一種在芯片內(nèi)派生外部編碼的算法.與原設(shè)計(jì)相比,改進(jìn)后的DCAS芯片通用性增加、研發(fā)成本降低,并且新的握手驗(yàn)證過程還可以用來判斷終端是否是與安全芯片對(duì)應(yīng)的唯一合法終端.
1.1 CAS的安全原理
CAS由前端、傳輸網(wǎng)絡(luò)與終端組成,主要實(shí)現(xiàn)功能有3層:加擾層、節(jié)目授權(quán)控制層和用戶授權(quán)管理層.圖1(a)展示了目前被大多數(shù)運(yùn)營(yíng)商采用的、終端是機(jī)頂盒+智能卡的CAS架構(gòu)[3].
加擾層以控制字(control word,CW)為初始化密鑰,通過加擾器對(duì)節(jié)目流進(jìn)行加擾.為提高安全性,CW通常以5~30 s為周期進(jìn)行變換,不同節(jié)目采用不同的控制字.節(jié)目授權(quán)控制層用該節(jié)目的業(yè)務(wù)密鑰(service key,SK)對(duì)CW進(jìn)行加密,生成節(jié)目授權(quán)控制消息(entitlement control message, ECM).用戶授權(quán)管理層用個(gè)人分配密鑰(personal distribution key,PDK)對(duì)SK進(jìn)行加密,生成用戶授權(quán)管理消息(entitlement management message, EMM).終端的PDK一般由運(yùn)營(yíng)商在分發(fā)前通過專用設(shè)備燒錄入智能卡的EPROM中.
傳輸網(wǎng)絡(luò)中的傳輸流格式,如圖1(b)所示.每個(gè)節(jié)目流都有專屬的ECM消息.所有用戶的EMM消息在EMM流中被循環(huán)廣播.當(dāng)然,除了密文形式的SK和CW,EMM和ECM還包含其他與節(jié)目授權(quán)控制有關(guān)的信息[4].
Fig. 1 CAS architecture and format of the transport stream.圖1 CAS架構(gòu)及傳輸流格式
終端接收到傳輸流后,利用本地的PDK解密從EMM和ECM中獲取的EPDK(SK)和ESK(CW):SK=DPDK(EPDK(SK)),CW=DSK(ESK(CW)).最后得到的CW將用于節(jié)目的解擾.
1.2 DCAS終端安全芯片
目前,數(shù)字電視傳輸網(wǎng)絡(luò)向雙向轉(zhuǎn)變,服務(wù)提供商在雙向通信網(wǎng)絡(luò)下提供了更多的增值業(yè)務(wù),因而對(duì)安全保障的要求越來越高.作為CAS發(fā)展方向的DCAS在雙向通信網(wǎng)絡(luò)中提供了動(dòng)態(tài)安全體系結(jié)構(gòu)以及容納多種智能設(shè)備的可能.
《DCAS技術(shù)規(guī)范》[1]中的DCAS架構(gòu)與智能卡CAS相比,前端部分增加了認(rèn)證代理服務(wù)器、DCAS控制服務(wù)器和下載分發(fā)服務(wù)器等,同時(shí)還連接可信認(rèn)證系統(tǒng);終端部分取消了智能卡,并在主芯片之外增加了1個(gè)安全芯片.節(jié)目流在前端和終端的加密解密流程與前述的CAS原理一致.本節(jié)重點(diǎn)介紹《技術(shù)規(guī)范》中的DCAS終端安全芯片方案.
技術(shù)規(guī)范中DCAS終端安全芯片的功能見圖2,其中包括一次性編程區(qū)(one time programmable area, OTP)、根密鑰派生、層級(jí)密鑰和解擾及解碼等模塊.
安全芯片的工作流程如下:1)芯片上電后,OTP用還原函數(shù)將內(nèi)置的加密安全芯片密鑰(encrypted secure chipset key,ESCK)還原成安全芯片密鑰(secure chipset key,SCK),并提供給根密鑰派生模塊,用于生成根密鑰K3;2)層級(jí)密鑰模塊將根密鑰K3用于對(duì)輸入的已加密的密鑰進(jìn)行分層解密和處理握手認(rèn)證流程;3)最終解密得到的CW被送至解擾及解碼模塊,用來對(duì)加擾的業(yè)務(wù)進(jìn)行解擾和解碼.在安全芯片工作時(shí),除了內(nèi)置的唯一標(biāo)識(shí)Chip-ID和芯片返回的握手消息,主芯片不能通過驅(qū)動(dòng)讀取安全芯片內(nèi)的其他信息.
根密鑰派生模塊根據(jù)輸入的服務(wù)商系統(tǒng)標(biāo)識(shí)(Vendor_SysID)及芯片內(nèi)的SCK,派生出根密鑰.任何一家服務(wù)商均通過此派生機(jī)制生成不同的根密鑰,此方式規(guī)避了嵌入單一根密鑰的安全風(fēng)險(xiǎn).
芯片的層級(jí)密鑰模塊是3層結(jié)構(gòu),與2層結(jié)構(gòu)相比,在終端用戶數(shù)量很多的情況下,EMM流中循環(huán)廣播的數(shù)據(jù)量會(huì)相對(duì)較少.層級(jí)密鑰模塊的密碼算法可選用TDES,AES,SMS4等.
Fig. 2 The specification for the secure chip of DCAS terminal.圖2 技術(shù)規(guī)范中的DCAS終端安全芯片方案
層級(jí)密鑰模塊的分層解密流程為
1) 接收密文EK3(K2),使用根密鑰K3解密,得到K2=DK3(EK3(K2));
2) 接收密文EK2(K1),使用K2解密,得到K1=DK2(EK2(K1));
3) 接收密文EK1(CW),使用K1解密,得到CW=DK1(EK1(CW)).
其中,K1相當(dāng)于1.1節(jié)中介紹的業(yè)務(wù)密鑰SK.
層級(jí)密鑰模塊中的握手認(rèn)證流程為
1) 接收密文EK3(K2),使用根密鑰K3解密,得到K2=DK3(EK3(K2));
2) 使用K2解密K2,生成DK2(K2),記為A;
3) 接收握手認(rèn)證消息Nonce,使用A解密,得到DA(Nonce);
4) 將DA(Nonce)返送回前端.
這個(gè)握手認(rèn)證過程僅能夠驗(yàn)證:終端具有解密CW的能力,是可以正常使用的.
推廣DCAS的瓶頸是終端安全芯片,因?yàn)樾酒菢?biāo)準(zhǔn)的載體.然而在《DCAS技術(shù)規(guī)范》中,過多的黑盒內(nèi)容限制了芯片在使用時(shí)的靈活性和通用性,增加了芯片成本,不利于推廣.本文嘗試減少終端安全芯片中的內(nèi)容,用白盒密碼將層級(jí)密鑰模塊在安全芯片外用純軟件形式實(shí)現(xiàn).
各類消費(fèi)性電子產(chǎn)品是白盒攻擊的主要對(duì)象,其中也包括符合DCAS規(guī)范的終端設(shè)備.為了在白盒攻擊環(huán)境中保護(hù)密碼算法中的密鑰,Chow等人[2,5]提出了白盒密碼的概念,并給出了DES和AES加密算法的白盒實(shí)現(xiàn).他們所用的方法仍是目前創(chuàng)建白盒密碼應(yīng)用的主要方法,即:將原密碼算法用包含密鑰的查找表網(wǎng)絡(luò)實(shí)現(xiàn),用隨機(jī)雙射對(duì)單個(gè)查找表進(jìn)行編碼保護(hù),并利用外部編碼把算法邊界擴(kuò)展到包含白盒密碼模塊的容器中.
本節(jié)中,我們首先介紹基于查找表網(wǎng)絡(luò)的白盒密碼及其當(dāng)前的研究進(jìn)展,然后介紹一種在智能終端中實(shí)際應(yīng)用白盒密碼的模式.
2.1 查找表網(wǎng)絡(luò)
在軟件實(shí)現(xiàn)時(shí),AES等密碼算法的代換和擴(kuò)散等操作可以用查找表來完成.此時(shí),如果密鑰和某些查找表結(jié)合而不是被單獨(dú)存儲(chǔ),攻擊者便無法直接觀察到密鑰.但是這樣的隱藏不足以阻止攻擊者輕易提取密鑰信息,查找表還需要被進(jìn)一步保護(hù).
Chow等人[2]利用編碼的方法保護(hù)查找表,如圖3(a)所示.令X和Y是2個(gè)查找表.①所示的復(fù)合操作Y°X=Y(X(c))表示:對(duì)輸入值c,在X之后執(zhí)行Y,符號(hào) ° 表示操作的合成,編碼是隨機(jī)選擇的雙射.②展示了如何利用輸入編碼F和輸出編碼H混淆查找表X和Y的內(nèi)容.如圖3所示,X和Y被新查找表X°F-1和H°Y代替.③展示如何利用編碼G使2個(gè)表之間的結(jié)果也得到保護(hù).這樣原來在存儲(chǔ)器中的2個(gè)表X和Y被代替為編碼后的X′=G°X°F-1和Y′=H°Y°G-1.經(jīng)過編碼后的查找表,只要F,G,H保持未知,攻擊者就不能輕易獲得查找表X和Y中隱藏的密鑰信息.
編碼后的查找表組成了白盒密碼模塊.整體來看,用Chow等人的方法實(shí)現(xiàn)的白盒密碼是如圖3(c)所示的查找表網(wǎng)絡(luò).將輸入的分組依次用網(wǎng)絡(luò)中的查找表作用,便得到加密解密的結(jié)果.
為了防止攻擊者將白盒密碼模塊整體竊取并利用,Chow等人引入了外部編碼,如圖3(b).為了抵消外部編碼的作用,在白盒密碼模塊開始或結(jié)束的位置需要額外插入若干與密鑰無關(guān)的查找表.外部編碼位于運(yùn)行白盒密碼模塊的容器中,并用硬件或軟件技術(shù)保護(hù),使攻擊者不能輕易獲得.外部編碼與密鑰無關(guān),但是如果不知道外部編碼,攻擊者即使竊取了白盒密碼模塊,脫離了原來的容器后,也不能正常使用.
Fig. 3 Encoding,external encoding,network of lookup tables.圖3 編碼、外部編碼及查找表網(wǎng)絡(luò)
2.2 白盒密碼的研究進(jìn)展
Chow等人的白盒AES和DES公布后,很快就遭到破解[6-8],Lepoint等人[9]對(duì)白盒AES給出最小代價(jià)是222的攻擊方法.為了增加白盒AES的安全性,一些改進(jìn)方案[10-11]被提出,但最后都被證明是不安全的[9, 12].Michiels等人[13]甚至給出了1個(gè)通用的攻擊,證明將已有的SLT型分組密碼算法用Chow等人的方法轉(zhuǎn)成白盒密碼是不安全的.因?yàn)檫@些算法在設(shè)計(jì)之初并沒有考慮在白盒攻擊環(huán)境下運(yùn)行,固定結(jié)構(gòu)的代換和擴(kuò)散層使得這些密碼算法的白盒實(shí)現(xiàn)很容易被破解.
但是白盒密碼技術(shù)在不斷發(fā)展,新的方法不斷被提出,例如:構(gòu)建具有密鑰相關(guān)的代換和擴(kuò)散層的類AES白盒密碼、混淆白盒密碼中每輪的邊界等.新方法可以被用來抵抗已知的攻擊.白盒密碼的設(shè)計(jì)者不再將思路局限于已有密碼算法的白盒化,而是在嘗試設(shè)計(jì)一開始就著眼于防范白盒攻擊的白盒密碼.總之,白盒密碼技術(shù)仍然是一項(xiàng)值得期待的技術(shù).
2.3 白盒密碼的應(yīng)用
目前,智能終端設(shè)備的運(yùn)算能力越來越接近PC,一些原來用于PC的攻擊技術(shù)開始轉(zhuǎn)移到這些智能終端上.由于某些移動(dòng)操作系統(tǒng)的開放性,例如安卓,其上運(yùn)行的軟件應(yīng)用極易遭受白盒攻擊.本節(jié)以安卓手機(jī)為例,介紹了一種實(shí)際應(yīng)用白盒密碼的模式:受硬件技術(shù)保護(hù)的外部編碼配合軟件形式的白盒密碼應(yīng)用模塊.
如圖4所示,外部編碼在USIM卡中,攻擊者不能直接讀取.需要加密解密的數(shù)據(jù)先被送往USIM卡,經(jīng)外部輸入編碼處理后,回傳給安卓系統(tǒng)內(nèi)包含白盒密碼模塊的APP處理,再將結(jié)果送往USIM卡,用外部輸出編碼處理,最后將加密解密結(jié)果回傳給APP.這種模式使得該白盒密碼模塊只能在插了配套的USIM卡的手機(jī)中正常使用.
Fig. 4 The application of white-box cryptography in a smart phone.圖4 白盒密碼在智能手機(jī)中的應(yīng)用
除了用硬件技術(shù)保護(hù)外部編碼,還有用軟件技術(shù)保護(hù)的方法,例如安全隔離區(qū)等[14].本文采用前者,根據(jù)輸入?yún)?shù)和內(nèi)置的根密鑰在芯片內(nèi)派生外部編碼,提出了基于白盒密碼的DCAS終端安全芯片改進(jìn)方案.由于體積和運(yùn)行效率的限制,白盒密碼模塊適合在密鑰更新不頻繁以及加解密數(shù)據(jù)量不大的情況下使用.由于業(yè)務(wù)密鑰SK一般是1個(gè)月1換,并且僅用來解密密文形式的控制字ESK(CW),所以我們擬用白盒密碼來完成這個(gè)解密操作.
3.1 安全芯片的功能
我們的終端安全芯片如圖5所示,功能包括:OTP、外部編碼派生和解擾及解碼等模塊.層級(jí)密鑰的功能由應(yīng)用軟件中的白盒密碼模塊(簡(jiǎn)記為WBCM)以及安全芯片內(nèi)的外部編碼配合完成.與圖4稍有不同,在我們的方案中,白盒密碼模塊的輸入端沒有使用外部編碼,僅在輸出端使用受黑盒保護(hù)的外部輸出編碼(簡(jiǎn)記為ExtEnc),達(dá)到將WBCM與終端硬件捆綁的目的即可.用戶終端收到ESK(CW)后,解密操作由ExtEnc°WBCM完成.
安全芯片的工作流程如下:芯片上電后,OTP用還原函數(shù)將內(nèi)置的ESCK還原成SCK,并提供給外部編碼派生模塊,用于生成ExtEnc;如果終端本地沒有WBCM或者WBCM需要更新,終端從前端服務(wù)器下載WBCM;WBCM和ExtEnc配合完成CW的解密以及握手認(rèn)證流程;最終解密得到的CW被送至解擾及解碼模塊.
Fig. 5 A white-box-cryptography-based scheme for the secure chip of DCAS terminal.圖5 基于白盒密碼的DCAS終端安全芯片方案
外部編碼派生模塊根據(jù)輸入的服務(wù)商系統(tǒng)標(biāo)識(shí)Vendor_SysID及芯片內(nèi)的SCK,派生出外部編碼.不同的服務(wù)商可生成不同的外部編碼.即便是同一家服務(wù)商,也可以定期在一定范圍內(nèi)變動(dòng)Vendor_SysID,以獲得更大的安全性.
3.2 密鑰的更新及解密流程
WBCM的體積較大,而且每個(gè)終端需要的WBCM都不同,所以WBCM不適合在傳輸流中廣播發(fā)送.本文的方案面向雙向網(wǎng)絡(luò).EMM流中循環(huán)廣播的不是加密后的密鑰,而是每個(gè)DCAS用戶終端下載WBCM時(shí)使用的鏈接.終端發(fā)現(xiàn)本地的WBCM過期或者收到前端服務(wù)器發(fā)送的更新通知后,使用標(biāo)識(shí)身份的Chip-ID從EMM中檢索出WBCM的下載鏈接,然后向前端服務(wù)器請(qǐng)求下載.
前端服務(wù)器在每次收到下載請(qǐng)求時(shí),實(shí)時(shí)生成WBCM并返回給終端,服務(wù)器僅保留WBCM的散列值.由于WBCM由查找表網(wǎng)絡(luò)構(gòu)成,表與表之間的編碼是隨機(jī)選擇并相互抵消的,所以我們可以注意到這樣的事實(shí),即:將WBCM視作2進(jìn)制文件,即使是同一個(gè)終端和相同的SK,終端每次請(qǐng)求到的結(jié)果也是不一樣的,其散列值也會(huì)不同(發(fā)生碰撞的概率由選擇的散列算法決定).
DCAS終端的解密流程為
1) 軟件應(yīng)用接收密文ESK(CW),使用WBCM部分解密,得到WBCM(ESK(CW)),發(fā)送給安全芯片;
2) 安全芯片接收到WBCM(ESK(CW))后,使用ExtEnc解密,得到CW,即:
CW=ExtEnc(WBCM(ESK(CW)))=
DSK(ESK(CW)).
這樣的流程相當(dāng)于用2層密鑰加密CW.每個(gè)節(jié)目流中的ECM與前述CAS安全原理中的保持一致.由于方案是面向雙向網(wǎng)絡(luò),用戶向前端服務(wù)器主動(dòng)請(qǐng)求屬于自己的密鑰,所以不需要用多層加密來減少EMM中循環(huán)廣播的數(shù)據(jù)量.WBCM中實(shí)現(xiàn)的算法可以選用AES,TDES,SMS4等已有白盒密碼實(shí)現(xiàn)的算法,或者其他新設(shè)計(jì)的白盒密碼.
3.3 一種外部編碼生成算法
目前常見的安全芯片內(nèi)的RAM和ROM都僅有幾十KB,如果外部編碼的生成算法太復(fù)雜或者生成的外部編碼占用太大存儲(chǔ)空間,該算法就不能在安全芯片中使用.本節(jié)設(shè)計(jì)一種適合在安全芯片內(nèi)實(shí)現(xiàn)的外部編碼生成算法.生成的外部編碼結(jié)構(gòu)如圖6所示(以每次處理128 b的分組為例),包含32個(gè)4 b→4 b的非線性雙射Fi,i=0,1,…,31和1個(gè)32 b→32 b的線性雙射G.Fi是根據(jù)參數(shù)生成的,而G是1個(gè)具有良好擴(kuò)散性質(zhì)的常量.
Fig. 6 Structure of a 128 b→128 b external encoding.圖6 128 b→128 b的外部編碼結(jié)構(gòu)
Fi的生成如圖7所示.偽隨機(jī)數(shù)生成器(pseudo-random number generator, PRNG)根據(jù)輸入的種子參數(shù)Vendor_SysID‖SCK生成比特流,其中‖代表2個(gè)參數(shù)的串聯(lián).比特流中每64 b可以用來生成1個(gè)Fi.算法1描述了詳細(xì)過程.
Fig. 7 Generation of Fi,i=0,1,…,31.圖7 Fi的生成,i=0,1,…,31
設(shè)有序整數(shù)集合GP={i|i=0,1,…,15},其中的元素按從小到大的順序排列.1個(gè)4 b→4 b的非線性雙射F可被視為1個(gè)GP→GP的雙射.
算法1. 4 b→4 b非線性雙射的生成算法.
目標(biāo):生成GP→GP的雙射F;
輸入:整數(shù)數(shù)組PRN[16],PRN[16]用從偽隨機(jī)數(shù)生成器得到的64 b數(shù)據(jù)初始化,將每4 b的數(shù)據(jù)視為1個(gè)0~15的10進(jìn)制數(shù),數(shù)組的16個(gè)元素依次裝載4 b;
輸出:整數(shù)數(shù)組F[16],F(xiàn)[i]代表i經(jīng)過雙射F作用后的數(shù)值,i和F[i]都屬于GP,i=0,1,…,15;
變量:整數(shù)range初始化為16,有序整數(shù)集合GP_T初始化為GP,整數(shù)index初始化為0.
步驟1.PRN[index]=PRN[index] modrange,F(xiàn)[index]=GP_T[PRN[index]];
步驟2. 將GP_T[PRN[index]]從GP_T中刪除,GP_T重新排序,range減1,index加1;
步驟3. 如果range>0,則返回步驟1;
步驟4. 得到數(shù)組F[16],此時(shí)集合GP_T=?.
算法1生成的結(jié)果可以用1個(gè)16行、每行4 b數(shù)據(jù)的查找表存儲(chǔ),將占用8 B的存儲(chǔ)空間.32個(gè)非線性雙射共占用存儲(chǔ)空間256 B.
外部編碼的使用流程為:輸入的128 b數(shù)據(jù)先以每4 b為1組用Fi處理,將處理后的128 b數(shù)據(jù)再以每32 b為1組用G處理.由于攻擊者看不到安全芯片內(nèi)的Fi,所以Fi和G不用像之前敘述的編碼一樣合成在一起.
G是線性變換,為了提高運(yùn)算速度,G可以用4個(gè)8 b→32 b的查找表實(shí)現(xiàn),共占用4 KB的存儲(chǔ)空間.加上非線性編碼,整個(gè)外部編碼占用的存儲(chǔ)空間不超過5 KB,是完全能夠用目前的安全芯片技術(shù)實(shí)現(xiàn)的.
我們用AES算法中的列混合矩陣作為G以及用RC4算法作為偽隨機(jī)數(shù)生成器,驗(yàn)證本節(jié)介紹的外部編碼生成算法的正確性,即生成的外部編碼ExtEnc是1個(gè)偽隨機(jī)的雙射.舉例假設(shè)輸入的分組數(shù)據(jù)Input,Vender_SysID,SCK分別是16 B,8 B,16 B的數(shù)據(jù)(用16進(jìn)制表示),驗(yàn)證結(jié)果如下:
1) ?。?/p>
Vendor_SysID=a35f425b0b4cd971,
SCK=1c32d8e9f46a7e85b67f04d9a0732b48,
以Vendor_SysID‖SCK作為RC4的種子密鑰,由算法1生成ExtEnc;
2) ?。?/p>
Input=c56a809bd706e54f367e97a1540b32a5,
經(jīng)ExtEnc作用后得到輸出:
Output=99daa7256a1e561b90d26c1b23dbde3;
3) 經(jīng)驗(yàn)證,2)中的Output用ExtEnc的逆映射作用后能夠還原為Input.
3.4 外部編碼的安全性
DCAS終端安全芯片內(nèi)是受保護(hù)的運(yùn)行環(huán)境,其中的外部編碼可以被看作是1個(gè)運(yùn)行在黑盒中的分組密碼.密文輸入后,在芯片內(nèi)部用外部編碼解密.根據(jù)使用方式的不同,攻擊者可以對(duì)外部編碼進(jìn)行被動(dòng)主動(dòng)攻擊.
如果解密后的數(shù)據(jù)直接輸出安全芯片外,攻擊者則可以通過控制安全芯片的輸入得到任意密明文對(duì),進(jìn)行選擇明文攻擊,這是一種很強(qiáng)的主動(dòng)攻擊.受安全芯片的計(jì)算資源限制,本文方案中的ExtEnc結(jié)構(gòu)很簡(jiǎn)單,其中的擴(kuò)散矩陣還是固定和公開的,所以如果攻擊者進(jìn)行差分攻擊,ExtEnc很快會(huì)被破解.
為了避免ExtEnc遭受主動(dòng)攻擊,安全芯片應(yīng)該將解密后的內(nèi)容留在芯片內(nèi)使用.在本方案中,解密后的CW被直接送往芯片內(nèi)的解擾和解碼模塊,攻擊者無法觀察到.從CW的解密流程來看,攻擊者只能對(duì)ExtEnc進(jìn)行唯密文攻擊.如果對(duì)32個(gè)非線性雙射進(jìn)行唯密文的窮舉攻擊,需要嘗試的最大次數(shù)為:(16!)32≈21416,即平均需嘗試21415次,遠(yuǎn)大于窮舉芯片內(nèi)根密鑰的嘗試次數(shù),所以方案是安全的.
3.5 基于零知識(shí)證明的握手認(rèn)證
從3.4節(jié)的安全性討論中,我們知道安全芯片不能將外部編碼處理后的消息直接送出芯片外,所以本方案中的握手認(rèn)證是基于零知識(shí)證明的,以期將攻擊者對(duì)外部編碼的攻擊控制在被動(dòng)攻擊的范圍.為了增強(qiáng)安全性,芯片內(nèi)部增加1個(gè)ExtraEnc輸出編碼,由32個(gè)4 b→4 b的非線性雙射串聯(lián)構(gòu)成,其生成過程與外部編碼中的類似.
握手認(rèn)證的時(shí)序圖如圖8所示,其流程為
1) DCAS終端的軟件層接收從前端服務(wù)器發(fā)來的ESK(ExtraEnc-1(A′))‖Nonce,其中,A′是1個(gè)挑戰(zhàn)值,Nonce是1個(gè)隨機(jī)數(shù);
2) 軟件層將消息用白盒密碼模塊處理后,將結(jié)果WBCM(ESK(ExtraEnc-1(A′)))發(fā)送給安全芯片;
3) 安全芯片計(jì)算出A′:
ExtraEnc(ExtEnc(WBCM(ESK(
ExtraEnc-1(A′)))))=
ExtraEnc(DSK(ESK(ExtraEnc-1(A′))))=
ExtraEnc(ExtraEnc-1(A′))=
A′;
4) 軟件層計(jì)算A=Hash(WBCM)‖Nonce,并傳遞給安全芯片;
5) 安全芯片比較A與A′是否相等,如果相等則返回Result=Yes,反之返回Result=No,軟件層將收到的Result作為對(duì)前端服務(wù)器的響應(yīng);
6) 重復(fù)1)~5)的過程N(yùn)次,如果前端服務(wù)器N次都得到了正確的結(jié)果,則握手認(rèn)證通過.
Fig. 8 Authentication process.圖8 認(rèn)證流程
從握手認(rèn)證的流程來看,攻擊者無法利用安全芯片的輸入和輸出對(duì)外部編碼進(jìn)行主動(dòng)攻擊.他可以通過觀察,在安全芯片返回Yes時(shí),收集到1個(gè)密明文對(duì).利用積累的密明文對(duì),攻擊者可以進(jìn)行已知明文攻擊.因?yàn)槲帐烛?yàn)證過程并不頻繁,所以積累密明文對(duì)是一個(gè)長(zhǎng)期的觀察過程,并且最后的攻擊仍可能是窮舉攻擊.已知明文下的窮舉攻擊需要嘗試的最大次數(shù)為:4×(16!)16≈2710,即平均需嘗試2709次,遠(yuǎn)大于窮舉安全芯片內(nèi)根密鑰的嘗試次數(shù).
我們的握手認(rèn)證流程可以驗(yàn)證DCAS終端是否擁有解密CW的能力.因?yàn)槲帐窒⒅屑尤肓薍ash(WBCM),我們還希望這個(gè)握手認(rèn)證能夠驗(yàn)證DCAS終端芯片在網(wǎng)絡(luò)中的唯一性.從3.2節(jié)我們知道,即使幾個(gè)DCAS終端的安全芯片完全一樣,下載到的WBCM也不同,只有最后一次請(qǐng)求下載WBCM的終端才能通過驗(yàn)證.我們的認(rèn)證流程使前端服務(wù)器可以偵測(cè)到被復(fù)制的芯片引起的異動(dòng).一旦有異常就停止該芯片Chip-ID對(duì)應(yīng)的WBCM的下載.
當(dāng)然,復(fù)制的終端可能利用合法的終端進(jìn)行驗(yàn)證,即當(dāng)復(fù)制的終端收到握手消息后,轉(zhuǎn)發(fā)求助于合法終端.這種攻擊模式在終端被大規(guī)模復(fù)制的情況下很難實(shí)現(xiàn);而小規(guī)模的復(fù)制,攻擊者的成本太高,得不償失.所以我們的握手認(rèn)證流程仍具有偵測(cè)異常,避免大規(guī)模損失的作用.
與《DCAS技術(shù)規(guī)范》中的方案相比,本文的改進(jìn)具有3個(gè)優(yōu)點(diǎn):
1) 密鑰和解密算法都包含在WBCM中,是一體的,終端通過前端服務(wù)器更新本地的WBCM時(shí),可以一并更換.如果最壞的情況出現(xiàn),攻擊者同時(shí)拿到了WBCM和外部編碼,由于模塊體積和散列值的限制,在使用時(shí)也不方便,他需要進(jìn)一步破解出密鑰.
2) 芯片里的黑盒內(nèi)容減少,增加了芯片在使用時(shí)的靈活性和通用性,還有利于控制芯片成本.安全芯片內(nèi)不可能容納所有密碼算法,將密碼算法在芯片外用軟件實(shí)現(xiàn),又能保證安全性,這正是白盒密碼的價(jià)值.
3) 改進(jìn)后的握手驗(yàn)證過程在判斷DCAS終端可用性的同時(shí),還可以驗(yàn)證終端的唯一性,可以監(jiān)測(cè)出DCAS終端被復(fù)制或者被大規(guī)模復(fù)制的情況.
本文方案的缺點(diǎn):《DCAS技術(shù)規(guī)范》中的方案兼容單向廣播網(wǎng)絡(luò)的CAS,而本文的方案是面向雙向網(wǎng)絡(luò)的,不能兼容舊系統(tǒng)是本文方案的最大缺點(diǎn).
本文將《DCAS技術(shù)規(guī)范》中的終端安全芯片作為研究對(duì)象,為了得到更加靈活通用、成本更低的安全芯片,提出了一種基于白盒密碼的解決方案.本文的方案為以后DCAS技術(shù)規(guī)范的更新拓展了思路.本文提出在硬件黑盒中根據(jù)輸入?yún)?shù)生成外部編碼綁定黑盒外的白盒密碼軟件模塊的方法,也可以在其他場(chǎng)景中使用.如何根據(jù)不同應(yīng)用環(huán)境的需求設(shè)計(jì)更高效安全的外部編碼生成算法以及分析白盒密碼的安全性是有待進(jìn)一步研究的課題.
[1]SARFT of the PRC. GY/T 255—2012 Technical Specification of Downloadable Conditional Access System [S]. Beijing: Academy of Broadcasting Planning, SARFT of the PRC, 2012 (in Chinese)
(國(guó)家廣播電影電視總局. GY/T 255—2012可下載條件接收系統(tǒng)技術(shù)規(guī)范[S]. 北京: 國(guó)家廣播電影電視總局廣播電視規(guī)劃院,2012)
[2]Chow S, Eisen P, Johnson H, et al. White-box cryptography and an AES implementation[G] //LNCS 2595: Selected Areas in Cryptography (SAC 2002). Berlin: Springer, 2003: 250-270
[3]ITU Rec. 810, Conditional-Access Broadcasting Systems [S]. Geneva, Switzerland: ITU-R, 1992
[4]ETSI. EN 300 744 V1.6.1 Digital Video Broadcasting (DVB); Framing Structure, Channel Coding and Modulation for Digital Terrestrial Television[S]. Sophia Antipolis, FRA: ETSI, 2009
[5]Chow S, Eisen P, Johnson H, et al. A white-box DES implementation for DRM applications[G] //LNCS 2696: Digital Rights Management (DRM 2002). Berlin: Springer, 2003: 1-15
[6]Jacob M, Boneh D, Felten E. Attacking an obfuscated cipher by injecting faults[G] //LNCS 2696: Digital Rights Management (DRM 2002). Berlin: Springer, 2003: 16-31
[7]Billet O, Gilbert H, Ech-Chatbi C. Cryptanalysis of a white box AES implementation[G] //LNCS 3357: Selected Areas in Cryptography (SAC 2004). Berlin: Springer, 2005: 227-240
[8]Goubin L, Masereel J M, Quisquater M. Cryptanalysis of white box DES implementations[G] //LNCS 4876: Selected Areas in Cryptography (SAC 2007). Berlin: Springer, 2007: 278-295
[9]Lepoint T, Rivain M, De Mulder Y, et al. Two attacks on a white-box AES implementation[G] //LNCS 8282: Selected Areas in Cryptography (SAC 2013). Berlin: Springer, 2014: 265-285
[10]Xiao Y, Lai X. A secure implementation of white-box AES[C] //Proc of the 2nd Int Conf on Computer Science and Its Applications. Piscataway, NJ: IEEE, 2009: 1-6
[11]Karroumi M. Protecting white-box AES with dual ciphers[G] //LNCS 6476: Information Security and Cryptology (ICISC 2010). Berlin: Springer, 2011: 278-291
[12]De Mulder Y, Roelse P, Preneel B. Cryptanalysis of the Xiao-Lai white-box AES implementation[G] //LNCS 7707: Selected Areas in Cryptography (SAC 2012). Berlin: Springer, 2013: 34-49
[13]Michiels W, Gorissen P, Hollmann H D L. Cryptanalysis of a generic class of white-box implementations[G] //LNCS 5381: Selected Areas in Cryptography (SAC 2008). Berlin: Springer, 2009: 414-428
[14]Park J Y, Kim J N, Lim J D, et al. A whitebox cryptography application for mobile device security against whitebox attacks-How to apply WBC on mobile device[C] //Proc of the 4th Int Conf on IT Convergence and Security. Piscataway, NJ: IEEE, 2014: 1-5
Xu Tao, born in 1977. PhD candidate. His main research interests include white-box cryptography and IoT security.
Wu Chuankun, born in 1964. Professor and PhD supervisor at the Institute of Information Engineering, Chinese Academy of Sciences. His main research interests include network security protocols, white-box cryptography and IoT security.
Zhang Weiming, born in 1976. Associate professor and master supervisor in the University of Science and Technology of China. His main research interests include information hiding and network security (zhangwm@ustc.edu.cn).
A White-Box-Cryptography-Based Scheme for the Secure Chip of DCAS Terminal
Xu Tao1,2, Wu Chuankun1, and Zhang Weiming3
1(StateKeyLaboratoryofInformationSecurity(InstituteofInformationEngineering,ChineseAcademyofSciences),Beijing100093)2(UniversityofChineseAcademyofSciences,Beijing100049)3(SchoolofInformationScienceandTechnology,UniversityofScienceandTechnologyofChina,Hefei230026)
In the technical specification of downloadable conditional access system (DCAS) issued by the State Administration of Radio, Film and Television of China (SARFT) in 2012, all cryptographic operations in a terminal are built into a secure chip and protected with hardware-based security technologies. Too much protected black-box contents in the secure chip, however, will lower the universality and flexibility of the chip, and add the cost of research and development. Thus, an improved scheme for the secure chip of DCAS terminal is proposed, which is based on white-box cryptography. The main idea is to replace the key ladder inside the chip by a software-based white-box decryption module outside the chip and an external encoding inside the chip. An algorithm of generating external encoding is put forward, which is executed in the secure chip and based on the protected secret key and the external input parameters. The decryption and authentication processes in the terminal are redesigned. Compared with the original scheme in the DCAS technical specification, the improved scheme not only overcomes the aforementioned deficiencies, but also provides two extra benefits: the decryption algorithm can be renewed while the service key is being downloaded from the network; the new authentication process can verify the legitimacy as well as the uniqueness of a DCAS terminal.
conditional access system (CAS); downloadable conditional access system (DCAS); secure chip; white-box cryptography; external encoding
2015-06-15;
2015-09-16
中國(guó)科學(xué)院戰(zhàn)略性先導(dǎo)科技專項(xiàng)(XDA06010701);國(guó)家自然科學(xué)基金項(xiàng)目(61170234);國(guó)家“八六三”高技術(shù)研究發(fā)展計(jì)劃基金項(xiàng)目(2013AA014002)
武傳坤(ckwu@iie.ac.cn)
TP309
This work was supported by the State Priority Research Program of the Chinese Academy of Sciences (XDA06010701), the National Natural Science Foundation of China (61170234), and the National High Technology Research and Development Program of China (863 Program) (2013AA014002).