軟件防破解方法和系統(tǒng)的制作方法
【專利摘要】本申請(qǐng)公開(kāi)了一種軟件防破解方法和系統(tǒng),其中方法包括終端設(shè)備在需要安裝應(yīng)用的主應(yīng)用文件時(shí),向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰,如果獲取失敗,則停止所述安裝;當(dāng)終端設(shè)備首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán),在獲得授權(quán)后加載應(yīng)用的類(lèi)SEC文件,利用應(yīng)用私鑰對(duì)SEC文件加密,保存所得到的加密文件FSEC,并刪除應(yīng)用私鑰和SEC文件的明文;當(dāng)所述終端設(shè)備非首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰,利用申請(qǐng)到的解密密鑰對(duì)所述加密文件FSEC解密,獲得SEC文件的明文并加載,在加載結(jié)束后刪除解密密鑰和SEC文件的明文。采用本發(fā)明可以有效避免軟件被惡意破解。
【專利說(shuō)明】
軟件防破解方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及數(shù)據(jù)安全技術(shù),特別是涉及一種軟件防破解方法和系統(tǒng)。
【背景技術(shù)】
[0002]目前,隨著移動(dòng)互聯(lián)技術(shù)的不斷發(fā)展以及android移動(dòng)設(shè)備的大范圍使用,各種移動(dòng)應(yīng)用也層出不窮。有資料顯示到2017年,移動(dòng)應(yīng)用的下載量將達(dá)到2680億,移動(dòng)應(yīng)用市場(chǎng)的規(guī)模將達(dá)到770億。近年來(lái),愈發(fā)凸顯的問(wèn)題則是軟件被惡意破解。
[0003]現(xiàn)有的軟件防破解方案中,是通過(guò)控制用戶對(duì)應(yīng)用的類(lèi)(SEC)文件的使用來(lái)防止對(duì)軟件的非法使用。具體而言,用戶下載的應(yīng)用將包含兩個(gè)文件,它們分別為:非完全的主應(yīng)用文件αΜΑ)和一個(gè)單獨(dú)且必不可少的SEC文件。用戶購(gòu)買(mǎi)之后,就會(huì)下載IMA文件。此后,如果想要使用該應(yīng)用的所有功能,則會(huì)到應(yīng)用市場(chǎng)下載一個(gè)加密的SEC文件,在下載時(shí),應(yīng)用市場(chǎng)會(huì)對(duì)用戶的合法性進(jìn)行認(rèn)證,用戶下載到加密的SEC文件后可以自行解密該文件,使應(yīng)用程序得以動(dòng)態(tài)加載執(zhí)行。執(zhí)行之后,動(dòng)態(tài)加載模塊會(huì)刪除SEC文件。
[0004]在上述軟件防破解方案中,用戶每次想使用應(yīng)用的所有功能都要重新下載一次加密的SEC文件,因此,會(huì)增加用戶的流量損耗;另外,如果用戶將android設(shè)備root了,則可以隨意訪問(wèn)android的安全空間,從而可以修改APK文件的動(dòng)態(tài)加載刪除功能,保留SEC文件,這樣,軟件就被破解了。
[0005]由此可見(jiàn),現(xiàn)有的軟件防破解方案無(wú)法有效避免軟件被非法破解。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明的主要目的在于提供一種軟件防破解方法和系統(tǒng),可以有效避免軟件被惡意破解。
[0007]為了達(dá)到上述目的,本發(fā)明提出的技術(shù)方案為:
[0008]—種軟件防破解方法,包括:
[0009]終端設(shè)備在需要安裝應(yīng)用的主應(yīng)用文件時(shí),向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰,如果獲取失敗,則停止所述安裝;
[0010]當(dāng)終端設(shè)備首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán),在獲得所述授權(quán)后加載所述應(yīng)用的SEC文件,利用所述應(yīng)用私鑰對(duì)所述SEC文件加密,保存所得到的加密文件FSEC,并刪除所述應(yīng)用私鑰和所述SEC文件的明文;
[0011]當(dāng)所述終端設(shè)備非首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰,利用申請(qǐng)到的所述解密密鑰對(duì)所述加密文件Fsec解密,獲得所述SEC文件的明文并加載,在所述加載結(jié)束后刪除所述解密密鑰和所述SEC文件的明文。
[0012]較佳地,所述向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰包括:
[0013]S1、所述終端設(shè)備向所述應(yīng)用管理服務(wù)器發(fā)送應(yīng)用私鑰請(qǐng)求,所述應(yīng)用私鑰請(qǐng)求包含所述終端設(shè)備為當(dāng)前交互生成的隨機(jī)數(shù)S1、用戶屬性信息和應(yīng)用屬性信息;所述用戶屬性信息包括用戶名、用戶密碼和終端設(shè)備標(biāo)識(shí);所述應(yīng)用屬性信息包括應(yīng)用的證書(shū)信息碼和應(yīng)用標(biāo)識(shí)碼;
[0014]S2、所述應(yīng)用管理服務(wù)器根據(jù)應(yīng)用私鑰請(qǐng)求消息,對(duì)所述應(yīng)用私鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證,如果合法,則采用加密傳輸?shù)姆绞綄⑺鰬?yīng)用私鑰發(fā)送給所述終端設(shè)備,否則,拒絕所述應(yīng)用私鑰請(qǐng)求。
[0015]較佳地,步驟s2中對(duì)所述應(yīng)用私鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證包括:
[0016]xl、所述應(yīng)用管理服務(wù)器判斷所述應(yīng)用私鑰請(qǐng)求攜帶的所述隨機(jī)數(shù)Si是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟x2,否則,判定所述應(yīng)用私鑰請(qǐng)求非法;
[0017]x2、所述應(yīng)用管理服務(wù)器判斷是否滿足:所述應(yīng)用私鑰請(qǐng)求攜帶的證書(shū)信息碼與當(dāng)前保存的對(duì)應(yīng)應(yīng)用的證書(shū)信息碼一致,且所述應(yīng)用私鑰請(qǐng)求攜帶的用戶密碼與當(dāng)前保存的對(duì)應(yīng)用戶的用戶密碼一致,則判斷所述應(yīng)用私鑰請(qǐng)求合法,否則,判斷所述應(yīng)用私鑰請(qǐng)求非法。
[0018]較佳地,步驟s2中所述采用加密傳輸?shù)姆绞綄⑺鰬?yīng)用私鑰發(fā)送給所述終端設(shè)備包括:
[0019]所述應(yīng)用管理服務(wù)器利用所述應(yīng)用私鑰、所述證書(shū)信息碼、所述應(yīng)用標(biāo)識(shí)碼、所述終端設(shè)備標(biāo)識(shí)和所述隨機(jī)數(shù)Si,生成應(yīng)用市場(chǎng)初始簽名SigM;將所述應(yīng)用市場(chǎng)初始簽名SigAM加密后發(fā)送給所述終端設(shè)備;
[0020]所述終端設(shè)備對(duì)所述SigAM解密后,判斷其中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述SigAM攜帶的所述應(yīng)用私鑰,否則,判定所述應(yīng)用私鑰的獲取失敗。
[0021]較佳地,向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán)包括:
[0022]yl、所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文;
[0023]y2、所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟y3,否則,拒絕所述應(yīng)用功能加載授權(quán),結(jié)束所述申請(qǐng)應(yīng)用功能加載授權(quán)的過(guò)程;
[0024]y3、所述應(yīng)用管理服務(wù)器根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果一致,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)s2;否則,拒絕所述應(yīng)用功能加載授權(quán);
[0025]y4、所述終端設(shè)備判斷所述應(yīng)用功能加載授權(quán)消息中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),否則,判定所述應(yīng)用功能加載授權(quán)獲取失敗。
[0026]較佳地,向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán)包括:
[0027]yl、所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符以及所述應(yīng)用市場(chǎng)初始簽名SigAM—起加密后的密文;
[0028]y2、所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟y3,否則,拒絕所述應(yīng)用功能加載授權(quán),結(jié)束所述應(yīng)用功能加載授權(quán)的申請(qǐng)過(guò)程;
[0029]y3、所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigM是否有效,如果是,則執(zhí)行步驟y4,否則,拒絕所述應(yīng)用功能加載授權(quán),結(jié)束所述應(yīng)用功能加載授權(quán)的申請(qǐng)過(guò)程;
[0030]y4、所述應(yīng)用管理服務(wù)器根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則為所述終端設(shè)備生成應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)s2和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE ;否則,拒絕所述應(yīng)用功能加載授權(quán);
[0031]y5、所述終端設(shè)備判斷所述應(yīng)用功能加載授權(quán)消息中攜帶的所述隨機(jī)數(shù)s2是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),保存所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,否則,判定所述應(yīng)用功能加載授權(quán)獲取失敗。
[0032]較佳地,向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰包括:
[0033]zl、所述終端設(shè)備向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求;所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)S3、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文;
[0034]z2、所述應(yīng)用管理服務(wù)器判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)s3是否為所述終端設(shè)備針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟z3,否則,拒絕所述解密密鑰請(qǐng)求,結(jié)束所述解密密鑰的申請(qǐng)過(guò)程;
[0035]z3、所述應(yīng)用管理服務(wù)器根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)S3和所述解密密鑰;否則,拒絕所述解密密鑰請(qǐng)求;
[0036]z4、所述終端設(shè)備判斷所述解密密鑰請(qǐng)求成功消息中攜帶的所述隨機(jī)數(shù)s3是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,否則,判定所述解密密鑰請(qǐng)求成功獲取失敗。
[0037]較佳地,向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰包括:
[0038]zl、所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s3,向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求,所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)S3、所述應(yīng)用的半可信加載特征字符、所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE—起加密后的密文;
[0039]z2、所述應(yīng)用管理服務(wù)器判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)S3是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟z3,否則,拒絕所述解密密鑰請(qǐng)求,結(jié)束所述解密密鑰的申請(qǐng)過(guò)程;
[0040]z3、所述應(yīng)用管理服務(wù)器判斷所述解密密鑰請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE是否有效,如果是,則執(zhí)行步驟z4,否則,否則,拒絕所述解密密鑰請(qǐng)求,結(jié)束所述解密密鑰的申請(qǐng)過(guò)程;
[0041]z4、所述應(yīng)用管理服務(wù)器根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則為所述終端設(shè)備生成新的應(yīng)用市場(chǎng)增強(qiáng)簽名,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)S3和所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名;否則,拒絕所述解密密鑰請(qǐng)求;
[0042]z5、所述終端設(shè)備判斷所述解密密鑰請(qǐng)求成功消息中攜帶的所述隨機(jī)數(shù)S3是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,并將當(dāng)前保存的所述應(yīng)用的應(yīng)用市場(chǎng)增強(qiáng)簽名更新為所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名,否則,判定所述解密密鑰請(qǐng)求成功獲取失敗。
[0043]一種軟件防破解系統(tǒng),包括:終端設(shè)備和應(yīng)用管理服務(wù)器,其中,
[0044]終端設(shè)備,用于在需要安裝應(yīng)用的主應(yīng)用文件時(shí),向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰,如果獲取失敗,則停止所述安裝;當(dāng)首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán),在獲得所述授權(quán)后加載所述應(yīng)用的SEC文件,利用所述應(yīng)用私鑰對(duì)所述SEC文件加密,保存所得到的加密文件FSEC,并刪除所述應(yīng)用私鑰和所述SEC文件的明文;當(dāng)非首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰,利用申請(qǐng)到的所述解密密鑰對(duì)所述加密文件Fsec解密,獲得所述SEC文件的明文并加載,在所述加載結(jié)束后刪除所述解密密鑰和所述SEC文件的明文。
[0045]較佳地,所述終端設(shè)備,用于向所述應(yīng)用管理服務(wù)器發(fā)送應(yīng)用私鑰請(qǐng)求,所述應(yīng)用私鑰請(qǐng)求包含所述終端設(shè)備為當(dāng)前交互生成的隨機(jī)數(shù)S1、用戶屬性信息和應(yīng)用屬性信息;所述用戶屬性信息包括用戶名、用戶密碼和終端設(shè)備標(biāo)識(shí);所述應(yīng)用屬性信息包括應(yīng)用的證書(shū)信息碼和應(yīng)用標(biāo)識(shí)碼;
[0046]所述應(yīng)用管理服務(wù)器,用于根據(jù)應(yīng)用私鑰請(qǐng)求消息,對(duì)所述應(yīng)用私鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證,如果合法,則采用加密傳輸?shù)姆绞綄⑺鰬?yīng)用私鑰發(fā)送給所述終端設(shè)備,否貝IJ,拒絕所述應(yīng)用私鑰請(qǐng)求。
[0047]較佳地,所述應(yīng)用管理服務(wù)器,用于判斷所述應(yīng)用私鑰請(qǐng)求攜帶的所述隨機(jī)數(shù)Si是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則判定所述應(yīng)用私鑰請(qǐng)求非法;如果是,則判斷是否滿足:所述應(yīng)用私鑰請(qǐng)求攜帶的證書(shū)信息碼與當(dāng)前保存的對(duì)應(yīng)應(yīng)用的證書(shū)信息碼一致,且所述應(yīng)用私鑰請(qǐng)求攜帶的用戶密碼與當(dāng)前保存的對(duì)應(yīng)用戶的用戶密碼一致,則判斷所述應(yīng)用私鑰請(qǐng)求合法,否則,判斷所述應(yīng)用私鑰請(qǐng)求非法。
[0048]較佳地,所述應(yīng)用管理服務(wù)器,用于利用所述應(yīng)用私鑰、所述證書(shū)信息碼、所述應(yīng)用標(biāo)識(shí)碼、所述終端設(shè)備標(biāo)識(shí)和所述隨機(jī)數(shù)Si,生成應(yīng)用市場(chǎng)初始簽名SigAM;將所述應(yīng)用市場(chǎng)初始簽名SigAM加密后發(fā)送給所述終端設(shè)備;
[0049]所述終端設(shè)備,用于對(duì)所述SigM解密后,判斷其中攜帶的所述隨機(jī)數(shù)Si是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述SigM攜帶的所述應(yīng)用私鑰,否貝IJ,判定所述應(yīng)用私鑰的獲取失敗。
[0050]較佳地,所述終端設(shè)備,用于為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文;用于判斷來(lái)自應(yīng)用管理服務(wù)器的應(yīng)用功能加載授權(quán)消息中攜帶的所述隨機(jī)數(shù)s2是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),否則,判定所述應(yīng)用功能加載授權(quán)獲取失??;
[0051]所述應(yīng)用管理服務(wù)器,用于判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則拒絕所述應(yīng)用功能加載授權(quán);如果是,則根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果一致,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)s2,如果不一致,則拒絕所述應(yīng)用功能加載授權(quán)。
[0052]較佳地,所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符以及所述應(yīng)用市場(chǎng)初始簽名SigAM—起加密后的密文;判斷來(lái)自所述應(yīng)用管理服務(wù)器的應(yīng)用功能加載授權(quán)消息中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),保存所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,否則,判定所述應(yīng)用功能加載授權(quán)獲取失?。?br>[0053]所述應(yīng)用管理服務(wù)器,用于判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則拒絕所述應(yīng)用功能加載授權(quán);如果是,則所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigAM是否有效,如果無(wú)效,則拒絕所述應(yīng)用功能加載授權(quán);如果有效,則根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果一致,則為所述終端設(shè)備生成應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)S2和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,如果不一致,則拒絕所述應(yīng)用功能加載授權(quán)。
[0054]較佳地,所述終端設(shè)備,用于向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求;所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)S3、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文;判斷接收到的解密密鑰請(qǐng)求成功消息中攜帶的所述隨機(jī)數(shù)s3是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,否則,判定所述解密密鑰請(qǐng)求成功獲取失?。?br>[0055]所述應(yīng)用管理服務(wù)器,用于判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)s3是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則拒絕所述解密密鑰請(qǐng)求;如果是,則根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)S3和所述解密密鑰,否則,拒絕所述解密密鑰請(qǐng)求。
[0056]較佳地,所述終端設(shè)備,用于為當(dāng)前交互生成隨機(jī)數(shù)s3,向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求,所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s3、所述應(yīng)用的半可信加載特征字符、所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE—起加密后的密文;判斷接收到的解密密鑰請(qǐng)求成功消息中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,并將當(dāng)前保存的所述應(yīng)用的應(yīng)用市場(chǎng)增強(qiáng)簽名更新為所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名,否則,判定所述解密密鑰請(qǐng)求成功獲取失??;
[0057]所述應(yīng)用管理服務(wù)器,用于判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)S3是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則拒絕所述解密密鑰請(qǐng)求;如果是,則判斷所述解密密鑰請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE是否有效,如果不是則拒絕所述解密密鑰請(qǐng)求;如果是,則根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則為所述終端設(shè)備生成新的應(yīng)用市場(chǎng)增強(qiáng)簽名,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)S3和所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名,否則,拒絕所述解密密鑰請(qǐng)求。
[0058]綜上所述,本發(fā)明提出的軟件防破解方法和系統(tǒng),可以有效避免軟件被惡意破解。
【附圖說(shuō)明】
[0059]圖1為本發(fā)明實(shí)施例的方法流程示意圖;
[0060]圖2為圖1步驟101中獲取應(yīng)用私鑰的具體實(shí)施示意圖;
[0061 ]圖3為本發(fā)明實(shí)施例的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0062]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0063]本發(fā)明的核心思想是:引入一個(gè)密鑰,利用該密鑰對(duì)SEC文件進(jìn)行加密,用戶端將始終保存該經(jīng)過(guò)加密的SEC文件。應(yīng)用在每次執(zhí)行時(shí),需要先從應(yīng)用管理服務(wù)器下載用于解密SEC文件的密鑰,執(zhí)行完后,將刪除該用于解密SEC文件的密鑰,如此,可以避免每次下載SEC文件產(chǎn)生的流量開(kāi)銷(xiāo),同時(shí),由于用戶保存的SEC文件是經(jīng)過(guò)加密的,且沒(méi)有保存相應(yīng)的解密密鑰,因此,可以避免通過(guò)對(duì)andro i d設(shè)備root所致的軟件破解問(wèn)題。
[0064]圖1為本發(fā)明實(shí)施例一的流程示意圖,如圖1所示,該實(shí)施例主要包括:
[0065]步驟101、終端設(shè)備在需要安裝應(yīng)用的主應(yīng)用文件時(shí),向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰,如果獲取失敗,則停止所述安裝。
[0066]本步驟中,在安裝應(yīng)用時(shí),終端設(shè)備需要向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰,該應(yīng)用私鑰將在后續(xù)使用過(guò)程中用于對(duì)用于加載應(yīng)用功能的SEC文件進(jìn)行加密保存。本步驟中終端設(shè)備如果不能成功獲取該應(yīng)用私鑰,將無(wú)法完成應(yīng)用的安裝過(guò)程,這樣,在應(yīng)用管理服務(wù)器可以對(duì)應(yīng)用私鑰分配進(jìn)行控制,確保只有合法用戶才可以安裝該應(yīng)用。
[0067]需要說(shuō)明的是,用戶購(gòu)買(mǎi)后,將會(huì)下載主應(yīng)用文件和SEC文件到終端設(shè)備中。
[0068]較佳地,如圖2所示,本步驟中終端設(shè)備可以采用下述方法向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰:
[0069]步驟1011、所述終端設(shè)備向所述應(yīng)用管理服務(wù)器發(fā)送應(yīng)用私鑰請(qǐng)求,所述應(yīng)用私鑰請(qǐng)求包含所述終端設(shè)備為當(dāng)前交互生成的隨機(jī)數(shù)S1、用戶屬性信息和應(yīng)用屬性信息。
[0070]所述用戶屬性信息包括用戶名、用戶密碼和終端設(shè)備標(biāo)識(shí);所述應(yīng)用屬性信息包括應(yīng)用的證書(shū)信息碼和應(yīng)用標(biāo)識(shí)碼。
[0071]本步驟中,應(yīng)用私鑰請(qǐng)求將包含終端為本次交互生成的隨機(jī)數(shù)Si,該隨機(jī)數(shù)Si將用于確保終端與服務(wù)器之間交互的安全性,服務(wù)器收到該請(qǐng)求后將根據(jù)其攜帶的隨機(jī)數(shù)Si,來(lái)確定所收到請(qǐng)求的合法性,以避免黑客利用所截獲的信息欺騙服務(wù)器獲取應(yīng)用私鑰。
[0072]步驟1012?1014、所述應(yīng)用管理服務(wù)器根據(jù)應(yīng)用私鑰請(qǐng)求消息,對(duì)所述應(yīng)用私鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證,如果合法,則采用加密傳輸?shù)姆绞綄⑺鰬?yīng)用私鑰發(fā)送給所述終端設(shè)備,否則,拒絕所述應(yīng)用私鑰請(qǐng)求。
[0073]較佳地,這里可以采用下述方法對(duì)所述應(yīng)用私鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證:
[0074]步驟xl、所述應(yīng)用管理服務(wù)器判斷所述應(yīng)用私鑰請(qǐng)求攜帶的所述隨機(jī)數(shù)Si是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟x2,否則,判定所述應(yīng)用私鑰請(qǐng)求非法。
[0075]這里需要說(shuō)明的是,為確保交互的安全性,終端設(shè)備每次和服務(wù)交互時(shí)都生成新的隨機(jī)數(shù),因此,本步驟中服務(wù)器先判斷請(qǐng)求攜帶的隨機(jī)數(shù)Si是否為終端設(shè)備此前針對(duì)該應(yīng)用與服務(wù)器交互時(shí)已使用過(guò)的隨機(jī)數(shù),如果是,則說(shuō)明該請(qǐng)求不是終端設(shè)備發(fā)出的,屬于非法請(qǐng)求,如果是,則進(jìn)入后續(xù)步驟,通過(guò)對(duì)用戶屬性信息和應(yīng)用屬性信息進(jìn)行驗(yàn)證,來(lái)確定請(qǐng)求的合法性。
[0076]步驟x2、所述應(yīng)用管理服務(wù)器判斷是否滿足:所述應(yīng)用私鑰請(qǐng)求攜帶的證書(shū)信息碼與當(dāng)前保存的對(duì)應(yīng)應(yīng)用的證書(shū)信息碼一致,且所述應(yīng)用私鑰請(qǐng)求攜帶的用戶密碼與當(dāng)前保存的對(duì)應(yīng)用戶的用戶密碼一致,則判斷所述應(yīng)用私鑰請(qǐng)求合法,否則,判斷所述應(yīng)用私鑰請(qǐng)求非法。
[0077]本步驟中,應(yīng)用管理服務(wù)器將利用預(yù)先保存的用戶密碼和應(yīng)用的證書(shū)信息碼,對(duì)請(qǐng)求中攜帶的證書(shū)信息碼和用戶密碼進(jìn)行驗(yàn)證,以進(jìn)一步確定應(yīng)用私鑰請(qǐng)求的合法性。
[0078]較佳地,為了確保應(yīng)用私鑰的傳輸安全性,步驟1013中可以采用下述方法將所述應(yīng)用私鑰發(fā)送給終端設(shè)備:
[0079]步驟al、所述應(yīng)用管理服務(wù)器利用所述應(yīng)用私鑰、所述證書(shū)信息碼、所述應(yīng)用標(biāo)識(shí)碼、所述終端設(shè)備標(biāo)識(shí)和所述隨機(jī)數(shù)Si,生成應(yīng)用市場(chǎng)初始簽名SigAM;將所述應(yīng)用市場(chǎng)初始簽名SigAM加密后發(fā)送給所述終端設(shè)備。
[0080]本步驟中,將所述證書(shū)信息碼、所述應(yīng)用標(biāo)識(shí)碼、所述終端設(shè)備標(biāo)識(shí)和所述隨機(jī)數(shù)Si,同時(shí)與應(yīng)用私鑰一起生成應(yīng)用市場(chǎng)初始簽名SigAM,一方面可以確保簽名足夠長(zhǎng),進(jìn)而可以有效防止被黑客截獲破解,另一方面,把隨機(jī)數(shù)Si發(fā)送給終端設(shè)備,終端設(shè)備可以根據(jù)該隨機(jī)數(shù)識(shí)別出簽名SigAM是由應(yīng)用管理服務(wù)器所發(fā)送的,確保與管理服務(wù)器交互的安全性。
[0081]步驟a2、所述終端設(shè)備對(duì)所述SigAM解密后,判斷其中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述SigAM攜帶的所述應(yīng)用私鑰,否則,判定所述應(yīng)用私鑰的獲取失敗。
[0082]本步驟中,終端設(shè)備需要先確定所述SigAM的合法性,即判斷其中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果合法,則保存其中應(yīng)用私鑰,以便此后對(duì)應(yīng)用的SEC文件進(jìn)行加密。
[0083]步驟102、當(dāng)終端設(shè)備首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán),在獲得所述授權(quán)后加載所述應(yīng)用的SEC文件,利用所述應(yīng)用私鑰對(duì)所述SEC文件加密,保存所得到的加密文件FSEC,并刪除所述應(yīng)用私鑰和所述SEC文件的明文。
[0084]在實(shí)際應(yīng)用中,終端設(shè)備在每次使用應(yīng)用時(shí),即執(zhí)行應(yīng)用功能時(shí),都需要加載SEC文件。本步驟中,終端設(shè)備在首次使用應(yīng)用時(shí),需要先向應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán),只有獲得授權(quán)才可以執(zhí)行SEC文件,并利用安裝應(yīng)用時(shí)獲取的應(yīng)用私鑰對(duì)SEC文件進(jìn)行加密保存,SEC文件加載后將刪除SEC文件的明文和應(yīng)用私鑰,這樣,之后每次使用應(yīng)用時(shí),需要向應(yīng)用管理服務(wù)器獲取SEC文件的解密密鑰。如此,在終端設(shè)備中只保存密文而沒(méi)有相應(yīng)的密鑰,此情況下,即使設(shè)備被ROOT了,用戶竊取的也僅僅是加密文件,由于解密密鑰被應(yīng)用管理服務(wù)器管理控制,因此,黑客是無(wú)法獲取到類(lèi)文件的明文,進(jìn)而可以有效防御軟件的破解。
[0085]在實(shí)際應(yīng)用中,為了增加加密文件Fsec的破解難度,可以將SEC文件和用戶屬性信息、應(yīng)用屬性信息組合在一起進(jìn)行加密,這樣,加密文件足夠長(zhǎng)將很難被解密。
[0086]較佳地,步驟102中可以采用下述兩種方法向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán)。
[0087]方法一包括下述步驟:
[0088]步驟yll、所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文。
[0089]步驟yl2、所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟y 13,否則,拒絕所述應(yīng)用功能加載授權(quán),結(jié)束所述申請(qǐng)應(yīng)用功能加載授權(quán)的過(guò)程;
[0090]步驟yl3、所述應(yīng)用管理服務(wù)器根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果一致,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)s2;否則,拒絕所述應(yīng)用功能加載授權(quán);
[0091]步驟yl4、所述終端設(shè)備判斷所述應(yīng)用功能加載授權(quán)消息中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),否則,判定所述應(yīng)用功能加載授權(quán)獲取失敗。
[0092]在上述方法一中,應(yīng)用管理服務(wù)器將根據(jù)功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2和應(yīng)用的半可信加載特征字符,對(duì)功能加載授權(quán)請(qǐng)求的有效性進(jìn)行驗(yàn)證,從而可以確保只對(duì)合法用戶進(jìn)行所述授權(quán),如此,可以有效確保只有合法用戶才可以使用應(yīng)用,避免應(yīng)用被破解。
[0093]方法二將在步驟101采用步驟1011?1014的方案實(shí)現(xiàn)且步驟1013中利用步驟al和a2將應(yīng)用私鑰發(fā)送給終端設(shè)備的基礎(chǔ)上實(shí)現(xiàn)的,具體包括下述步驟:
[0094]步驟y21、所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符以及所述應(yīng)用市場(chǎng)初始簽名SigAM—起加密后的密文。
[0095]步驟y22、所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟y23,否則,拒絕所述應(yīng)用功能加載授權(quán),結(jié)束所述應(yīng)用功能加載授權(quán)的申請(qǐng)過(guò)程。
[0096]步驟y23、所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigM是否有效,如果是,則執(zhí)行步驟y24,否則,拒絕所述應(yīng)用功能加載授權(quán),結(jié)束所述應(yīng)用功能加載授權(quán)的申請(qǐng)過(guò)程。
[0097]步驟y24、所述應(yīng)用管理服務(wù)器根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則為所述終端設(shè)備生成應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)s2和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE;否則,拒絕所述應(yīng)用功能加載授權(quán)。
[0098]步驟y25、所述終端設(shè)備判斷所述應(yīng)用功能加載授權(quán)消息中攜帶的所述隨機(jī)數(shù)s2是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),保存所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,否則,判定所述應(yīng)用功能加載授權(quán)獲取失敗。[00"]在上述方法二中,功能加載授權(quán)請(qǐng)求中將不僅攜帶終端為本次交互新生成的隨機(jī)數(shù)S2和應(yīng)用的半可信加載特征字符,還攜帶安裝應(yīng)用時(shí)應(yīng)用管理服務(wù)器為其生成的應(yīng)用市場(chǎng)初始簽名SigAM,以便應(yīng)用管理服務(wù)器對(duì)功能加載授權(quán)請(qǐng)求的有效性進(jìn)行更可靠的驗(yàn)證,從而可以進(jìn)一步確保只對(duì)合法用戶進(jìn)行所述授權(quán),即有效確保只有合法用戶才可以使用應(yīng)用,避免應(yīng)用被破解。
[0100]步驟103、當(dāng)所述終端設(shè)備非首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰,利用申請(qǐng)到的所述解密密鑰對(duì)所述加密文件Fsec解密,獲得所述SEC文件的明文并加載,在所述加載結(jié)束后刪除所述解密密鑰和所述SEC文件的明文。
[0101]較佳地,步驟103中可以采用下述兩種方法向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰。
[0102]方法一包括:
[0103]步驟zll、所述終端設(shè)備向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求;所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)S3、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文;
[0104]步驟zl2、所述應(yīng)用管理服務(wù)器判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)s3是否為所述終端設(shè)備針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟z 13,否則,拒絕所述解密密鑰請(qǐng)求,結(jié)束所述解密密鑰的申請(qǐng)過(guò)程;
[0105]步驟zl3、所述應(yīng)用管理服務(wù)器根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)S3和所述解密密鑰;否則,拒絕所述解密密鑰請(qǐng)求;
[0106]步驟zl4、所述終端設(shè)備判斷所述解密密鑰請(qǐng)求成功消息中攜帶的所述隨機(jī)數(shù)S3是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,否則,判定所述解密密鑰請(qǐng)求成功獲取失敗。
[0107]在上述獲取解密密鑰的方法一中,應(yīng)用管理服務(wù)器將根據(jù)解密密鑰請(qǐng)求攜帶的所述隨機(jī)數(shù)S3和應(yīng)用的半可信加載特征字符,對(duì)解密密鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證,以確保只有合法用戶可以獲取到解密密鑰,避免應(yīng)用被破解使用。
[0108]獲取解密密鑰的方法二將在步驟102采用方法二獲取功能加載授權(quán)的基礎(chǔ)上實(shí)現(xiàn),具體包括下述步驟:
[0109]步驟z21、所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)S3,向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求,所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s3、所述應(yīng)用的半可信加載特征字符、所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE—起加密后的密文;
[0110]步驟z22、所述應(yīng)用管理服務(wù)器判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)S3是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟z23,否則,拒絕所述解密密鑰請(qǐng)求,結(jié)束所述解密密鑰的申請(qǐng)過(guò)程;
[0111]步驟z23、所述應(yīng)用管理服務(wù)器判斷所述解密密鑰請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE是否有效,如果是,則執(zhí)行步驟z24,否則,否則,拒絕所述解密密鑰請(qǐng)求,結(jié)束所述解密密鑰的申請(qǐng)過(guò)程;
[0112]步驟z24、所述應(yīng)用管理服務(wù)器根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則為所述終端設(shè)備生成新的應(yīng)用市場(chǎng)增強(qiáng)簽名,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)s3和所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名;否則,拒絕所述解密密鑰請(qǐng)求;
[0113]步驟z25、所述終端設(shè)備判斷所述解密密鑰請(qǐng)求成功消息中攜帶的所述隨機(jī)數(shù)S3是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,并將當(dāng)前保存的所述應(yīng)用的應(yīng)用市場(chǎng)增強(qiáng)簽名更新為所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名,否則,判定所述解密密鑰請(qǐng)求成功獲取失敗。
[0114]在上述獲取解密密鑰的方法二中,解密密鑰請(qǐng)求中不僅攜帶終端設(shè)備新生成的隨機(jī)數(shù)S3和應(yīng)用的半可信加載特征字符,還進(jìn)一步攜帶安裝應(yīng)用時(shí)應(yīng)用管理服務(wù)器為其生成的應(yīng)用市場(chǎng)初始簽名SigM以及最近一次使用時(shí)應(yīng)用管理服務(wù)器為其生成的應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,應(yīng)用管理服務(wù)器將基于這些信息對(duì)解密密鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證,如此,可以進(jìn)一步確保只有合法用戶可以獲取到解密密鑰,避免應(yīng)用被破解使用。
[0115]圖3為與上述方法相對(duì)應(yīng)的一種軟件防破解系統(tǒng)結(jié)構(gòu)示意圖,如圖3所示,該系統(tǒng)包括:終端設(shè)備和應(yīng)用管理服務(wù)器,其中,
[0116]終端設(shè)備,用于在需要安裝應(yīng)用的主應(yīng)用文件時(shí),向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰,如果獲取失敗,則停止所述安裝;當(dāng)首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán),在獲得所述授權(quán)后加載所述應(yīng)用的SEC文件,利用所述應(yīng)用私鑰對(duì)所述SEC文件加密,保存所得到的加密文件FSEC,并刪除所述應(yīng)用私鑰和所述SEC文件的明文;當(dāng)非首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰,利用申請(qǐng)到的所述解密密鑰對(duì)所述加密文件Fsec解密,獲得所述SEC文件的明文并加載,在所述加載結(jié)束后刪除所述解密密鑰和所述SEC文件的明文。
[0117]較佳地,所述終端設(shè)備,用于向所述應(yīng)用管理服務(wù)器發(fā)送應(yīng)用私鑰請(qǐng)求,所述應(yīng)用私鑰請(qǐng)求包含所述終端設(shè)備為當(dāng)前交互生成的隨機(jī)數(shù)S1、用戶屬性信息和應(yīng)用屬性信息;所述用戶屬性信息包括用戶名、用戶密碼和終端設(shè)備標(biāo)識(shí);所述應(yīng)用屬性信息包括應(yīng)用的證書(shū)信息碼和應(yīng)用標(biāo)識(shí)碼;
[0118]所述應(yīng)用管理服務(wù)器,用于根據(jù)應(yīng)用私鑰請(qǐng)求消息,對(duì)所述應(yīng)用私鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證,如果合法,則采用加密傳輸?shù)姆绞綄⑺鰬?yīng)用私鑰發(fā)送給所述終端設(shè)備,否貝IJ,拒絕所述應(yīng)用私鑰請(qǐng)求。
[0119]較佳地,所述應(yīng)用管理服務(wù)器,用于判斷所述應(yīng)用私鑰請(qǐng)求攜帶的所述隨機(jī)數(shù)Si是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則判定所述應(yīng)用私鑰請(qǐng)求非法;如果是,則判斷是否滿足:所述應(yīng)用私鑰請(qǐng)求攜帶的證書(shū)信息碼與當(dāng)前保存的對(duì)應(yīng)應(yīng)用的證書(shū)信息碼一致,且所述應(yīng)用私鑰請(qǐng)求攜帶的用戶密碼與當(dāng)前保存的對(duì)應(yīng)用戶的用戶密碼一致,則判斷所述應(yīng)用私鑰請(qǐng)求合法,否則,判斷所述應(yīng)用私鑰請(qǐng)求非法。
[0120]較佳地,所述應(yīng)用管理服務(wù)器,用于利用所述應(yīng)用私鑰、所述證書(shū)信息碼、所述應(yīng)用標(biāo)識(shí)碼、所述終端設(shè)備標(biāo)識(shí)和所述隨機(jī)數(shù)Si,生成應(yīng)用市場(chǎng)初始簽名SigAM;將所述應(yīng)用市場(chǎng)初始簽名SigAM加密后發(fā)送給所述終端設(shè)備;
[0121]所述終端設(shè)備,用于對(duì)所述SigM解密后,判斷其中攜帶的所述隨機(jī)數(shù)Si是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述SigM攜帶的所述應(yīng)用私鑰,否貝IJ,判定所述應(yīng)用私鑰的獲取失敗。
[0122]較佳地,所述終端設(shè)備,用于為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文;用于判斷來(lái)自應(yīng)用管理服務(wù)器的應(yīng)用功能加載授權(quán)消息中攜帶的所述隨機(jī)數(shù)s2是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),否則,判定所述應(yīng)用功能加載授權(quán)獲取失?。?br>[0123]所述應(yīng)用管理服務(wù)器,用于判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則拒絕所述應(yīng)用功能加載授權(quán);如果是,則根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果一致,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)s2,如果不一致,則拒絕所述應(yīng)用功能加載授權(quán)。
[0124]較佳地,所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符以及所述應(yīng)用市場(chǎng)初始簽名SigAM—起加密后的密文;判斷來(lái)自所述應(yīng)用管理服務(wù)器的應(yīng)用功能加載授權(quán)消息中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),保存所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,否則,判定所述應(yīng)用功能加載授權(quán)獲取失敗。
[0125]所述應(yīng)用管理服務(wù)器,用于判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則拒絕所述應(yīng)用功能加載授權(quán);如果是,則所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigAM是否有效,如果無(wú)效,則拒絕所述應(yīng)用功能加載授權(quán);如果有效,則根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果一致,則為所述終端設(shè)備生成應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)S2和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,如果不一致,則拒絕所述應(yīng)用功能加載授權(quán)。
[0126]較佳地,所述終端設(shè)備,用于向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求;所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)S3、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文;判斷接收到的解密密鑰請(qǐng)求成功消息中攜帶的所述隨機(jī)數(shù)S3是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,否則,判定所述解密密鑰請(qǐng)求成功獲取失敗。
[0127]所述應(yīng)用管理服務(wù)器,用于判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)s3是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則拒絕所述解密密鑰請(qǐng)求;如果是,則根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)S3和所述解密密鑰,否則,拒絕所述解密密鑰請(qǐng)求。
[0128]較佳地,所述終端設(shè)備,用于為當(dāng)前交互生成隨機(jī)數(shù)s3,向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求,所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s3、所述應(yīng)用的半可信加載特征字符、所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE—起加密后的密文;判斷接收到的解密密鑰請(qǐng)求成功消息中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,并將當(dāng)前保存的所述應(yīng)用的應(yīng)用市場(chǎng)增強(qiáng)簽名更新為所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名,否則,判定所述解密密鑰請(qǐng)求成功獲取失??;
[0129]所述應(yīng)用管理服務(wù)器,用于判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)s3是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果不是,則拒絕所述解密密鑰請(qǐng)求;如果是,則判斷所述解密密鑰請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE是否有效,如果不是則拒絕所述解密密鑰請(qǐng)求;如果是,則根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則為所述終端設(shè)備生成新的應(yīng)用市場(chǎng)增強(qiáng)簽名,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)S3和所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名,否則,拒絕所述解密密鑰請(qǐng)求。
[0130]綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種軟件防破解方法,其特征在于,包括: 終端設(shè)備在需要安裝應(yīng)用的主應(yīng)用文件時(shí),向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰,如果獲取失敗,則停止所述安裝; 當(dāng)終端設(shè)備首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán),在獲得所述授權(quán)后加載所述應(yīng)用的SEC文件,利用所述應(yīng)用私鑰對(duì)所述SEC文件加密,保存所得到的加密文件Fsec,并刪除所述應(yīng)用私鑰和所述SEC文件的明文; 當(dāng)所述終端設(shè)備非首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰,利用申請(qǐng)到的所述解密密鑰對(duì)所述加密文件Fsec解密,獲得所述SEC文件的明文并加載,在所述加載結(jié)束后刪除所述解密密鑰和所述SEC文件的明文。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰包括: S1、所述終端設(shè)備向所述應(yīng)用管理服務(wù)器發(fā)送應(yīng)用私鑰請(qǐng)求,所述應(yīng)用私鑰請(qǐng)求包含所述終端設(shè)備為當(dāng)前交互生成的隨機(jī)數(shù)S1、用戶屬性信息和應(yīng)用屬性信息;所述用戶屬性信息包括用戶名、用戶密碼和終端設(shè)備標(biāo)識(shí);所述應(yīng)用屬性信息包括應(yīng)用的證書(shū)信息碼和應(yīng)用標(biāo)識(shí)碼; s2、所述應(yīng)用管理服務(wù)器根據(jù)應(yīng)用私鑰請(qǐng)求消息,對(duì)所述應(yīng)用私鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證,如果合法,則采用加密傳輸?shù)姆绞綄⑺鰬?yīng)用私鑰發(fā)送給所述終端設(shè)備,否則,拒絕所述應(yīng)用私鑰請(qǐng)求。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟s2中對(duì)所述應(yīng)用私鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證包括: xl、所述應(yīng)用管理服務(wù)器判斷所述應(yīng)用私鑰請(qǐng)求攜帶的所述隨機(jī)數(shù)Si是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟x2,否則,判定所述應(yīng)用私鑰請(qǐng)求非法; x2、所述應(yīng)用管理服務(wù)器判斷是否滿足:所述應(yīng)用私鑰請(qǐng)求攜帶的證書(shū)信息碼與當(dāng)前保存的對(duì)應(yīng)應(yīng)用的證書(shū)信息碼一致,且所述應(yīng)用私鑰請(qǐng)求攜帶的用戶密碼與當(dāng)前保存的對(duì)應(yīng)用戶的用戶密碼一致,則判斷所述應(yīng)用私鑰請(qǐng)求合法,否則,判斷所述應(yīng)用私鑰請(qǐng)求非法。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟s2中所述采用加密傳輸?shù)姆绞綄⑺鰬?yīng)用私鑰發(fā)送給所述終端設(shè)備包括: 所述應(yīng)用管理服務(wù)器利用所述應(yīng)用私鑰、所述證書(shū)信息碼、所述應(yīng)用標(biāo)識(shí)碼、所述終端設(shè)備標(biāo)識(shí)和所述隨機(jī)數(shù)Si,生成應(yīng)用市場(chǎng)初始簽名SigAM;將所述應(yīng)用市場(chǎng)初始簽名SigAM加密后發(fā)送給所述終端設(shè)備; 所述終端設(shè)備對(duì)所述SigAM解密后,判斷其中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述SigAM攜帶的所述應(yīng)用私鑰,否則,判定所述應(yīng)用私鑰的獲取失敗。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán)包括: yl、所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文; y2、所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟y3,否則,拒絕所述應(yīng)用功能加載授權(quán),結(jié)束所述申請(qǐng)應(yīng)用功能加載授權(quán)的過(guò)程; y3、所述應(yīng)用管理服務(wù)器根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果一致,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)s2;否則,拒絕所述應(yīng)用功能加載授權(quán);y4、所述終端設(shè)備判斷所述應(yīng)用功能加載授權(quán)消息中攜帶的隨機(jī)數(shù)是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),否則,判定所述應(yīng)用功能加載授權(quán)獲取失敗。6.根據(jù)權(quán)利要求4所述的方法,其特征在于,向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán)包括: yl、所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s2,向所述應(yīng)用管理服務(wù)器發(fā)送功能加載授權(quán)請(qǐng)求,所述功能加載授權(quán)請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s2、所述應(yīng)用的半可信加載特征字符以及所述應(yīng)用市場(chǎng)初始簽名SigAM—起加密后的密文; y2、所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的隨機(jī)數(shù)s2是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟y3,否則,拒絕所述應(yīng)用功能加載授權(quán),結(jié)束所述應(yīng)用功能加載授權(quán)的申請(qǐng)過(guò)程; y3、所述應(yīng)用管理服務(wù)器判斷所述功能加載授權(quán)請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigM是否有效,如果是,則執(zhí)行步驟y4,否則,拒絕所述應(yīng)用功能加載授權(quán),結(jié)束所述應(yīng)用功能加載授權(quán)的申請(qǐng)過(guò)程; y4、所述應(yīng)用管理服務(wù)器根據(jù)所述功能加載授權(quán)請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則為所述終端設(shè)備生成應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送應(yīng)用功能加載授權(quán)消息,所述應(yīng)用功能加載授權(quán)消息中攜帶所述隨機(jī)數(shù)s2和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE ;否則,拒絕所述應(yīng)用功能加載授權(quán); y5、所述終端設(shè)備判斷所述應(yīng)用功能加載授權(quán)消息中攜帶的所述隨機(jī)數(shù)s2是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則判定成功獲取所述應(yīng)用功能加載授權(quán),保存所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE,否則,判定所述應(yīng)用功能加載授權(quán)獲取失敗。7.根據(jù)權(quán)利要求1所述的方法,其特征在于,向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰包括: zl、所述終端設(shè)備向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求;所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s3、所述應(yīng)用的半可信加載特征字符、終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)碼一起加密后的密文; z2、所述應(yīng)用管理服務(wù)器判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)s3是否為所述終端設(shè)備針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟z3,否則,拒絕所述解密密鑰請(qǐng)求,結(jié)束所述解密密鑰的申請(qǐng)過(guò)程; z3、所述應(yīng)用管理服務(wù)器根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)s3和所述解密密鑰;否則,拒絕所述解密密鑰請(qǐng)求;z4、所述終端設(shè)備判斷所述解密密鑰請(qǐng)求成功消息中攜帶的所述隨機(jī)數(shù)s3是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,否則,判定所述解密密鑰請(qǐng)求成功獲取失敗。8.根據(jù)權(quán)利要求6所述的方法,其特征在于,向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰包括: zl、所述終端設(shè)備為當(dāng)前交互生成隨機(jī)數(shù)s3,向所述應(yīng)用管理服務(wù)器發(fā)送解密密鑰請(qǐng)求,所述解密密鑰請(qǐng)求攜帶對(duì)所述隨機(jī)數(shù)s3、所述應(yīng)用的半可信加載特征字符、所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE—起加密后的密文; z2、所述應(yīng)用管理服務(wù)器判斷所述解密密鑰請(qǐng)求攜帶的隨機(jī)數(shù)s3是否為所述終端設(shè)備針對(duì)所述應(yīng)用新生成的隨機(jī)數(shù),如果是,則執(zhí)行步驟z3,否則,拒絕所述解密密鑰請(qǐng)求,結(jié)束所述解密密鑰的申請(qǐng)過(guò)程; Z3、所述應(yīng)用管理服務(wù)器判斷所述解密密鑰請(qǐng)求攜帶的所述應(yīng)用市場(chǎng)初始簽名SigAM和所述應(yīng)用市場(chǎng)增強(qiáng)簽名SigASE是否有效,如果是,則執(zhí)行步驟Z4,否則,否則,拒絕所述解密密鑰請(qǐng)求,結(jié)束所述解密密鑰的申請(qǐng)過(guò)程; z4、所述應(yīng)用管理服務(wù)器根據(jù)所述解密密鑰請(qǐng)求攜帶的半可信加載特征字符,確定出相應(yīng)的開(kāi)發(fā)者簽名,判斷所確定出的開(kāi)發(fā)者簽名是否與當(dāng)前保存的所述應(yīng)用的開(kāi)發(fā)者簽名一致,如果是,則為所述終端設(shè)備生成新的應(yīng)用市場(chǎng)增強(qiáng)簽名,并采用加密傳輸?shù)姆绞较蛩鼋K端設(shè)備發(fā)送解密密鑰請(qǐng)求成功消息,所述解密密鑰請(qǐng)求成功消息中攜帶所述隨機(jī)數(shù)s3和所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名;否則,拒絕所述解密密鑰請(qǐng)求; z5、所述終端設(shè)備判斷所述解密密鑰請(qǐng)求成功消息中攜帶的所述隨機(jī)數(shù)s3是否為本終端針對(duì)所述應(yīng)用最新生成的隨機(jī)數(shù),如果是,則保存所述解密密鑰請(qǐng)求成功消息攜帶的所述解密密鑰,并將當(dāng)前保存的所述應(yīng)用的應(yīng)用市場(chǎng)增強(qiáng)簽名更新為所述新的應(yīng)用市場(chǎng)增強(qiáng)簽名,否則,判定所述解密密鑰請(qǐng)求成功獲取失敗。9.一種軟件防破解系統(tǒng),其特征在于,包括:終端設(shè)備和應(yīng)用管理服務(wù)器,其中,終端設(shè)備,用于在需要安裝應(yīng)用的主應(yīng)用文件時(shí),向應(yīng)用管理服務(wù)器獲取應(yīng)用私鑰,如果獲取失敗,則停止所述安裝;當(dāng)首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)應(yīng)用功能加載授權(quán),在獲得所述授權(quán)后加載所述應(yīng)用的類(lèi)SEC文件,利用所述應(yīng)用私鑰對(duì)所述SEC文件加密,保存所得到的加密文件FSEC,并刪除所述應(yīng)用私鑰和所述SEC文件的明文;當(dāng)非首次接收到對(duì)所述應(yīng)用的功能執(zhí)行命令時(shí),向所述應(yīng)用管理服務(wù)器申請(qǐng)所述應(yīng)用私鑰對(duì)應(yīng)的解密密鑰,利用申請(qǐng)到的所述解密密鑰對(duì)所述加密文件Fsec解密,獲得所述SEC文件的明文并加載,在所述加載結(jié)束后刪除所述解密密鑰和所述SEC文件的明文。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述終端設(shè)備,用于向所述應(yīng)用管理服務(wù)器發(fā)送應(yīng)用私鑰請(qǐng)求,所述應(yīng)用私鑰請(qǐng)求包含所述終端設(shè)備為當(dāng)前交互生成的隨機(jī)數(shù)S1、用戶屬性信息和應(yīng)用屬性信息;所述用戶屬性信息包括用戶名、用戶密碼和終端設(shè)備標(biāo)識(shí);所述應(yīng)用屬性信息包括應(yīng)用的證書(shū)信息碼和應(yīng)用標(biāo)識(shí)碼; 所述應(yīng)用管理服務(wù)器,用于根據(jù)應(yīng)用私鑰請(qǐng)求消息,對(duì)所述應(yīng)用私鑰請(qǐng)求的合法性進(jìn)行驗(yàn)證,如果合法,則采用加密傳輸?shù)姆绞綄⑺鰬?yīng)用私鑰發(fā)送給所述終端設(shè)備,否則,拒絕所述應(yīng)用私鑰請(qǐng)求。
【文檔編號(hào)】H04L9/08GK106096336SQ201610408988
【公開(kāi)日】2016年11月9日
【申請(qǐng)日】2016年6月13日
【發(fā)明人】馬文翼
【申請(qǐng)人】北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司