一種增加自定義可信任的根證書的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別涉及一種增加自定義可信任的根證書的方法。
【背景技術(shù)】
[0002]應(yīng)用程序或者終端在訪問任意一個(gè)安全網(wǎng)站的時(shí)候,都需要驗(yàn)證該網(wǎng)站提供的根證書。如果該網(wǎng)站的根證書是受信任的,則信任該網(wǎng)站提供的數(shù)據(jù);如果該網(wǎng)站的根證書不在受信任的證書范圍內(nèi),則提示用戶該網(wǎng)站目前不受信任,有安全風(fēng)險(xiǎn)。
[0003]目前,應(yīng)用程序或終端會(huì)把已知可信任根證書的特征值寫到程序中,可信任的根證書存放在系統(tǒng)的可信任根證書庫中。應(yīng)用程序或終端驗(yàn)證服務(wù)器證書的流程是:
[0004]1、先確認(rèn)當(dāng)前服務(wù)器的證書是否是一張自定義簽名證書;
[0005]2、如果是自定義的簽名證書,驗(yàn)證當(dāng)前證書是否在應(yīng)用程序或終端的可信范圍內(nèi),如果在可信范圍內(nèi),則信任該服務(wù)器;如果該證書不在可信范圍內(nèi),則返回該服務(wù)器不受?目任;
[0006]3、如果當(dāng)前服務(wù)器的證書不是一張自定義簽名證書,則查找當(dāng)前證書的頒發(fā)者證書;
[0007]4、如果當(dāng)前證書的頒發(fā)者證書是一張自定義簽名證書,則執(zhí)行步驟2;如果不是一張自定義簽名證書,則執(zhí)行步驟3,直到找到自定義簽名證書,然后執(zhí)行步驟2。
[0008]上述流程的缺陷在于:系統(tǒng)的證書庫是公開的,黑客可以導(dǎo)入一張自定義簽名證書,或修改應(yīng)用程序或者終端中已知的某一張根證書的特征值,將其替換為用戶自定義簽名證書的特征值,這樣應(yīng)用程序或終端在驗(yàn)證服務(wù)器證書的時(shí)候,因?yàn)榧饶茉谧C書庫中查找到所導(dǎo)入的自定義簽名證書,又能在應(yīng)用程序或終端中,比對(duì)特征值的時(shí)候比對(duì)通過,就會(huì)誤信任這個(gè)服務(wù)器,給用戶帶來風(fēng)險(xiǎn)。
【發(fā)明內(nèi)容】
[0009]有鑒于此,本發(fā)明的主要目的在于,提供一種增加自定義可信任的根證書的方法,包括步驟:
[0010]Α、建立各個(gè)服務(wù)器的可信任根證書特征值的列表;
[0011 ] B、針對(duì)每個(gè)服務(wù)器,生成一組隨機(jī)數(shù),與該服務(wù)器可信任根證書特征值一并,組成第一數(shù)組;
[0012]C、對(duì)所述第一數(shù)組進(jìn)行加密運(yùn)算;
[0013]D、利用安全廠商證書的私鑰對(duì)加密運(yùn)算的結(jié)果進(jìn)行簽名,把簽名值保存到所述列表中;
[0014]Ε、訪問服務(wù)器時(shí),首先檢測(cè)該服務(wù)器的根證書是否存于所述列表中;若存在,執(zhí)行步驟F,否則無法訪問該服務(wù)器;
[0015]F、對(duì)該服務(wù)器的根證書進(jìn)行校驗(yàn),驗(yàn)簽通過,則可以訪問該服務(wù)器,否則無法訪問該服務(wù)器。
[0016]由上,在程序中保存已知可信任根證書的特征值,在此基礎(chǔ)上,對(duì)特征值進(jìn)行變換,并使用安全廠商的證書對(duì)特征值進(jìn)行簽名,作為可信任的根證書。從而保證根證書不被篡改或替換,實(shí)現(xiàn)安全訪問服務(wù)器。
[0017]可選的,步驟F包括:
[0018]生成一組隨機(jī)數(shù),與該服務(wù)器可信任根證書特征值一并,組成第一數(shù)組,所述隨機(jī)數(shù)與步驟B中對(duì)該服務(wù)器生成的隨機(jī)數(shù)相同;
[0019]對(duì)所述第一數(shù)組進(jìn)行加密運(yùn)算;
[0020]采用安全廠商證書的公鑰對(duì)加密運(yùn)算結(jié)果進(jìn)行驗(yàn)簽,驗(yàn)簽通過才可以訪問該服務(wù)器。
[0021]由上,在可信任根證書特征值的列表中已存有正在訪問的服務(wù)器根證書的基礎(chǔ)上,還需對(duì)正在訪問的服務(wù)器根證書進(jìn)行校驗(yàn),從而才能確保該服務(wù)器的根證書沒有被篡改或替換,以保證對(duì)服務(wù)器的安全訪問。
[0022]可選的,在步驟B后,還包括步驟:對(duì)所述第一數(shù)組進(jìn)行二次變換,得到第二數(shù)組;
[0023]所述步驟C中,對(duì)所述第二數(shù)組進(jìn)行加密運(yùn)算。
[0024]由上,通過二次變換,進(jìn)一步提高服務(wù)器的可信任根證書特征值的特異性和唯一性,從而保證根證書不被篡改或替換,實(shí)現(xiàn)安全訪問服務(wù)器。
[0025]可選的,所述二次變換包括:在第一數(shù)組后,增加一定數(shù)量的固定數(shù)或隨機(jī)數(shù),形成第二數(shù)組。
[0026]可選的,所述二次變換包括:對(duì)各個(gè)服務(wù)器進(jìn)行編號(hào),在在第一數(shù)組后增加所述服務(wù)器的編號(hào),形成第二數(shù)組。
[0027]由上,可進(jìn)一步的增加可信任根證書特征值的唯一性,即僅通過本應(yīng)用程序或終端編輯過的根證書具有可信任性和可識(shí)別性,而對(duì)其他客戶端或程序編輯過的根證書不具有上述特點(diǎn),由此實(shí)現(xiàn)特征值與客戶端或程序一一綁定的安全效果。
[0028]可選的,步驟C包括:利用安全廠商證書的特征值做密鑰,使用AES算法,對(duì)所述第一數(shù)組進(jìn)行加密運(yùn)算,得到密文數(shù)組。
[0029]由上,通過對(duì)第一數(shù)組進(jìn)行加密,以提高其保密性。
[0030]可選的,步驟C還包括:對(duì)所述密文數(shù)據(jù)采用SM3密碼雜湊算法進(jìn)行加密計(jì)算。
[0031 ]由上,通過對(duì)密文數(shù)據(jù)進(jìn)行再加密,以進(jìn)一步提高其保密性。
【附圖說明】
[0032]圖1為本發(fā)明流程圖。
【具體實(shí)施方式】
[0033]為克服現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供一種增加自定義可信任的根證書的方法,應(yīng)用程序或終端在程序中保存已知可信任根證書的特征值,在此基礎(chǔ)上,使用安全廠商的證書,對(duì)特征值進(jìn)行簽名,將簽名值保存在應(yīng)用程序或終端中,作為可信任的根證書。從而保證根證書不被篡改或替換,實(shí)現(xiàn)安全訪問服務(wù)器。本實(shí)施例中,所述安全廠商的證書可以采用如北京海泰方圓科技股份有限公司的證書。
[0034]如圖1所示,本發(fā)明所述增加自定義的可信任根證書的方法包括以下步驟:
[0035]S10:在程序中保存已知的可信任根證書特征值。
[0036]首先建立特征值列表,所述特征值列表中保存已有的各個(gè)服務(wù)器的可信任根證書特征值。
[0037]S20:依照服務(wù)器的數(shù)量,生成多個(gè)隨機(jī)數(shù)組,逐一將隨機(jī)數(shù)組與步驟SlO中所述各個(gè)服務(wù)器可信任根證書的特征值組合得到數(shù)組A。
[0038]例如,步驟SlO中,第一服務(wù)器的可信任根證書的特征值是:bf 89 02 29 91 f238 89 72 76 74 03 19 c3 55 c6 al bl f6 56。
[0039]本步驟中,生成一組隨機(jī)數(shù),表示為:ea fd 90 c5 a5 2e cf 06 5b f6 64 06 7235 d3 9b bO 2e ac f2o
[0040]將二者進(jìn)行組合,得到數(shù)組A,表示為:bf 89 02 29 91 f2 38 89 72 76 74 0319 c3 5