專利名稱:一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法和系統(tǒng)。
背景技術(shù):
iOS (iPhone Operating System,蘋(píng)果操作系統(tǒng))設(shè)備是使用iOS作為其操作系統(tǒng)的設(shè)備,包括iPhone、iPad、iPod Touch以及Apple TV等蘋(píng)果產(chǎn)品。隨著iOS設(shè)備的迅速普及,對(duì)iOS設(shè)備的應(yīng)用軟件的使用及需求也日益增多。iOS設(shè)備軟件開(kāi)發(fā)者在編寫(xiě)軟件的時(shí)候,由于設(shè)計(jì)人員考慮不全面或程序功能不完善,在軟件發(fā)行后,通常需要對(duì)軟件不斷進(jìn)行修改或升級(jí)。軟件開(kāi)發(fā)者對(duì)程序修改或加入新的功能后,以補(bǔ)丁的形式發(fā)布的方式,用戶把這些補(bǔ)丁更新,即修改或升級(jí)完成。軟件修改或升級(jí)是為了更好的滿足用戶的需求和防止病毒的入侵。現(xiàn)有技術(shù)中,系統(tǒng)修改或升級(jí)時(shí),需要同時(shí)對(duì)服務(wù)端軟件、客戶端軟件進(jìn)行升級(jí),修改或升級(jí)過(guò)程比較繁瑣。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服現(xiàn)有技術(shù)的不足,提供一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法和系統(tǒng),實(shí)現(xiàn)了軟件的獨(dú)立部署。
本發(fā)明提供的一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法,包括當(dāng)應(yīng)用程序被調(diào)用時(shí),執(zhí)行以下步驟步驟S1:所述應(yīng)用程序?qū)Υ灻麛?shù)據(jù)進(jìn)行編碼,得到第一數(shù)據(jù)包;步驟S2 :所述應(yīng)用程序以服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串和所述第一數(shù)據(jù)包為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);步驟S3 :當(dāng)服務(wù)程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),保存所述應(yīng)用程序的地址字符串;步驟S4 :所述服務(wù)程序?qū)馕龅玫降乃鱿到y(tǒng)預(yù)設(shè)函數(shù)的參數(shù)中的所述第一數(shù)據(jù)包進(jìn)行解碼,如解碼成功則得到所述待簽名數(shù)據(jù),執(zhí)行步驟S5,否則將解碼失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S5 :所述服務(wù)程序?qū)⑺龃灻麛?shù)據(jù)和預(yù)設(shè)簽名類型發(fā)送給智能密鑰設(shè)備;步驟S6 :所述服務(wù)程序接收所述智能密鑰設(shè)備返回的信息;步驟S7 :所述服務(wù)程序以所述智能密鑰設(shè)備返回的信息、所述保存的所述應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù);步驟S8 :當(dāng)所述應(yīng)用程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),所述應(yīng)用程序解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),得到簽名結(jié)果或所述返回值,結(jié)束。所述步驟S6至步驟S8替換為
步驟S6’ 所述服務(wù)程序接收所述智能密鑰設(shè)備返回的信息,判斷所述智能密鑰設(shè)備返回的信息是否為簽名結(jié)果,是則執(zhí)行步驟S7’,否則將簽名錯(cuò)誤信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù);步驟S7’ 所述服務(wù)程序以所述簽名結(jié)果、所述保存的所述應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù);步驟S8’ 當(dāng)所述應(yīng)用程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),所述應(yīng)用程序解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),解析得到的返回值是否為表示正確信息的返回值,是則得到所述簽名結(jié)果,結(jié)束,否則得到錯(cuò)誤信息,結(jié)束。所述步驟SI包括步驟Sl-1 :所述應(yīng)用程序等待接收用戶輸入的信息及第一用戶按鍵信息,并判斷是否接收到所述用戶輸入的信息及第一用戶按鍵信息,是則執(zhí)行步驟S1-3,否則執(zhí)行步驟S1-2;所述用戶輸入的信息包括第一賬戶、第二賬戶、傳輸信息、證書(shū)用戶名和所述智能密鑰設(shè)備的序列號(hào);步驟S1-2 :所述應(yīng)用程序通過(guò)顯示屏將提示信息輸出,返回步驟Sl-1 ;步驟S1-3 :所述應(yīng)用程序?qū)λ鲇脩糨斎氲男畔⒅械乃鲎C書(shū)用戶名進(jìn)行加密;步驟S1-4 :所述應(yīng)用程序根據(jù)所述第一用戶按鍵信息判斷用戶按鍵類型,若所述用戶按鍵類型為原文簽名則執(zhí)行步驟S1-5,否則執(zhí)行步驟S1-7 ;步驟S1-5 :所述應(yīng)用程序?qū)?biāo)志位置位,對(duì)第一信息、第二信息和第三信息進(jìn)行組合,得到所述待簽名數(shù)據(jù),對(duì)所述待簽名數(shù)據(jù)進(jìn)行加密;所述第一信息為所述用戶輸入的信息的一部分,所述第二信 息由所述用戶輸入的信息的剩余部分與所述應(yīng)用程序中的預(yù)設(shè)信息組合得到,所述第三信息為所述應(yīng)用程序中的預(yù)設(shè)信息;步驟S1-6 :所述應(yīng)用程序?qū)λ龃灻麛?shù)據(jù)的加密結(jié)果進(jìn)行編碼,根據(jù)編碼結(jié)果生成所述第一數(shù)據(jù)包,執(zhí)行步驟S2 ;步驟S1-7 :所述應(yīng)用程序?qū)?biāo)志位復(fù)位,對(duì)所述第一信息、第二信息和第三信息分別進(jìn)行加密;步驟S1-8 :所述應(yīng)用程序分別對(duì)所述第一信息、第二信息和第三信息的加密結(jié)果進(jìn)行編碼,根據(jù)編碼結(jié)果生成所述第一數(shù)據(jù)包,執(zhí)行步驟S2。所述生成第一數(shù)據(jù)包具體為根據(jù)所述編碼結(jié)果和所述標(biāo)志位生成第一數(shù)據(jù)包,所述編碼結(jié)果中包括所述智能密鑰設(shè)備的序列號(hào)和加密后的證書(shū)用戶名。所述步驟S2替換為步驟S2’ 所述應(yīng)用程序以服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串、預(yù)設(shè)的第一認(rèn)證參數(shù)和所述第一數(shù)據(jù)包為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù)。所述步驟S2之后還包括步驟S2-1 :所述應(yīng)用程序獲取所述系統(tǒng)預(yù)設(shè)函數(shù)的返回值,判斷所述返回值類型,若為是則啟動(dòng)所述服務(wù)程序,否則結(jié)束。所述步驟S3包括步驟S3-0 :當(dāng)所述服務(wù)程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),認(rèn)證解析得到的所述第一認(rèn)證參數(shù)并判斷是否認(rèn)證成功,是則保存解析得到的所述應(yīng)用程序的地址字符串,否則結(jié)束。所述步驟S3具體為步驟S3-1 :當(dāng)所述服務(wù)程序接收到用戶輸入的第二用戶按鍵信息時(shí),根據(jù)所述第二用戶按鍵信息判斷用戶按鍵類型,若是確定鍵則執(zhí)行步驟S3-2,否則將用戶取消信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S3-2 :所述服務(wù)程序通過(guò)顯示屏將模態(tài)框輸出;步驟S3-3 :所述服務(wù)程序解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),并保存所述應(yīng)用程序的地址字符串;步驟S3-4 :所述服務(wù)程序獲取所述智能密鑰設(shè)備的序列號(hào),判斷獲取的所述智能密鑰設(shè)備的序列號(hào)與解析得到的所述智能密鑰設(shè)備的序列號(hào)是否相同,是則執(zhí)行步驟S4,否則將驗(yàn)證所述智能密鑰設(shè)備序列號(hào)的失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8。所述步驟S4包括步驟S4-1 :所述服務(wù)程序判斷所述標(biāo)志位是否置位,是則執(zhí)行步驟S4-2,否則執(zhí)行步驟S4-3 ;步驟S4-2 :所述服務(wù)程序?qū)λ龅谝粩?shù)據(jù)包進(jìn)行解碼,對(duì)解碼結(jié)果進(jìn)行解密,如解密成功則得到所述用戶輸入的證書(shū)用戶名和所述待簽名數(shù)據(jù),執(zhí)行步驟S4-4,否則將解碼解密失敗信息作為返回值,所述服 務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S4-3 :所述服務(wù)程序?qū)λ龅谝粩?shù)據(jù)包進(jìn)行解碼,對(duì)解碼結(jié)果進(jìn)行解密,如解密成功則得到所述用戶輸入的證書(shū)用戶名、所述第一信息、所述第二信息和所述第三信息,將所述第一信息、所述第二信息和所述第三信息進(jìn)行組合,得到所述待簽名數(shù)據(jù),執(zhí)行步驟S4-4,否則將解碼解密失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S4-4 :所述服務(wù)程序驗(yàn)證用戶輸入的PIN碼,如驗(yàn)證成功則執(zhí)行步驟S4_5,否則將驗(yàn)證PIN碼失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S4-5 :所述服務(wù)程序從所述智能密鑰設(shè)備中的證書(shū)中獲取證書(shū)公鑰和證書(shū)用戶名;步驟S4-6 :所述服務(wù)程序用所述獲取得到的證書(shū)用戶名驗(yàn)證所述用戶輸入的證書(shū)用戶名,如驗(yàn)證成功則執(zhí)行步驟S5,否則將驗(yàn)證證書(shū)用戶名失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8。所述步驟S4-4之前包括所述服務(wù)程序接收用戶輸入的PIN碼。所述步驟S4-4、步驟S4-5和步驟S4_6替換為步驟S4-4’ 所述服務(wù)程序從所述智能密鑰設(shè)備中的證書(shū)中獲取證書(shū)公鑰和證書(shū)用戶名;步驟S4-5’ 所述服務(wù)程序用所述獲取得到的證書(shū)用戶名驗(yàn)證所述用戶輸入的證書(shū)用戶名,如驗(yàn)證成功則執(zhí)行步驟S4-6’,否則將驗(yàn)證證書(shū)用戶名失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8;步驟S4-6’ 所述服務(wù)程序驗(yàn)證用戶輸入的PIN碼,如驗(yàn)證成功則執(zhí)行步驟S5,否則將驗(yàn)證PIN碼失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8。所述步驟S5之前還包括所述服務(wù)程序連接所述智能密鑰設(shè)備。所述步驟S7替換為步驟S7-1 :所述服務(wù)程序以預(yù)設(shè)的第二認(rèn)證參數(shù)、所述保存的所述應(yīng)用程序的地址字符串、所述智能密鑰設(shè)備返回的信息和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),清除所述模態(tài)框,結(jié)束。所述步驟S6,和步驟S7’替換為步驟S6’ -1 :所述服務(wù)程序接收所述智能密鑰設(shè)備返回的信息,判斷所述智能密鑰設(shè)備返回的信息是否為簽名結(jié)果,是則執(zhí)行步驟S7’,否則將簽名錯(cuò)誤信息作為返回值,所述服務(wù)程序以預(yù)設(shè)的第二認(rèn)證參數(shù)、所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);步驟S7,-1 :所述服務(wù)程序以所述第二認(rèn)證參數(shù)、所述保存的所述應(yīng)用程序的地址字符串、所述智能密鑰設(shè)備返回的信息和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù)。所述步驟S8包括步驟S8-0 :當(dāng)所述應(yīng)用程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),認(rèn)證解析得到的所述第二認(rèn)證參數(shù),判斷是否認(rèn)證成功,是則得到簽名結(jié)果或返回值,結(jié)束,否則結(jié)束。所述步驟S8’包括步驟S8,-O :當(dāng)所述應(yīng)用程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),認(rèn)證解析得到的所述第二認(rèn)證參數(shù)并判斷是否認(rèn)證成功,如認(rèn)證成功則判斷解析得到的返回值是否為表示正確信息的返回值,是則得到簽名結(jié)果,結(jié)束,否則得到錯(cuò)誤信息,結(jié)束;如認(rèn)證失敗則結(jié)束。所述步驟S8’還包括顯示所述簽名結(jié)果或根據(jù)所述返回值顯示相應(yīng)信息。一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的系統(tǒng),包括應(yīng)用裝置和服務(wù)裝置;所述應(yīng)用裝置包括編碼模塊、第一調(diào)用模塊和第一響應(yīng)模塊;所述編碼模塊,用于對(duì)待簽名數(shù)據(jù)進(jìn)行編碼,得到第一數(shù)據(jù)包;所述第一調(diào)用模塊,用于以服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串和所述第一數(shù)據(jù)包為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);所述第一響應(yīng)模塊,用于當(dāng)應(yīng)用程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù);所述服務(wù)裝置包括解析模塊、存儲(chǔ)模塊、解碼模塊、發(fā)送模塊、第二接收模塊和第二調(diào)用模塊;所述解析 模塊,用于當(dāng)服務(wù)程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù);
所述存儲(chǔ)模塊,用于保存所述應(yīng)用程序的地址字符串;所述解碼模塊,用于對(duì)解析得到的所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù)中的所述第一數(shù)據(jù)包進(jìn)行解碼;所述發(fā)送模塊,用于將所述解碼模塊解碼成功得到的所述待簽名數(shù)據(jù)和預(yù)設(shè)簽名類型發(fā)送給智能密鑰設(shè)備;所述第二接收模塊,用于接收所述智能密鑰設(shè)備返回的信息;所述第二調(diào)用模塊,以所述智能密鑰設(shè)備返回的信息、所述保存的所述應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),或者,以所述保存的所述應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù)。所述服務(wù)裝置中的所述第二接收模塊包括接收單元和第一判斷單元;所述接收單元,用于接收所述智能密鑰設(shè)備返回的信息;所述第一判斷單元,用于判斷所述智能密鑰設(shè)備返回的信息是否為簽名結(jié)果;所述應(yīng)用裝置中還包括第一判斷模塊;所述第一判斷模塊,用于判斷所述返回值是否為表示正確信息的返回值。所述應(yīng)用裝置還包括第一接收模塊和組合模塊;所述第一接收模塊包括第一接收單元,第二判斷單元、第一顯示單元、第一加密單元和第三判斷單元;
所述第一接收單元,用于接收用戶輸入的信息及第一用戶按鍵信息;所述第二判斷單元,用于判斷是否接收到所述用戶輸入的信息及第一用戶按鍵信息;所述第一顯示單元,用于通過(guò)顯示屏將提示信息輸出;所述第一加密單元,用于對(duì)所述用戶輸入的信息中的證書(shū)用戶名進(jìn)行加密;所述第三判斷單元,用于根據(jù)所述第一用戶按鍵信息判斷用戶按鍵類型;所述組合模塊包括標(biāo)志位單元、第一組合單元和第二加密單元;所述標(biāo)志位單元,用于將標(biāo)志位置位或?qū)?biāo)志位復(fù)位;所述第一組合單元,用于對(duì)第一信息、第二信息和第三信息進(jìn)行組合,得到所述待簽名數(shù)據(jù);所述第二加密單元,用于對(duì)所述待簽名數(shù)據(jù)進(jìn)行加密,或者,對(duì)所述第一信息、第二信息和第三信息分別進(jìn)行加密。所述第一調(diào)用模塊還用于以所述服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串、預(yù)設(shè)的第一認(rèn)證參數(shù)和所述第一數(shù)據(jù)包為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù)。所述第一調(diào)用模塊包括第一調(diào)用單元、第一獲取單元和第四判斷單元;所述第一調(diào)用單元,用于以所述服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串和所述第一數(shù)據(jù)包為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù);所述第一獲取單元,用于獲取所述系統(tǒng)預(yù)設(shè)函數(shù)的返回值;所述第四判斷單元,用于判斷所述系統(tǒng)預(yù)設(shè)函數(shù)的返回值類型。所述服務(wù)裝置包括第二響應(yīng)模塊,用于響應(yīng)所述系統(tǒng)預(yù)設(shè)函數(shù);所述第二響應(yīng)模塊包括第二認(rèn)證單元和第五判斷單元;所述第二認(rèn)證單元,用于認(rèn)證解析得到的第一認(rèn)證參數(shù);
所述第五判斷單元,用于判斷是否成功認(rèn)證所述第一認(rèn)證參數(shù)。所述服務(wù)裝置還包括驗(yàn)證模塊,用于驗(yàn)證所述解析模塊得到的智能密鑰設(shè)備的序列號(hào);所述驗(yàn)證模塊包括第二接收單元、第六判斷單元、第二顯示單元、第二獲取單元和第七判斷單元;所述第二接收單元,用于接收第二用戶按鍵信息;所述第六判斷單元,用于根據(jù)所述第二用戶按鍵信息判斷用戶按鍵類型;所述第二顯示單元,用于通過(guò)顯示屏將模態(tài)框輸出;所述第二獲取單元,用于獲取所述智能密鑰設(shè)備的序列號(hào);所述第七判斷單元,用于判斷獲取得到的所述智能密鑰設(shè)備的序列號(hào)與解析得到的所述智能密鑰設(shè)備序列號(hào)是否相同。所述解碼模塊包括第八判斷單元、解碼單元、解密單元、第二組合單元、第一驗(yàn)證單元、第三獲取單元和第二驗(yàn)證單元;所述第八判斷單元,用于判斷解析得到的所述標(biāo)志位是否置位;所述解碼單元,用于對(duì)解析得到的所述第一數(shù)據(jù)包進(jìn)行解碼;所述解密單 元,用于對(duì)所述解碼單元解碼成功的結(jié)果進(jìn)行解密;所述第二組合單元,用于當(dāng)所述解密單元解密成功時(shí)將所述解密得到的第一信息、所述第二信息和所述第三信息進(jìn)行組合,得到所述待簽名數(shù)據(jù);所述第一驗(yàn)證單元,用于驗(yàn)證所述用戶輸入的PIN碼;所述第三獲取單元,用于從所述智能密鑰設(shè)備中的證書(shū)中獲取證書(shū)公鑰和證書(shū)用戶名;所述第二驗(yàn)證單元,用于根據(jù)所述第三獲取單元獲取的證書(shū)用戶名驗(yàn)證所述用戶輸入的證書(shū)用戶名。所述第二接收單元還用于接收用戶輸入的PIN碼。所述應(yīng)用裝置還包括連接模塊,用于與所述智能密鑰設(shè)備進(jìn)行連接。所述第二調(diào)用模塊還用于以預(yù)設(shè)的第二認(rèn)證參數(shù)、所述保存的所述應(yīng)用程序的地址字符串、所述智能密鑰設(shè)備返回的信息和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),清除所述模態(tài)框。所述第一響應(yīng)模塊包括解析單元、第一認(rèn)證單元和第九判斷單元;所述解析單元,用于當(dāng)應(yīng)用程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù);所述第一認(rèn)證單元,用于認(rèn)證解析得到的第二認(rèn)證參數(shù);所述第九判斷單元,用于判斷是否成功認(rèn)證所述第二認(rèn)證參數(shù)。所述應(yīng)用裝置還包括顯示模塊,用于顯示所述簽名結(jié)果或根據(jù)返回值顯示相應(yīng)錯(cuò)誤信息。本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)服務(wù)端為客戶端提供服務(wù)接口,用戶按照接口規(guī)范編寫(xiě)完程序后,服務(wù)端修改或升級(jí)服務(wù)程序,客戶端程序不需要改變;反之,客戶端程序進(jìn)行修改或升級(jí),服務(wù)端不需要改變,系統(tǒng)升級(jí)簡(jiǎn)單方便。
圖1是本發(fā)明實(shí)施例1提供的一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法流程圖;圖2、圖3和圖4是本發(fā)明實(shí)施例2提供的一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法流程圖;圖5是本發(fā)明實(shí)施例3提供的一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的系統(tǒng)的方框示意圖。
具體實(shí)施例方式目前iOS4及其以上版本的多任務(wù)機(jī)制并不是傳統(tǒng)意義上的多任務(wù),即任何程序都可以自由地在后臺(tái)運(yùn)行。蘋(píng)果開(kāi)放給第三方軟件開(kāi)發(fā)者的后臺(tái)運(yùn)行接口只包括音頻播放(例如網(wǎng)絡(luò)電臺(tái)軟件)、地理位置偵測(cè)(例如,GPS軟件)和網(wǎng)絡(luò)電話(例如,網(wǎng)絡(luò)即時(shí)語(yǔ)音溝通工具Skype)等幾個(gè)功能。在iOS4及其以上版本里,如果用戶單擊Home退到桌面,那么正在運(yùn)行的軟件并沒(méi)有退出,而是被凍結(jié)。雖然軟件被置入后臺(tái),處于凝滯狀態(tài),但仍然在運(yùn)行,之前分配給軟件的系統(tǒng)資源仍然在位。因此,當(dāng)用戶重新回到這個(gè)軟件時(shí),軟件可以立即恢復(fù)到上次退出時(shí)的狀態(tài),這就是iOS4及其以上版本的多任務(wù)功能的核心所在。處于凍結(jié)狀態(tài)的軟件可以進(jìn)行某些操作,例如音頻播放,但并不是所有操作都能進(jìn)行,而且,iOS系統(tǒng)會(huì)因?yàn)樾枰〕鰞?nèi)存而終止某個(gè)程序。綜上所述,為滿足一種應(yīng)用程序與服務(wù)程序相互調(diào)用的需求,本發(fā)明采用openURL函數(shù)跳轉(zhuǎn)方式以解決此問(wèn)題。下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù) 的范圍。實(shí)施例1本發(fā)明的實(shí)施例1提供一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法,如圖1所示,本方法包括當(dāng)應(yīng)用程序被調(diào)用時(shí),執(zhí)行以下步驟步驟101 :應(yīng)用程序?qū)Υ灻麛?shù)據(jù)進(jìn)行編碼,得到第一數(shù)據(jù)包;步驟102 :應(yīng)用程序以服務(wù)程序的地址字符串、應(yīng)用程序的地址字符串和第一數(shù)據(jù)包為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);步驟103 :當(dāng)服務(wù)程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),保存應(yīng)用程序的地址字符串;步驟104 :服務(wù)程序?qū)馕龅玫降南到y(tǒng)預(yù)設(shè)函數(shù)的參數(shù)中的第一數(shù)據(jù)包進(jìn)行解碼,如解碼成功則得到待簽名數(shù)據(jù),執(zhí)行步驟105,否則將解碼失敗信息作為返回值,服務(wù)程序以保存的所述應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟108 ;步驟105 :服務(wù)程序?qū)⒋灻麛?shù)據(jù)和預(yù)設(shè)簽名類型發(fā)送給智能密鑰設(shè)備;
具體地,本實(shí)施例中,該步驟之前還包括服務(wù)程序連接智能密鑰設(shè)備;智能密鑰設(shè)備接收到待簽名數(shù)據(jù)和預(yù)設(shè)簽名類型后,根據(jù)預(yù)設(shè)簽名類型對(duì)應(yīng)的算法對(duì)待簽名數(shù)據(jù)進(jìn)行簽名,并將簽名結(jié)果返回給服務(wù)程序;如智能密鑰設(shè)備中沒(méi)有與預(yù)設(shè)簽名類型對(duì)應(yīng)的算法,則給服務(wù)器返回簽名錯(cuò)誤的信息;步驟106 :服務(wù)程序接收智能密鑰設(shè)備返回的信息;具體地,本實(shí)施例中,智能密鑰設(shè)備返回的信息包括簽名結(jié)果或簽名錯(cuò)誤信息;步驟107 :服務(wù)程序以智能密鑰設(shè)備返回的信息、保存的應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);步驟108 :當(dāng)應(yīng)用程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),得到簽名結(jié)果或返回值,結(jié)束。本實(shí)施例中提供的一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法,當(dāng)應(yīng)用程序進(jìn)行修改或升級(jí)時(shí),服務(wù)程序不需要改變;反之,服務(wù)程序進(jìn)行修改或升級(jí)時(shí),應(yīng)用程序不需要改變,實(shí)現(xiàn)了應(yīng)用程序和服務(wù)程序的獨(dú)立部署。實(shí)施例2本發(fā)明的實(shí)施例2提供一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法,如圖2、圖3和圖4所示,應(yīng)用程序和服務(wù)程序配置文件中的URL選項(xiàng)預(yù)先設(shè)置,本方法包括當(dāng)應(yīng)用程序被調(diào)用時(shí),執(zhí)行以下步驟步驟201 :應(yīng)用程序等待接收用戶輸入的信息及第一用戶按鍵信息,應(yīng)用程序判斷是否接收到用戶輸入的信息及第一用戶按鍵信息,是則執(zhí)行步驟203,否則執(zhí)行步驟202 ;優(yōu)選地,本實(shí)施例中,用戶從預(yù)置列表中選擇是否調(diào)用該應(yīng)用程序;除此之外,也可以根據(jù)配置文件選擇是否調(diào)用該應(yīng)用程序;例如,本實(shí)施例中,用戶輸入信息包括第一賬戶、第二賬戶、傳輸信息、CN字段和智能密鑰設(shè)備的序列號(hào);例如,本實(shí)施例中第一賬戶為123456789,第二賬戶為987654321,傳輸信息為12,CN字段為test,智能密鑰設(shè)備的序列號(hào)為FFFFFFFFFF ;步驟202 :應(yīng)用程序通過(guò)顯示屏將提示信息輸出,返回步驟201 ;例如,本實(shí)施例中,提示信息為用戶需輸入第一賬戶、第二賬戶、傳輸信息、CN字段和智能密鑰設(shè)備序列號(hào);步驟203 :應(yīng)用程序?qū)τ脩糨斎氲腃N字段進(jìn)行加密;例如,本實(shí)施例中,使用對(duì)稱加密算法對(duì)CN字段進(jìn)行加密,優(yōu)選地,使用3DES對(duì)稱加密算法,CBC模式,2key,采用PKCS#5補(bǔ)位,密鑰由多個(gè)因子生成,包括內(nèi)置密鑰、會(huì)話標(biāo)識(shí)、隨機(jī)因子,以上因子依次拼接后進(jìn)行SHAl摘要,取前16字節(jié)作為密鑰;其中內(nèi)置密鑰預(yù)先存儲(chǔ)在智能密鑰設(shè)備中;步驟204:應(yīng)用程序根據(jù)第一用 戶按鍵信息判斷用戶按鍵類型,若用戶按鍵為原文簽名則執(zhí)行步驟205,若用戶按鍵為Xml簽名則執(zhí)行步驟209 ;步驟205 :應(yīng)用程序?qū)?biāo)志位設(shè)為I,對(duì)顯示信息、Xml信息和擴(kuò)展信息進(jìn)行組合,得到待簽名數(shù)據(jù),對(duì)待簽名數(shù)據(jù)進(jìn)行加密;具體地,本實(shí)施例中,顯示信息由用戶輸入,Xml信息由預(yù)先設(shè)置在應(yīng)用程序中的信息和用戶輸入的信息組合而成,擴(kuò)展信息預(yù)先設(shè)置在應(yīng)用程序中;本實(shí)施例中,該步驟加密方法與步驟203相同;優(yōu)選地,本實(shí)施例中,應(yīng)用程序?qū)︼@示信息、Xml信息和擴(kuò)展信息進(jìn)行TLV組合;例如,本實(shí)施例中,組合報(bào)文為110000000966210000000848〈 xml
權(quán)利要求
1.一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法,其特征在于,所述方法包括當(dāng)應(yīng)用程序被調(diào)用時(shí),執(zhí)行以下步驟步驟S1:所述應(yīng)用程序?qū)Υ灻麛?shù)據(jù)進(jìn)行編碼,得到第一數(shù)據(jù)包;步驟S2 :所述應(yīng)用程序以服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串和所述第一數(shù)據(jù)包為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);步驟S3:當(dāng)服務(wù)程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),保存所述應(yīng)用程序的地址字符串;步驟S4 :所述服務(wù)程序?qū)馕龅玫降乃鱿到y(tǒng)預(yù)設(shè)函數(shù)的參數(shù)中的所述第一數(shù)據(jù)包進(jìn)行解碼,如解碼成功則得到所述待簽名數(shù)據(jù),執(zhí)行步驟S5,否則將解碼失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S5 :所述服務(wù)程序?qū)⑺龃灻麛?shù)據(jù)和預(yù)設(shè)簽名類型發(fā)送給智能密鑰設(shè)備;步驟S6 :所述服務(wù)程序接收所述智能密鑰設(shè)備返回的信息;步驟S7 :所述服務(wù)程序以所述智能密鑰設(shè)備返回的信息、所述保存的所述應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù);步驟S8 :當(dāng)所述應(yīng)用程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),所述應(yīng)用程序解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),得到簽名結(jié)果或所述返回值,結(jié)束。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S6至步驟S8替換為步驟S6’ 所述服務(wù)程序接收所述智能密鑰設(shè)備返回的信息,判斷所述智能密鑰設(shè)備返回的信息是否為簽名結(jié)果,是則執(zhí)行步驟S7’,否則將簽名錯(cuò)誤信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù);步驟S7’ 所述服務(wù)程序以所述簽名結(jié)果、所述保存的所述應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù);步驟S8’ 當(dāng)所述應(yīng)用程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),所述應(yīng)用程序解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),解析得到的返回值是否為表示正確信息的返回值,是則得到所述簽名結(jié)果, 結(jié)束,否則得到錯(cuò)誤信息,結(jié)束。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟SI包括步驟Sl-1 :所述應(yīng)用程序等待接收用戶輸入的信息及第一用戶按鍵信息,并判斷是否接收到所述用戶輸入的信息及第一用戶按鍵信息,是則執(zhí)行步驟S1-3,否則執(zhí)行步驟 S1-2 ;所述用戶輸入的信息包括第一賬戶、第二賬戶、傳輸信息、證書(shū)用戶名和所述智能密鑰設(shè)備的序列號(hào);步驟S1-2 :所述應(yīng)用程序通過(guò)顯示屏將提示信息輸出,返回步驟Sl-1 ;步驟S1-3 :所述應(yīng)用程序?qū)λ鲇脩糨斎氲男畔⒅械乃鲎C書(shū)用戶名進(jìn)行加密;步驟S1-4 :所述應(yīng)用程序根據(jù)所述第一用戶按鍵信息判斷用戶按鍵類型,若所述用戶按鍵類型為原文簽名則執(zhí)行步驟S1-5,否則執(zhí)行步驟S1-7 ;步驟S1-5 :所述應(yīng)用程序?qū)?biāo)志位置位,對(duì)第一信息、第二信息和第三信息進(jìn)行組合, 得到所述待簽名數(shù)據(jù),對(duì)所述待簽名數(shù)據(jù)進(jìn)行加密;所述第一信息為所述用戶輸入的信息的一部分,所述第二信息由所述用戶輸入的信息的剩余部分與所述應(yīng)用程序中的預(yù)設(shè)信息組合得到,所述第三信息為所述應(yīng)用程序中的預(yù)設(shè)信息;步驟S1-6 :所述應(yīng)用程序?qū)λ龃灻麛?shù)據(jù)的加密結(jié)果進(jìn)行編碼,根據(jù)編碼結(jié)果生成所述第一數(shù)據(jù)包,執(zhí)行步驟S2 ;步驟S1-7 :所述應(yīng)用程序?qū)?biāo)志位復(fù)位,對(duì)所述第一信息、第二信息和第三信息分別進(jìn)行加密;步驟S1-8 :所述應(yīng)用程序分別對(duì)所述第一信息、第二信息和第三信息的加密結(jié)果進(jìn)行編碼,根據(jù)編碼結(jié)果生成所述第一數(shù)據(jù)包,執(zhí)行步驟S2。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述生成第一數(shù)據(jù)包具體為根據(jù)所述編碼結(jié)果和所述標(biāo)志位生成第一數(shù)據(jù)包,所述編碼結(jié)果中包括所述智能密鑰設(shè)備的序列號(hào)和加密后的證書(shū)用戶名。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S2替換為步驟S2’ 所述應(yīng)用程序以服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串、預(yù)設(shè)的第一認(rèn)證參數(shù)和所述第一數(shù)據(jù)包為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S2之后還包括步驟S2-1 :所述應(yīng)用程序獲取所述系統(tǒng)預(yù)設(shè)函數(shù)的返回值,判斷所述返回值類型,若為是則啟動(dòng)所述服務(wù)程序,否則結(jié)束。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟S3包括步驟S3-0 :當(dāng)所述服務(wù)程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),認(rèn)證解析得到的所述第一認(rèn)證參數(shù)并判斷是否認(rèn)證成功,是則保存解析得到的所述應(yīng)用程序的地址字符串,否則結(jié)束。
8.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟S3具體為步驟S3-1 :當(dāng)所述服務(wù)程序接收到用戶輸入的第二用戶按鍵信息時(shí),根據(jù)所述第二用戶按鍵信息判斷用戶按鍵類型,若是確定鍵則執(zhí)行步驟S3-2,否則將用戶取消信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S3-2 :所述服務(wù)程序通過(guò)顯示屏將模態(tài)框輸出;步驟S3-3 :所述服務(wù)程序解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù),并保存所述應(yīng)用程序的地址字符串;步驟S3-4 :所述服務(wù)程序獲取所述智能密鑰設(shè)備的序列號(hào),判斷獲取的所述智能密鑰設(shè)備的序列號(hào)與解析得到的所述智能密鑰設(shè)備的序列號(hào)是否相同,是則執(zhí)行步驟S4,否則將驗(yàn)證所述智能密鑰設(shè)備序列號(hào)的失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述步驟S4包括步驟S4-1 :所述服務(wù)程序判斷所述標(biāo)志位是否置位,是則執(zhí)行步驟S4-2,否則執(zhí)行步驟 S4-3 ;步驟S4-2 :所述服務(wù)程序?qū)λ龅谝粩?shù)據(jù)包進(jìn)行解碼,對(duì)解碼結(jié)果進(jìn)行解密,如解密成功則得到所述用戶輸入的證書(shū)用戶名和所述待簽名數(shù)據(jù),執(zhí)行步驟S4-4,否則將解碼解密失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S4-3 :所述服務(wù)程序?qū)λ龅谝粩?shù)據(jù)包進(jìn)行解碼,對(duì)解碼結(jié)果進(jìn)行解密,如解密成功則得到所述用戶輸入的證書(shū)用戶名、所述第一信息、所述第二信息和所述第三信息,將所述第一信息、所述第二信息和所述第三信息進(jìn)行組合,得到所述待簽名數(shù)據(jù),執(zhí)行步驟 S4-4,否則將解碼解密失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S4-4 :所述服務(wù)程序驗(yàn)證用戶輸入的PIN碼,如驗(yàn)證成功則執(zhí)行步驟S4-5,否則將驗(yàn)證PIN碼失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S4-5:所述服務(wù)程序從所述智能密鑰設(shè)備中的證書(shū)中獲取證書(shū)公鑰和證書(shū)用戶名;步驟S4-6 :所述服務(wù)程序用所述獲取得到的證書(shū)用戶名驗(yàn)證所述用戶輸入的證書(shū)用戶名,如驗(yàn)證成功則執(zhí)行步驟S5,否則將驗(yàn)證證書(shū)用戶名失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述步驟S4-4之前包括所述服務(wù)程序接收用戶輸入的PIN碼。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述步驟S4-4、步驟S4-5和步驟S4-6 替換為步驟S4-4’ 所述服務(wù)程序從所述智能密鑰設(shè)備中的證書(shū)中獲取證書(shū)公鑰和證書(shū)用戶名;步驟S4-5’ 所述服務(wù)程序用所述獲取得到的證書(shū)用戶名驗(yàn)證所述用戶輸入的證書(shū)用戶名,如驗(yàn)證成功則執(zhí)行步驟S4-6’,否則將驗(yàn)證證書(shū)用戶名失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8 ;步驟S4-6’ 所述服務(wù)程序驗(yàn)證用戶輸入的PIN碼,如驗(yàn)證成功則執(zhí)行步驟S5,否則將驗(yàn)證PIN碼失敗信息作為返回值,所述服務(wù)程序以所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),執(zhí)行步驟S8。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S5之前還包括所述服務(wù)程序連接所述智能密鑰設(shè)備。
13.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述步驟S7替換為步驟S7-1 :所述服務(wù)程序以預(yù)設(shè)的第二認(rèn)證參數(shù)、所述保存的所述應(yīng)用程序的地址字符串、所述智能密鑰設(shè)備返回的信息和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),清除所述模態(tài)框,結(jié)束。
14.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟S6’和步驟S7’替換為步驟S6’ -1 :所述服務(wù)程序接收所述智能密鑰設(shè)備返回的信息,判斷所述智能密鑰設(shè)備返回的信息是否為簽名結(jié)果,是則執(zhí)行步驟S7’,否則將簽名錯(cuò)誤信息作為返回值,所述服務(wù)程序以預(yù)設(shè)的第二認(rèn)證參數(shù)、所述保存的所述應(yīng)用程序的地址字符串和所述返回值為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);步驟S7’ -1 :所述服務(wù)程序以所述第二認(rèn)證參數(shù)、所述保存的所述應(yīng)用程序的地址字符串、所述智能密鑰設(shè)備返回的信息和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù)。
15.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟S8包括步驟S8-0 :當(dāng)所述應(yīng)用程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù), 認(rèn)證解析得到的所述第二認(rèn)證參數(shù),判斷是否認(rèn)證成功,是則得到簽名結(jié)果或返回值,結(jié)束,否則結(jié)束。
16.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述步驟S8’包括步驟S8’ -O :當(dāng)所述應(yīng)用程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù), 認(rèn)證解析得到的所述第二認(rèn)證參數(shù)并判斷是否認(rèn)證成功,如認(rèn)證成功則判斷解析得到的返回值是否為表示正確信息的返回值,是則得到簽名結(jié)果,結(jié)束,否則得到錯(cuò)誤信息,結(jié)束;如認(rèn)證失敗則結(jié)束。
17.根據(jù)權(quán)利要求16所述的方法,其特征在于,所述步驟S8’還包括顯示所述簽名結(jié)果或根據(jù)所述返回值顯示相應(yīng)信息。
18.—種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的系統(tǒng),其特征在于,所述系統(tǒng)包括應(yīng)用裝置和服務(wù)裝置;所述應(yīng)用裝置包括編碼模塊、第一調(diào)用模塊和第一響應(yīng)模塊;所述編碼模塊,用于對(duì)待簽名數(shù)據(jù)進(jìn)行編碼,得到第一數(shù)據(jù)包;所述第一調(diào)用模塊,用于以服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串和所述第一數(shù)據(jù)包為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);所述第一響應(yīng)模塊,用于當(dāng)應(yīng)用程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù);所述服務(wù)裝置包括解析模塊、存儲(chǔ)模塊、解碼模塊、發(fā)送模塊、第二接收模塊和第二調(diào)用模塊;所述解析模塊,用于當(dāng)服務(wù)程序被所述系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù);所述存儲(chǔ)模塊,用于保存所述應(yīng)用程序的地址字符串;所述解碼模塊,用于對(duì)解析得到的所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù)中的所述第一數(shù)據(jù)包進(jìn)行解碼;所述發(fā)送模塊,用于將所述解碼模塊解碼成功得到的所述待簽名數(shù)據(jù)和預(yù)設(shè)簽名類型發(fā)送給智能密鑰設(shè)備;所述第二接收模塊,用于接收所述智能密鑰設(shè)備返回的信息;所述第二調(diào)用模塊,以所述智能密鑰設(shè)備返回的信息、所述保存的所述應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),或者,以所述保存的所述應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù)。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,所述服務(wù)裝置中的所述第二接收模塊包括接收單元和第一判斷單元;所述接收單元,用于接收所述智能密鑰設(shè)備返回的信息;所述第一判斷單元,用于判斷所述智能密鑰設(shè)備返回的信息是否為簽名結(jié)果;所述應(yīng)用裝置中還包括第一判斷模塊;所述第一判斷模塊,用于判斷所述返回值是否為表示正確信息的返回值。
20.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,所述應(yīng)用裝置還包括第一接收模塊和組合模塊;所述第一接收模塊包括第一接收單元,第二判斷單元、第一顯示單元、第一加密單元和第三判斷單元;所述第一接收單元,用于接收用戶輸入的信息及第一用戶按鍵信息;所述第二判斷單元,用于判斷是否接收到所述用戶輸入的信息及第一用戶按鍵信息; 所述第一顯示單元,用于通過(guò)顯示屏將提示信息輸出;所述第一加密單元,用于對(duì)所述用戶輸入的信息中的證書(shū)用戶名進(jìn)行加密;所述第三判斷單元,用于根據(jù)所述第一用戶按鍵信息判斷用戶按鍵類型;所述組合模塊包括標(biāo)志位單元、第一組合單元和第二加密單元;所述標(biāo)志位單元,用于將標(biāo)志位置位或?qū)?biāo)志位復(fù)位;所述第一組合單元,用于對(duì)第一信息、第二信息和第三信息進(jìn)行組合,得到所述待簽名數(shù)據(jù);所述第二加密單元,用于對(duì)所述待簽名數(shù)據(jù)進(jìn)行加密,或者,對(duì)所述第一信息、第二信息和第三信息分別進(jìn)行加密。
21.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,所述第一調(diào)用模塊還用于以所述服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串、預(yù)設(shè)的第一認(rèn)證參數(shù)和所述第一數(shù)據(jù)包為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù)。
22.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,所述第一調(diào)用模塊包括第一調(diào)用單元、 第一獲取單元和第四判斷單元;所述第一調(diào)用單元,用于以所述服務(wù)程序的地址字符串、所述應(yīng)用程序的地址字符串和所述第一數(shù)據(jù)包為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù);所述第一獲取單元,用于獲取所述系統(tǒng)預(yù)設(shè)函數(shù)的返回值;所述第四判斷單元,用于判斷所述系統(tǒng)預(yù)設(shè)函數(shù)的返回值類型。
23.根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于,所述服務(wù)裝置包括第二響應(yīng)模塊,用于響應(yīng)所述系統(tǒng)預(yù)設(shè)函數(shù);所述第二響應(yīng)模塊包括第二認(rèn)證單元和第五判斷單元;所述第二認(rèn)證單元,用于認(rèn)證解析得到的第一認(rèn)證參數(shù);所述第五判斷單元,用于判斷是否成功認(rèn)證所述第一認(rèn)證參數(shù)。
24.根據(jù)權(quán)利要求20所述的系統(tǒng),其特征在于,所述服務(wù)裝置還包括驗(yàn)證模塊,用于驗(yàn)證所述解析模塊得到的智能密鑰設(shè)備的序列號(hào);所述驗(yàn)證模塊包括第二接收單元、第六判斷單元、第二顯示單元、第二獲取單元和第七判斷單元;所述第二接收單元,用于接收第二用戶按鍵信息;所述第六判斷單元,用于根據(jù)所述第二用戶按鍵信息判斷用戶按鍵類型;所述第二顯示單元,用于通過(guò)顯示屏將模態(tài)框輸出;所述第二獲取單元,用于獲取所述智能密鑰設(shè)備的序列號(hào);所述第七判斷單元,用于判斷獲取得到的所述智能密鑰設(shè)備的序列號(hào)與解析得到的所述智能密鑰設(shè)備序列號(hào)是否相同。
25.根據(jù)權(quán)利要求24所述的系統(tǒng),其特征在于,所述解碼模塊包括第八判斷單元、解碼單元、解密單元、第二組合單元、第一驗(yàn)證單元、第三獲取單元和第二驗(yàn)證單元;所述第八判斷單元,用于判斷解析得到的所述標(biāo)志位是否置位;所述解碼單元,用于對(duì)解析得到的所述第一數(shù)據(jù)包進(jìn)行解碼;所述解密單元,用于對(duì)所述解碼單元解碼成功的結(jié)果進(jìn)行解密;所述第二組合單元,用于當(dāng)所述解密單元解密成功時(shí)將所述解密得到的第一信息、所述第二信息和所述第三信息進(jìn)行組合,得到所述待簽名數(shù)據(jù);所述第一驗(yàn)證單元,用于驗(yàn)證所述用戶輸入的PIN碼;所述第三獲取單元,用于從所述智能密鑰設(shè)備中的證書(shū)中獲取證書(shū)公鑰和證書(shū)用戶名;所述第二驗(yàn)證單元,用于根據(jù)所述第三獲取單元獲取的證書(shū)用戶名驗(yàn)證所述用戶輸入的證書(shū)用戶名。
26.根據(jù)權(quán)利要求25所述的系統(tǒng),其特征在于,所述第二接收單元還用于接收用戶輸入的PIN碼。
27.根據(jù)權(quán)利要求26所述的系統(tǒng),其特征在于,所述應(yīng)用裝置還包括連接模塊,用于與所述智能密鑰設(shè)備進(jìn)行連接。
28.根據(jù)權(quán)利要求27所述的系統(tǒng),其特征在于,所述第二調(diào)用模塊還用于以預(yù)設(shè)的第二認(rèn)證參數(shù)、所述保存的所述應(yīng)用程序的地址字符串、所述智能密鑰設(shè)備返回的信息和返回值為參數(shù),調(diào)用所述系統(tǒng)預(yù)設(shè)函數(shù),清除所述模態(tài)框。
29.根據(jù)權(quán)利要求28所述的系統(tǒng),其特征在于,所述第一響應(yīng)模塊包括解析單元、第一認(rèn)證單元和第九判斷單元;所述解析單元,用于當(dāng)應(yīng)用程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析所述系統(tǒng)預(yù)設(shè)函數(shù)的參數(shù);所述第一認(rèn)證單元,用于認(rèn)證解析得到的第二認(rèn)證參數(shù);所述第九判斷單元,用于判斷是否成功認(rèn)證所述第二認(rèn)證參數(shù)。
30.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,所述應(yīng)用裝置還包括顯示模塊,用于顯示所述簽名結(jié)果或根據(jù)返回值顯示相應(yīng)錯(cuò)誤信息。
全文摘要
本發(fā)明公開(kāi)一種在移動(dòng)操作系統(tǒng)中完成數(shù)字簽名的方法和系統(tǒng),該方法包括應(yīng)用程序?qū)Υ灻麛?shù)據(jù)進(jìn)行編碼得到第一數(shù)據(jù)包;以服務(wù)程序的地址字符串、應(yīng)用程序的地址字符串和第一數(shù)據(jù)包為參數(shù)調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);當(dāng)服務(wù)程序被系統(tǒng)預(yù)設(shè)函數(shù)調(diào)用時(shí),解析函數(shù)參數(shù),保存應(yīng)用程序的地址字符串;對(duì)第一數(shù)據(jù)包進(jìn)行解碼,成功則將待簽名數(shù)據(jù)和預(yù)設(shè)簽名類型發(fā)送到智能密鑰設(shè)備,否則將解碼失敗信息作為返回值,以應(yīng)用程序的地址字符串和返回值為參數(shù),調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);接收智能密鑰設(shè)備返回的信息;以智能密鑰設(shè)備返回的信息、應(yīng)用程序的地址字符串和返回值為參數(shù)調(diào)用系統(tǒng)預(yù)設(shè)函數(shù);應(yīng)用程序解析系統(tǒng)預(yù)設(shè)函數(shù)參數(shù),得到簽名結(jié)果或返回值,結(jié)束。
文檔編號(hào)H04L9/32GK103067174SQ20121057862
公開(kāi)日2013年4月24日 申請(qǐng)日期2012年12月27日 優(yōu)先權(quán)日2012年12月27日
發(fā)明者陸舟, 于華章 申請(qǐng)人:飛天誠(chéng)信科技股份有限公司