加密狗
加密狗是加密鎖的另一個名字是一種插在計算機并行口上的軟硬件結(jié)合的加密產(chǎn)品(新型加密狗也有usb口的)。一般都有幾十或幾百字節(jié)的非易失性存儲空間可供讀寫,現(xiàn)較新的狗(加密狗)內(nèi)部還包含了單片機。軟件開發(fā)者可以通過接口函數(shù)和加密狗進行數(shù)據(jù)交換(即對加密狗進行讀寫),來檢查加密狗是否插在接口上;或者直接用加密狗附帶的工具加密自己EXE文件(俗稱“包殼”)。這樣,軟件開發(fā)者可以在軟件中設(shè)置多處軟件鎖,利用加密狗做為鑰匙來打開這些鎖;如果沒插加密狗或加密狗不對應(yīng),軟件將不能正常執(zhí)行。
加密狗是為軟件開發(fā)商提供的一種智能型的具有軟件保護功能的工具,它包含一個安裝在計算機并行口或USB口上的硬件,及一套適用于各種語言的接口軟件和工具軟件。加密狗基于硬件保護技術(shù),其目的是通過對軟件與數(shù)據(jù)的保護防止知識產(chǎn)權(quán)被非法使用。
發(fā)展歷程 編輯本段
介紹了國內(nèi)加密狗的由來及發(fā)展歷史,給出各代加密狗的硬件組成及工作原理。詳細講解了第四代加密狗獨特的加密方法與其強大的硬件組成。
加密狗是一種用于軟件加密的小型外置硬件設(shè)備,現(xiàn)在常見的有并口與USB接口兩種類型,加密狗被廣泛應(yīng)用于各種軟件之中,其中如著名的繪圖軟件AutoCAD,國內(nèi)相當(dāng)數(shù)量的工程軟件與財務(wù)軟件等。加密狗的成功應(yīng)用,翻開了軟件知識產(chǎn)權(quán)保護的新篇章。
國內(nèi)最早的加密狗是由現(xiàn)北京彩虹天地信息技術(shù)有限公司總經(jīng)理、董事長—陳龍森先生在1990年提出并設(shè)計完成的。他的想法是,把一個小的硬件裝置加載到微機的并行口上,其中內(nèi)置幾個邏輯芯片,作為核心的是一個計數(shù)器;然后通過軟件,向外加的硬件裝置發(fā)送脈沖信號,并等待返回信號,如果有,則表明外部存在硬件設(shè)備,否則就視作非法運行,被加密軟件停止工作。因此,陳龍森設(shè)計的軟件中,專門設(shè)有一個模塊,用來讀取并行口上的硬件信息。軟件開發(fā)的技術(shù)人員,可以把實現(xiàn)此項功能的軟件模塊,加載到任何需要對用戶信息判斷的地方,進行編譯連接,從而就能形成可以保護自身的軟件產(chǎn)品。
加密鎖通過在軟件執(zhí)行過程中和加密鎖交換數(shù)據(jù)來實現(xiàn)加密的。加密鎖內(nèi)置單片機電路(也稱MCU),使得加密鎖具有判斷、分析的處理能力,增強了主動的反解密能力。這種加密產(chǎn)品稱它為"智能型"加密鎖。加密鎖內(nèi)置的單片機里包含有專用于加密的算法軟件,該軟件被寫入單片機后,就不能再被讀出。這樣,就保證了加密鎖硬件不能被復(fù)制。同時,加密算法是不可預(yù)知、不可逆的。
加密算法可以把一個數(shù)字或字符變換成一個整數(shù),如DogConvert(1)=17345、DogConvert(A)=43565。下面,我們舉個例子說明單片機算法的使用。比如一段程序中有這樣一句:A=Fx(3)。程序要根據(jù)常量3來得到變量A的值。于是,我們就可以把原程序這樣改寫:A=Fx(DogConvert(1)-17342)。那么原程序中就不會出現(xiàn)常量3,而取之以DogConvert(1)-17342。這樣,只有軟件編寫者才知道實際調(diào)用的常量是3。而如果沒有加密鎖,DogConvert函數(shù)就不能返回正確結(jié)果,結(jié)果算式A=Fx(DogConvert(1)-17342)結(jié)果也肯定不會正確。這種使盜版用戶得不到軟件使用價值的加密方式,要比一發(fā)現(xiàn)非法使用就警告、中止的加密方式更溫和、更隱蔽、更令解密者難以琢磨。
此外,加密鎖還有讀寫函數(shù)可以用作對加密鎖內(nèi)部的存儲器的讀寫。于是我們可以把上算式中的17342也寫到加密鎖的存儲器中去,令A(yù)的值完全取決于DogConvert()和DogRead()函數(shù)的結(jié)果,令解密難上加難。不過,一般說來,加密鎖單片機的算法難度要低于一些公開的加密算法,如DES等,因為解密者在觸及加密鎖的算法之前要面對許多難關(guān)。
最新進展
最新的硬件加密原理
隨著解密技術(shù)的發(fā)展,單片機加密狗由于其算法簡單,存儲空間小,容易被硬件復(fù)制等原因,正逐漸被市場所淘汰。以北京深思洛克軟件技術(shù)股份有限公司為首的國內(nèi)加密狗廠商研發(fā)出穩(wěn)定性更好、存儲空間更大(最大為64K)、有效防止硬克隆的第四代加密狗——‘’智能卡‘’加密狗,‘’智能卡‘’加密狗以其獨創(chuàng)的‘’代碼移植‘’原理,已經(jīng)被國內(nèi)大型商業(yè)軟件開發(fā)商如擎洲廣達、金蝶、用友、CAXA、廣聯(lián)達、神機妙算、魯班……所采用。
以世界上第一款智能卡加密鎖——精銳IV為例,簡單介紹一下‘’代碼移植‘’原理。
‘’代碼移植‘’加密原理為一種全新的、可信的軟件保護模型,工作原理為:軟件中部分代碼經(jīng)過編譯,‘’移植‘’到加密鎖硬件內(nèi)部,軟件中沒有該段代碼的副本。
在這套軟件保護方案中,PC端應(yīng)用軟件的關(guān)鍵的代碼和數(shù)據(jù)‘’消失‘’了,被安全地移植到精銳IV型加密鎖的硬件中保護起來。在需要使用時,應(yīng)用軟件可以通過功能調(diào)用引擎來指令精銳IV運行硬件中的關(guān)鍵代碼和數(shù)據(jù)并返回結(jié)果,從而依然可以完成整個軟件全部的功能。由于這些代碼和數(shù)據(jù)在PC端沒有副本存在,因此解密者無從猜測算法或竊取數(shù)據(jù),從而極大程度上保證了整個軟件系統(tǒng)的安全性。簡言之,精銳IV提供了一套可信的解決方案,從理論上保證軟件加密的安全。
產(chǎn)品設(shè)計 編輯本段
提出一種直接用在計算機并行口上,通過與計算機進行數(shù)據(jù)交換來識別計算機端軟件合法性,從而控制軟件運行權(quán)限的硬件加密鎖及其實現(xiàn)方案。加密鎖以單片機為主控芯片,以不影響計算機正常使用打印端口為設(shè)計原則,以現(xiàn)代加密技術(shù)為安全認證核心。并分析了計算機與加密鎖數(shù)據(jù)交換原理、軟件設(shè)計、認證協(xié)議和可靠通信的方法。通過測試,證明設(shè)計方案實用、可靠。
軟件設(shè)計
加密鎖軟件設(shè)計包括計算機端的軟件設(shè)計和加密鎖端的軟件設(shè)計。計算機端的軟件主要是給應(yīng)用軟件提供調(diào)用的函數(shù)模塊。包括認證驅(qū)動模塊、會話密鑰產(chǎn)生模塊、加密解密模塊、數(shù)據(jù)交換模塊。其中,認證驅(qū)動模塊產(chǎn)生認證請求,如根據(jù)時間或事件產(chǎn)生認證請求,當(dāng)認證事件發(fā)生后,應(yīng)用程序調(diào)用其它模塊,通過與加密鎖通信來確定當(dāng)前應(yīng)用軟件的合法性。會話密鑰產(chǎn)生模塊向主調(diào)程序返回一定比特數(shù)的偽隨機數(shù)作為會話密鑰。加密解密模塊對給定的明文和密鑰計算出對應(yīng)的密文,或者對給定的密文和密鑰計算出相應(yīng)的明文。數(shù)據(jù)交換模塊將計算機中指定的數(shù)據(jù)發(fā)送到加密鎖,并接收加密鎖返回的數(shù)據(jù)或確認信號,并在其中設(shè)置超時時間,當(dāng)超時次數(shù)大于指定次數(shù)時,認為加密鎖未接在并行端口上,或加密鎖非法。程序采用標(biāo)準(zhǔn)C語言編寫,易于跨平臺使用。
可靠通信設(shè)計
為了實現(xiàn)計算機和加密鎖的可靠通信,采用以下方法:首先,在通信的數(shù)據(jù)中增加一個校驗字節(jié),發(fā)送方在發(fā)送數(shù)據(jù)時計算校驗字節(jié),放在其通信數(shù)據(jù)的最后,而接收方接收到通信數(shù)據(jù)后首先驗證校驗字節(jié),如果正確則進行正常的數(shù)據(jù)處理,否則向發(fā)送方返回非確認信號,從而建立起錯誤重發(fā)送機制。其次,加密鎖平常是處于空閑狀態(tài)的,只有在計算機與加密鎖通信時才使加密鎖處于激活狀態(tài)。為了識別出計算機使用打印機與計算機和加密鎖通信這兩種情況,計算機在與加密鎖認證之前,向打印口連續(xù)發(fā)送‘’0XFF‘’信號,以正確激活加密鎖。
指紋識別
相比于傳統(tǒng)的加密方案,市面上又出現(xiàn)了一種新型加密狗,Synaptics宣布了一種新的微型USB加密狗方案,可以插在任何筆記本上,使之立刻具備指紋識別功能。
該方案基于Synaptics Natural ID安全指紋識別技術(shù),并通過了FIDO安全認證,兼容新廣泛,并完全支持Windows Hello、Microsoft Passport。這個小家伙非常迷你,插到USB接口上也幾乎感受不到,不會占用多少空間。Synaptics稱之為‘’交鑰匙方案‘’,也就是OEM、ODM廠商可以直接就拿來做成成品并銷售,也可以綁定在筆記本上。
隨著解密技術(shù)的日益升級,對加密鎖的安全性提出更高要求。傳統(tǒng)的智能型可編程加密鎖主張的是‘’代碼片移植‘’——將被保護程序母體分點式鏤空,這個從理論上說是安全的,但是實際并非如此,有以下兩點原因:一是,從已有程序母體中抽出待移植代碼片是一件比較困難的事情,所以抽出的代碼邏輯大多數(shù)都相對較簡單;二是,由于加密鎖本身的硬件執(zhí)行效率限制,復(fù)雜的算法在鎖中運行效率將是個最大的瓶頸。
運用案例
1、擎洲廣達工程計價軟件
2、廣聯(lián)達造價軟件
3、清華斯維爾造價軟件
4、神機妙算造價軟件
5、魯班造價軟件
附件列表
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。