軟件狗[Dongles]
認(rèn)識(shí)軟件狗。[首先我對(duì)軟件狗作一簡(jiǎn)單介紹,在后面我們將對(duì)各種軟件狗的加密和解密做詳細(xì)的講解。
軟件狗是插在微機(jī)并行口上的一個(gè)軟件保護(hù)裝置,它包括主機(jī)檢查程序和密鑰(也稱加密盒)兩部分。主機(jī)檢查程序就是前面說(shuō)的加密代碼的一部分,加密盒是用來(lái)存放密碼的。一般來(lái)說(shuō),軟件狗插在并行口上,不會(huì)影響打印機(jī)的正常工作。常見的軟件狗加密盒外形,如兩個(gè)一公一母的D行25針連接器倒接在一起,公頭(DB25/M)插在并行口上,母頭(DB25/F)可接打印機(jī),相當(dāng)于原來(lái)的并行口。整個(gè)軟件狗的硬件電路板就在這約5厘米見方的加密盒子里。
電路板上的公頭(DB25/F)之間的管腳是一一對(duì)應(yīng)、直接相聯(lián)結(jié)的,以保證并行口的作用不變。存儲(chǔ)密碼或起信號(hào)加密變換作用的器件及其它輔助元件就跨接在這25根線上面,應(yīng)用程序以特定的方式跟他們溝通、核對(duì)。除了某些設(shè)計(jì)不良的情況之外,一般不會(huì)影響打印機(jī)的正常工作,打印機(jī)工作時(shí)也不會(huì)影響它們。
為了防止程序被非法復(fù)制,所做的加密保護(hù)措施一般都包括兩部分。首先是要有保存密碼數(shù)據(jù)的載體,即密鑰;其次是夾雜在應(yīng)用程序中的主機(jī)檢查程序,即加密代碼。密鑰應(yīng)該能保證不易被解密、復(fù)制;如一般用磁盤做加密時(shí),加密部分無(wú)法用一般的工具復(fù)制。另外,當(dāng)檢查程序用特殊方法去讀密碼時(shí),密碼應(yīng)該能很容易地被讀出,而不致影響應(yīng)用程序的正常執(zhí)行。當(dāng)發(fā)現(xiàn)密碼不對(duì)或密鑰不存在時(shí),就讓主機(jī)掛起、重新起動(dòng)或采用被的措施。
現(xiàn)在狗的技術(shù)發(fā)展很快,針對(duì)不同的應(yīng)用場(chǎng)合有不同的類型,如:
強(qiáng)勁狗:自由定義算法的高強(qiáng)度加密方案
微狗:面向單片機(jī)環(huán)境的高強(qiáng)度加密方案
USB狗: USB接口的微狗全兼容產(chǎn)品
軟件狗:面向單機(jī)環(huán)境的低成本加密方案
網(wǎng)絡(luò)狗:面向網(wǎng)絡(luò)環(huán)境的加密方案
卡式狗:面向網(wǎng)絡(luò)環(huán)境的加密方案
軟件狗采取了各種的加密技術(shù),目前較先進(jìn)的加密技術(shù)有以下幾種:
AS技術(shù):API函數(shù)調(diào)用與SHELL外殼加密結(jié)合,即使外殼被破壞,加密程序依然不能正常運(yùn)行。
反:
a.數(shù)據(jù)交換隨機(jī)噪音技術(shù):有效地對(duì)抗邏輯分析儀分析及各種調(diào)試工具的攻擊。
b.迷宮技術(shù):在程序入口和出口之間包含大量判斷跳轉(zhuǎn)干擾,動(dòng)態(tài)改變執(zhí)行次序,提升狗的抗能力。
抗共享:可從硬件對(duì)抗并口共享器,由開發(fā)商選擇是否共享狗。
口令:可由軟件開發(fā)商設(shè)置32位口令,口令錯(cuò)誤將不能對(duì)存儲(chǔ)區(qū)進(jìn)行讀寫。
時(shí)間閘:某些狗內(nèi)部設(shè)有時(shí)間閘,各種操作必須在規(guī)定的時(shí)間內(nèi)完成。狗正常操作用時(shí)很短,但時(shí)用時(shí)較長(zhǎng),超過(guò)規(guī)定時(shí)間狗將返回錯(cuò)誤結(jié)果。
單片機(jī):硬件內(nèi)置單片機(jī),固化的單片機(jī)軟件保證外部不可讀,從而保證狗不可仿制。
存儲(chǔ)器:提供20字節(jié)掉電保持存儲(chǔ)器供開發(fā)商存放關(guān)鍵數(shù)據(jù)、配置參數(shù)等信息。