利用FPGA的新功能保證視頻設(shè)計安全性
越來越多的消費(fèi)應(yīng)用開始在設(shè)計中集成流式視頻,結(jié)果引入了許多標(biāo)準(zhǔn)和專有的加密算法。但是加密方案以及實現(xiàn)方法不統(tǒng)一導(dǎo)致視頻接收設(shè)備在設(shè)計和支持方面存在巨大的挑戰(zhàn)。DeviceDNA作為FPGA的一項新功能,可保證視頻接收機(jī)的設(shè)計安全,同時還可為測試和驗證流程提供支持,從而提供成本經(jīng)濟(jì)的高質(zhì)量安全解決方案,支持多種不同的視頻流加密協(xié)議。
視頻越來越多地應(yīng)用在我們生活中,除了在電視上的應(yīng)用,還被應(yīng)用在計算機(jī)、汽車、PDA/PMP、iPod和手機(jī)上。現(xiàn)在,甚至冰箱上可能也應(yīng)用視頻!
消費(fèi)者希望能夠隨時隨地享有視頻所帶來的便利,但是如此廣泛的視頻需求產(chǎn)生了大量不同的流式視頻壓縮標(biāo)準(zhǔn),以滿足對不同屏幕尺寸分辨率以及高帶寬的要求。
要為這么多不同種類的設(shè)備提供視頻內(nèi)容支持,因此在傳統(tǒng)有線電視和衛(wèi)星供應(yīng)商之外又誕生了許多新的視頻流提供源(以及相應(yīng)的廠商)。電話線、因特網(wǎng)和無線通信,在支持流式視頻發(fā)展的同時也為流式視頻帶來了明顯的安全問題。為了解決這一問題,不同的流式視頻源引入并采用了越來越多的標(biāo)準(zhǔn)和專有加密算法。然而,不同廠商間加密方案以及實現(xiàn)方法不統(tǒng)一導(dǎo)致視頻接收設(shè)備在設(shè)計和支持方面存在巨大的挑戰(zhàn)。
FPGA提供靈活的解決方案
多年來,低成本FPGA器件已經(jīng)成為機(jī)頂盒和視頻網(wǎng)關(guān)的關(guān)鍵器件,可提供視頻增強(qiáng)、丟失像素替換、視頻轉(zhuǎn)換、產(chǎn)品靈活性以及產(chǎn)品差異等功能。此外,這些器件還允許生產(chǎn)商方便地支持不同的技術(shù)和協(xié)議,如圖2所示。
FPGA平臺的傳統(tǒng)靈活性以及專用的算法功能是解決多種不斷變化的標(biāo)準(zhǔn)和專有加密算法的理想解決方案。器件重配置能力可以根據(jù)需要方便地改變解密算法。通過FPGA器件重配置,設(shè)計可利用更少的邏輯門和更少的器件,從而以更低的總體成本支持更多算法?,F(xiàn)場可升級能力能夠快速方便地應(yīng)對新算法和算法變化,因此可保證產(chǎn)品是未來適用的(future-proofing),并且不必進(jìn)行昂貴的現(xiàn)場更換即可延長現(xiàn)有產(chǎn)品的壽命。
硬件安全問題
視頻源提供商的擔(dān)心已經(jīng)不僅局限于視頻流本身的安全性,而是已經(jīng)擴(kuò)展到接收硬件的安全性。有些視頻源提供商正在設(shè)法將其許可和視頻流限定范圍定為能夠提供安全視頻接收機(jī)的系統(tǒng)。這需要很多企業(yè)尋求減少支持的數(shù)量并提高器件級的安全性,以進(jìn)一步提高總體設(shè)計的安全水平。可編程邏輯器件生產(chǎn)商賽靈思公司提供的FPGA平臺則可解決這一問題。該平臺的DeviceDNA技術(shù)可提供支持多種解密算法的能力和更高的器件級安全性。
DeviceDNA允許設(shè)備生產(chǎn)商將一個獨(dú)一無二的非易失工廠序列號直接寫入到FPGA器件中。每個器件的ID都不同,因此可以將設(shè)計綁定到特定的FPGA器件中。DeviceDNA可以作為接收設(shè)備的獨(dú)特序列號,一個唯一的許可代碼,或者與用戶定義的寫在FPGA構(gòu)造中的認(rèn)證算法配合使用,從而將特定的設(shè)計與特定FPGA器件緊密綁定在一起。如果某些人試圖克隆或拷貝認(rèn)證過的設(shè)計,或者將位流寫入另一片不同的FPGA器件,那么由于器件的ID號碼變化,設(shè)計就不會通過認(rèn)證。DeviceDNA是一個57位長的序列號,可以通過器件內(nèi)部的邏輯構(gòu)造讀取。
DeviceDNA與用戶定義認(rèn)證算法緊密結(jié)合能夠以合理的系統(tǒng)成本實現(xiàn)所需要的安全度。在采用認(rèn)證算法的方法中,安全性的關(guān)鍵是算法本身。在本方法中,安全過程中必須有某些部分要保密,在本案例中則是用戶定義的算法本身。由于算法在PPGA邏輯構(gòu)造中實現(xiàn),因此成為FPGA數(shù)百萬配置位中的少數(shù)位。除非知道這些位如何組合在一起,或者知道算法本身,否則參于任何試圖拷貝設(shè)計的人來說,看起來都僅僅是一堆數(shù)字。
用戶定義的算法可以如系統(tǒng)所需要的一樣簡單或復(fù)雜 - 例如:可以是簡單的哈希算法,或者更為復(fù)雜的三次DES、AES6?、128或256位,甚至是完全定制的算法。同時還可以將用戶定義的認(rèn)證算法集成到接收器的認(rèn)證流程內(nèi)部。這樣可以進(jìn)一步將接收單元與視頻流系統(tǒng)、設(shè)計與特定的接收單元捆綁在一起,從而進(jìn)一步提高抵抗克隆的安全能力。此外,算法可以改變以支持不同的視頻解密協(xié)議配置,甚至在不同型號或不同代產(chǎn)品間采用不同的算法,從而進(jìn)一步保證安全性。
安全性提高對生產(chǎn)的影響
硬件安全性問題同樣適用于生產(chǎn)流程,特別是板級測試和驗證。因此,設(shè)計中經(jīng)常將JTAG功能移除,因為JTAG功能易使設(shè)計導(dǎo)致反向工程。許多企業(yè)都采用JTAG來縮短測試時間并提高測量和驗證流程中的系統(tǒng)測試覆蓋范圍。然而,沒有JTAG,就需要更多的測試,特別是系統(tǒng)級測試來保證一定的測試覆蓋范圍。不使用JTAG技術(shù)會提高生產(chǎn)成本,并最終影響到系統(tǒng)總成本。
JTAG的問題在于INTEST命令,用于檢查設(shè)計的內(nèi)部邏輯功能。反向工程時,這一命令可用來判斷設(shè)計的功能。圖3給出了一個簡單的例子,其中數(shù)據(jù)移入寄存器,執(zhí)行INTEST命令,這樣數(shù)據(jù)會在時鐘作用下移入邏輯構(gòu)造,進(jìn)入下一寄存器,結(jié)果可以被讀出。由于可將總體設(shè)計的復(fù)雜度縮小到更小的邏輯模塊,因此這一命令可使反向工程的工作更容易。
一些FPGA平臺可幫助防止發(fā)生這一過程,同時仍然允許生產(chǎn)商完成其管腳至管腳(pin-to-pin)功能。例如,在Xilinx? Spartan?-3A 平臺中, 可在設(shè)計中使用BSCAN_SPARTAN3A宏模塊,其檢測邏輯可監(jiān)控FPGA構(gòu)造中的JTAG控制信號,如圖4所示。如果檢測到JTAG控制信號的活動,用戶在設(shè)計可以立即繞過關(guān)鍵邏輯或關(guān)斷關(guān)鍵功能,不再執(zhí)行正確的功能。這樣反向工程人員讀到的將是不正確的功能模塊,在不能完成預(yù)期功能的解決方案上浪費(fèi)時間和資源。
支持DeviceDNA的FPGA平臺可保證視頻接收機(jī)的設(shè)計安全,同時還可為測試和驗證流程提供支持,從而能夠提供成本經(jīng)濟(jì)的高質(zhì)量安全解決方案,支持多種不同的視頻流加密協(xié)議。