市場上常見幾種軟件狗的簡單介紹 彩虹天地:在中國應(yīng)該算是老大了,從第一代到第四代的產(chǎn)品都有,但它的主要產(chǎn)品還是第三代的微狗(TD-MH),該代產(chǎn)品中有干擾芯片,能隨時產(chǎn)生無用的干擾信號,更加有效的對抗邏輯分析儀;雖然有第四代的強勁狗(CS-QA),但好象有不少問題,所以推出的USB接口的加密鎖還是兼容微狗的。彩虹天地的加密強度不高,最簡單的pj方法就是隨便買一個狗,然后復(fù)制成要解的狗。 深思洛克:也是一個比較有名的,至2001年初最主要的產(chǎn)品就是第四代的深思Ⅲ型加密狗,特點就是用戶可在狗中定義自己的算法,這大大加強了其保護能力,但它的CPU功能還不夠強,算法上有漏洞,而且只提供一種加密方式,所以也是可以擊破的,并且也能硬件復(fù)制原狗。此類狗加密的產(chǎn)品有Pkpm結(jié)構(gòu)計算軟件、分析家股票軟件、圓方cad軟件等等。 深思 Ⅲ 的n階黑箱模型法: 深思 Ⅲ 的n階黑箱模型法并不是簡單的記憶,而是通過深思 Ⅲ 獨特的完全可編程使得深思 Ⅲ 鎖對于輸入和輸出呈現(xiàn)高階黑箱控制模型的特征。每次調(diào)用代碼運行時使用鎖內(nèi)存儲作為運算變量和參數(shù),改變鎖的狀態(tài)影響后續(xù)的調(diào)用。用戶自定義的代碼沒有任何的說明書和特征,甚至兩次相同的調(diào)用會返回不同的有用的結(jié)果。這是深思 Ⅲ 獨特之處。 以上加密范例并不要求加密者尋找復(fù)雜并難以預(yù)料的函數(shù)關(guān)系加以移植。 如果是采用0階黑箱模型那么輸入與輸出具有直接的對應(yīng)關(guān)系 y=f(x1,x2),其中x1,x2為本次輸入,y為本次輸出。這時如果函數(shù)關(guān)系簡單就很容易被解密者破譯,比如用迭代法、插值法和列表法等方法逼近;這就迫使加密者尋求復(fù)雜函數(shù)來防止解密者的破譯和仿真。但由于鎖內(nèi)資源的限制使得軟件移植幾乎不可能?,F(xiàn)在采用n階黑箱模型,就使得輸入與輸出的對應(yīng)關(guān)系復(fù)雜化: yn=f(yn-1,yn-2,yn-3,...,y1,xn1,xn2),其中,y1,y2,...,yn-1為以前n-1次調(diào)用輸出或隱藏的結(jié)果,xn1,xn2為本次(第n次)調(diào)用的輸入?yún)?shù)。 面對這樣的復(fù)雜關(guān)系,解密者簡單地取消中間的任何一次調(diào)用都可能使后邊的結(jié)果發(fā)生錯誤,既使是簡單的函數(shù)關(guān)系也可以被這高階黑箱過程隱藏得難以推測。這樣,借助于高階黑箱模型法很容易找到應(yīng)用軟件中可以利用的公式或函數(shù)作為加密的對象。 n階黑箱模型法使用過程中一樣可以使用碼表法,例如,范例中的第一次調(diào)用。 但是,這樣的碼表法不同的加密點互相關(guān)聯(lián),必須進行整體解密,這就大大地提高了加密強度。使用傳統(tǒng)的0階黑箱模型時,不同的加密點之間互不關(guān)聯(lián)只需各個擊破分別解密即可,其復(fù)雜度無法與n階黑箱模型相比。對于比較復(fù)雜的函數(shù),盡管鎖內(nèi)沒有足夠的資源,還是可以通過n階模型法進行加密處理我們可以將復(fù)雜函數(shù)化為簡單函數(shù)的運算組合,例如:y=(a-b)*(a+b)+c可以先計算(a-b)和(a+b)然后將結(jié)果相乘再加c。 n階模型嚴(yán)格說是不可解的(只是目前理論上,也請深思公司記住這一點),因為第n次輸出依賴于前n-1次輸入和輸出,而前n-1次輸出可能已部分或全部被隱藏,所以第n次輸出無法推測,至少推測n-1次輸入產(chǎn)生的輸出要比一次輸入產(chǎn)生的輸出復(fù)雜度有質(zhì)的飛躍。 深思 Ⅲ 具有完備的指令系統(tǒng),可以通過編程實現(xiàn)n階或任意階黑箱模型,每次調(diào)用互相關(guān)聯(lián),并且可以絕對隱藏中間結(jié)果,只要使用得當(dāng),理論上是不可解的( 我的理論是沒有不可解的:) 飛天誠信:是新崛起的一家,主要產(chǎn)品是ROCKEY-IV和相兼容的USB狗,技術(shù)支持比較好,功能比較多,它的外殼加密程序很不錯,用在加密上主要是8號功能(種子碼)和14、15、16號功能(都是自定義算法),它的自定義算法比深思的產(chǎn)品好,“沒有”漏洞(目前理論上說)。如果很好地使用它加密,是極難pj的。但大多數(shù)開發(fā)商都很偷懶,比如就只用8號功能(種子碼)來加密。 制作和出售軟件狗的公司很多,你只要注意一下計算機雜志上的廣告就能得知。各公司生產(chǎn)的軟件狗除了上述特點外,一般都有一些為吸引用戶而附加的功能,主要是一些工具軟件,其核心技術(shù)卻是大同小異。 加密狗的一般特點
1、不占用并行口,因為它雖然插在并行口上,但是它又提供了一個跟原來一致的并行口。 2、軟件具有防解密功能,可對抗各種調(diào)試工具的跟蹤。 3、一狗一密碼或一種線路,軟硬件不可互換,就像一把鎖一把鑰匙那樣。 4、提供各種語言的編程接口以及一套實用工具,方便用戶在自己開發(fā)的程序中嵌入加密模塊。 5、提供對可執(zhí)行文件的加密工具,以便用戶對已有的產(chǎn)品進行加密。 目前主流軟件加密鎖的不足
對軟件加密保護產(chǎn)品而言,使用者最關(guān)心的是加密的有效性,產(chǎn)品的兼容性和穩(wěn)定性。目前市場上主要的軟件加密鎖硬件內(nèi)部均含有單片機,即所謂內(nèi)置CPU,軟件廠商主要是利用算法功能進行加密。加密鎖通常還增加了一些輔助功能,比如倒計數(shù)器、遠(yuǎn)程升級等。這類型加密鎖主要產(chǎn)品有彩虹天地的“微狗”“SuperPro”、深思洛克的“深思Ⅰ、III型”、 ALADDIN的HASP3、4等。通過對這些軟件鎖進行分析,認(rèn)為從安全性上講他們至少有三方面致命的薄弱點: 薄弱點1:設(shè)計原理有很大缺陷 目前主流的加密鎖硬件提供了讀、寫和算法變換功能,且算法變換關(guān)系難以pj和窮舉。但這類加密鎖最大的缺陷是算法不向軟件廠商公開,鎖內(nèi)的變換算法在出廠時已經(jīng)固定,軟件加密者只能設(shè)置算法的參數(shù)。這樣就限制了廠商對算法的使用,要么預(yù)先記錄算法結(jié)果然后在軟件運行時核對(使用碼表),要么在軟件中至少變換兩次然后比較結(jié)果是否一致;如果解密者截獲這些數(shù)據(jù),通過統(tǒng)計、分析就有可達(dá)到解密目的。 薄弱點2:加密鎖受處理能力的限制,無法為軟件提供強有力的保護 市場上曾先后推出了幾款“可編程”加密鎖。這類型加密鎖最大的特點就是可以讓用戶自行設(shè)計專用算法?!翱删幊獭奔用苕i的出現(xiàn)的確是軟件加密技術(shù)的一次進步。深思洛克的“深思III”、飛天誠信的“Rockey4”均屬此類產(chǎn)品。 但由于成本限制,這類型加密鎖往往只能采用10~20元人民幣的通用8位單片機或同檔次的ASIC芯片作為核心微處理器。這種低檔單片機的處理運算能力是相當(dāng)弱的,這就給 “可編程”加密鎖造成了很大的局限性,主要表現(xiàn)在:1、算法變換的復(fù)雜度不夠高,2、指令編碼空間較小,3、程序區(qū)的空間較小。這些局限性使得用戶根本不可能利用“可編程”加密鎖實現(xiàn)理想的高強度加密方案。 薄弱點3:硬件本身抵抗惡意攻擊的能力較弱 隨著集成電路設(shè)計、生產(chǎn)技術(shù)的發(fā)展,安全產(chǎn)品的核心芯片硬件本身受到攻擊的可能性越來越大。典型的硬件攻擊手段有電子探測攻擊(如SPA和DPA)和物理攻擊(探測,如采用SiShell技術(shù)),下面我們就這方面進行簡要的分析。 電子探測(SPA和DPA)攻擊技術(shù)的原理是:單片機芯片是一個活動的電子元器件,當(dāng)它執(zhí)行不同的指令時,對應(yīng)的電功率消耗也相應(yīng)的變化。通過使用特殊的電子測量儀和數(shù)學(xué)統(tǒng)計技術(shù),來檢測和分析這些變化,從中得到單片機中的特定關(guān)鍵信息。 物理攻擊的方法有:通過掃描電子顯微鏡對芯片內(nèi)部存儲器或其它邏輯直接進行分析讀取;通過測試探頭讀取存儲器內(nèi)容;通過從外部無法獲取的接口(例如廠家測試點)對存儲器或處理器進行直接數(shù)據(jù)存?。辉偌せ顔纹瑱C的測試功能等。 由于通用低檔單片機并非定位于制作安全類產(chǎn)品,沒有提供有針對性的防范物理攻擊手段,因此比較容易通過電子探測(SPA和DPA)攻擊直接讀出存儲器內(nèi)的數(shù)據(jù)。雖然大多數(shù)普通單片機都具有熔絲燒斷保護單片機內(nèi)代碼的功能,但此類芯片應(yīng)用場合廣、發(fā)行批量大,隨著廠商間委托加工與頻繁技術(shù)轉(zhuǎn)讓,使得利用該類芯片下載程序的設(shè)計漏洞,利用廠商的芯片測試接口,通過特殊的燒寫時序和數(shù)據(jù)讀出信息成為比較容易的事情。 ASIC芯片是完全根據(jù)用戶需求而特別定做,屬于小批量生產(chǎn)。由于其采用特殊的邏輯電路且不會輕易公開測試功能接口,因此只要以其為基礎(chǔ)開發(fā)的系統(tǒng)不是保存重要的信息或者不用于高級別的安全場合還是可以防范一般情況下的物理攻擊。 加密鎖性能判定 加密鎖很小巧,包含的技術(shù)內(nèi)容卻很豐富。一般我們從三個方面分析加密鎖的性能: 第一個是加密原理,或者說加密鎖有些什么功能,這往往是針對一些解密方法發(fā)展起來的,最需要創(chuàng)造性的地方就是這里。國內(nèi)產(chǎn)品在這個方面一直與國外產(chǎn)品具備足夠的競爭能力。 第二個是加密鎖的可靠性、穩(wěn)定性、兼容性、透明性等。這些是對鎖的基本要求,但是做完整并不容易,尤其是兼容性、透明性問題,加密廠家在這方面有著豐富的經(jīng)驗,但是沒有誰可以100%保證。透明性是鎖的一個比較特殊的指標(biāo),由于鎖是工作在并口(打印口),并口還會有其他設(shè)備,比如打印機、繪圖儀、硬盤、光驅(qū)等,鎖如果影響到原來設(shè)備的正常工作就是透明性不夠好,完全的透明是難以做到的,一般的加密廠家不保證鎖對并口硬盤、光驅(qū)等設(shè)備的透明性。 |