不通過(guò)驗(yàn)證,則確定第二驗(yàn)證信息為該數(shù)字證書(shū)驗(yàn)證不通過(guò)。或者,方式二、接收端檢查該數(shù)字證書(shū)是否在有效期內(nèi);如果不在有效期內(nèi),則確定第二驗(yàn)證信息為該數(shù)字證書(shū)驗(yàn)證不通過(guò);如果在有效期內(nèi),則檢查該數(shù)字證書(shū)的簽名是否通過(guò)驗(yàn)證;如果該數(shù)字證書(shū)的簽名不通過(guò)驗(yàn)證,則確定第二驗(yàn)證信息為該數(shù)字證書(shū)驗(yàn)證不通過(guò);如果該數(shù)字證書(shū)的簽名通過(guò)驗(yàn)證,則檢查該數(shù)字證書(shū)是否為吊銷狀態(tài)的數(shù)字證書(shū);如果是吊銷狀態(tài)的數(shù)字證書(shū),則確定第二驗(yàn)證信息為該數(shù)字證書(shū)驗(yàn)證不通過(guò);如果不是吊銷狀態(tài)的數(shù)字證書(shū),則確定第二驗(yàn)證信息為該數(shù)字證書(shū)驗(yàn)證通過(guò)。
[0027]其中,接收端可以在緩存中記錄數(shù)字證書(shū)的標(biāo)識(shí)信息與第二驗(yàn)證信息(即數(shù)字證書(shū)驗(yàn)證通過(guò)或數(shù)字證書(shū)驗(yàn)證不通過(guò))之間的對(duì)應(yīng)關(guān)系。
[0028]其中,在第二驗(yàn)證信息為數(shù)字證書(shū)驗(yàn)證不通過(guò)時(shí),當(dāng)驗(yàn)證不通過(guò)的原因是數(shù)字證書(shū)不在有效期內(nèi)時(shí),則接收端不記錄數(shù)字證書(shū)的標(biāo)識(shí)信息與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系;當(dāng)驗(yàn)證不通過(guò)的原因不是數(shù)字證書(shū)不在有效期內(nèi)時(shí),則接收端記錄數(shù)字證書(shū)的標(biāo)識(shí)信息與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系。進(jìn)一步的,當(dāng)?shù)诙?yàn)證信息為數(shù)字證書(shū)驗(yàn)證不通過(guò)時(shí),在記錄數(shù)字證書(shū)的標(biāo)識(shí)信息與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系之后,接收端還可以在數(shù)字證書(shū)的標(biāo)識(shí)信息與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系中記錄驗(yàn)證不通過(guò)的原因,其中,該驗(yàn)證不通過(guò)的原因具體可以為數(shù)字證書(shū)處于吊銷狀態(tài)或者數(shù)字證書(shū)的簽名不通過(guò)驗(yàn)證。
[0029]本發(fā)明實(shí)施例中,在記錄數(shù)字證書(shū)的標(biāo)識(shí)信息與第二驗(yàn)證信息(驗(yàn)證通過(guò)或者驗(yàn)證不通過(guò))之間的對(duì)應(yīng)關(guān)系之后,當(dāng)用于對(duì)數(shù)字證書(shū)進(jìn)行驗(yàn)證的條件發(fā)生變化時(shí),則接收端還可以刪除數(shù)字證書(shū)的標(biāo)識(shí)信息與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系,如從緩存中刪除數(shù)字證書(shū)的標(biāo)識(shí)信息與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系。
[0030]進(jìn)一步的,在本發(fā)明實(shí)施例中,用于對(duì)數(shù)字證書(shū)進(jìn)行驗(yàn)證的條件發(fā)生變化,具體可以包括但不限于以下之一或者任意組合:用于對(duì)數(shù)字證書(shū)進(jìn)行驗(yàn)證的CA (CertificateAuthority,證書(shū)頒發(fā)機(jī)構(gòu))證書(shū)發(fā)生變化;用于檢查數(shù)字證書(shū)的吊銷狀態(tài)的CRL(Certificate Revocat1n List,證書(shū)吊銷列表)發(fā)生變化;是否對(duì)數(shù)字證書(shū)進(jìn)行CRL檢查的配置發(fā)生變化等。
[0031]基于上述技術(shù)方案,本發(fā)明實(shí)施例中,通過(guò)維護(hù)數(shù)字證書(shū)的標(biāo)識(shí)信息與驗(yàn)證通過(guò)/驗(yàn)證不通過(guò)之間的對(duì)應(yīng)關(guān)系,在不降低安全性的情況下,可以基于該對(duì)應(yīng)關(guān)系確定數(shù)字證書(shū)驗(yàn)證通過(guò)/驗(yàn)證不通過(guò),不需要每次都對(duì)數(shù)字證書(shū)進(jìn)行驗(yàn)證,從而減少數(shù)字證書(shū)的驗(yàn)證過(guò)程,對(duì)數(shù)字證書(shū)的驗(yàn)證過(guò)程進(jìn)行加速,減輕CPU的運(yùn)行時(shí)間,降低設(shè)備的計(jì)算開(kāi)銷,提高設(shè)備的處理性能。
[0032]參加圖2,結(jié)合具體的應(yīng)用場(chǎng)景,對(duì)上述數(shù)字證書(shū)的驗(yàn)證方法進(jìn)行說(shuō)明。
[0033]步驟201,接收端接收發(fā)送端第一次發(fā)送的數(shù)字證書(shū),并對(duì)該數(shù)字證書(shū)進(jìn)行驗(yàn)證,得到第二驗(yàn)證信息。其中,由于是發(fā)送端第一次發(fā)送的數(shù)字證書(shū),因此,當(dāng)前不存在該數(shù)字證書(shū)的hash值,直接對(duì)該數(shù)字證書(shū)進(jìn)行驗(yàn)證。
[0034]在對(duì)數(shù)字證書(shū)進(jìn)行驗(yàn)證的過(guò)程中,可以包括檢查數(shù)字證書(shū)的有效期、檢查數(shù)字證書(shū)的吊銷狀態(tài)、檢查數(shù)字證書(shū)的簽名等過(guò)程??紤]到檢查數(shù)字證書(shū)的簽名的過(guò)程耗時(shí)較大,而與此相比,檢查數(shù)字證書(shū)的有效期的過(guò)程耗時(shí)較小,因此先執(zhí)行檢查數(shù)字證書(shū)的有效期的過(guò)程,后執(zhí)行檢查數(shù)字證書(shū)的簽名的過(guò)程。此外,對(duì)檢查數(shù)字證書(shū)的吊銷狀態(tài)的過(guò)程的順序可以不做限制。
[0035]基于上述分析,對(duì)數(shù)字證書(shū)進(jìn)行驗(yàn)證的一種優(yōu)選的驗(yàn)證方式可以為:接收端檢查該數(shù)字證書(shū)是否在有效期內(nèi);如果不在有效期內(nèi),則確定第二驗(yàn)證信息為該數(shù)字證書(shū)驗(yàn)證不通過(guò);如果在有效期內(nèi),則檢查該數(shù)字證書(shū)是否為吊銷狀態(tài)的數(shù)字證書(shū);如果是吊銷狀態(tài)的數(shù)字證書(shū),則確定第二驗(yàn)證信息為該數(shù)字證書(shū)驗(yàn)證不通過(guò);如果不是吊銷狀態(tài)的數(shù)字證書(shū),則檢查該數(shù)字證書(shū)的簽名是否通過(guò)驗(yàn)證;如果該數(shù)字證書(shū)的簽名通過(guò)驗(yàn)證,則確定第二驗(yàn)證信息為該數(shù)字證書(shū)驗(yàn)證通過(guò);如果該數(shù)字證書(shū)的簽名不通過(guò)驗(yàn)證,則確定第二驗(yàn)證信息為該數(shù)字證書(shū)驗(yàn)證不通過(guò)。其中,如果對(duì)數(shù)字證書(shū)進(jìn)行CRL檢查的配置為對(duì)數(shù)字證書(shū)進(jìn)行CRL檢查時(shí),則檢查該數(shù)字證書(shū)是否為吊銷狀態(tài)的數(shù)字證書(shū);如果對(duì)數(shù)字證書(shū)進(jìn)行CRL檢查的配置為不對(duì)數(shù)字證書(shū)進(jìn)行CRL檢查時(shí),則不檢查該數(shù)字證書(shū)是否為吊銷狀態(tài)的數(shù)字證書(shū),而是直接檢查該數(shù)字證書(shū)的簽名是否通過(guò)驗(yàn)證。
[0036]其中,在數(shù)字證書(shū)內(nèi)會(huì)包含該數(shù)字證書(shū)的有效期,如數(shù)字證書(shū)的起始時(shí)間和終止時(shí)間。在接收到數(shù)字證書(shū)后,如果接收端的系統(tǒng)當(dāng)前時(shí)間位于數(shù)字證書(shū)的起始時(shí)間與終止時(shí)間之間,則說(shuō)明數(shù)字證書(shū)在有效期內(nèi)。如果接收端的系統(tǒng)當(dāng)前時(shí)間不位于數(shù)字證書(shū)的起始時(shí)間與終止時(shí)間之間(如位于起始時(shí)間之前或者終止時(shí)間之后),則說(shuō)明數(shù)字證書(shū)不在有效期內(nèi)。
[0037]其中,CRL內(nèi)會(huì)記錄處于吊銷狀態(tài)的數(shù)字證書(shū)的身份信息(如序列號(hào)),且數(shù)字證書(shū)內(nèi)會(huì)包含本數(shù)字證書(shū)的身份信息(如序列號(hào))。因此,接收端在接收到數(shù)字證書(shū)后,如果CRL內(nèi)記錄了該數(shù)字證書(shū)內(nèi)包含的身份信息,則說(shuō)明該數(shù)字證書(shū)是吊銷狀態(tài)的數(shù)字證書(shū)。如果CRL內(nèi)沒(méi)有記錄該數(shù)字證書(shū)內(nèi)包含的身份信息,則說(shuō)明該數(shù)字證書(shū)不是吊銷狀態(tài)的數(shù)字證書(shū)。
[0038]其中,接收端在接收到數(shù)字證書(shū)之后,使用CA證書(shū)的公鑰對(duì)數(shù)字證書(shū)的簽名進(jìn)行驗(yàn)證,具體的驗(yàn)證方式在此不再贅述,對(duì)數(shù)字證書(shū)的簽名進(jìn)行驗(yàn)證的驗(yàn)證結(jié)果,可以為簽名通過(guò)驗(yàn)證或不通過(guò)驗(yàn)證。
[0039]步驟202,如果第二驗(yàn)證信息為數(shù)字證書(shū)驗(yàn)證通過(guò),則接收端在緩存中記錄該數(shù)字證書(shū)的hash值與第二驗(yàn)證信息(即驗(yàn)證通過(guò))之間的對(duì)應(yīng)關(guān)系。如果第二驗(yàn)證信息為數(shù)字證書(shū)驗(yàn)證不通過(guò),則當(dāng)驗(yàn)證不通過(guò)的原因不是該數(shù)字證書(shū)不在有效期內(nèi)時(shí),則接收端在緩存中記錄該數(shù)字證書(shū)的hash值與第二驗(yàn)證信息(即驗(yàn)證不通過(guò))之間的對(duì)應(yīng)關(guān)系;當(dāng)驗(yàn)證不通過(guò)的原因是該數(shù)字證書(shū)不在有效期內(nèi)時(shí),則接收端不在緩存中記錄該數(shù)字證書(shū)的hash值與第二驗(yàn)證信息(即驗(yàn)證不通過(guò))之間的對(duì)應(yīng)關(guān)系,即不用記錄對(duì)應(yīng)關(guān)系。
[0040]其中,當(dāng)驗(yàn)證不通過(guò)的原因不是數(shù)字證書(shū)不在有效期內(nèi)時(shí),接收端在緩存中記錄數(shù)字證書(shū)的hash值與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系后,還可以在該數(shù)字證書(shū)的標(biāo)識(shí)信息與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系中記錄驗(yàn)證不通過(guò)的原因,驗(yàn)證不通過(guò)的原因?yàn)閿?shù)字證書(shū)處于吊銷狀態(tài)或數(shù)字證書(shū)的簽名不通過(guò)驗(yàn)證。其中,如果在檢查數(shù)字證書(shū)是否為吊銷狀態(tài)的數(shù)字證書(shū)時(shí),獲知是吊銷狀態(tài)的數(shù)字證書(shū),驗(yàn)證不通過(guò)的原因?yàn)閿?shù)字證書(shū)處于吊銷狀態(tài)。如果在檢查數(shù)字證書(shū)的簽名是否通過(guò)驗(yàn)證時(shí),獲知數(shù)字證書(shū)的簽名不通過(guò)驗(yàn)證,驗(yàn)證不通過(guò)的原因?yàn)閿?shù)字證書(shū)的簽名不通過(guò)驗(yàn)證。
[0041]其中,當(dāng)驗(yàn)證不通過(guò)的原因是數(shù)字證書(shū)不在有效期內(nèi)時(shí),接收端不在緩存中記錄數(shù)字證書(shū)的hash值與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系的原因是:當(dāng)接收端本地的系統(tǒng)當(dāng)前時(shí)間不穩(wěn)定,導(dǎo)致數(shù)字證書(shū)驗(yàn)證不通過(guò)時(shí),如果接收端本地的系統(tǒng)當(dāng)前時(shí)間穩(wěn)定到正確時(shí)間,此時(shí),數(shù)字證書(shū)驗(yàn)證可能會(huì)通過(guò)。如果此時(shí)接收端已經(jīng)在緩存中記錄數(shù)字證書(shū)的hash值與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系,則會(huì)直接確定數(shù)字證書(shū)驗(yàn)證不通過(guò),而實(shí)際上數(shù)字證書(shū)驗(yàn)證可能會(huì)通過(guò)。進(jìn)一步的,即使不在緩存中記錄數(shù)字證書(shū)的hash值與第二驗(yàn)證信息之間的對(duì)應(yīng)關(guān)系,由于數(shù)字證書(shū)是由于不在有效期內(nèi)導(dǎo)致驗(yàn)證不通過(guò),因此再次對(duì)數(shù)字證書(shū)進(jìn)行驗(yàn)證時(shí),先執(zhí)行檢查數(shù)字證書(shū)的有效期的過(guò)程,后執(zhí)行檢查數(shù)字證書(shū)的簽名的過(guò)程,而數(shù)字證書(shū)在執(zhí)行檢查數(shù)字證書(shū)的有效期的過(guò)程中,就會(huì)被檢查出來(lái)驗(yàn)證不通過(guò),不會(huì)再執(zhí)行檢查數(shù)字證書(shū)的簽名的過(guò)程,因此避免了最耗時(shí)的運(yùn)算(檢查數(shù)字證書(shū)的簽名的過(guò)程消耗的時(shí)間在總驗(yàn)證時(shí)間中占據(jù)