加密狗

加密鎖是一種插在計算機並行口上的軟硬件結合的加密產品(新型加密鎖也有usb口的)。一般都有幾十或幾百字節的非易失性存儲空間可供讀寫,現較新的狗(加密鎖)內部還包含了單片機。軟件開發者可以通過接口函數和加密鎖進行數據交換(即對加密鎖進行讀寫),來檢查加密鎖是否插在接口上;或者直接用加密鎖附帶的工具加密自己EXE文件(俗稱“包殼”)。這樣,軟件開發者可以在軟件中設置多處軟件鎖,利用加密鎖做爲鑰匙來打開這些鎖;如果沒插加密鎖或加密鎖不對應,軟件將不能正常執行。

加密鎖是爲軟件開發商提供的一種智能型的具有軟件保護功能的工具,它包含一個安裝在計算機並行口或USB 口上的硬件,及一套適用於各種語言的接口軟件和工具軟件。加密鎖基於硬件保護技術,其目的是通過對軟件與數據的保護防止知識產權被非法使用。

加密鎖通常被叫成加密狗,是加密鎖的另一個名字(外號)。

加密狗的發展及應用

編輯

介紹了國內加密狗的由來及發展歷史,給出各代加密狗的硬件組成及工作原理。詳細講解了第四代加密狗獨特的加密方法與其強大的硬件組成。 [1] 

加密狗的由來

加密狗是一種用於軟件加密的小型外置硬件設備,現在常見的有並口與USB接口兩種類型,加密狗被廣泛應用於各種軟件之中,其中如著名的繪圖軟件AutoCAD,國內相當數量的工程軟件與財務軟件等。加密狗的成功應用,翻開了軟件知識產權保護的新篇章。

國內最早的加密狗是由現北京彩虹天地信息技術有限公司總經理、董事長—陳龍森先生在1990年提出並設計完成的。他的想法是,把一個小的硬件裝置加載到微機的並行口上,其中內置幾個邏輯芯片,作爲核心的是一個計數器;然後通過軟件,向外加的硬件裝置發送脈衝信號,並等待返回信號,如果有,則表明外部存在硬件設備,否則就視作非法運行,被加密軟件停止工作。因此,陳龍森設計的軟件中,專門設有一個模塊,用來讀取並行口上的硬件信息。軟件開發的技術人員,可以把實現此項功能的軟件模塊,加載到任何需要對用戶信息判斷的地方,進行編譯連接,從而就能形成可以保護自身的軟件產品。 [1] 

工作原理

加密鎖通過在軟件執行過程中和加密鎖交換數據來實現加密的。加密鎖內置單片機電路(也稱MCU),使得加密鎖具有判斷、分析的處理能力,增強了主動的反解密能力。這種加密產品稱它爲"智能型"加密鎖。加密鎖內置的單片機裏包含有專用於加密的算法軟件,該軟件被寫入單片機後,就不能再被讀出。這樣,就保證了加密鎖硬件不能被複制。同時,加密算法是不可預知、不可逆的。

加密算法可以把一個數字或字符變換成一個整數,如DogConvert(1)=17345、DogConvert(A)=43565。下面,我們舉個例子說明單片機算法的使用。 比如一段程序中有這樣一句:A=Fx(3)。程序要根據常量3來得到變量A的值。於是,我們就可以把原程序這樣改寫:A=Fx(DogConvert(1)-17342)。那麼原程序中就不會出現常量3,而取之以DogConvert(1)-17342。這樣,只有軟件編寫者才知道實際調用的常量是3。而如果沒有加密鎖,DogConvert函數就不能返回正確結果,結果算式A=Fx(DogConvert(1)-17342)結果也肯定不會正確。這種使盜版用戶得不到軟件使用價值的加密方式,要比一發現非法使用就警告、中止的加密方式更溫和、更隱蔽、更令解密者難以琢磨。

最新進展

最新的硬件加密原理

隨着解密技術的發展,單片機加密狗由於其算法簡單,存儲空間小,容易被硬件複製等原因,正逐漸被市場所淘汰。以北京深思洛克軟件技術股份有限公司爲首的國內加密狗廠商研發出穩定性更好、存儲空間更大(最大爲64K)、有效防止硬克隆的第四代加密狗——‘’智能卡‘’加密狗,‘’智能卡‘’加密狗以其獨創的‘’代碼移植‘’原理,已經被國內大型商業軟件開發商如擎洲廣達、金蝶、用友、CAXA、廣聯達、神機妙算、魯班……所採用。

以世界上第一款智能卡加密鎖——精銳IV爲例,簡單介紹一下‘’代碼移植‘’原理。

‘’代碼移植‘’加密原理爲一種全新的、可信的軟件保護模型,工作原理爲:軟件中部分代碼經過編譯,‘’移植‘’到加密鎖硬件內部,軟件中沒有該段代碼的副本。

在這套軟件保護方案中,PC端應用軟件的關鍵的代碼和數據‘’消失‘’了,被安全地移植到精銳IV型加密鎖的硬件中保護起來。在需要使用時,應用軟件可以通過功能調用引擎來指令精銳IV運行硬件中的關鍵代碼和數據並返回結果,從而依然可以完成整個軟件全部的功能。由於這些代碼和數據在PC端沒有副本存在,因此解密者無從猜測算法或竊取數據,從而極大程度上保證了整個軟件系統的安全性。簡言之,精銳IV提供了一套可信的解決方案,從理論上保證軟件加密的安全。

一種控制軟件運行權限的智能加密鎖設計

編輯

提出一種直接用在計算機並行口上,通過與計算機進行數據交換來識別計算機端軟件合法性,從而控制軟件運行權限的硬件加密鎖及其實現方案。加密鎖以單片機爲主控芯片,以不影響計算機正常使用打印端口爲設計原則,以現代加密技術爲安全認證核心。並分析了計算機與加密鎖數據交換原理、軟件設計、認證協議和可靠通信的方法。通過測試,證明設計方案實用、可靠。 [2] 

軟件設計

加密鎖軟件設計包括計算機端的軟件設計和加密鎖端的軟件設計。計算機端的軟件主要是給應用軟件提供調用的函數模塊。包括認證驅動模塊、會話密鑰產生模塊、加密解密模塊、數據交換模塊。其中,認證驅動模塊產生認證請求,如根據時間或事件產生認證請求,當認證事件發生後,應用程序調用其它模塊,通過與加密鎖通信來確定當前應用軟件的合法性。會話密鑰產生模塊向主調程序返回一定比特數的僞隨機數作爲會話密鑰。加密解密模塊對給定的明文和密鑰計算出對應的密文,或者對給定的密文和密鑰計算出相應的明文。數據交換模塊將計算機中指定的數據發送到加密鎖,並接收加密鎖返回的數據或確認信號,並在其中設置超時時間,當超時次數大於指定次數時,認爲加密鎖未接在並行端口上,或加密鎖非法。程序採用標準C語言編寫,易於跨平臺使用。 [2] 

可靠通信設計

爲了實現計算機和加密鎖的可靠通信,採用以下方法:首先,在通信的數據中增加一個校驗字節,發送方在發送數據時計算校驗字節,放在其通信數據的最後,而接收方接收到通信數據後首先驗證校驗字節,如果正確則進行正常的數據處理,否則向發送方返回非確認信號,從而建立起錯誤重發送機制。其次,加密鎖平常是處於空閒狀態的,只有在計算機與加密鎖通信時才使加密鎖處於激活狀態。爲了識別出計算機使用打印機與計算機和加密鎖通信這兩種情況,計算機在與加密鎖認證之前,向打印口連續發送‘’0XFF‘’信號,以正確激活加密鎖。 [2] 

指紋識別加密狗

相比於傳統的加密方案,市面上又出現了一種新型加密狗,Synaptics宣佈了一種新的微型USB加密狗方案,可以插在任何筆記本上,使之立刻具備指紋識別功能。

該方案基於Synaptics Natural ID安全指紋識別技術,並通過了FIDO安全認證,兼容新廣泛,並完全支持Windows Hello、Microsoft Passport。這個小傢伙非常迷你,插到USB接口上也幾乎感受不到,不會佔用多少空間。Synaptics稱之爲‘’交鑰匙方案‘’,也就是OEM、ODM廠商可以直接就拿來做成成品並銷售,也可以綁定在筆記本上。

技術發展

隨着解密技術的日益升級,對加密鎖的安全性提出更高要求。傳統的智能型可編程加密鎖主張的是‘’代碼片移植‘’——將被保護程序母體分點式鏤空,這個從理論上說是安全的,但是實際並非如此,有以下兩點原因:一是,從已有程序母體中抽出待移植代碼片是一件比較困難的事情,所以抽出的代碼邏輯大多數都相對較簡單;二是,由於加密鎖本身的硬件執行效率限制,複雜的算法在鎖中運行效率將是個最大的瓶頸。

運用案例

1、擎洲廣達工程計價軟件

2、廣聯達造價軟件

3、清華斯維爾造價軟件

4、神機妙算造價軟件

5、魯班造價軟件

原網址:https://baike.baidu.com/item/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%8A%A0%E5%AF%86%E9%94%81/23647070?fromtitle=%E5%8A%A0%E5%AF%86%E9%94%81&fromid=10131434

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章