條件接收系統中智能卡的設計與實現
文章出處:http://hz-huyue.com 作者:中國一卡通網 收編 人氣: 發表時間:2011年09月27日
1、什么是條件接收系統(CAS)
條件接收系統(CAS)指對數字電視節目的內容進行數字加擾(或稱數字加密)以建立有效的收費體系,被譽為數字電視健康發展的技術保障系統。
按位置分CAS由前端(發送端)和終端(用戶接收部分組成。前端主要完成節目數據流的加擾、CW的加密、EMM的生成、用戶信息的管理以及相應眼務;終端主要完成解擾與解密,相關的硬件設備解擾器外加1個智能卡。
目前的技術主流是:解復用部分與CW相關的解擾部戍在終端STB(機頂盒)的主芯片中;智能卡作為全性的最重要設備,在用戶端完成所有的解密功比,作為CA開發商,需要提供能夠完成解密功能智能卡,并能為STB軟件開發商提供移植技術。
2、智能卡硬件電路的設計
在研發的條件接收系統中,依據硬件設計的原理和CAS高安全性的特點,主芯片選用ATMEL公司生產的AT90SCl616C。他以高性能、低功耗的AVR 8位CPU為核心,內嵌16k的Flash可編程內存,16 k的E2PROM以及1 k的RAM,配合一個16位的協處理器(SCl6)完成高速的保密和認證功能。
3、 解密與收費功能的實現
在CAS的用戶接收端,智能卡解析用戶的授權并完成所有的解密功能。與之相關的用戶基本信息、授權信息、個人分配密鑰等都以二進制數據的形式存儲在智能卡 的文件中。這些數據的存儲過程,是在終端與卡的接口函數的平臺上,使用APDU命令,在E2PROM內建立文件,并進行相關操作。開發使用的計算機語言可 以是VB,VC,VFP,C語言等。筆者選用VB進行開發。
3.1 CA信息的獲取
在本條件接收系統中,EMM是以全局尋址Global,組尋址Shared,惟一尋址Unique 3種不同尋址策略發送到用戶接收端的,用戶端STB在接收EMM前,需要先從智能卡中讀取一個惟一的用戶ID號,再對STB中的寄存器做相應設置,然后接 收EMM。因此,用戶ID作為智能卡的惟一尋址地址,需要建立基本信息文件并加以存儲。另外,根據MPEG-2標 準的規定,在接收CAT表和PMT表的過程中,對EMMPID,ECMPID解析前,都要先對CA_system_ID進行判斷,因 此,CA_system_ID也應該存儲在智能卡的基本信息文件中。此外,根據各CA開發商對CA信息在接收前的不同處理方式,加密算法的類型與版本也可 作為必要信息存儲于智能卡的文件中。所有這些基本信息,可以放人同一文件中,也可以根據需要,采用不同的文件類型(如二進制文件、定長紀錄文件等)加以存儲。
3.2 解密功能的實現
本系統采用RSA算法,結合硬件電路來實現對ECM的所有解密過程。Kerckhoff原理指出:一個加密算法的全部秘密僅立足于密鑰的秘密性之上。因 此,一個根密鑰的泄露對智能卡、對整個CA系統而言都將是毀滅性的,他迫使應用供應商關閉使用的CA系統,而卡的發行商將更換所有的卡。出于保密的需要, 本文在這里僅就密鑰的生成、保護與訪問權限做簡要介紹。
(1)密鑰的生成
對于投入市場、發送到用戶手中的智能卡,一律不寫入根密鑰;對于每張卡內的主控密鑰,其實都是由芯片編號生成的導出密鑰。并且,卡內的密鑰有數10種之 多,且用法各不相同,即使將卡內密鑰悉數破解,也只是妨礙同類卡的安全,即一個組的安全,而一個組的最大用戶僅有256個,這對整個系統并沒有多大妨礙, 本系統在前端部分可以通過對用戶智能卡的芯片編號(具有惟一性)進行跟蹤,一旦發現,可以通過相應手段剔除黑卡,使非法用戶無法取得商業利益。
(2)密鑰的保護
密鑰是放在密鑰文件中,作為內部EF文件存儲于E2PROM中的,內部EF文件本身一旦建立,不允許從終端讀出內部數據的特點,最大程度上保證了密鑰的安 全性。此外,為了進一步提高密鑰的安全性,我們對自己的智能卡內部密鑰文件采用了"線路加密保?quot;方式,即對傳輸的密鑰數據進行RSA加密并附加 4B的MAC(報文鑒別碼),智能卡收到后首先進行校驗,只有校驗正確的數據才予以接受,從而將密鑰泄露的可能性將至最低。
(3)密鑰的訪問
對于投入市場的智能卡,無論采用何種方式,都不可能從智能卡中讀出密鑰數據,這是由智能卡本身硬件電路的安全性特點決定的。對STB移植來說,只要使用專用的智能卡命令,將獲得的ECM,EMM寫入智能卡,就可以得到解擾所需的控制字CW了。
3.3 收費功能的實現
本系統在前端采用與銀行和代理收費點聯網的方式,在終端通過在智能卡內建立文件存儲授權信息,并建立電子錢包文件和普通錢包文件,來實現收費功能。獲得何 種授權和扣款多少由EMM寫入智能卡后分析獲取,對錢包文件的建立也采用了"線路加密保護"方式,以保護消費者的權益。
4、移植結果分析
系統已在ST和NEC方案上進行了移植,并獲得成功,目前正在某機頂盒公司投入生產。從移植結果來看,對智能卡的驅動和讀寫成為移植能否成功的關鍵。
例如,現在在對某方案的移植過程中,STB中的程序在調用讀卡寫卡函數時,會偶爾出現傳輸數據的丟失(主要是首字節的丟失),其實,這是由于智能卡默認數據傳輸速率過高造成的。解決的辦法就是在讀卡函數和寫卡函數前加一個延時函數。
5、未來CAS中智能卡的發展方向
雖然智能卡的應用和制作技術已相當成熟,但由于智能卡是CAS安全的最重要的設備,同時,他與機頂盒之間數據的交換和CW的讀出,都可以被用戶帶回家中進行各種分析和破解,因此,為了增強整個CA系統的安全性,未來CAS中智能卡的發展方向為:可以將解擾模塊集成在智能卡主芯片中,甚至將接收端整個CA模 塊都考慮集成在智能卡中,同時使智能卡具有中間件的部分功能。當然,這樣的設計在目前來看是有技術困難的。首先,集成壓縮后的主芯片要像現在的智能卡那 樣,僅有幾個毫米的厚度,是不太現實的;其次,雖然中間件作為機頂盒軟件結構的核心已經有成熟的應用,但在智能卡中如何實現,也是需要考慮的問題。不過, 隨著社會的發展,一方面會對CAS的安全性提出更高的要求,一方面會推動微電子技術和電子數據處理技術的進一步發展,那么,CAS中智能卡的發展方向,也就可想而知了。
6 、結語
當前,隨著我國數字電視的普及推動和條件接收技術的日臻成熟,已經有越來越多的廠商將目光投向CAS的開發上;同時,眾多的機頂盒開發商也都在自己的產品上移植CA,以適應激烈的市場競爭。因此,研究CAS中的智能卡,無論是對于CAS的研發,還是對于機頂盒的移植,都有借鑒意義。