加密狗
加密狗是加密鎖的另一個(gè)名字是一種插在計(jì)算機(jī)并行口上的軟硬件結(jié)合的加密產(chǎn)品(新型加密狗也有usb口的)。一般都有幾十或幾百字節(jié)的非易失性存儲(chǔ)空間可供讀寫(xiě),現(xiàn)較新的狗(加密狗)內(nèi)部還包含了單片機(jī)。軟件開(kāi)發(fā)者可以通過(guò)接口函數(shù)和加密狗進(jìn)行數(shù)據(jù)交換(即對(duì)加密狗進(jìn)行讀寫(xiě)),來(lái)檢查加密狗是否插在接口上;或者直接用加密狗附帶的工具加密自己EXE文件(俗稱(chēng)“包殼”)。這樣,軟件開(kāi)發(fā)者可以在軟件中設(shè)置多處軟件鎖,利用加密狗做為鑰匙來(lái)打開(kāi)這些鎖;如果沒(méi)插加密狗或加密狗不對(duì)應(yīng),軟件將不能正常執(zhí)行。
加密狗是為軟件開(kāi)發(fā)商提供的一種智能型的具有軟件保護(hù)功能的工具,它包含一個(gè)安裝在計(jì)算機(jī)并行口或USB口上的硬件,及一套適用于各種語(yǔ)言的接口軟件和工具軟件。加密狗基于硬件保護(hù)技術(shù),其目的是通過(guò)對(duì)軟件與數(shù)據(jù)的保護(hù)防止知識(shí)產(chǎn)權(quán)被非法使用。

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