1. 程式人生 > >機頂盒加密系統流程 ECM EMM CW SK

機頂盒加密系統流程 ECM EMM CW SK

最近有問到STB和CA相關的問題,感覺都忘記的差不多了,所以感覺還是需要整理下。

不過看網上已經有類似的博文了,先轉載下:http://blog.csdn.net/zhangliang_571/article/details/25240731 

隨著數字視訊廣播(DVB)的發展,觀眾會面對越來越多的數字電視節目的選擇。而廣播業者由於投資成本的增加,則要求對使用者收取一定的收視費用。條件接收系統(Conditional Access System)就是為了滿足對某些廣播服務實施接入控制的系統。它的主要功能就是確保只有支付了或者即將支付費用的使用者才能收看所選擇的電視節目。

1 CA系統的關鍵技術

在CA系統中,有兩項最為關鍵的技術:一是加擾

(Scrambling)和解擾(Descrambling)的方法。加解擾技術被用來在傳送端CA系統的控制下改變或控制被傳送的服務(節目)的某些特徵,使未被授權的使用者無法獲取該服務;二是控制解擾,在傳送端提供一個加密資訊,使被授權的使用者端解擾器能以此來對資料解密。該資訊受CA系統控制,並以加密形式配置在傳輸流資訊中以防止非授權使用者直接利用該資訊進行解擾。不同的CA系統管理和傳送該資訊的方法上有很大的不同。

加擾的通常做法是在傳送端使用加擾序列對視訊、音訊或者資料碼流進行干擾,將資料打亂。加擾序列由偽隨機序列發生器產生,在初始條件已知的情況下,可以推測出偽隨機序列發生器產生的加擾序列。偽隨機序列發生器的初始條件受控於控制字(

Control Word)。在接收端也有一個同樣的偽隨機序列發生器,如果將控制字CW傳送給這個偽隨機序列發生器,那麼就可以獲得解擾序列,然後再用解擾序列恢復原始訊號。所以說,節目有條件接收的核心是控制字CW的傳輸。為了實現保密,必須將控制字進行加密處理後傳輸。接收端在得到授權後,才能應用解密程式重新生成這個控制字。

2 控制字CW的加密機制

因為CW是隨加擾資訊一起通過公用網傳輸,任何人都可以讀取並研究它,一旦CW被讀取破解,那麼整個系統就癱瘓了,所以對CW本身要用一個加密金鑰,通過加密演算法對它進行加密保護。在具體應用中,這個金鑰可以按照網路經營商要求經常加以改變,通常由服務商提供,用來控制其提供的服務,所以把它稱為業務金鑰(

SK, Service Key。SK的使用一般與使用者付費條件有關。

CW雖已由SK加密,但這個金鑰如果仍可以讓任何人讀取,那就意味著特定服務的定購者和非定購者將享有同等權利,網路運算商還是難以控制到特定的使用者,安全性仍然存在問題,必須對SK進行再加密保護。這個加密過程完全按照各個使用者特徵來進行,因為這個金鑰是由個人特徵確定的,常常稱為個人分配金鑰(PDK, Personal Distribute Key。PDK一般由CA系統裝置自動產生並嚴格控制,在終端裝置處PDK一般由網路運營商通過CA系統提供的專用裝置燒入解擾器的PROM中,不能再讀出。為了能提供不同級別、不同型別的服務,一套CA系統往往為每個使用者分配好幾個PDK,來滿足豐富的業務需求。

在已實際運營的多套CA系統(主要在歐美)中,運營商對終端使用者的加密授權方式有很多種,如人工授權、磁卡授權、IC卡授權、智慧卡授權、中心集中定址授權(由控制中心直接定址授權,不用插卡授權)、智慧卡和中心授權共用的授權方式等。智慧卡授權方式是目前機頂盒市場的主流,也被我國確定為我國入網裝置的標準配件。

注:智慧卡是用IC構成有分析判斷能力的卡,其結構包括協處理器、ROM和EEPROM。

3 MPEG-2數字電視系統中條件接收的實現

在採用MPEG-2標準的數字電視系統中,與節目流CA系統相關的兩個資料流是:授權控制資訊(ECM, Entitle Control Message)和授權管理資訊(EMM, Entitle Manage Message)。由SK加密後的CW在ECM中傳送,ECM中還包括節目來源、時間、內容分類和節目價格等資訊。對CW加密的SK在EMM中傳送,SK在傳送前要經過PDK的加密處理,EMM中還包含地址、使用者授權資訊。

在TS(Transport Stream)流中,PSI(Program Specific Information)被分為四類:PAT(Program Association Table)表, PMT(Program Map Table)表,NIT表(Net Information Table)以及CAT表(Conditional Access Table)。其中,PMTCAT與條件接受密切相關

為了更加地說明問題,首先介紹一下CA descriptor(CA描述子),如表1所示。如果某原始流被加密,含有此原始流的節目中一定有CA descriptor。如果任何CA管理資訊(如EMM)和原始特殊流資訊(如ECM)存在於TS流中,那麼在相應的PMT中一定有CA descriptor。

表1 CA descriptor

語  法

位  數

縮   寫

CA_descriptor( )
{
  Descriptor_tag
  Descriptor_length
  CA_system_ID
  Reserved
  CA_PID
  for (i=0;i<N;i++)
 {
    Private_data_byte
  }

8
8
16
3
13

8

Uimsbf
Uimsbf
uimsbf
Bslbf
Uimsbf

Uimsbf


注:CA描述子中的Descriprot_tag的值為9。通過這個標誌位可以將CA描述子與其他的描述子區別開來,如視訊流描述子、音訊流描述子等。另外,CA描述子中的CA_system_ID用來表示適用於相關ECM和EMM流的CA系統型別。DVB Project成立了專門的組織負責向不同的解碼器生產商分配不同的CA_system_ID值。這樣的話,一套數字碼流可以將不同CA系統的金鑰同時傳送給不同的機頂盒使用者群。

 當CA描述子出現在PMT表中時,CA_PID指向含有和ECM資訊相關的節目分組。當CA描述子出現在CAT表中時,CA_PID指向含有和EMM資訊相關的節目分組。

 由此可以清楚地知道,解碼器的解密機制是:當Smart Card插入STB時,解碼器將從中讀取CA_system_ID,並查詢在CAT表(PID號為0X01)內的CA描述子中與該CA_system_ID對應的CA_PID(即EMM碼流的PID)。EMM碼流中包含了經過PDK加密處理的SK。PDK固化在Smart Card中,並以加密形式儲存,使用者需提供口令方能使用其進行解密。然後,Smart Card將解密出SK。

 完成以上步驟後,解碼器再查詢在PMT表內的CA描述子中與上述CA_system_ID對應的CA_PID( 即ECM碼流的PID)。ECM碼流中包含了由SK加密處理後的CW資訊。用得到的SK對ECM解密就可以得到CW。將CW填入解碼晶片的相應暫存器中,就可以對碼流資料進行解擾,恢復出原始訊號。

【理解】

PDK相當於private key(私鑰),而SK相當於public key(公鑰)。為了避免特定服務被未訂購者接收,還應該對SK進行加密,而只有擁有PDK的使用者才能進行解密,從而達到只有訂購者才能接收到SK的目的。

【助記】

(1)EMM:授權管理資訊,顧名思義,它是管理授權的資訊。這個授權即為SK,為了使避免這個授權資訊被未授權者獲取,就需要對其進行管理,即通過PDK對其進行加密,即PDK_SK。

另外,EMM可以用來實現EMM fingerprint,並指定顯示內容、時間、間隔、字元顏色、背景顏色、閃爍等屬性。

(2)ECM:授權控制資訊,顧名思義,它是控制授權的資訊。這個“控制”即為最終解擾的關鍵。“控制”是通過CW來實現的,而只有獲得授權資訊的使用者才能解密出CW,於是ECM中存放的便是SK_CW。

另外,ECM可以用來實現ECM fingerprint,Smart Card卡號的固定fingerprint顯示功能,並控制顯示的起始時間和終止時間。

(3)fingerprint的作用:如果某使用者將帶有fingerprint的節目傳到網上或用於其它用途,那麼相關的服務供應商可以根據fingerprint上的卡號(實名制)來追究該使用者的法律責任。

【流程圖】 

4 加擾

MPEG-2資料碼流的加擾可以分為兩層:一是PES層的加擾,一是TS層的加擾。TS層的加擾只針對TS資料碼流的有效負載(payload),而TS碼流中的PSI資訊,包括PAT、PMT、NIT、CAT以及私有分段(包括ECM、EMM)都不應該被加擾。當然,TS流的頭欄位(包括調整欄位)也不應該被加擾。經過加擾後的TS碼流應該在頭欄位中定義加密控制字。

5 加密演算法的選用

(1)控制字的加密:對於控制字的加密,需要一定強度、處理迅速的加密演算法,主要採用私有金鑰(個人分配金鑰,PDK)加密體制中的一些加密演算法,如:DES演算法或者IDEA演算法。

(2) 業務金鑰的加密:業務金鑰的改變頻率要遠小於控制字,因此對其加密的演算法處理速度可以較慢,但由於一個業務金鑰要使用較長時間,其安全性要求更高,需選用 一些高強度的加密演算法。公開金鑰體制的加密演算法在此可得到較好的應用,因為公開金鑰體制加密演算法雖然處理速率一般較祕密金鑰體制慢,但大都具有較高的加密 強度,可以滿足業務金鑰對安全性的更高要求。另外,採用公開金鑰體制加密,經營者不必須傳輸使用者的私有金鑰,只需知道使用者的公開金鑰就可對業務金鑰進行加 密,使用者使用自己的私有金鑰即可解密。這樣可以在使用者端產生一對金鑰,只要將公鑰傳給傳送端經核實可用後即可,而解密的關鍵私有金鑰不需進行一次傳輸,可 以提高系統的安全性。在公鑰體制下還可實現數字簽名、數字證書等功能,對於系統的業務拓寬、業務範圍,提供線上支付等功能也非常有利。

 目前主要的公鑰加密演算法主要有RSA公鑰加密演算法,揹包公鑰密碼系統,勒賓(Rabin)密碼,麥克黎斯(Mceliece)公鑰密碼,橢圓曲線公鑰密碼等,其中RSA公鑰加密演算法應用較廣。