Windows應(yīng)用程序完整性校驗系統(tǒng)、方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種Windows應(yīng)用程序完整性校驗系統(tǒng)、方法及裝置,涉及金融支付領(lǐng)域。該系統(tǒng)包括后臺服務(wù)器、設(shè)置有客戶端應(yīng)用程序的客戶端設(shè)備、終端設(shè)備和證書服務(wù)器;后臺服務(wù)器、證書服務(wù)器和客戶端設(shè)備均與Internet連接,客戶端設(shè)備與終端設(shè)備連接;其特征在于:所述終端設(shè)備包括安全芯片,所述安全芯片包括主控模塊、安全存儲模塊、安全算法模塊、通信模塊。本發(fā)明能夠在金融支付過程中完成對應(yīng)用程序完整性的多重校驗,比較安全,不僅能夠保證終端設(shè)備身份的真實性、不可抵賴性,而且能夠保證傳輸數(shù)據(jù)的完整性、后臺服務(wù)器的真實性。
【專利說明】Windows應(yīng)用程序完整性校驗系統(tǒng)、方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及金融支付領(lǐng)域,具體涉及一種Windows應(yīng)用程序完整性校驗系統(tǒng)、方法及裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的廣泛的應(yīng)用、以及第三方支付牌照的發(fā)放,金融支付產(chǎn)業(yè)也得到了迅速的發(fā)展,金融支付具有明顯的跨行業(yè)的特征,它涉及通信、互聯(lián)網(wǎng)、電子商務(wù)和金融等行業(yè),針對金融支付領(lǐng)域完整性校驗的問題,不同行業(yè)競相推出自己的解決方案。
[0003]目前,在金融支付領(lǐng)域,通用的支付方式是采用后臺服務(wù)器、終端設(shè)備、客戶端應(yīng)用程序三者結(jié)合的方式,在支付交易的過程中,終端設(shè)備通過客戶端應(yīng)用程序與后臺服務(wù)器進行通信,那么,如何驗證客戶端應(yīng)用程序的數(shù)據(jù)完整性,從而保證整個交易過程的安全,成為金融支付領(lǐng)域備受關(guān)注的問題。
[0004]常用的校驗數(shù)據(jù)完整性的方法有:通過Windows校驗工具校驗和應(yīng)用程序自校驗,具體的實現(xiàn)方式一般為以下兩種:
[0005](I)通過比較文件哈希值
[0006]哈希值校驗是目前應(yīng)用最廣泛的一種文件完整性校驗方法,它通過某種哈希函數(shù)將任意長度的文件計算成固定長度的哈希值,且過程不可逆。兩個不同的文件,通過相同的哈希函數(shù)計算出來的哈希值幾乎不可能相同,所以一旦文件被改變,重新計算出的哈希值一定不同。
[0007](2)使用數(shù)字簽名
[0008]數(shù)字簽名的方法是指使用非對稱算法對發(fā)送的數(shù)據(jù)進行加密處理,生成一段信息,附著在原文上一起發(fā)送,這段信息類似現(xiàn)實中的簽名,接收方對其進行驗證,判斷原文真?zhèn)巍?br>
[0009]雖然上述兩種方法均能夠驗證應(yīng)用程序是否被篡改,但是分別存在以下缺陷和不足:
[0010](I)通過校驗應(yīng)用程序文件的哈希值,來驗證文件是否被篡改的最大問題無法保證哈希值的安全存儲問題,攻擊者很容易將原文件及其哈希值一起改變;一旦哈希值改變,通過校驗哈希值驗證文件是否被篡改則不可靠。
[0011 ] (2)通過數(shù)字簽名的方式驗證文件是否被修改,可能會導(dǎo)致簽名值過長,而且數(shù)字簽名只能保證發(fā)送方的真實性和傳輸數(shù)據(jù)的完整性,無法保證接收方的真實性。
[0012]綜上所述,通過比較文件哈希值或者使用數(shù)字簽名驗證文件是否被修改,均不夠可靠,無法時刻準確保證校驗結(jié)果的真實性,安全存在一定隱患。
【發(fā)明內(nèi)容】
[0013]針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種Windows應(yīng)用程序完整性校驗系統(tǒng)、方法及裝置,本發(fā)明能夠在金融支付過程中完成對應(yīng)用程序完整性的多重校驗,比較安全,不僅能夠保證終端設(shè)備身份的真實性、不可抵賴性,而且能夠保證傳輸數(shù)據(jù)的完整性、后臺服務(wù)器的真實性。
[0014]為達到以上目的,本發(fā)明采取的技術(shù)方案是:一種Windows應(yīng)用程序完整性校驗系統(tǒng),包括后臺服務(wù)器、設(shè)置有客戶端應(yīng)用程序的客戶端設(shè)備、終端設(shè)備和證書服務(wù)器;后臺服務(wù)器、證書服務(wù)器和客戶端設(shè)備均與Internet連接,客戶端設(shè)備與終端設(shè)備連接;所述終端設(shè)備包括安全芯片,所述安全芯片包括主控模塊、安全存儲模塊、安全算法模塊、通信模塊;
[0015]在移動支付過程中,通過終端設(shè)備生成公鑰和私鑰,私鑰存儲在安全存儲模塊,公鑰導(dǎo)出;向證書服務(wù)器申請終端證書,導(dǎo)入終端證書、客戶端設(shè)備的客戶端證書和后臺服務(wù)器中的服務(wù)器證書至終端設(shè)備;客戶端應(yīng)用程序通過完整性校驗算法計算校驗值,將校驗值導(dǎo)入終端設(shè)備的安全存儲模塊;
[0016]客戶端設(shè)備的客戶端應(yīng)用程序啟動時,通過完整性校驗算法再次計算客戶端應(yīng)用程序的校驗值;判定當(dāng)前校驗值與本地存儲的校驗值相同;
[0017]客戶端應(yīng)用程序從終端設(shè)備的終端證書中提取公鑰,客戶端應(yīng)用程序使用公鑰、并采用非對稱算法對當(dāng)前校驗值進行加密;客戶端應(yīng)用程序?qū)⒓用芎蟮男r炛蛋l(fā)送給終端設(shè)備;終端設(shè)備采用非對稱算法、使用私鑰對加密后的校驗值進行解密,得到明文校驗值;
[0018]終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值相同的校驗結(jié)果;終端設(shè)備使用私鑰、并采用非對稱算法對校驗結(jié)果進行數(shù)字簽名,拼接校驗結(jié)果和簽名值;
[0019]終端設(shè)備內(nèi)部產(chǎn)生一個隨機數(shù)作為對稱密鑰、并采用安全算法模塊中的對稱算法對拼接的校驗結(jié)果和簽名值進行加密;終端設(shè)備使用服務(wù)器證書中的公鑰、并采用非對稱算法對所述隨機數(shù)進行加密;加密后的校驗結(jié)果、簽名值和隨機數(shù)形成數(shù)字信封;
[0020]終端設(shè)備將數(shù)字信封通過客戶端應(yīng)用程序發(fā)送至后臺服務(wù)器;后臺服務(wù)器使用其私鑰、并采用非對稱算法對數(shù)字信封進行解密,得到隨機數(shù);使用解密出的隨機數(shù)、并采用所述對稱算法對數(shù)字信封進行解密,得到校驗結(jié)果及簽名值;
[0021]后臺服務(wù)器從終端設(shè)備的終端證書中提取公鑰,使用終端證書中的公鑰對當(dāng)前簽名值進行驗簽,若驗簽通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果已通過終端設(shè)備驗證、且傳輸途中未被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束;若驗簽未通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果在傳輸途中已被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0022]在上述技術(shù)方案的基礎(chǔ)上,所述客戶端設(shè)備通過USB或藍牙與終端設(shè)備連接。
[0023]在上述技術(shù)方案的基礎(chǔ)上,所述通信模塊為USB通信模塊或藍牙通信模塊。
[0024]一種基于上述校驗系統(tǒng)的Windows應(yīng)用程序完整性校驗方法,包括以下步驟:
[0025]A、在移動支付過程中,通過終端設(shè)備生成公鑰和私鑰,私鑰存儲在安全存儲模塊,公鑰導(dǎo)出;向證書服務(wù)器申請終端證書,導(dǎo)入終端證書、客戶端設(shè)備的客戶端證書和后臺服務(wù)器中的服務(wù)器證書至終端設(shè)備;客戶端應(yīng)用程序通過完整性校驗算法計算校驗值,將校驗值導(dǎo)入終端設(shè)備的安全存儲模塊;
[0026]B、客戶端設(shè)備的客戶端應(yīng)用程序啟動時,通過完整性校驗算法再次計算客戶端應(yīng)用程序的校驗值;判定當(dāng)前校驗值與本地存儲的校驗值相同;
[0027]C、客戶端應(yīng)用程序從終端設(shè)備的終端證書中提取公鑰,客戶端應(yīng)用程序使用公鑰、并采用非對稱算法對當(dāng)前校驗值進行加密;客戶端應(yīng)用程序?qū)⒓用芎蟮男r炛蛋l(fā)送給終端設(shè)備;終端設(shè)備采用非對稱算法、使用私鑰對加密后的校驗值進行解密,得到明文校驗值;
[0028]D、終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值相同的校驗結(jié)果;終端設(shè)備使用私鑰、并采用非對稱算法對校驗結(jié)果進行數(shù)字簽名,拼接校驗結(jié)果和簽名值;
[0029]終端設(shè)備內(nèi)部產(chǎn)生一個隨機數(shù)作為對稱密鑰、并采用安全算法模塊中的對稱算法對拼接的校驗結(jié)果和簽名值進行加密;終端設(shè)備使用服務(wù)器證書中的公鑰、并采用非對稱算法對所述隨機數(shù)進行加密;加密后的校驗結(jié)果、簽名值和隨機數(shù)形成數(shù)字信封;
[0030]E、終端設(shè)備將數(shù)字信封通過客戶端應(yīng)用程序發(fā)送至后臺服務(wù)器;后臺服務(wù)器使用其私鑰、并采用非對稱算法對數(shù)字信封進行解密,得到隨機數(shù);使用解密出的隨機數(shù)、并采用所述對稱算法對數(shù)字信封進行解密,得到校驗結(jié)果及簽名值;
[0031]后臺服務(wù)器從終端設(shè)備的終端證書中提取公鑰,使用終端證書中的公鑰對當(dāng)前簽名值進行驗簽,若驗簽通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果已通過終端設(shè)備驗證、且傳輸途中未被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束;若驗簽未通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果在傳輸途中已被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0032]在上述技術(shù)方案的基礎(chǔ)上,所述步驟B中在客戶端設(shè)備的客戶端應(yīng)用程序啟動后,還包括以下步驟:判定當(dāng)前校驗值與本地存儲的校驗值不同,確定客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0033]在上述技術(shù)方案的基礎(chǔ)上,所述步驟D還包括以下步驟:終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值不同的校驗結(jié)果;確定客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0034]一種實現(xiàn)上述校驗方法的Windows應(yīng)用程序完整性校驗裝置,包括順次連接的校驗存儲模塊、初步校驗?zāi)K、校驗安全模塊、數(shù)字信封加密模塊和校驗結(jié)果驗證模塊;
[0035]所述校驗存儲模塊,用于:在移動支付過程中,通過終端設(shè)備生成公鑰和私鑰,私鑰存儲在安全存儲模塊,公鑰導(dǎo)出;向證書服務(wù)器申請終端證書,導(dǎo)入終端證書、客戶端設(shè)備的客戶端證書和后臺服務(wù)器中的服務(wù)器證書至終端設(shè)備;客戶端應(yīng)用程序通過完整性校驗算法計算校驗值,將校驗值導(dǎo)入終端設(shè)備的安全存儲模塊,向初步校驗?zāi)K發(fā)送初步校驗信號;
[0036]所述初步校驗?zāi)K,用于:收到校驗存儲模塊發(fā)送的初步校驗信號后,等待客戶端設(shè)備的客戶端應(yīng)用程序啟動,客戶端設(shè)備的客戶端應(yīng)用程序啟動時,通過完整性校驗算法再次計算客戶端應(yīng)用程序的校驗值;判定當(dāng)前校驗值與本地存儲的校驗值相同,向校驗安全模塊發(fā)送安校驗安全信號;
[0037]所述校驗安全模塊,用于:收到初步校驗?zāi)K發(fā)送的校驗安全信號后,控制客戶端應(yīng)用程序從終端設(shè)備的終端證書中提取公鑰,客戶端應(yīng)用程序使用公鑰、并采用非對稱算法對當(dāng)前校驗值進行加密;客戶端應(yīng)用程序?qū)⒓用芎蟮男r炛蛋l(fā)送給終端設(shè)備;終端設(shè)備采用非對稱算法、使用私鑰對加密后的校驗值進行解密,得到明文校驗值,向數(shù)字信封加密模塊發(fā)送數(shù)字信封加密信號;
[0038]所述數(shù)字信封加密模塊,用于:收到校驗安全模塊發(fā)送的數(shù)字信封加密信號后,控制終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值相同的校驗結(jié)果;終端設(shè)備使用私鑰、并采用非對稱算法對校驗結(jié)果進行數(shù)字簽名,拼接校驗結(jié)果和簽名值;
[0039]終端設(shè)備內(nèi)部產(chǎn)生一個隨機數(shù)作為對稱密鑰、并采用安全算法模塊中的對稱算法對拼接的校驗結(jié)果和簽名值進行加密;終端設(shè)備使用服務(wù)器證書中的公鑰、并采用非對稱算法對所述隨機數(shù)進行加密;加密后的校驗結(jié)果、簽名值和隨機數(shù)形成數(shù)字信封,向校驗結(jié)果驗證模塊發(fā)送校驗結(jié)果驗證信號;
[0040]所述校驗結(jié)果驗證模塊,用于:收到數(shù)字信封加密模塊發(fā)送的校驗結(jié)果驗證信號后,控制終端設(shè)備將數(shù)字信封通過客戶端應(yīng)用程序發(fā)送至后臺服務(wù)器;后臺服務(wù)器使用其私鑰、并采用非對稱算法對數(shù)字信封進行解密,得到隨機數(shù);使用解密出的隨機數(shù)、并采用所述對稱算法對數(shù)字信封進行解密,得到校驗結(jié)果及簽名值;
[0041]后臺服務(wù)器從終端設(shè)備的終端證書中提取公鑰,使用終端證書中的公鑰對當(dāng)前簽名值進行驗簽,若驗簽通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果已通過終端設(shè)備驗證、且傳輸途中未被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束;若驗簽未通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果在傳輸途中已被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0042]在上述技術(shù)方案的基礎(chǔ)上,所述初步校驗?zāi)K,還用于:判定當(dāng)前校驗值與本地存儲的校驗值不同,確定客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0043]在上述技術(shù)方案的基礎(chǔ)上,所述數(shù)字信封加密模塊,還用于:控制終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值不同的校驗結(jié)果;確定客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0044]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:
[0045](I)本發(fā)明中客戶端應(yīng)用程序的校驗值存儲在終端設(shè)備的安全存儲模塊,校驗值不可通過任何方式導(dǎo)出,外界不可訪問,能夠保證作為校驗標準的應(yīng)用程序文件或數(shù)據(jù)的
可靠性。
[0046](2)本發(fā)明在終端設(shè)備內(nèi)部生成公鑰和私鑰,私鑰存儲在終端設(shè)備的安全存儲模塊,私鑰不可通過任何形式導(dǎo)出,外界不可訪問,能夠保證終端設(shè)備身份的真實性。
[0047](3)本發(fā)明中客戶端應(yīng)用程序先通過完整性算法完成一次自校驗,再通過完整性校驗算法、數(shù)字簽名和數(shù)字信封結(jié)合的方式,完成對終端設(shè)備的再校驗。因此,本發(fā)明能夠在金融支付過程中對應(yīng)用程序完整性的多重校驗,比較安全。
[0048](4)本發(fā)明的終端設(shè)備使用私鑰,采用非對稱算法對校驗結(jié)果進行數(shù)字簽名。由于數(shù)字簽名是終端設(shè)備利用其私鑰加密后發(fā)送給后臺服務(wù)器,若后臺服務(wù)器使用終端設(shè)備中的公鑰能解密數(shù)字簽名,才能說明當(dāng)前數(shù)字簽名是終端設(shè)備發(fā)送的;因此,本發(fā)明能夠保證終端設(shè)備(即發(fā)送方)的不可抵賴性和后臺服務(wù)器(即接收方)的真實性。
[0049]與此同時,由于數(shù)字簽名是加密后發(fā)送的數(shù)據(jù),因此能夠保證機密性,而且只有后臺服務(wù)器用終端設(shè)備的公鑰對當(dāng)前簽名值驗證通過,才能說明傳輸數(shù)據(jù)未被改動過且是真實的;因此,本發(fā)明能夠保證傳輸數(shù)據(jù)的完整性。
【專利附圖】
【附圖說明】
[0050]圖1為本發(fā)明實施例中Windows應(yīng)用程序完整性校驗系統(tǒng)的結(jié)構(gòu)示意圖;[0051]圖2為本發(fā)明實施例中安全芯片的結(jié)構(gòu)框圖;
[0052]圖3為本發(fā)明實施例中Windows應(yīng)用程序完整性校驗方法的流程圖。
【具體實施方式】
[0053]以下結(jié)合附圖及實施例對本發(fā)明作進一步詳細說明。
[0054]參見圖1所示,本發(fā)明實施例提供的金融支付領(lǐng)域的Windows應(yīng)用程序完整性校驗系統(tǒng),包括后臺服務(wù)器、設(shè)置有客戶端應(yīng)用程序的客戶端設(shè)備、終端設(shè)備和證書服務(wù)器。
[0055]后臺服務(wù)器、證書服務(wù)器和客戶端設(shè)備均與Internet (網(wǎng)絡(luò))連接,客戶端設(shè)備與終端設(shè)備連接;本實施例中,客戶端設(shè)備通過USB或藍牙與終端設(shè)備連接。
[0056]終端設(shè)備包括安全芯片,參見圖2所示,安全芯片包括主控模塊、安全存儲模塊、安全算法模塊、通信模塊。通信模塊為USB(UniverSalSerial Bus,通用串行總線)通信模塊或藍牙通信模塊。
[0057]主控模塊能夠?qū)⒊绦虼a轉(zhuǎn)換為電氣控制裝置所能識別的控制指令,以驅(qū)動安全芯片內(nèi)外各種工作模塊執(zhí)行任務(wù)。
[0058]安全存儲模塊負責(zé)數(shù)據(jù)的安全存儲,存儲在安全區(qū)域的數(shù)據(jù)外界不可直接訪問、且不可讀出,同時數(shù)據(jù)需保證在安全的環(huán)境下導(dǎo)入安全存儲區(qū)域。
[0059]安全算法模塊支持通用的安全算法,如非對稱算法RSA(RonRivest、Adi Shamir>Leonard Adleman,羅納德.李維斯特、阿迪.薩莫爾、倫納德.阿德曼)、對稱算法DES (DataEncryption Standard,數(shù)據(jù)加密標準)、3DES (Triple DES,三重數(shù)據(jù)加密算法)、摘要算法SHAl (Secure Hash Algorithml,安全散列算法 I)或 MD5 (MessageDigest Algorithm5,信息摘要算法5)、國家密碼管理局規(guī)定的SM2橢圓曲線公鑰密碼算法,SM3密碼雜湊算法、SM4對稱密碼算法等,在終端設(shè)備內(nèi)部可以完成加密、解密、簽名、驗簽等功能。
[0060]USB通信模塊或藍牙通信模塊負責(zé)與上位機、智能手機或其它移動終端(例如運行客戶端應(yīng)用程序)進行通信,負責(zé)接收與響應(yīng)客戶端應(yīng)用程序發(fā)送的指令。
[0061]本發(fā)明實施例提供的金融支付領(lǐng)域的Windows應(yīng)用程序完整性校驗方法,包括以下步驟:
[0062]S1:在移動支付過程中,通過終端設(shè)備生成公鑰和私鑰,私鑰存儲在安全存儲模塊,公鑰導(dǎo)出。向證書服務(wù)器申請終端證書,導(dǎo)入終端證書、客戶端設(shè)備的客戶端證書和后臺服務(wù)器中的服務(wù)器證書至終端設(shè)備。
[0063]S2:客戶端設(shè)備的客戶端應(yīng)用程序發(fā)布時,客戶端應(yīng)用程序通過完整性校驗算法計算校驗值,將校驗值在安全的環(huán)境下導(dǎo)入終端設(shè)備的安全存儲模塊。
[0064]S3:客戶端設(shè)備的客戶端應(yīng)用程序啟動時,通過完整性校驗算法再次計算客戶端應(yīng)用程序的校驗值。將當(dāng)前校驗值與本地存儲的校驗值進行比較,判斷當(dāng)前校驗值與本地存儲的校驗值是否相同,若不同,則客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束;否則轉(zhuǎn)到步驟S4。
[0065]S4:客戶端設(shè)備與終端設(shè)備建立連接,客戶端應(yīng)用程序從終端設(shè)備的終端證書中提取公鑰,客戶端應(yīng)用程序采用非對稱算法,使用公鑰對當(dāng)前校驗值進行加密。
[0066]S5:客戶端應(yīng)用程序?qū)⒓用芎蟮男r炛蛋l(fā)送給終端設(shè)備;終端設(shè)備使用私鑰、并采用非對稱算法對加密后的校驗值進行解密,得到明文校驗值。[0067]S6:終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出校驗結(jié)果;若校驗結(jié)果為明文校驗值與安全存儲模塊的校驗值不同,則客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束;若校驗結(jié)果為明文校驗值與安全存儲模塊的校驗值相同,轉(zhuǎn)到步驟S7。
[0068]S7:終端設(shè)備使用私鑰,采用非對稱算法對校驗結(jié)果進行數(shù)字簽名,拼接校驗結(jié)果和簽名值。終端設(shè)備內(nèi)部產(chǎn)生一個隨機數(shù),將該隨機數(shù)作為對稱密鑰、并采用安全算法模塊中的對稱算法對拼接的校驗結(jié)果和簽名值進行加密;終端設(shè)備使用服務(wù)器證書中的公鑰、并采用非對稱算法對隨機數(shù)進行加密,加密后的校驗結(jié)果、簽名值和隨機數(shù)形成數(shù)字信封。
[0069]S8:終端設(shè)備將數(shù)字信封發(fā)送給客戶端應(yīng)用程序;客戶端應(yīng)用程序與后臺服務(wù)器建立連接后,客戶端應(yīng)用程序?qū)⒔邮盏降臄?shù)字信封發(fā)送給后臺服務(wù)器。后臺服務(wù)器使用其私鑰、并采用非對稱算法對數(shù)字信封進行解密,得到隨機數(shù),使用解密出的隨機數(shù),采用與步驟S7相同的對稱算法對數(shù)字信封進行解密,得到校驗結(jié)果及簽名值。
[0070]S9:后臺服務(wù)器從終端設(shè)備的終端證書中提取公鑰,使用終端證書中的公鑰對當(dāng)前簽名值進行驗簽,若驗簽通過,轉(zhuǎn)到步驟S10,若驗簽未通過,轉(zhuǎn)到步驟Sll。
[0071]S10:確定發(fā)送的數(shù)字信封中的校驗結(jié)果已通過終端設(shè)備驗證、且傳輸途中未被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0072]Sll:確定發(fā)送的數(shù)字信封中的校驗結(jié)果未通過終端設(shè)備驗證,校驗結(jié)果已被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0073]一種Windows應(yīng)用程序完整性校驗裝置,包括順次連接的校驗存儲模塊、初步校驗?zāi)K、校驗安全模塊、數(shù)字信封加密模塊和校驗結(jié)果驗證模塊。
[0074]校驗存儲模塊,用于:在移動支付過程中,通過終端設(shè)備生成公鑰和私鑰,私鑰存儲在安全存儲模塊,公鑰導(dǎo)出;向證書服務(wù)器申請終端證書,導(dǎo)入終端證書、客戶端設(shè)備的客戶端證書和后臺服務(wù)器中的服務(wù)器證書至終端設(shè)備;客戶端應(yīng)用程序通過完整性校驗算法計算校驗值,將校驗值導(dǎo)入終端設(shè)備的安全存儲模塊,向初步校驗?zāi)K發(fā)送初步校驗信號。
[0075]初步校驗?zāi)K,用于:收到校驗存儲模塊發(fā)送的初步校驗信號后,等待客戶端設(shè)備的客戶端應(yīng)用程序啟動,客戶端設(shè)備的客戶端應(yīng)用程序啟動時,通過完整性校驗算法再次計算客戶端應(yīng)用程序的校驗值;判定當(dāng)前校驗值與本地存儲的校驗值相同,向校驗安全模塊發(fā)送安校驗安全信號。
[0076]校驗安全模塊,用于:收到初步校驗?zāi)K發(fā)送的校驗安全信號后,控制客戶端應(yīng)用程序從終端設(shè)備的終端證書中提取公鑰,客戶端應(yīng)用程序使用公鑰、并采用非對稱算法對當(dāng)前校驗值進行加密;客戶端應(yīng)用程序?qū)⒓用芎蟮男r炛蛋l(fā)送給終端設(shè)備;終端設(shè)備采用非對稱算法、使用私鑰對加密后的校驗值進行解密,得到明文校驗值,向數(shù)字信封加密模塊發(fā)送數(shù)字信封加密信號。
[0077]數(shù)字信封加密模塊,用于:收到校驗安全模塊發(fā)送的數(shù)字信封加密信號后,控制終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值相同的校驗結(jié)果;終端設(shè)備使用私鑰、并采用非對稱算法對校驗結(jié)果進行數(shù)字簽名,拼接校驗結(jié)果和簽名值。
[0078]終端設(shè)備內(nèi)部產(chǎn)生一個隨機數(shù)作為對稱密鑰、并采用安全算法模塊中的對稱算法對拼接的校驗結(jié)果和簽名值進行加密;終端設(shè)備使用服務(wù)器證書中的公鑰、并采用非對稱算法對所述隨機數(shù)進行加密;加密后的校驗結(jié)果、簽名值和隨機數(shù)形成數(shù)字信封,向校驗結(jié)果驗證模塊發(fā)送校驗結(jié)果驗證信號。
[0079]校驗結(jié)果驗證模塊,用于:收到數(shù)字信封加密模塊發(fā)送的校驗結(jié)果驗證信號后,控制終端設(shè)備將數(shù)字信封通過客戶端應(yīng)用程序發(fā)送至后臺服務(wù)器;后臺服務(wù)器使用其私鑰、并采用非對稱算法對數(shù)字信封進行解密,得到隨機數(shù);使用解密出的隨機數(shù)、并采用所述對稱算法對數(shù)字信封進行解密,得到校驗結(jié)果及簽名值。
[0080]后臺服務(wù)器從終端設(shè)備的終端證書中提取公鑰,使用終端證書中的公鑰對當(dāng)前簽名值進行驗簽,若驗簽通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果已通過終端設(shè)備驗證、且傳輸途中未被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束;若驗簽未通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果在傳輸途中已被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
[0081]本發(fā)明不局限于上述實施方式,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內(nèi)。本說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
【權(quán)利要求】
1.一種Windows應(yīng)用程序完整性校驗系統(tǒng),包括后臺服務(wù)器、設(shè)置有客戶端應(yīng)用程序的客戶端設(shè)備、終端設(shè)備和證書服務(wù)器;后臺服務(wù)器、證書服務(wù)器和客戶端設(shè)備均與Internet連接,客戶端設(shè)備與終端設(shè)備連接;其特征在于:所述終端設(shè)備包括安全芯片,所述安全芯片包括主控模塊、安全存儲模塊、安全算法模塊、通信模塊; 在移動支付過程中,通過終端設(shè)備生成公鑰和私鑰,私鑰存儲在安全存儲模塊,公鑰導(dǎo)出;向證書服務(wù)器申請終端證書,導(dǎo)入終端證書、客戶端設(shè)備的客戶端證書和后臺服務(wù)器中的服務(wù)器證書至終端設(shè)備;客戶端應(yīng)用程序通過完整性校驗算法計算校驗值,將校驗值導(dǎo)入終端設(shè)備的安全存儲模塊; 客戶端設(shè)備的客戶端應(yīng)用程序啟動時,通過完整性校驗算法再次計算客戶端應(yīng)用程序的校驗值;判定當(dāng)前校驗值與本地存儲的校驗值相同; 客戶端應(yīng)用程序從終端設(shè)備的終端證書中提取公鑰,客戶端應(yīng)用程序使用公鑰、并采用非對稱算法對當(dāng)前校驗值進行加密;客戶端應(yīng)用程序?qū)⒓用芎蟮男r炛蛋l(fā)送給終端設(shè)備;終端設(shè)備采用非對稱算法、使用私鑰 對加密后的校驗值進行解密,得到明文校驗值; 終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值相同的校驗結(jié)果;終端設(shè)備使用私鑰、并采用非對稱算法對校驗結(jié)果進行數(shù)字簽名,拼接校驗結(jié)果和簽名值; 終端設(shè)備內(nèi)部產(chǎn)生一個隨機數(shù)作為對稱密鑰、并采用安全算法模塊中的對稱算法對拼接的校驗結(jié)果和簽名值進行加密;終端設(shè)備使用服務(wù)器證書中的公鑰、并采用非對稱算法對所述隨機數(shù)進行加密;加密后的校驗結(jié)果、簽名值和隨機數(shù)形成數(shù)字信封; 終端設(shè)備將數(shù)字信封通過客戶端應(yīng)用程序發(fā)送至后臺服務(wù)器;后臺服務(wù)器使用其私鑰、并采用非對稱算法對數(shù)字信封進行解密,得到隨機數(shù);使用解密出的隨機數(shù)、并采用所述對稱算法對數(shù)字信封進行解密,得到校驗結(jié)果及簽名值; 后臺服務(wù)器從終端設(shè)備的終端證書中提取公鑰,使用終端證書中的公鑰對當(dāng)前簽名值進行驗簽,若驗簽通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果已通過終端設(shè)備驗證、且傳輸途中未被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束;若驗簽未通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果在傳輸途中已被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
2.如權(quán)利要求1所述的Windows應(yīng)用程序完整性校驗系統(tǒng),其特征在于:所述客戶端設(shè)備通過USB或藍牙與終端設(shè)備連接。
3.如權(quán)利要求2所述的Windows應(yīng)用程序完整性校驗系統(tǒng),其特征在于:所述通信模塊為USB通信模塊或藍牙通信模塊。
4.一種基于權(quán)利要求1至3任一項所述校驗系統(tǒng)的Windows應(yīng)用程序完整性校驗方法,其特征在于,包括以下步驟: A、在移動支付過程中,通過終端設(shè)備生成公鑰和私鑰,私鑰存儲在安全存儲模塊,公鑰導(dǎo)出;向證書服務(wù)器申請終端證書,導(dǎo)入終端證書、客戶端設(shè)備的客戶端證書和后臺服務(wù)器中的服務(wù)器證書至終端設(shè)備;客戶端應(yīng)用程序通過完整性校驗算法計算校驗值,將校驗值導(dǎo)入終端設(shè)備的安全存儲模塊; B、客戶端設(shè)備的客戶端應(yīng)用程序啟動時,通過完整性校驗算法再次計算客戶端應(yīng)用程序的校驗值;判定當(dāng)前校驗值與本地存儲的校驗值相同; C、客戶端應(yīng)用程序從終端設(shè)備的終端證書中提取公鑰,客戶端應(yīng)用程序使用公鑰、并采用非對稱算法對當(dāng)前校驗值進行加密;客戶端應(yīng)用程序?qū)⒓用芎蟮男r炛蛋l(fā)送給終端設(shè)備;終端設(shè)備采用非對稱算法、使用私鑰對加密后的校驗值進行解密,得到明文校驗值; D、終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值相同的校驗結(jié)果;終端設(shè)備使用私鑰、并采用非對稱算法對校驗結(jié)果進行數(shù)字簽名,拼接校驗結(jié)果和簽名值; 終端設(shè)備內(nèi)部產(chǎn)生一個隨機數(shù)作為對稱密鑰、并采用安全算法模塊中的對稱算法對拼接的校驗結(jié)果和簽名值進行加密;終端設(shè)備使用服務(wù)器證書中的公鑰、并采用非對稱算法對所述隨機數(shù)進行加密;加密后的校驗結(jié)果、簽名值和隨機數(shù)形成數(shù)字信封; E、終端設(shè)備將數(shù)字信封通過客戶端應(yīng)用程序發(fā)送至后臺服務(wù)器;后臺服務(wù)器使用其私鑰、并采用非對稱算法對數(shù)字信封進行解密,得到隨機數(shù);使用解密出的隨機數(shù)、并采用所述對稱算法對數(shù)字信封進行解密,得到校驗結(jié)果及簽名值; 后臺服務(wù)器從終端設(shè)備的終端證書中提取公鑰,使用終端證書中的公鑰對當(dāng)前簽名值進行驗簽,若驗簽通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果已通過終端設(shè)備驗證、且傳輸途中未被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束;若驗簽未通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果在傳輸途中已被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
5.如權(quán)利要求4所述的Windows應(yīng)用程序完整性校驗方法,其特征在于:所述步驟B中在客戶端設(shè)備的客戶端應(yīng)用程序啟動后,還包括以下步驟:判定當(dāng)前校驗值與本地存儲的校驗值不同,確定客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
6.如權(quán)利要求 4所述的Windows應(yīng)用程序完整性校驗方法,其特征在于,所述步驟D還包括以下步驟:終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值不同的校驗結(jié)果;確定客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
7.一種實現(xiàn)權(quán)利要求4至6任一項所述校驗方法的Windows應(yīng)用程序完整性校驗裝置,其特征在于:包括順次連接的校驗存儲模塊、初步校驗?zāi)K、校驗安全模塊、數(shù)字信封加密模塊和校驗結(jié)果驗證模塊; 所述校驗存儲模塊,用于:在移動支付過程中,通過終端設(shè)備生成公鑰和私鑰,私鑰存儲在安全存儲模塊,公鑰導(dǎo)出;向證書服務(wù)器申請終端證書,導(dǎo)入終端證書、客戶端設(shè)備的客戶端證書和后臺服務(wù)器中的服務(wù)器證書至終端設(shè)備;客戶端應(yīng)用程序通過完整性校驗算法計算校驗值,將校驗值導(dǎo)入終端設(shè)備的安全存儲模塊,向初步校驗?zāi)K發(fā)送初步校驗信號; 所述初步校驗?zāi)K,用于:收到校驗存儲模塊發(fā)送的初步校驗信號后,等待客戶端設(shè)備的客戶端應(yīng)用程序啟動,客戶端設(shè)備的客戶端應(yīng)用程序啟動時,通過完整性校驗算法再次計算客戶端應(yīng)用程序的校驗值;判定當(dāng)前校驗值與本地存儲的校驗值相同,向校驗安全模塊發(fā)送安校驗安全信號; 所述校驗安全模塊,用于:收到初步校驗?zāi)K發(fā)送的校驗安全信號后,控制客戶端應(yīng)用程序從終端設(shè)備的終端證書中提取公鑰,客戶端應(yīng)用程序使用公鑰、并采用非對稱算法對當(dāng)前校驗值進行加密;客戶端應(yīng)用程序?qū)⒓用芎蟮男r炛蛋l(fā)送給終端設(shè)備;終端設(shè)備采用非對稱算法、使用私鑰對加密后的校驗值進行解密,得到明文校驗值,向數(shù)字信封加密模塊發(fā)送數(shù)字信封加密信號;所述數(shù)字信封加密模塊,用于:收到校驗安全模塊發(fā)送的數(shù)字信封加密信號后,控制終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值相同的校驗結(jié)果;終端設(shè)備使用私鑰、并采用非對稱算法對校驗結(jié)果進行數(shù)字簽名,拼接校驗結(jié)果和簽名值; 終端設(shè)備內(nèi)部產(chǎn)生一個隨機數(shù)作為對稱密鑰、并采用安全算法模塊中的對稱算法對拼接的校驗結(jié)果和簽名值進行加密;終端設(shè)備使用服務(wù)器證書中的公鑰、并采用非對稱算法對所述隨機數(shù)進行加密;加密后的校驗結(jié)果、簽名值和隨機數(shù)形成數(shù)字信封,向校驗結(jié)果驗證模塊發(fā)送校驗結(jié)果驗證信號; 所述校驗結(jié)果驗證模塊,用于:收到數(shù)字信封加密模塊發(fā)送的校驗結(jié)果驗證信號后,控制終端設(shè)備將數(shù)字信封通過客戶端應(yīng)用程序發(fā)送至后臺服務(wù)器;后臺服務(wù)器使用其私鑰、并采用非對稱算法對數(shù)字信封進行解密,得到隨機數(shù);使用解密出的隨機數(shù)、并采用所述對稱算法對數(shù)字信封進行解密,得到校驗結(jié)果及簽名值; 后臺服務(wù)器從終端設(shè)備的終端證書中提取公鑰,使用終端證書中的公鑰對當(dāng)前簽名值進行驗簽,若驗簽通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果已通過終端設(shè)備驗證、且傳輸途中未被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束;若驗簽未通過,確定發(fā)送的數(shù)字信封中的校驗結(jié)果在傳輸途中已被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
8.如權(quán)利要求7所述的Windows應(yīng)用程序完整性校驗裝置,其特征在于:所述初步校驗?zāi)K,還用于:判定當(dāng)前校驗值與本地存儲的校驗值不同,確定客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
9.如權(quán)利要求7 所述的Windows應(yīng)用程序完整性校驗裝置,其特征在于:所述數(shù)字信封加密模塊,還用于:控制終端設(shè)備將明文校驗值與安全存儲模塊的校驗值比較,得出明文校驗值與安全存儲模塊的校驗值不同的校驗結(jié)果;確定客戶端應(yīng)用程序被篡改,客戶端應(yīng)用程序完整性校驗結(jié)束。
【文檔編號】G06Q20/38GK104008351SQ201410187958
【公開日】2014年8月27日 申請日期:2014年5月6日 優(yōu)先權(quán)日:2014年5月6日
【發(fā)明者】熊傳光, 付積存, 劉端, 余曉, 彭珠文 申請人:武漢天喻信息產(chǎn)業(yè)股份有限公司