Sentinel圣天诺加密狗简单使用教程(Linux)
前言:幫學(xué)校的學(xué)長(zhǎng)做了個(gè)Ubuntu的軟件,需要給軟件加密,用到了加密狗,在網(wǎng)上挑了很多,大都不支持Linux下ELF文件的加密,最后終于找到了Sentinel加密狗支持我們的需求,當(dāng)然這個(gè)進(jìn)口貨也很貴,寫(xiě)一篇博客來(lái)記錄一下使用方法。
環(huán)境配置
購(gòu)買(mǎi)Sentinel的加密狗一般包括兩個(gè)U盤(pán),一個(gè)是主鎖(Master key),一個(gè)是子鎖。主鎖只能用來(lái)加密,不能用來(lái)解密;子鎖只能用來(lái)解密,不能用來(lái)加密。例如下圖,我購(gòu)買(mǎi)的產(chǎn)品,藍(lán)色的是主鎖,紫色的子鎖。一般而言,主鎖比較貴(例如我們購(gòu)買(mǎi)的主鎖400多RMB),子鎖相對(duì)便宜一些(我們購(gòu)買(mǎi)的子鎖150多RMB)。并且,在一家供應(yīng)商購(gòu)買(mǎi)的主鎖,對(duì)應(yīng)的子鎖也都只能在同一家供應(yīng)商購(gòu)買(mǎi),這一點(diǎn)還是不太方便的。
有了主鎖和子鎖之后,我們還需要一個(gè)Linux下的SDK工具包,這個(gè)工具包可以問(wèn)你的供應(yīng)商索要。一般供應(yīng)商會(huì)提供一個(gè)Windows下的工具包,在Windows電腦安裝后,從其中可以提取出Linux工具包。工具包的名字一般叫Sentinel-LDK.tar.gz。有了這個(gè)工具包之后,我們需要把這個(gè)壓縮包移動(dòng)到Linux設(shè)備下并解壓。我這里是拖動(dòng)到了Ubuntu虛擬機(jī)里面。Linux工具包解壓后,會(huì)得到一個(gè)叫Linux的文件夾,文件夾里面有這樣一些文件:
其中最后的那個(gè)HTML是Linux的說(shuō)明文檔,可以把它用瀏覽器打開(kāi),看相關(guān)的使用說(shuō)明。
解壓好工具包之后,我們還需要在Ubuntu中安裝這個(gè)工具包,安裝工具可以使用apt,安裝包在Linux/Redistribute/Runtime/文件夾下。
然后找到你對(duì)應(yīng)的Linux發(fā)行版本和設(shè)備類(lèi)型對(duì)應(yīng)的rpm或deb包,安裝即可。我這里的Ubuntu系統(tǒng),amd64設(shè)備,所以我就使用命令sudo apt install ./aksusbd_8.11-1_amd64.deb來(lái)安裝。
安裝完成之后,請(qǐng)?jiān)跒g覽器中打開(kāi)http://localhost:1947,檢查是否安裝成功。正常情況下,安裝成功后應(yīng)該會(huì)顯示Sentinel的管理后臺(tái)。
在管理后臺(tái)的左下方可以選擇語(yǔ)言中文。然后我們點(diǎn)擊上方的Sentinel 鎖,可以查看已連接的U盤(pán)狗。例如我這里的#2就是連接的主鎖。注意這里的#1是保留的序號(hào),正常情況下可以忽略。
在使用主鎖加密之前,我們需要導(dǎo)出主鎖的Vendor code。具體方法是,進(jìn)入Linux/VendorTools/VendorSuite目錄,注意到其中的masterhasp文件,這是一個(gè)可執(zhí)行文件,可以用chmod a+x ./masterhasp添加執(zhí)行權(quán)限。添加完執(zhí)行權(quán)限之后,請(qǐng)使用sudo ./masterhasp運(yùn)行這個(gè)程序(運(yùn)行程序時(shí)需要保證主鎖已經(jīng)插在電腦上,如果是虛擬機(jī)的話,U盤(pán)必須連接到虛擬機(jī)而不是主機(jī)),之所以加sudo是因?yàn)檫@個(gè)程序需要讀取連接的U盤(pán),需要管理員權(quán)限才能進(jìn)行。
執(zhí)行程序后會(huì)彈出這樣一個(gè)窗口
直接按默認(rèn)選項(xiàng),點(diǎn)擊OK即可。然后看到下面這個(gè)窗口,我們選第一個(gè)(按他推薦的來(lái))。
如果你的主鎖正常連接到Linux的話,在新彈出的窗口中會(huì)自動(dòng)讀取到U盤(pán)狗的相關(guān)信息,直接點(diǎn)擊next即可。然后,在下面的這個(gè)窗口,我們勾選所有的API選項(xiàng),并點(diǎn)擊next。
然后會(huì)進(jìn)入漫長(zhǎng)的下載過(guò)程。Sentinel的服務(wù)器在歐洲,并因?yàn)榘踩枨笤趪?guó)內(nèi)沒(méi)有鏡像,但是下載速度還是可以接受的。
下載完成之后,直接點(diǎn)擊Finish。
然后我們打開(kāi)Linux的~/Documents目錄,你會(huì)發(fā)現(xiàn)多了一個(gè)叫Gemalto/的文件夾。
在~/Documents/Gemalto/Sentinel LDK 8.0/VendorCodes目錄下,有一個(gè)以.hvc結(jié)尾的文件,它就是你的Vendor Code文件。你需要妥善的保管它。
加解密方法
在加密時(shí),我們進(jìn)入一開(kāi)始的那個(gè)Sentinel Linux工具包文件夾,進(jìn)入Linux/VendorTools/Envelope目錄,會(huì)發(fā)現(xiàn)其中有一個(gè)文件叫l(wèi)inuxenv,這是一個(gè)可執(zhí)行文件,我們通過(guò)chmod a+x ./linuxenv給他添加執(zhí)行權(quán)限,然后運(yùn)行./linuxenv -h可以看到這個(gè)程序的使用說(shuō)明,這個(gè)程序就是專(zhuān)門(mén)給軟件加密用的。
我們用一個(gè)示例程序來(lái)進(jìn)行加解密演示,這個(gè)程序的文件名叫test_program,它位于Linux/VendorTools/Envelope目錄下。
在加密前,請(qǐng)把之前得到的Vendor Code文件復(fù)制到Linux/VendorTools/Envelope目錄下,即上一步得到的在~/Documents/Gemalto/Sentinel LDK 8.0/VendorCodes目錄下的那個(gè)以.hvc結(jié)尾的文件,復(fù)制到Linux/VendorTools/Envelope目錄下,我們假設(shè)您的Vendor code文件名叫DEMO.hvc(實(shí)際上,這個(gè)Vendor code文件名應(yīng)該每個(gè)用戶都不同)。
然后請(qǐng)您確認(rèn)在Linux/VendorTools/Envelope目錄下是否有這幾個(gè)文件:
- linuxenv (加密程序)
- DEMO.hvc (Vendor code文件,每個(gè)人的文件名都不同)
- test_program (要加密的軟件程序,以你自己需要加密的程序名為準(zhǔn))
有了上面這些文件之后,我們可以直接開(kāi)始加密。
我們使用命令./linuxenv -v:DEMO.hvc test_program test_program_protected來(lái)對(duì)test_program進(jìn)行加密。
這個(gè)命令中,-v的意思是指定Vendor code文件,test_program是要加密的程序,test_program_protected是加密后輸出的程序名。(特別提醒:在執(zhí)行這個(gè)命令時(shí),需要保證您的主鎖正常連接在了電腦上,可通過(guò)http://localhost:1947查看主鎖連接情況)。
加密后,我們執(zhí)行./test_program_protected,會(huì)發(fā)現(xiàn)彈出下面的提示窗口:
這是因?yàn)槲覀儧](méi)有插上子鎖進(jìn)行解密,主鎖只能用來(lái)加密不能用來(lái)解密。我們插上子鎖后,重新執(zhí)行./test_program_protected,會(huì)發(fā)現(xiàn)程序可以正常執(zhí)行了,說(shuō)明我們的保護(hù)是有效的。
并且,可以用readelf -a test_program_protected查看test_program_protected文件的elf頭部信息,會(huì)發(fā)現(xiàn)讀取錯(cuò)誤,說(shuō)明Sentinel對(duì)軟件代碼進(jìn)行了混淆處理,這大大增加了軟件逆向的難度,說(shuō)明我們的加密方案強(qiáng)度是很大的。
總結(jié)
以上是生活随笔為你收集整理的Sentinel圣天诺加密狗简单使用教程(Linux)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 通过系统调用open来查看flag
- 下一篇: Logistics Regression