武 一,巴 佳,馬建華
(河北工業(yè)大學(xué) 信息工程學(xué)院,天津 300401)
在如今數(shù)字電視機(jī)頂盒發(fā)展迅猛的時(shí)代,我們可以收看的電視節(jié)目越來越多,內(nèi)容也更加豐富多彩。因此,為了滿足不同用戶的需求,也為了保護(hù)運(yùn)營商的利益,需要利用條件接收(CA,conditional access)系統(tǒng)來管理用戶的權(quán)限以保證付費(fèi)的用戶能夠正常的收看電視節(jié)目[1]。
但在實(shí)際情況下,由于各個(gè)地區(qū)的電網(wǎng)會(huì)下設(shè)一些分區(qū),因此可根據(jù)光節(jié)點(diǎn)的情況將地域上不相鄰的多個(gè)光節(jié)點(diǎn)設(shè)為一個(gè)區(qū)域,而為了更好的管理各個(gè)區(qū)域的接收條件,可采取針對每個(gè)單獨(dú)的區(qū)域進(jìn)行單獨(dú)管理的方法來對用戶進(jìn)行區(qū)域鎖定管理,即在A區(qū)域購買節(jié)目的用戶不能私自將自己的智能卡在B地使用。而對于這種情況,一般地,我們可以將傳輸流(TS)中的表 PMT(Program Map Table)和表 CAT(Conditional Access Tab)中的描述子 CA_descriptor分別改寫,然后通過復(fù)用器插入到這些表中[2],但這樣對于CA系統(tǒng)來說改動(dòng)較大,費(fèi)時(shí)費(fèi)力。
本文則針對上述情況提出了一種改進(jìn)型的條件接收,即每個(gè)區(qū)域單獨(dú)擁有自己的中心頻點(diǎn),在中心頻點(diǎn)中發(fā)送相關(guān)的區(qū)域信息,也就是在NIT表中插入一個(gè)專用的數(shù)據(jù)描述符,用它的的值(REGLOCK)來區(qū)分不同的網(wǎng)絡(luò),這樣只需在CA中添加一個(gè)判斷條件即可,對CA系統(tǒng)的改寫較簡單,也比較實(shí)用。具體做法為:機(jī)頂盒首先把從中心頻點(diǎn)NIT表中搜索到的區(qū)域信息(即REGLOCK的值)保存下來,然后通過智能卡中的區(qū)域信息來進(jìn)行比較,若相同,則代表了智能卡是在正確的區(qū)域使用,用戶則可以收看該區(qū)域的節(jié)目,若不同,則說明用戶的智能卡在非法區(qū)域,因此便不對其節(jié)目進(jìn)行解擾,用戶不能正常收看節(jié)目。
實(shí)際應(yīng)用證明,雖然該方法操作簡單,實(shí)現(xiàn)較容易,但實(shí)用性較強(qiáng)。
我國數(shù)字有線電視傳輸采用的是DVB-C標(biāo)準(zhǔn),模擬的音視頻及其輔助信息在進(jìn)入有線數(shù)字傳輸前,一般要經(jīng)過兩級(jí)編碼:第一級(jí),將所有要傳輸?shù)幕玖鳎‥S)和傳輸流(TS)以MPEG-2標(biāo)準(zhǔn)封裝,第二級(jí),采用RS(Reed-solomon codes)編碼和 QAM(Quadrature Amplitude Modulation)調(diào)制等方式將數(shù)字傳輸流調(diào)制為射頻信號(hào)再進(jìn)行傳輸。因此機(jī)頂盒所要做的工作簡單說來就是還原這些基本流。
數(shù)字電視機(jī)頂盒的基本工作原理及條件接收系統(tǒng)在其中的作用:
數(shù)字電視機(jī)頂盒首先由高頻頭接收來自有線網(wǎng)的射頻信號(hào),使其變成中頻信號(hào),再經(jīng)過A/D轉(zhuǎn)換模塊,將接收到的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),自此在機(jī)頂盒里傳輸?shù)男盘?hào)就變?yōu)閿?shù)字信號(hào)了,然后將其送入QAM信道解調(diào)器進(jìn)行QAM解調(diào),輸出MPEG-2多節(jié)目傳輸流數(shù)據(jù),送給解復(fù)用器(DMUX模塊),解復(fù)用器(DMUX模塊)從多節(jié)目輸出流中抽出一個(gè)節(jié)目的已打包的音視頻基本流數(shù)據(jù) (PES),其中包括音頻PES,視頻PES和輔助數(shù)據(jù)PES。
(這里的音視頻PES有的是已經(jīng)加擾的,而在解復(fù)用器中含有一個(gè)解擾引擎,條件接收系統(tǒng)的智能卡可通過啟動(dòng)解擾引擎對這些加擾的節(jié)目進(jìn)行解擾(其具體做法在下面第三點(diǎn)中給出了詳細(xì)說明)。)最后解復(fù)用器將整理好的音視頻數(shù)據(jù)分別送入音視頻解碼器進(jìn)行解碼,解碼后的音視頻數(shù)據(jù)再通過D/A轉(zhuǎn)換模塊即可通過音視頻輸出接口輸出給模擬電視機(jī)。
首先在前端通常是采用加擾控制字加密傳輸?shù)姆椒▽?jié)目進(jìn)行加擾的,然后在用戶端通過智能卡中的控制字來進(jìn)行解擾[3]。
具體做法是:
在前端,發(fā)送的MPEG傳輸流中[4-5],有2個(gè)與控制字相關(guān)的數(shù)據(jù)流,一個(gè)是授權(quán)控制信息(ECM),一個(gè)是授權(quán)管理信息 (EMM)。首先由業(yè)務(wù)密鑰 (SK)加密處理后的控制字(CW)在ECM中傳送,其中包括節(jié)目的來源、時(shí)間、內(nèi)容分類等節(jié)目信息。而對控制字加密的業(yè)務(wù)密鑰SK則在EMM中傳送,并且業(yè)務(wù)密鑰SK在傳送前要經(jīng)過用戶個(gè)人分配密鑰(PDK)(在用戶的智能卡中)的加密處理,因此在用戶端就是利用智能卡通過這一系列的解密最后解出ECM中的加擾控制字CW。
具體做法是,在用戶端,智能卡中含有用戶個(gè)人分配密鑰(PDK),機(jī)頂盒根據(jù) PMT和 CAT表中的 CA_descriptor(描述子),獲得EMM和ECM的PID值,然后從TS流中過濾出ECM和EMM,并通過Smart Card(智能卡)接口送給Smart Card。Smart Card首先讀取用戶個(gè)人分配密鑰(PDK),用PDK對EMM解密,取出SK,然后利用SK對ECM進(jìn)行解密,取出CW,并將CW通過Smart Card接口送給解復(fù)用器中的解擾引擎,最后解擾引擎利用CW就可以將已加擾的傳輸流進(jìn)行解擾[6]。
針對上述提出的問題,文中提出了在NIT表里添加描述子的具體實(shí)現(xiàn)方法如下;
首先,在前端的中心機(jī)房中,將主頻點(diǎn)NIT表中插入專用數(shù)據(jù)描述符,將它的值(REGLOCK)用來表示地域信息。然后把主頻點(diǎn)信號(hào)分離出來,經(jīng)過碼流分配器分出多路信號(hào),傳給各分前端的主頻點(diǎn)調(diào)制器,該調(diào)制器需具備編輯NIT表的功能,然后將其數(shù)值修改為本區(qū)域的專用區(qū)域信息。
前端NIT表中插入的專用數(shù)據(jù)描述符(REGLOCK)的位置及數(shù)值可通過碼流分析儀得到,如圖1所示。
圖1 NIT表中的專用描述符Fig.1 Specific descriptor in the NIT
首先,機(jī)頂盒默認(rèn)的REGLOCK值為0。當(dāng)我們使用REGLOCK值時(shí)需要對系統(tǒng)數(shù)據(jù)庫進(jìn)行操作[7]。系統(tǒng)數(shù)據(jù)庫相當(dāng)于一個(gè)大的結(jié)構(gòu)體,它的最后一項(xiàng)就是REGLOCK的值。當(dāng)打開系統(tǒng)數(shù)據(jù)庫時(shí),得到一個(gè)變量,若為sysInfo則sysInfo.REGLOCK即為REGLOCK的值,在未對其進(jìn)行操作前,值為0。
然后在每次開機(jī)后,從主頻點(diǎn)NIT表中獲取REGLOCK值(專用數(shù)據(jù)描述符的 Descriptor_tag=0x5F),我們需要將Private_data_specifior(也就是REGLOCK的值)記錄下來并保存到flash中的系統(tǒng)數(shù)據(jù)庫里。如果沒有發(fā)現(xiàn)NIT表,不改變REGLOCK值。根據(jù)圖1,具體軟件解析該描述子的實(shí)現(xiàn)如下:
此時(shí)得到的Cur_REGLOCK即為NIT表中的REGLOCK值。
最后將該值記錄到flash中的系統(tǒng)數(shù)據(jù)庫中。
而機(jī)頂盒為了與CA通信,可以將結(jié)果寫入一個(gè)接口函數(shù)中,即:
對于CA模塊,則只需通過調(diào)用上述接口函數(shù)DVTSTBCA_GetNitValue()來得到 REGLOCK的值即可,然后通過REGLOCK的值再來決定下一步是跳過還是進(jìn)行解擾操作。
該做法應(yīng)用于智能卡在特定區(qū)域收看特定節(jié)目的情況下,輔助了CA智能卡對節(jié)目進(jìn)行解擾,其做法簡單易行,目前已應(yīng)用于部分機(jī)頂盒廠商中,實(shí)際應(yīng)用表明其穩(wěn)定可靠,實(shí)用性較強(qiáng),達(dá)到了設(shè)計(jì)要求。
[1]張晟,郭小勤.?dāng)?shù)字機(jī)頂盒軟件設(shè)計(jì)[J].中國有線電視,2007(14):1367-1369.
ZHANG Sheng,GUO Xiao-qin.Digital set-top box software design[J].Chinese Cable TV,2007(14):1367-1369.
[2]鄧月明,鄧偉.嵌入式Linux機(jī)頂盒及條件接收系統(tǒng)實(shí)現(xiàn)研究[J].信息技術(shù),2009(2):5-7.
DENG Yue-ming,DENGWei.Research on set-top-box based on embedded Linux and implementation of conditional access system[J].2009(2):5-7.
[3]趙堅(jiān)勇.?dāng)?shù)字電視原理與接收[M].北京:電子工業(yè)出版社,2006.
[4]高曉娜,李華.MPEG-2傳輸流復(fù)用器的設(shè)計(jì)[J].電子測量技術(shù),2007(3):120-122.
GAO Xiao-na,LIHua.MPEG-2 transport stream multiplexer design [J].Electronic Measurement Technology,2007 (3):120-122.
[5]任玲,楊杰,朱佩江.MPEG-2傳輸流PSI信息合成和復(fù)用技術(shù)的實(shí)現(xiàn)[J].有線電視技術(shù),2007(2):38-39.
REN Ling,YANG Jie,ZHU Pei-jiang.MPEG-2 transport stream PSI synthesis and multiplexing[J].Cable Television Technology,2007(2):38-39.
[6]楊婕婕,葉宇煌,蘇凱雄.?dāng)?shù)字機(jī)頂盒公共接口的設(shè)計(jì)與實(shí)現(xiàn)[J].有線電視技術(shù),2011(8):104-106.
YANG Jie-jie,YE Yu-huang,SU Kai-xiong.Public interface of the digital set-top box design and implementation[J].Cable Television Technology,2011(8):104-106.
[7]尚弘,蔣勛.機(jī)頂盒中基于數(shù)據(jù)庫的信息管理[J].無錫南洋學(xué)院學(xué)報(bào),2008,6(36):36-39.
SHANG Hong,JIANG Xun.The set-top boxes based on database informationmanagement[J].Wuxi Nanyang Institute of Technology,2008,6(36):36-39.