天天看點

CA系統的安全讨論

本文轉自:http://stb.eefocus.com/article/09-08/1421471250595571.html

    本期DVBCN進一步探讨CA系統的安全性問題,之前有網友A認為無卡CA技術還是安全的,無卡CA沒有被破解的記錄,反倒是智能卡CA被破解得很厲害。CA的安全是靠晶片捆綁保護,實際上也是和晶片捆綁的,隻不過捆綁的不是智能卡晶片,而是捆綁了主晶片以及帶有ID号的FLASH和DRAM,不論智能卡CA還是無卡CA,它的安全性都是取決于與晶片的捆綁。晶片硬體越複雜,破解的難度就越大,對應捆綁的CA安全性就越高。既然是和晶片捆綁,從安全的角度來講,捆綁多個晶片肯定要比捆綁一個晶片安全性要高,捆綁機頂盒晶片肯定比捆綁智能卡晶片安全性高。也有網友B認為靠技術封閉獲得CA的安全性不可取。

     但這次網友C卻認為從目前情況來看,無卡CA明顯先天不足。由于進階安全特性晶片未廣泛應用,現有的無卡CA有的是沒有硬體安全保護,有的是在主機闆上增加一塊安全晶片(注意不是進階安全特性晶片,而是在普通機頂盒晶片旁增加的一塊負責安全功能的晶片)。沒有硬體安全保護的無卡CA,黑客僅需要複制機頂盒的FLASH就能制造盜版機頂盒觀看節目,完全沒有安全性可言;而增加一塊安全晶片的無卡CA,事實上是将智能卡的一部分安全保障功能轉移到安全晶片中完成,同樣存在回傳CW的通道加密問題及機頂盒中CW被盜取的漏洞。而安全晶片沒有智能卡的溫度探測、電壓探測及自毀功能,容易被黑客跟蹤内部程式,安全性不如采用智能卡的CA系統。詳讀下文:

     近期來,論壇上對CA系統安全性的質疑紛紛揚揚,甚至有人認為數字電視營運商就不應該上CA系統。對于這些質疑者的論調,我認為大家首先應該了解的是:任何安全性都是相對而言的。目前應用的安全系統,包括公認安全性較高的銀行系統,都是通過密碼算法、密鑰、密碼協定、密碼政策、密碼管理等來保障其安全性的。而一個系統有密碼算法,就有破解算法,關鍵是破解算法所需的計算量。比如銀行系統,由于采用了設計嚴密的SET/SSL協定,選用了強度較高的RSA非對稱算法、數字簽名及數字證書技術,使得黑客即使采用目前最先進的計算裝置,硬性破解銀行系統也需要幾百年時間。CA系統的安全性,同樣是依靠密碼算法和協定來保障的。當然由于CA系統的私有性,各種CA系統采用的算法不一,有采用RSA和3DES融合算法的,也有僅采用DES算法的,也就是說,目前CA系統的算法強度不在一個數量級上。若采用強度最低的DES算法,黑客用一台PC十幾天時間就能用窮舉法獲得密鑰,破解CA。而采用RSA和3DES融合算法,以窮舉法破解的時間會在百年以上。一句話,任何系統都是能被破解的,關鍵是破解系統所需的時間、支出與破解系統所得利益之間的關系。

      當然,CA系統的安全性不僅僅依靠密碼算法的強度,也依賴于整個系統協定的健全性。許多CA系統的破解,都不是因為黑客攻破了算法,而是利用了系統的漏洞。對于CA系統而言,CW是整個系統的重中之重,對于一套加密節目,同一營運商的所有機頂盒都使用相同的CW對碼流解擾。是以,如何獲得CW就成為了黑客們千方百計尋找的漏洞。

      目前,黑客們一般會采用三種方法擷取CW。第一種是從機頂盒與智能卡之間的通信接口截取CW。由于智能卡解出CW後必須回傳給機頂盒,這就成為了黑客們盯上的首要漏洞。以前的CA系統很多是将CW明文回傳的,黑客能很容易地截取并分析出CW。随着CA技術的發展,如今大多數的CA系統已經對機卡之間的通信接口作了加密保護。由于CA系統的私有性,機卡通信加密算法的強度也有強有弱,有的CA系統僅用固定密鑰配合對稱算法對機卡通信信道加密,黑客們能很容易地用窮舉法推算出密鑰,破解系統。而較先進的CA系統則采用了一次一密的動态密鑰加密算法,每次機頂盒開機後,都會與智能卡協商産生不同的會話密鑰。頻繁的密鑰變化,使黑客們無法搜集足夠多的密文推算密鑰,即使推算出了密鑰,也僅能應用于某段時間而無法長期使用。

      第二種方法是智能卡共享,也就是用一張正版的智能卡帶動兩台以上的機頂盒。将多台機頂盒與智能卡的通信資料接到同一張智能卡中,即可利用正版智能卡的計算能力向多台機頂盒回傳CW。對于這一系統漏洞,各家CA系統基本都采取了有效的封堵措施。首先是機卡配對,由CA前端發送配對指令,使須配對的機頂盒與智能卡中存有相同的數字序列,每次機頂盒開機時都會與智能卡互動驗證該序列,這就使得一台機頂盒隻能與一張智能卡配合,限制了智能卡的共享。但機卡配對并不能完全杜絕智能卡共享的發生,黑客可複制機頂盒的FLASH,使多台機頂盒都存有相同的配對序列,破壞機卡配對。而一次一密的機卡間加密通信則能從根本上解決該問題。每次開機時,機頂盒和智能卡之間都會根據智能卡号、目前時間及智能卡生成的随機數等協商生成會話密鑰,也就是說,即使兩台機頂盒完全一樣,由于開機時間和智能卡生成的随機數不同,協商的會話密鑰也将不同。這就從根本上保證了智能卡無法同時與兩台以上的機頂盒通信,杜絕了智能卡共享的發生。

      第三種方法是從機頂盒中直接盜取CW,這也是目前大多數CA系統無法防範的一個漏洞。由于CW被寫入解擾器時必須是明文的,是以若黑客跟蹤機頂盒内程式運作,或直接在機頂盒中利用CA移植的機會安裝後門程式,都會洩漏CW。解決該問題的一種辦法,是在機頂盒中選用進階安全特性晶片。由于進階安全特性晶片具有唯一的ID号、加解密算法引擎及可讓CA廠商定制寫入的OTP(onetimeprogramming)區域,CW被傳入晶片時完全可以是加密的,CW可在晶片内部解密并寫入解擾器。進階安全特性晶片還封閉了JTAG調試接口,使黑客無法跟蹤晶片内部程式運作,保證了CW的安全。但目前進階安全特性晶片的應用還存在着較大的問題,晶片成本的增加、晶片必須由CA廠商定制引起的供貨周期大幅度延長都會對整個産業鍊産生影響。是以,進階安全特性晶片目前還處于起步階段,實際應用很少。

      為了在現階段解決機頂盒中CW被盜用的漏洞,某些較有遠見的CA廠商采用了所謂的“CA核心下沉技術”。即與主流晶片廠商簽訂協定,由晶片廠商向該CA廠商開放解擾器的驅動代碼與硬體接口,由CA廠商将解擾器的驅動程式直接包含在CA核心中,這樣,CA廠商就獲得了對解擾器的直接控制,可以在CA核心中完成CW的解密與寫入,封堵了機頂盒中CW被盜用的漏洞。這種方法增加了CA廠商的工作量(需要根據不同的機頂盒晶片開發不同的CA核心),但在進階安全特性晶片未得到推廣的今天,無疑是解決機頂盒中CW盜用問題的較好方法。

      針對前面提到的三種黑客破解方式,有廠商提出了無卡CA的解決方案,也就是不要智能卡,CA系統解密功能均在機頂盒中完成。從目前情況來看,無卡CA明顯先天不足。由于進階安全特性晶片未廣泛應用,現有的無卡CA有的是沒有硬體安全保護,有的是在主機闆上增加一塊安全晶片(注意不是進階安全特性晶片,而是在普通機頂盒晶片旁增加的一塊負責安全功能的晶片)。沒有硬體安全保護的無卡CA,黑客僅需要複制機頂盒的FLASH就能制造盜版機頂盒觀看節目,完全沒有安全性可言;而增加一塊安全晶片的無卡CA,事實上是将智能卡的一部分安全保障功能轉移到安全晶片中完成,同樣存在回傳CW的通道加密問題及機頂盒中CW被盜取的漏洞。而安全晶片沒有智能卡的溫度探測、電壓探測及自毀功能,容易被黑客跟蹤内部程式,安全性不如采用智能卡的CA系統。

      安全性是CA系統的基礎,但CA系統并不僅僅隻有安全功能。數字電視營運商需要CA系統的支援和配合來管理使用者、管理産品、開發增值服務,是以,CA是數字電視系統中不可或缺的一部分。當然,CA系統最根本的仍是其安全性,雖然從理論上說世界上沒有破不了的系統,但優秀的CA系統完全可以做到使黑客破解的成本遠大于破解後所得的利益,關鍵是數字電視營運商選擇的CA系統是否足夠優秀。

繼續閱讀