一個(gè)加密鎖的安全性主要由以下二項(xiàng)指標(biāo)決定:
1、 防pj能力
2、 防復(fù)制能力
現(xiàn)在常用的加密鎖分兩類,一類是在程序中使用驗(yàn)證的方式(可以是算法或數(shù)據(jù)驗(yàn)證的方式,也可以是直接驗(yàn)證,或間接驗(yàn)證的方式)檢查是否存在加密鎖,我們這里統(tǒng)稱為驗(yàn)證型加密鎖。另一種是將程序的部分代碼放到鎖中,在鎖中運(yùn)行,沒有鎖,就相當(dāng)于程序少了部分代碼,從而達(dá)到防止pj的目前的,我們這里統(tǒng)稱為代碼型加密鎖。
驗(yàn)證型加密鎖開發(fā)相對容易,但加密強(qiáng)度一般,價(jià)錢相對較低。
驗(yàn)證型加密鎖要增加加密強(qiáng)度主要就是防止程序被反編譯,以防止黑客將程序中驗(yàn)證部分的代碼跳過,要防止程序被反編譯,就要對程序進(jìn)行加殼或混淆,所以對于驗(yàn)證型加密鎖,加密強(qiáng)度采決于殼或混淆的強(qiáng)度。
殼有兩種方式,一種是虛擬殼,一種是整體殼。虛擬殼的安全性更高,因?yàn)榇a被虛擬了,所以相對不容易被解。
驗(yàn)證型加密鎖如何有效地加強(qiáng)防pj?
1、源代碼加密,在源代碼加密中可以使用直接驗(yàn)證加密鎖及間接驗(yàn)證的方式結(jié)合使用。
2、在源代碼加密時(shí){zh0}是使用算法驗(yàn)證及數(shù)據(jù)驗(yàn)證相結(jié)合的方式,而不是簡單的數(shù)據(jù)驗(yàn)證。
3、除了源代碼加密外,建議再加殼。
4、加殼時(shí)建議使用帶虛擬機(jī)的殼,我們的外殼加密工具10都有虛擬機(jī)這個(gè)選項(xiàng),建議選中
5、加密shou段越多,被pj的可能性就越小,別人pj的難道就越大,pj的時(shí)間就越長,成本就越高,只要使得別人pj的成本要遠(yuǎn)遠(yuǎn)大于購一個(gè)軟件或自己寫一個(gè)軟件的成本就足夠了。
代碼型加密鎖開發(fā)相對復(fù)雜,因?yàn)橐龃a的移值工作,要將程序中的部分代碼移到鎖中運(yùn)行,但加密強(qiáng)度高,價(jià)錢相對較高。
代碼型加密鎖,加密強(qiáng)度采決于有效的代移值碼量。有效就是指在鎖中運(yùn)行的代碼本身就是程序中的一部分,而不是代碼在鎖中運(yùn)算后,再在程序中進(jìn)行驗(yàn)證這樣的代碼,是能與程序有效結(jié)合的代碼。在鎖中運(yùn)行的代碼越多,越復(fù)雜,就越難pj或不能pj。由于加密鎖的CPU的運(yùn)算速度遠(yuǎn)小于電腦的CPU及加密鎖的內(nèi)存也遠(yuǎn)小于電腦的內(nèi)存,且加密鎖的CPU與電腦的CPU是相互獨(dú)立的,加密鎖的不能直接操作電腦的CPU及內(nèi)存,所以并不是所有的代碼都可以移值到加密鎖中。
要衡量代碼型加密鎖的性能,取決于加密鎖中的指令(即可以移值的代碼)及可以移值的代碼量。
對于加密鎖指令(即可以移值的代碼),指令越多,就能使用得更多的程序代碼可以移值到鎖中(因?yàn)榍懊嫣岬?,不是所有的程序中的所有代碼都可以移值到鎖中在鎖中運(yùn)行)。例如我們的經(jīng)濟(jì)易用型(UEL-1M),只有有限的指令集:賦值,移位,與、或及異或運(yùn)算,只能操作字節(jié);專業(yè)型(UPL-E)除了賦值,移位,與、或及異或運(yùn)算外,還增加了加,減運(yùn)算。而下載型智能鎖(DSMART),支持所有的字符操作及數(shù)學(xué)運(yùn)算操作,可以操作任意數(shù)據(jù)。最強(qiáng)大的32位智能鎖(UPL-32C/R)及易用型智能鎖(UPL-8)除了支持所有的字符操作及數(shù)學(xué)運(yùn)算操作,還可以在鎖中調(diào)用外部程序的函數(shù)及外部DLL及外部控件,這樣就使得代碼的移值工作更容易,更有效地與程序結(jié)合起來,安全性越高。
對于可以移值的代碼量,除了下載型智能鎖(DSMART)由于使用的是將代碼直接下載到鎖中,是固定的,所有代碼量是有限制的,目前最多只能是{zd0}可以下載24K的代碼到鎖中。其它型號(hào)的代碼型加密鎖都是使用動(dòng)態(tài)的方式,在需要的時(shí)候動(dòng)態(tài)地加裝,在不需要的時(shí)候動(dòng)態(tài)地卸載,所以代碼量不受限制,是可以無限的。
1、盡量地將程序中的部分代碼移到鎖中運(yùn)行,在鎖中運(yùn)行的代碼越多,越復(fù)雜就越安全。
2、在鎖中運(yùn)行的代碼盡量不要返回固定的數(shù)據(jù),{zh0}是隨著輸入變量的不同,返回不同的結(jié)果的代碼。
3、如果程序可以移值到鎖中的代碼不多,可以使用在鎖中運(yùn)行部分自定義算法進(jìn)行對變量加密,然后在程序中將變量進(jìn)行加密,然后再加殼或混淆。
4、建議加殼或混淆
5、加密shou段越多,被pj的可能性就越小,別人pj的難道就越大,pj的時(shí)間就越長,成本就越高,只要使得別人pj的成本要遠(yuǎn)遠(yuǎn)大于購一個(gè)軟件或自己寫一個(gè)軟件的成本就足夠了。
另一個(gè)重要的衡量一個(gè)加密鎖的性的重要指標(biāo)是,當(dāng)軟件被pj后的后續(xù)解決方案,即加密鎖是否具備二次防pj能力:
由于軟件開發(fā)商大多都不太具備專業(yè)的加密知識(shí),一般專注于軟件的開發(fā),所以可能花在加密上面的時(shí)間不太多,所以即便是好的加密鎖,如果使用不當(dāng),也容易出現(xiàn)被pj的可能。那程序被pj后,能否有效地在新的升級(jí)版本防止盜版用戶繼續(xù)使用新的升級(jí)軟件,是一個(gè)很重要的指標(biāo)。如果新的升級(jí)版本,可以使用得正版用戶不受影響,而盜版用戶不能再使用新的升級(jí)版本,這樣那些盜版用戶就會(huì)有潛在成為正版用戶的可能,從而更大的保護(hù)及增加開發(fā)商的利益。
我們的32位智能鎖(UPL-32R/C),易用版智能鎖UPL-8及下載型智能鎖(DSAMRT), 經(jīng)濟(jì)易用型(UEL-1M)及專業(yè)型(UPL-E)代碼型加密鎖都有這樣的二次防pj能力。當(dāng)舊版程序由于加密不當(dāng)被pj后,開發(fā)商只需要使用相同的密鑰,重新生成新的加密單元,重新進(jìn)行正確的加密,這樣新加密后的程序,原正版用戶可以正常使用,而盜版用戶不能使用,這樣當(dāng)盜版用戶有升級(jí)的要求時(shí),而原有的使用習(xí)慣不能改變時(shí)就會(huì)有升級(jí)正版的可能。
復(fù)制又分軟復(fù)制及硬復(fù)制。
軟復(fù)制是指黑客得到了用戶設(shè)置在加密鎖的相關(guān)數(shù)據(jù),然后在軟件開發(fā)商中采購相同型號(hào)的空白鎖,將原來的數(shù)據(jù)設(shè)置到鎖中。黑客是如何得到用戶設(shè)置在加密鎖的相關(guān)數(shù)據(jù)呢?
黑客主要是通用對程序進(jìn)行pj或使用數(shù)據(jù)攔截等技術(shù)得到加密鎖的相關(guān)數(shù)據(jù)。如果用戶加密不當(dāng),就很容易被復(fù)制。例如用戶只是簡單地將某一數(shù)據(jù)設(shè)置到鎖的數(shù)據(jù)區(qū)中,然后讀出進(jìn)行判斷。這樣黑客就可以很輕易地使用攔截技術(shù)(因?yàn)閷⒓用苕i的數(shù)據(jù)返回到程序中要經(jīng)過很多中間層,任何一層進(jìn)行攔載都可以)得到程序想要的數(shù)據(jù)。
1、 對于YT699加密鎖,因?yàn)樗挥幸粋€(gè)增強(qiáng)算法,所以要防止軟復(fù)制,就要對程序加殼或混淆,加殼時(shí)建議選中虛擬機(jī)。
2、對于YT88加密鎖,只要設(shè)置好普通算法,同時(shí)設(shè)置增強(qiáng)算法一及增強(qiáng)算法二,就可以有效地防止加密鎖被模擬。普通算法及增強(qiáng)算法密鑰{zh0}不要太簡單,因?yàn)槿绻唵蔚脑挘腿菀妆粍e人猜出。
3、對于其它型號(hào)來說,只要密鑰不要太簡單,密鑰不讓別人猜出的話,黑客就不能進(jìn)行軟復(fù)制。
硬復(fù)制是指直接在硬件上克隆一個(gè)wq相同的鎖。
1、除了32位智能鎖(UPL-32C/R)及易用型智能鎖(UPL-8)外,所有的型號(hào)的鎖都不能防止被硬復(fù)制,原因是:隨著科技的不斷進(jìn)步,現(xiàn)在的科技連人的胚胎都可以復(fù)制,原子都可以移動(dòng),何況這些是人大量生產(chǎn)出來的東西,主要是看復(fù)制的成本。我們的32位智能鎖(UPL-32C/R)及易用型智能鎖(UPL-8)不是不能復(fù)制,而是復(fù)制后不能使用,主要是他的工作原理不一樣,采用了獨(dú)有的防克隆技術(shù)。
2、對于其它型號(hào),智能芯片要比普通單片機(jī)的防復(fù)制能力要強(qiáng)很多,即復(fù)制成本要比單機(jī)片的強(qiáng)很多或目前階段不能硬復(fù)制,我們的智能鎖芯片系列加密鎖安全級(jí)別達(dá)EAL4+,所以如果價(jià)錢可以接受的話,推薦使用智能芯片的型號(hào),我們所有的系列型號(hào)的鎖都有智能芯片可選。