7.3 電子簽章驗證流程
電子簽章驗證流程如下:
a) 驗證電子簽章數據格式的正確性
1)根據7.1數據格式來解析電子簽章數據;
2)若解析失敗,則返回錯誤代碼并退出驗證流程;
3)按照6.3流程來驗證上述電子簽章中的電子印章的正確性;
4)如果電子簽章或電子印章數據格式不正確,則返回錯誤代碼并退出驗證流程。
b) 驗證電子簽章簽名值是否正確
1)根據步驟a)解析所得的簽章信息、簽章者證書和簽名算法標識,驗證電子簽章簽名值;
2)如果簽名值驗證失敗,則返回錯誤代碼并退出驗證流程。
c) 驗證簽章者證書與電子印章的匹配性
1)提取電子印章中的簽章者證書信息類型與簽章者證書信息列表;
2)如果上述簽章者證書信息類型值為1,則需要比對數字證書。將步驟a)解析所得的簽章者證書與電子印章中簽章者證書信息列表內的證書逐一作二進制比對,若均比對失敗,則返回錯誤代碼并退出驗證流程;
3)如果上述簽章者證書信息類型值為2,則需要比對證書的雜湊值。先計算步驟a)解析所得的簽章者數字證書的雜湊值,再與電子印章中簽章者證書信息列表內的雜湊值逐一作比對,若均比對失敗,則返回錯誤代碼并退出驗證流程。
d) 驗證電子印章的有效性
1)從簽章信息中提取電子印章,按照6.3電子印章驗證流程驗證印章的有效性,若驗證失敗,需結合簽章信息中中的簽章時間綜合判斷。
2)若電子印章失效因制章人證書失效導致,且在簽章時間點上制章人證書也是無效的,則應記錄為提示信息;
3)若電子印章失效因過期或被吊銷所導致,且在簽章時間不在電子印章有效期內,或當時電子印章不在正常狀態,則返回錯誤代碼并退出驗證流程;
4)驗證簽章時刻,電子印章是否處于正常狀態,如不處于正常狀態,則返回錯誤代碼并退出驗證流程。
e) 驗證簽章者數字證書有效性
1) 從電子簽章數據獲得簽章者數字證書,驗證簽章者證書有效性,驗證項至少包括:證書信任鏈驗證、證書有效期驗證、證書是否被撤銷、密鑰用法是否正確;
2) 若簽章者證書有效性驗證失敗且是由于證書信任鏈驗證或密鑰用法不正確導致的,則返回錯誤代碼并退出驗證流程;
3) 若簽章者證書有效性驗證失敗且是由于證書過期或證書狀態已撤銷導致的,則按步驟f)進一步判斷。
f) 驗證簽章時間的有效性
1)比對簽章者數字證書有效期和簽章時間,如果簽章時間不在簽章者數字證書有效期內,則簽章無效,驗證失敗,返回錯誤代碼并退出驗證流程;
2)如果簽章時間處于簽章者數字證書有效期內,則檢查對應的吊銷列表,如果證書在簽章時間處于失效狀態,則簽章無效,驗證失敗,返回錯誤代碼并退出驗證流程。
g)驗證原文雜湊
1)從電子簽章數據中提取propertyInfo數據,從propertyInfo中提取簽名保護范圍提取待驗證原文;
2)將待驗證原文數據進行雜湊運算,形成待驗證原文雜湊值;
3)從電子簽章數據中提取原文雜湊值,與上述待驗證原文雜湊值進行二進制比對,如果比對失敗,則電子簽章驗證失敗,返回錯誤代碼并退出驗證流程。
h)驗證時間戳的有效性
1)如果電子簽章數據中包含時間戳,則應進行時間戳的有效性驗證;
2)若時間戳驗證不通過,則簽章無效,返回錯誤代碼并退出驗證流程;
3)比對時間戳中的時間與簽章時間,若簽章時間晚于時間戳中的時間,則簽章無效,返回錯誤代碼并退出驗證流程;
4)按照步驟f)驗證時間戳中時間的有效性,若不通過,返回錯誤代碼并退出驗證流程。
i)如果上述各步驟驗證均有效,那么電子簽章驗證結果為有效,可正常退出驗證流程。
GB/T 385400-2020信息安全技術-安全電子簽章密碼技術規范
推薦文章: