2009年11月18日 星期三

HDCP

HDCP,全稱High-Bandwidth Digital Content Protection,中文名稱是高頻寬數位內容保護。是由英特爾公司所發展,用以確保數位化的影像聲音資料在通過DVIHDMI介面傳送時不至於遭到非法拷貝。HDCP的規格受到多項專利權保護,任何人欲實作HDCP必須申請授權
HDCP的授權管理是由英特爾子公司數位內容保護公司」(Digital Content Protection, LLC)負責。除了交付授權金之外,生產HDCP相容設備的廠商必須限制其產品功能,例如高清畫面(解析度超過480p者)在通過產品上不支援HDCP的介面播放時必須支援碟片需求將解析度降至480p(詳見「AACS」條目),而DVD聲訊在通過不支援HDCP的介面時必須被強制降到DAT等級的類比輸出。所有支援HDCP的影音播放設備都不得支援數位資料直接拷貝功能,並且必須「將其產品設計到足以打消大多數破解者的念頭」。
基本來說,欲播放有HDCP保護的影音內容如HD DVDBlu-ray DiscPlayStation 3遊戲(透過HDMI輸出時),訊號來源(播放機電腦顯示卡)和顯示器雙方都必須內建HDCP密鑰晶片才能正常播放。若系統任何一者不配備此密匙晶片,影像質素有可能降低,甚至不能播放影像。現時某些顯示卡已內建HDCP晶片,有限度支持HDMI輸出。




規格

HDCP的主要目標是防止未加密的高清晰度影音內容被傳送出去。為此HDCP當中設計了三套系統以達成此目標:
  1. 一個驗證流程以防止未經授權的裝置接收到高清晰度內容。
  2. 將通過DVI與HDMI介面的資料加密以防止資料被竊聽。並同時防止「中介者」破解法。
  3. 一個金鑰撤銷機制,以確保任何違反HDCP協議的裝置可以相對容易的被排除。
所有支援HDCP的裝置都有一組獨特的金鑰:一個金鑰組含有40把56bits長度的金鑰,如廠商將其外流將被視為違反HDCP授權協議。此外每一 個金鑰組都還會附帶一組特別的金鑰稱為KSV(Key Selection Vector)。KSV內容有40bits且其中0與1各佔20bits。
在驗證流程中播放與顯示兩側將交換其KSV,雙方將收到對方的KSV中為1的bit欄位所指向的金鑰做加總取得一個56bits的共同金鑰;金鑰組與KSV的生成過程將確保雙方驗證的結果可得到同一組56bits金鑰。
加密過程是以串流方式進行。每個像素資料都會和金鑰所推導出的24bits整數作XOR運算,且每一個frame都會再產生不同的金鑰。
如果某些特定的機器被認為遭到破解,其KSV參數將被放入黑名單當中,並透過新發售的碟片或作業系統更新而散出。黑名單必須經過HDCP驗證管理中心電子簽章,以確保不會有人惡意干擾其他合法機器的運作。如果接收端的KSV被傳送端發現處於黑名單中。傳送端將會拒絕傳送內容。

收費

廠商每年要向Digital HDCP委員會支付15000美元,而每售出一件產品,要再支付0.04美元專利費。

密碼破解

密碼破解專家們於2001年首度公開了HDCP協定中的數個嚴重漏洞(當時尚未有任何HDCP產品上市)。來自卡內基美隆大學的Scott Crosby 與Ian Goldberg, Robert Johnson, Dawn Song, David Wagner 等人共同在2001年11月5日ACM-CCS8大會數位內容管理小組中發表了一篇論文名為 "A Cryptanalysis of the High-bandwidth Digital Content Protection System" [1]
該論文摘要如下
"HDCP的線性金鑰交換機制存在基本的弱點,使得我們可以:
  • 竊聽任何傳送中的資料
  • 只靠其公開金鑰部分即可複製任何HDCP裝置
  • 避免任何裝置被列入黑名單
  • 未經授權而生成新的合法KSV
  • 以上機能合在一起可以導致我們完全篡取HDCP協會的權威性。"
在大約同時間,密碼學家Niels Ferguson也宣佈破解了HDCP,但是他並未公開其研究結果,因為擔憂公開之後隨之而來的法律問題。
最為人所知的HDCP破解方法是conspiracy attack,將一定數量的HDCP裝置破解並收集其資訊後,理論上可破解出HDCP授權中心的私鑰。

用途

  • HD DVDBlu-ray Disc播放機可接受影音光碟片上的「影像限制符碼」(Image Constraint Token;ICT),並且依據其內容決定是否要將傳送內容以HDCP協定加密。如果此類播放機被連接到不支援HDCP的電視機,且光碟片的ICT標註此內容應經HDCP加密,則播放機會強制把輸出畫面降低解析度至960x540像素(扣除NTSC Overscan範圍之後,即為720x480像素的DVD解析度)。目前可接受HDTV訊號的電視機並不一定支援HDCP,使得HD DVD與Blu-ray Disc對此類電視的擁有者吸引力大減。為此,電影製作公司在現階段同意暫時不在任何HDDVD或BD影片上面加上ICT,直至2011年[1] [2]
  • 微軟已經宣告它的次世代作業系統Windows Vista將會在螢幕與顯示卡相關軟體元件中支援HDCP技術。[3] [4]
  • 2005年,一些有能力破解並移除HDCP保護訊號的中介裝置已經在沒有數位內容保護法案的國家被研發並銷售,通常是以介於播放機與電視之間的轉接盒形式存在。The Clicker: HDCP's Shiny Red Button (2005-07-21)

Source Insight


1) 第一步當然是開新專案囉 [Project] → [New Project]
(在這邊填入你想要的Project名稱以及你source code所在的資料夾)


2) 下一步後出現 New Project Setting,這裡我是覺得直接用default就可以了


3) 下一步就要開始來做加入專案檔案囉! 基本上在Directory那邊應該就是你整個程式的資料夾,
在File Name這裡選擇要加入的檔案。

基本上我都直接按 [Add All],也就是將整個專案都加入啦!這邊要注意的就是你選Add All會出現
一個小視窗,預設值應該都只有勾第一個,記得把第二個勾起來(這個勾起來就是連同子目錄全選)



4) 接下來呢就請到[Opetions]→[Document Options]把你要全部有關聯的檔案通通加一下,
因為SI支援的類型實在太多啦





5) 嘿!別忘了做[Project]→[Synchronize files],選項按照你的需求記得勾一勾,
這就是同步檔案啦!這樣就算完成啦!

PS:從[View]→[Relation Window]把右下角的relation叫出來,也可以直接對著那直接點








Source Insight 教學收集