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