Peter 工程日誌

在Ubuntu 18.04上分析自然人憑證client端程式

前言

前置環境

客戶端程式

接著切換到「HiPKILocalSignServer」目錄底下,裡面幾個重要的檔案如下:

上述這些執行檔都在本地端動作

執行本地端HiPKILocalSignServer

請求網址HTTP response body對應的cURL指令
http://127.0.0.1:61161/pkcs11inforesponse.jsoncurl -X POST http://127.0.0.1:61161/pkcs11info
http://127.0.0.1:61161/signresponse.jsoncurl 'http://127.0.0.1:61161/sign' --data-binary 'tbsPackage={"tbs":"123","pin":1234}'
http://127.0.0.1:61161/decryptresponse.jsoncurl 'http://127.0.0.1:61161/decrypt' --data-binary 'tbsPackage={"cipher":"123","pin":1234}'

請求網址HTTP response body對應的cURL指令
http://127.0.0.1:61161/signresponse.jsoncurl 'http://127.0.0.1:61161/sign' --data-binary '
tbsPackage={
"tbs":"TBS",
"hashAlgorithm":"SHA256",
"pin":"1234",
"func":"MakeSignature",
"signatureType":"PKCS1",
"slotDescription":"CASTLES EZ100PU 00 00"
}'
http://127.0.0.1:61161/pkcs11info?withcert=trueresponse.jsoncurl 'http://127.0.0.1:61161/pkcs11info?withcert=true'

分析可執行檔案

上面的章節中,有提到這幾個編譯過得執行檔並由跑在本地端的HiPKILocalSignServer進行外部呼叫。

透過「hipkiFuncs.js」與「hipkiLocalServer.js」這兩個JavaScript程式可以知道,下列這幾個編譯過的可執行檔的下列用法:


./HiPKISign.exe '{
   "tbs":"TBS",
   "hashAlgorithm":"SHA256",
   "pin":"1234578",
   "func":"MakeSignature",
   "signatureType":"PKCS1",
   "slotDescription":"CASTLES EZ100PU 00 00"
}'


{
   "func" : "writecert",
   "last_error" : 0,
   "ret_code" : 1979711500,
   "version" : "1.0.0.9"
}

客戶端程式系統架構圖

綜合上面分析的結果,可以得到像下面這樣的架構圖:

架構圖的大意就是,大部份都是透過client端上執行起來的「HiPKILocalSignServer」所完成所有的請求,請求是透過外部呼叫並傳遞參數的方式執行並將結果傳遞回去client端。

結語

參考文章

Exit mobile version