資源描述:
《一種改進(jìn)加密Java源碼的方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、COMPUTINGSECURITYTECHNIQUES計(jì)算機(jī)安全技術(shù)一種改進(jìn)加密Java源碼的方法李若亮(沈陽(yáng)華點(diǎn)科技教育有限公司,沈陽(yáng)110141)摘要:Java是當(dāng)今一種被廣泛使用的編程語(yǔ)言。但如何有效地保護(hù)Java源代碼,一直是人們十分關(guān)注的問(wèn)題。針對(duì)現(xiàn)今流行的各種加密Java源碼方法的缺陷或不足,提出一種改進(jìn)并易用的加密方法。關(guān)鍵詞:加密;解密;JCE;JNIAMethodofImprovedEncryptionforJavaSourceCodeLIRuoliang(ShenyangHuadianEducati
2、onTechnologyCo.,LTD,Shenyang110141)Abstract:Javaisoneoftheprogramminglanguagesthatarewidelyusednow.ButhowtoprotecttheJavasourcecodehasbeenbeingaproblemwhichpeoplenoticeclosely.Asthepopularmethodsnowhavemanyfaultsordisadvantages,thisarti-clewilldevelopanencryptio
3、nmethodthatisimprovedandeasilyused.Keyword:encryption;decryption;JCE;JNI1引言體的加密算法,但提供了一個(gè)框架,加密算法的具體實(shí)現(xiàn)可源代碼是程序員們辛苦勞動(dòng)的成果,誰(shuí)都不愿意輕易地以作為服務(wù)提供者加入。除了JCE框架之外,JCE軟件包還拱手相送。對(duì)于一些公司企業(yè)來(lái)說(shuō),源代碼更是至關(guān)重要。包含了SunJCE服務(wù)提供者,其中包括許多有用的加密算法,由于Java采用字節(jié)碼作為中間代碼,因此“天生”就具有極比如DES(DataEncryptionStanda
4、rd)和Blowfish。關(guān)于JCE大的安全問(wèn)題?,F(xiàn)今已流行著幾種保護(hù)的方法,然而都或多的知識(shí)在這不作詳述,請(qǐng)參考有關(guān)資料?;蛏俚卮嬖谥毕莼虿蛔?。針對(duì)以上情況,自行研究出一種每一個(gè)運(yùn)行著的JVM已經(jīng)擁有一個(gè)ClassLoader。這個(gè)默方法。認(rèn)的ClassLoader根據(jù)CLASSPATH環(huán)境變量的值,在本地文2流行方法件系統(tǒng)中尋找合適的class字節(jié)碼文件,并裝載到JVM中。2.1Java模糊處理加密方法的主要思想是:先運(yùn)用JCE寫一個(gè)加密程序,這是當(dāng)前最主流的加密方式。這方面的研究結(jié)果很多,將需要加密的class
5、文件進(jìn)行加密,使得反編譯器無(wú)法反編譯;既有混淆器(如現(xiàn)在大名鼎鼎的JODE,RetroGuard),也有針被加密過(guò)的class文件無(wú)法被JVM裝載,所以需要在運(yùn)行時(shí)進(jìn)對(duì)反編譯器的“炸彈”(如針對(duì)反編譯工具M(jìn)ocha的“炸彈”行解密;這是通過(guò)繼承類ClassLoader并修改它的loadClass方Crema和HoseMocha)。法,對(duì)于沒(méi)有被加密過(guò)的class文件則按原來(lái)的處理方法,而混淆器,顧名思義,它是通過(guò)模糊處理Java代碼,具體對(duì)于被加密過(guò)的class文件則需要進(jìn)行解密。地說(shuō),就是更換變量名、函數(shù)名、類名等方
6、法使其反編譯出算法1用于加密的算法來(lái)的代碼變得難以理解。輸入:需要被加密的類文件名。其實(shí)這只是做到了視覺(jué)上的欺騙處理,其程序邏輯卻依輸出:被加密后的類字節(jié)文件。然不變,只要有耐心,仍是可以攻破的。特別是一些重要的步驟:算法,十分容易被盜用或攻破。另外,修改反編譯器使之能(1)利用類文件名讀取類字節(jié)文件的字節(jié)碼;夠處理這些經(jīng)過(guò)模糊處理的類文件并不是什么難事,所以不(2)利用這個(gè)字節(jié)碼生成加密算法的密鑰;能簡(jiǎn)單地依賴模糊技術(shù)來(lái)保證源代碼的安全。(3)選擇一種Java提供的加密算法,生成用于加密的對(duì)而所謂的“炸彈”是針對(duì)反編
7、譯工具本身的缺陷,這種象;方法對(duì)于特定的反編譯工具是非常有效的,然而到目前為止,(4)使用加密對(duì)象對(duì)類字節(jié)碼進(jìn)行加密,生成新的字節(jié)還沒(méi)有一個(gè)全能型的,對(duì)每一種反編譯工具皆有效,其局限碼;性是明顯的。(5)把經(jīng)過(guò)加密的新字節(jié)碼重新寫到類字節(jié)文件中。2.2修改ClassLoader的加密方式此方法很好地保護(hù)了需要加密的文件,然而卻存在一個(gè)JCE是JavaCryptographyExtension的簡(jiǎn)稱,它是Sun提供作者簡(jiǎn)介:李若亮(1980-),男,技術(shù)總監(jiān),主要從事IT軟的加密服務(wù)軟件,包含了加密和密匙生成功能。JCE
8、是JCA件產(chǎn)品研發(fā)方面的研究。(JavaCryptographyArchitecture)的一種擴(kuò)展。JCE沒(méi)有規(guī)定具收稿日期:2010-07-18-125-電腦編程技巧與維護(hù)致命的漏洞,不能對(duì)用于解密的類文件進(jìn)行加密。整個(gè)解密輸出:被裝載的類。過(guò)程完全暴露出來(lái),用反編譯器反編譯它們,即可得到源碼。步驟:2.3ClassLoade