應(yīng)用文檔
應(yīng)用文檔
首頁
> 應(yīng)用文檔
Sentinel LDK加密狗外殼加密JAVA程序的相關(guān)說明
更新時(shí)間:2018-04-25 14:41:51 點(diǎn)擊量:
SafeNet Sentinel LDK 版本的外殼加密(Envelope)工具可以支持保護(hù)J2EE架構(gòu)的應(yīng)用程序,目前支持 Tomcat(6.0.29 或更高版本), Jboss7.1 從 LDK6.4 版本開始提供支持。此文檔以 LDK7.6 和 tomcat 為例演示對 java 程序的加密操作。
1、加密前的準(zhǔn)備
• Envelope所在電腦已經(jīng)安裝了Jre或者JDK環(huán)境。LDK套件自帶安裝Jre環(huán)境,如果在非套件安裝PC上加密,請手動安裝Jre環(huán)境:對64位系統(tǒng),請同時(shí)安裝x64和x86兩個(gè)版本的Jre,對32位系統(tǒng)請手動安裝x86版本的Jre。
• 在保護(hù)jar或者war文件之前,請先運(yùn)行主鎖向?qū)В瑢?dǎo)出開發(fā)商庫。
• 如果加密war包,請將war里面所有屬于第三方的jar包和.class文件都移出備份,待加密完成后再將移出的部分導(dǎo)入(如果調(diào)用了LDK的API接口,請將LDK API接口封裝包hasp-srm-api.jar也移出備份)。
2、使用 Sentinel LDK Envelope 工具對 jar 或 war 包進(jìn)行保護(hù)
將要保護(hù)的文件加入 envelope 工具,如圖所示,在常規(guī)項(xiàng)中會顯示已經(jīng)解析的所有方法,請先選擇要加密的方法進(jìn)行測試:
點(diǎn)擊左側(cè)“Sentinel 開發(fā)商代碼”,選擇自己的開發(fā)號
對于 tomcat 下面的應(yīng)用,jar 包通常是放置在應(yīng)用目錄下的\WEB-INF\lib 內(nèi),此處先將 DGC 文件添加 .jar 后綴,然后與加密的 standard-1.1.2.jar 以及額外三個(gè) safenet-*.jar 包,共同部署到應(yīng)用目錄\WEB-INF\lib 下面。
(Envelope 提供了全選 select all 和全不選 clear all 的功能,并且可以在 Search list 中通過關(guān)鍵字搜索對應(yīng)的方法。對于一些較大的文件,合理的選擇要加密的方法,可以有效的提高運(yùn)行效率和加密成功率,關(guān)于方法選擇的建議,請參考 envelope 的幫助文檔已經(jīng) release 文檔中的限制條件)

在高級設(shè)置中,將 MESSAGE_OUTPUT_MODE 設(shè)置為(stderr)true,如下圖,
(選擇 stderr 是因?yàn)槟承┫到y(tǒng)沒有 GUI 圖形環(huán)境,程序運(yùn)行時(shí)拋出的提示信息無法顯示導(dǎo)致應(yīng)用啟動失敗,否則也可以使用 windows 模式)

加密 war 包時(shí)此處默認(rèn)選中為 stderr,加密 jar 包時(shí)需要手動設(shè)置
點(diǎn)擊左側(cè)“Sentinel 開發(fā)商代碼”,選擇自己的開發(fā)號

3、部署加密后的文件
Jar 包和 war 包的加密輸出并不相同,下面分別演示兩種文件的部署方式:
加密后的 jar 包(此處以加密 standard-1.1.2.jar 作為演示):加密后,輸出目錄下一般會產(chǎn)生下面這些文件

對于 tomcat 下面的應(yīng)用,jar 包通常是放置在應(yīng)用目錄下的\WEB-INF\lib 內(nèi),此處先將 DGC 文件添加 .jar 后綴,然后與加密的 standard-1.1.2.jar 以及額外三個(gè) safenet-*.jar 包,共同部署到應(yīng)用目錄\WEB-INF\lib 下面。
加密后的 war 包(此處以 helloWorld.war 作為演示):

war 包加密后,產(chǎn)生的文件相對較少,此處只需要將原來移出的 jar 包和.class 文件重新加入,部署時(shí)將 safenet-sentinel-hasp-api-j2ee.jar 放入$CATALINA_HOME/lib 目錄下。
以上為加密后的 jar 包和 war 包部署方式,為了能讓加密后的 java 程序正常工作,還需要部署底層的 native 庫,即加密后產(chǎn)生的一些 dll 文件,通常有兩對(32 位和 64 為版本)共四個(gè):
Windows 平臺:
HASPJava.dll
hasp_windows_82130.dll
HASPJava_x64.dll
hasp_windows_x64_82130.dll
Linux 平臺:
libHASPJava.so
libhasp_linux_82130.so
libHASPJava_x86_64.so
libhasp_linux_x64_82130.so
(linux 上的開發(fā)商庫需要單獨(dú)在 linux 平臺上運(yùn)行 masterhasp 工具導(dǎo)出,LDK 套件中已有文檔說明,此處不再贅述)
(linux 上的開發(fā)商庫需要單獨(dú)在 linux 平臺上運(yùn)行 masterhasp 工具導(dǎo)出,LDK 套件中已有文檔說明,此處不再贅述)
這些庫文件需要放置到 java 程序所能識別的路徑中,例如:$CATALINA_HOME/bin,$JAVA_HOME/bin,/usr/lib,/usr/lib64 或者 windows 的系統(tǒng)路徑 c:\windows\system32,c:\windows\sysWoW64 等,如果部署后運(yùn)行仍然提示 H0400 錯(cuò)誤(沒有找到開發(fā)商庫),請?jiān)诃h(huán)境變量中添加 LD_LIBRARY_PATH 變量,并將開發(fā)商庫(名稱中帶數(shù)字的庫)所在目錄路徑賦給此變量。
提示:java 程序加密的限制條件,請參考 LDK 的 release 文檔和 envelope 的幫助文檔,以下是目前已知的對這些類型的java程序加密后可能運(yùn)行出錯(cuò)的描述:
提示:java 程序加密的限制條件,請參考 LDK 的 release 文檔和 envelope 的幫助文檔,以下是目前已知的對這些類型的java程序加密后可能運(yùn)行出錯(cuò)的描述:
使用 Hibernate 服務(wù)的方法。
使用作為引導(dǎo)程序方法或引導(dǎo)程序?qū)傩詤?shù)創(chuàng)建的 Synthetic 方法的方法。
動態(tài)方法。
反射方法。
反序列化或類型轉(zhuǎn)換方法