加密狗的發展及套用
介紹了國內加密狗的由來及發展歷史,給出各代加密狗的硬體組成及工作原理。詳細講解了第四代加密狗獨特的加密方法與其強大的硬體組成。
加密狗的由來
加密狗是一種用於軟體加密的小型外置硬體設備,現在常見的有並口與USB接口兩種類型,加密狗被廣泛套用於各種軟體之中,其中如著名的繪圖軟體AutoCAD,國內相當數量的工程軟體與財務軟體等。加密狗的成功套用,翻開了軟體智慧財產權保護的新篇章。
國內最早的加密狗是由現北京彩虹天地信息技術有限公司總經理、董事長—陳龍森先生在1990年提出並設計完成的。他的想法是,把一個小的硬體裝置載入到微機的並行口上,其中內置幾個邏輯晶片,作為核心的是一個計數器;然後通過軟體,向外加的硬體裝置傳送脈衝信號,並等待返回信號,如果有,則表明外部存在硬體設備,否則就視作非法運行,被加密軟體停止工作。因此,陳龍森設計的軟體中,專門設有一個模組,用來讀取並行口上的硬體信息。軟體開發的技術人員,可以把實現此項功能的軟體模組,載入到任何需要對用戶信息判斷的地方,進行編譯連線,從而就能形成可以保護自身的軟體產品。
工作原理
加密鎖通過在軟體執行過程中和加密鎖交換數據來實現加密的。加密鎖內置單片機電路(也稱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提供了一套可信的解決方案,從理論上保證軟體加密的安全。
一種控制軟體運行許可權的智慧型加密鎖設計
提出一種直接用在計算機並行口上,通過與計算機進行數據交換來識別計算機端軟體合法性,從而控制軟體運行許可權的硬體加密鎖及其實現方案。加密鎖以單片機為主控晶片,以不影響計算機正常使用列印連線埠為設計原則,以現代加密技術為安全認證核心。並分析了計算機與加密鎖數據交換原理、軟體設計、認證協定和可靠通信的方法。通過測試,證明設計方案實用、可靠。
軟體設計
加密鎖軟體設計包括計算機端的軟體設計和加密鎖端的軟體設計。計算機端的軟體主要是給套用軟體提供調用的函式模組。包括認證驅動模組、會話密鑰產生模組、加密解密模組、數據交換模組。其中,認證驅動模組產生認證請求,如根據時間或事件產生認證請求,當認證事件發生後,應用程式調用其它模組,通過與加密鎖通信來確定當前套用軟體的合法性。會話密鑰產生模組向主調程式返回一定比特數的偽隨機數作為會話密鑰。加密解密模組對給定的明文和密鑰計算出對應的密文,或者對給定的密文和密鑰計算出相應的明文。數據交換模組將計算機中指定的數據傳送到加密鎖,並接收加密鎖返回的數據或確認信號,並在其中設定逾時時間,當逾時次數大於指定次數時,認為加密鎖未接在並行連線埠上,或加密鎖非法。程式採用標準C語言編寫,易於跨平台使用。
可靠通信設計
為了實現計算機和加密鎖的可靠通信,採用以下方法:首先,在通信的數據中增加一個校驗位元組,傳送方在傳送數據時計算校驗位元組,放在其通信數據的最後,而接收方接收到通信數據後首先驗證校驗位元組,如果正確則進行正常的數據處理,否則向傳送方返回非確認信號,從而建立起錯誤重傳送機制。其次,加密鎖平常是處於空閒狀態的,只有在計算機與加密鎖通信時才使加密鎖處於激活狀態。為了識別出計算機使用印表機與計算機和加密鎖通信這兩種情況,計算機在與加密鎖認證之前,向列印口連續傳送‘’0XFF‘’信號,以正確激活加密鎖。
指紋識別加密狗
相比於傳統的加密方案,市面上又出現了一種新型加密狗,
Synaptics宣布了一種新的微型USB加密狗方案,可以插在任何筆記本上,使之立刻具備
指紋識別功能。
該方案基於Synaptics Natural ID安全指紋識別技術,並通過了FIDO安全認證,兼容新廣泛,並完全支持Windows Hello、Microsoft Passport。這個小傢伙非常迷你,插到USB接口上也幾乎感受不到,不會占用多少空間。Synaptics稱之為‘’交鑰匙方案‘’,也就是OEM、ODM廠商可以直接就拿來做成成品並銷售,也可以綁定在筆記本上。
技術發展
隨著解密技術的日益升級,對加密鎖的安全性提出更高要求。傳統的智慧型型可程式加密鎖主張的是‘’代碼片移植‘’——將被保護程式母體分點式鏤空,這個從理論上說是安全的,但是實際並非如此,有以下兩點原因:一是,從已有程式母體中抽出待移植代碼片是一件比較困難的事情,所以抽出的代碼邏輯大多數都相對較簡單;二是,由於加密鎖本身的硬體執行效率限制,複雜的算法在鎖中運行效率將是個最大的瓶頸。
運用案例
1、擎洲廣達工程計價軟體
3、清華斯維爾造價軟體
4、神機妙算造價軟體
5、魯班造價軟體