0551-63838842

10月1日實施!信息安全技術 安全電(diàn)子簽章密碼技術規範 (GB/T 38540-2020)

作者:大(dà)檔家時間:2020-08-11

信息安全技術 安全電(diàn)子簽章密碼技術規範 (GB/T 38540-2020)

信息安全技術 安全電(diàn)子簽章密碼技術規範

1範圍

本标準規定了采用密碼技術實現電(diàn)子印章和電(diàn)子簽章的數據結構定義,以及相應的生(shēng)成與驗證流程。

本标準适用于電(diàn)子印章系統的開(kāi)發和使用,也可用于指導該類系統的檢測。

2規範性引用文件

下(xià)列文件對于本文件的應用是必不可少的。凡是注日期的引用文件,僅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改單)适用于本文件。

GB/T 20518 信息安全技術 公鑰基礎設施 數字證書(shū)格式

GB/T 20520 信息安全技術 公鑰基礎設施 時間戳規範

GB/T 32905信息安全技術  SM3密碼雜(zá)湊算法

GB/T 32918(所有部分(fēn))  信息安全技術 SM2 橢圓曲線公鑰密碼算法GB/T 33560 信息安全技術 密碼應用标識規範

GB/T 35276 信息安全技術  SM2密碼算法使用規範

3術語和定義

下(xià)列術語和定義适用于本文件

3.1

電(diàn)子印章 electronic seal

一(yī)種由電(diàn)子印章制章者數字簽名的安全數據。

注:包括電(diàn)子印章所有者信息和圖形化内容的數據,用于安全簽署電(diàn)子文件。

3.2

電(diàn)子簽章 electronic seal signature

使用電(diàn)子印章簽署電(diàn)子文件的過程。

注:電(diàn)子簽章可實現與紙(zhǐ)質文件蓋章操作相似的可視效果,可保障數據來源的真實性、數據完整性以及簽名人行爲.的不可否認性

3.3

原文 original data

需要進行電(diàn)子簽章或數字簽名處理的電(diàn)子文件。

3.4

電(diàn)子簽章數據 electronic seal signature data

電(diàn)子簽章過程産生(shēng)的包含電(diàn)子印章、原文信息和數字簽名等信息的數據。

3.5

電(diàn)子印章系統 electronic seal system

電(diàn)子印章管理系統和電(diàn)子簽章軟件的統稱。

注1:電(diàn)子印章管理系統具有電(diàn)子印章制作與管理、安全審計等功能。

注2:電(diàn)子簽章軟件是對電(diàn)子文件加蓋電(diàn)子印章或添加數字簽名的軟件。

3.6

制章者 electronic seal maker

電(diàn)子印章系統中(zhōng)具有電(diàn)子印章制作和管理權限的機構。

注:電(diàn)子印章中(zhōng)的圖像和相關信息應經制章者進行數字簽名,電(diàn)子印章中(zhōng)的制章者證書(shū)應是該機構的單位證書(shū)。

3.7

簽章者 electronic seal signer

電(diàn)子印章的所有者,是具備電(diàn)子印章法定使用權限的實體(tǐ)。

3.8

SM2算法SM2 algorithm

由GB/T 32918定義的一(yī)種橢圓曲線密碼算法。

3.9

SM3算法SM3 algorithm

由GB/T 32905定義的一(yī)種雜(zá)湊算法。

4縮略語

下(xià)列縮略語适用于本文件。

ASN.1:抽象語法記法( Abstract Syntax Notation One)

BMP:位圖( Bitmap)

DER:非典型編碼規則( Distinguished Encoding Rules)

GIF:圖形交換格式( Graphics Interchange Format)

JPG:聯合圖像專家組的文件格式( Joint Photographic Experts Group)

OID:對象标識符( Object Identifier)

PKI:公鑰基礎設施( Public Key Infrastructure)

SVG:可縮放(fàng)的矢量圖形( Scalable Vector Graphics)

5概述

安全電(diàn)子簽章是通過采用PKI公鑰密碼技術,将數字圖像處理技術與電(diàn)子簽名技術進行結合,以電(diàn)子形式對加蓋印章圖像數據的電(diàn)子文檔進行數字簽名,以确保文檔來源的真實性以及文檔的完整性,防止對文檔未經授權的篡改,并确保簽章行爲的不可否認性。

爲了确保電(diàn)子印章的完整性、不可僞造性,以及合法用戶才能使用,需要定義一(yī)個安全的電(diàn)子印章數據格式。通過數字簽名,将印章圖像數據與簽章者等印章屬性進行安全綁定,形成安全電(diàn)子印章。在使用印章過程中(zhōng),應對電(diàn)子印章進行安全性驗證。

在使用電(diàn)子印章對各種文檔進行電(diàn)子簽章過程中(zhōng),簽章者通過數字簽名對文檔數據進行簽章處理,從而達到與傳統紙(zhǐ)質文件蓋章操作相同的可視化效果,同時又(yòu)利用數字簽名技術保障了文檔數據的真實性、完整性以及簽章者行爲的不可否認性。

6電(diàn)子印章

6.1數據格式

6.1.1印章數據結構

電(diàn)子印章由印章信息、制章者證書(shū)、簽名算法标識、簽名值等部分(fēn)組成,其數據結構如圖1所示。

微信圖片_20200811090024.png

6.1.2印章信息

6.1.2.1數據結構

印章信息 eSealInfo由印章頭、印章标識、印章屬性、印章圖像數據、自定義數據等部分(fēn)組成,其數據結構如圖2所示。

微信圖片_20200811090139.png

6.1.2.2印章頭

印章頭由頭标識、版本号和廠商(shāng)标識等組成,其數據結構如圖3所示。

微信圖片_20200811090229.png

其中(zhōng):

ID:固定值“ES”。

version:電(diàn)子印章數據結構版本号,本标準設定數值爲4,代表當前版本爲v4。

Vid:電(diàn)子印章廠商(shāng)标識,在互聯互通時,用于識别不同的軟件廠商(shāng)實現。

6.1.2.3印章标識

esID:區分(fēn)電(diàn)子印章的唯一(yī)标識編碼,用于查找和索引其他信息。

6.1.2.4印章屬性

印章屬性由印章類型、印章名稱、簽章者證書(shū)信息類型、簽章者證書(shū)信息列表、制作時間、有效期起始時間、有效期終止時間等部分(fēn)組成,其結構如圖4所示。

微信圖片_20200811090327.png

6.1.2.5印章圖像數據

印章圖像數據由圖像類型、圖像數據、圖像顯示寬度和圖像顯示高度等部分(fēn)組成,其數據結構如圖5所示。

微信圖片_20200811090449.png

6.1.2.6  自定義數據

自定義數據包含一(yī)系列自定義屬性字段,可用于支持電(diàn)子印章擴展特性,其ASN.1定義爲:

微信圖片_20200811090545.png

6.1.3制章者證書(shū)

cert:對電(diàn)子印章進行簽名的制章者的數字證書(shū),應符合GB/T 20518中(zhōng) Certificate定義,按DER編碼格式存放(fàng)。

6.1.4簽名算法标識

signAlgID:代表簽名算法OID标識,應符合GB/T 33560的規定。

示例:基于SM2算法和SM3算法的簽名OID爲1.2.156.10197.1.501。

6.1.5簽名值

signedValue:制章者對電(diàn)子印章格式中(zhōng)印章信息域SES_ SealInfo,按 SEQUENCE方式組成的信内容進行數字簽名所得的結果。

如果簽名算法使用SM2,應符合GB/T 35276的規定。

6.2電(diàn)子印章生(shēng)成流程

電(diàn)子印章生(shēng)成流程如下(xià):

a)按6.1.2定義的數據格式,将印章頭、印章标識、印章屬性、印章圖像數據、自定義數據等數據按 SEQUENCE方式組成印章信息;

b)根據簽名算法标識 signAlgID,對上述步驟a)的印章信息域進行數字簽名運算,形成簽名值;

c)将上述步驟a)和b)的數據以及制章者證書(shū)、簽名算法标識組成6.1.1定義的電(diàn)子印章數據格式。

6.3電(diàn)子印章驗證流程

電(diàn)子印章驗證流程如下(xià):

a)驗證電(diàn)子印章數據格式的正确性

按照電(diàn)子印章格式解析電(diàn)子印章,驗證是否符合6.1定義的電(diàn)子印章數據格式。

如果電(diàn)子印章數據格式不正确,則驗證失敗,返回錯誤代碼并退出驗證流程。

b)驗證電(diàn)子印章簽名值是否正确

根據印章信息、制章者證書(shū)、簽名算法标識來驗證電(diàn)子印章中(zhōng)的簽名值是否正确。

如果電(diàn)子印章簽名驗證失敗,返回錯誤代碼并退出驗證流程。

c)驗證電(diàn)子印章制章者證書(shū)的有效性

驗證制章者證書(shū)的有效性,驗證項至少包括:制章者證書(shū)信任鏈驗證、制章者證書(shū)有效期驗證、制章者證書(shū)是否被撤銷、密鑰用法是否正确。

如果制章者證書(shū)驗證失敗,返回錯誤代碼并退出驗證流程。

d)驗證電(diàn)子印章的有效期

根據印章屬性中(zhōng)的印章有效期起始時間和有效期終止時間,驗證電(diàn)子印章是否過期。

如果電(diàn)子印章已過期,則驗證失敗,返回錯誤代碼并退出驗證流程。

如果上述步驟都驗證成功,則電(diàn)子印章驗證正确有效,可正常退出驗證流程。

7電(diàn)子簽章

7.1數據格式

7.1.1簽章數據結構

電(diàn)子簽章數據由簽章信息、簽章者證書(shū)、簽名算法标識、簽名值、時間戳等組成。

電(diàn)子簽章數據結構如圖6所示。

微信圖片_20200811090703.png

微信圖片_20200811090733.png

7.1.2簽章信息

簽章信息由版本号、電(diàn)子印章、簽章時間、原文雜(zá)湊值、原文屬性、自定義數據等組成,結構如圖7所示。

微信圖片_20200811090917.png

其中(zhōng):

version:電(diàn)子簽章版本号,該版本号與電(diàn)子印章版本号保持一(yī)緻。

eseal:生(shēng)成電(diàn)子簽章使用的電(diàn)子印章。

timeInfo:電(diàn)子簽章對應的時間,可以是 Generalizedtime時間。

dataHash:待簽名原文的雜(zá)湊值。

propertyInfo:原文數據的屬性,如文檔ID、日期、段落、原文内容的字節數、指示信息、簽名保護範圍等,此部分(fēn)受簽名保護, propertyInfo的具體(tǐ)結構可自行定義,但至少應包含簽名保護範圍。

extDatas:廠商(shāng)自定義數據。

7.1.3簽章者證書(shū)

cert:簽章者的數字證書(shū),應符合GB/ T 20518的規定,按DER編碼格式存放(fàng)。

7.1.4簽名算法标識

signatureAlgID:簽名算法标識,應符合GB/ T 33560的規定,應與簽章者證書(shū)中(zhōng)的算法聲明保持一(yī)緻。

示例:基于SM2算法和SM3算法的數字簽名OID爲1.2.156.10197.1.501。

7.1.5簽名值

signature:簽章者對簽章信息TBS_Sign進行數字簽名的結果;注意簽名過程中(zhōng)的原文雜(zá)湊所采用的算法應與簽名算法保持協調,如果簽名算法是SM2,則雜(zá)湊算法應采用SM3算法。如果簽名算法使用SM2,應符合GB/T35276的規定。

7.1.6時間戳

timeStamp:對簽名值的時間戳,應符合GB/T 20520的規定,時間戳格式按DER編碼存放(fàng)。

7.2電(diàn)子簽章生(shēng)成流程

電(diàn)子簽章生(shēng)成流程如下(xià):

a)準備電(diàn)子印章,并驗證電(diàn)子印章的正确性和有效性,具體(tǐ)步驟如下(xià):

1)驗證電(diàn)子印章。按照6.3驗證電(diàn)子印章的正确性和有效性。

2)選擇拟進行電(diàn)子簽章的簽章者證書(shū),并驗證該證書(shū)的有效性。驗證項至少包括:證書(shū)信任鏈、證書(shū)有效期驗證、證書(shū)是否被撤銷、密鑰用法是否正确。

3)根據電(diàn)子印章中(zhōng)的簽章者證書(shū)列表類型,提取電(diàn)子印章中(zhōng)的簽章者證書(shū)信息列表,并用來判斷步驟2)選擇的簽章者證書(shū)是否在列表中(zhōng)。如果證書(shū)信息類型值爲1,則直接比對證書(shū);如果值爲2,則計算步驟2)中(zhōng)的證書(shū)的雜(zá)湊再進行比對:

——如果拟簽章者在電(diàn)子印章的簽章者列表中(zhōng),則進行後續流程;

——如果比對失敗,返回錯誤代碼并退出簽章流程。根據錯誤代碼進一(yī)步判斷,如果比對失敗是因爲簽章者證書(shū)執行更新、重簽發等操作而導緻,程序應提示重新制作印章。

b)對原文進行電(diàn)子簽章,具體(tǐ)步驟如下(xià):

1)按照 propertyInfo中(zhōng)的簽名保護範圍來準備待簽名原文;

2)将待簽名原文數據進行雜(zá)湊運算,形成原文雜(zá)湊值;

3)按照7.1.2電(diàn)子簽章數據格式組成簽章信息;

4)簽章者對簽章信息進行數字簽名,生(shēng)成簽名值;

5)如果需要加蓋時間戳,則利用上述簽名值産生(shēng)相應的時間戳;

6)将步驟3)、4)、5)以及簽章者信息、簽名算法标識組成7.1.1定義的電(diàn)子簽章數據。

7.3電(diàn)子簽章驗證流程

電(diàn)子簽章驗證流程如下(xià):

a)驗證電(diàn)子簽章數據格式的正确性

1)根據7.1數據格式來解析電(diàn)子簽章數據。

2)若解析失敗,則返回錯誤代碼并退出驗證流程。

3)按照6.3流程來驗證上述電(diàn)子簽章中(zhōng)的電(diàn)子印章的正确性。

4)如果電(diàn)子簽章或電(diàn)子印章數據格式不正确,則返回錯誤代碼并退出驗證流程。

b)驗證電(diàn)子簽章簽名值是否正确

1)根據步驟a)解析所得的簽章信息、簽章者證書(shū)和簽名算法标識,驗證電(diàn)子簽章簽名值。

2)如果簽名值驗證失敗,則返回錯誤代碼并退出驗證流程。

c)驗證簽章者證書(shū)與電(diàn)子印章的匹配性

1)提取電(diàn)子印章中(zhōng)的簽章者證書(shū)信息類型與簽章者證書(shū)信息列表。

2)如果上述簽章者證書(shū)信息類型值爲1,則需要比對數字證書(shū)。将步驟a)解析所得的簽章者證書(shū)與電(diàn)子印章中(zhōng)簽章者證書(shū)信息列表内的證書(shū)逐一(yī)作二進制比對,若均比對失敗,則返回錯誤代碼并退出驗證流程。

3)如果上述簽章者證書(shū)信息類型值爲2,則需要比對證書(shū)的雜(zá)湊值。先計算步驟a)解析所得的簽章者證書(shū)的雜(zá)湊值,再與電(diàn)子印章中(zhōng)簽章者證書(shū)信息列表内的雜(zá)湊值逐一(yī)作比對,若均比對失敗,則返回錯誤代碼并退出驗證流程。

d)驗證電(diàn)子印章的有效性

1)從簽章信息中(zhōng)提取電(diàn)子印章,按照6.3電(diàn)子印章驗證流程驗證印章的有效性,若驗證失敗,需結合簽章信息中(zhōng)的簽章時間綜合判斷。

2)若電(diàn)子印章失效因制章者證書(shū)失效導緻,且在簽章時間點上制章者證書(shū)也是無效的,則應記錄爲提示信息。

3)若電(diàn)子印章失效因過期或被撤銷所導緻,且在簽章時間不在電(diàn)子印章有效期内,或當時電(diàn)子印章不在正常狀态,則返回錯誤代碼并退出驗證流程。

4)驗證簽章時刻,電(diàn)子印章是否處于正常狀态,如不處于正常狀态,則返回錯誤代碼并退出驗證流程。

e)驗證簽章者證書(shū)有效性

1)從電(diàn)子簽章數據獲得簽章者證書(shū),驗證簽章者證書(shū)有效性,驗證項至少包括:證書(shū)信任鏈驗證、證書(shū)有效期驗證、證書(shū)是否被撤銷、密鑰用法是否正确。

2)若簽章者證書(shū)有效性驗證失敗且是由于證書(shū)信任鏈驗證或密鑰用法不正确導緻的,則返回錯誤代碼并退出驗證流程。

3)若簽章者



分(fēn)享到QQ
分(fēn)享到微信
分(fēn)享到微博
【免責聲明】當您認爲本文的知(zhī)識産權或其他合法權益被侵犯,或者頁面信息有誤需要糾正或者删除,請聯系客服。

掃一(yī)掃 關注我(wǒ)們

咨詢電(diàn)話(huà)

0551-63838842
18505518392
15155971385