- 國際貿易電子數據交換標準應用指南
- 胡涵景等
- 5362字
- 2019-01-09 15:46:48
3.5 批式EDI安全規則
3.5.1 批式EDI的安全頭段組和安全尾段組的使用規則
3.5.1.1 報文/包級安全-集成報文/包安全
為了保證EDI的安全,UN/CEFACT的開發人員通過使用安全頭段組和安全尾段組來實現這個目的,并且為該技術手段制定了規則。這里描述了EDIFACT報文/包級安全的結構。
這里所描述的安全服務,對于任一現有的報文,應通過在UNH段后緊跟安全頭段組和在UNT段前加入安全尾段組來提供;對于任一現有的包,應通過在UNO段后緊跟安全頭段組和在UNP段前加入安全尾段組來提供。
1)安全頭段組和安全尾段組
圖3-14描述了表示報文級安全的一個交換。

圖3-14 表示報文級安全的一個交換(示意圖)
圖3-15給出了表示包級安全的一個交換。

圖3-15 表示包級安全的一個交換(示意圖)
2)安全頭段組和安全尾段組的結構
表3-3給出了安全頭段組和安全尾段組的段表(報文級安全)。
表3-3 安全頭段組和安全尾段組的段表(報文級安全)

表3-4給出了安全頭段組和安全尾段組的段表(包級安全)。
表3-4 安全頭段組和安全尾段組的段表(包級安全)

3)數據段說明
段組1:USH-USA-SG2 (安全頭段組)
本段組標識了所采用的安全服務和安全機制,并包含了執行確認計算所需的數據。
如果對報文/包采用不同的安全服務(如完整性和源抗抵賴性)或幾個參與方采用了相同的安全服務,則在同一報文/包中可以有幾個不同的安全頭段組。
USH,安全頭
本段規定了適用于包含本段在內的報文/包的安全服務。
與該安全服務有關的各參與方(即安全數據元發起方和安全數據元接收方)可在本段中標識,除非在采用非對稱算法時,它們被無歧義地用證書(即USC段)標識。
在下述情況之一出現時,應在USH段中使用復合數據元安全標識細目(S500):
● 采用對稱算法;
● 采用非對稱算法時為區別安全發起方證書和安全接收方證書而提交兩個證書。
在后一種情況下,S500中的參與方標識(數據元S500/0511、S500/0513、S500/0515、S500/0586中的任一個)應與在段組2的USC段中出現的某個S500中被限定為“證書持有者”的參與方標識相同。同時,數據元S500/0577應標識所涉及的參與方的功能(即發起方或接收方)。
復合數據元安全標識細目中的數據元密鑰名稱(S500/0538)可用來在發送方和接收方之間建立密鑰關系。
該密鑰關系也可通過使用段組1的USA段中的復合數據元算法參數中的數據元密鑰標識(S503/0554)來建立。
如果不需要傳送段組1中的USA段(因為加密機制已事先在參與方間商定),可使用USH段中的S500/0538。
然而,在同一安全頭段組中,本部分推薦使用USH中的S500/0538或USA中帶有限定符的S503/0554中的一個,而不是兩個都使用。
USH段可規定用于段組1中USA段以及相應的安全尾組中的USR段的二進制區的過濾函數。
USH段可包含一個用于提供順序完整性的安全順序號和安全元素的創建日期。
USA,安全算法
本段標識了安全算法及該算法的用法,并包含了所需的技術參數。該算法應直接應用于報文/包的算法,該算法可以是對稱算法、哈希函數或壓縮算法。例如,對數字簽名而言,該算法指明所使用的與報文相關的哈希函數。
非對稱算法不應直接在段組1中的USA段內引用,只可在由USC段觸發的段組2中出現。
USA段允許出現三次。一次用于提供USH段中規定的安全服務所需的對稱算法或哈希函數,其余兩次在GB/T 14805.7中描述。
必要時可以使用番丁(Padding)算法。
段組2: USC-USA-USR(證書組)
當使用非對稱算法時,本段組包含了用來驗證應用于報文/包的安全方法所需的數據。當采用非對稱算法來標識所使用的非對稱密鑰對時,即使不使用證書,也應使用證書段組。
在USC段中,應給出整個證書段組(包括USR段)或只用于無歧義地標識所使用的非對稱密鑰對所需的數據元。如果兩個參與方已經交換了證書或如果證書可從數據庫中獲得,則可避免整個證書的出現。
當決定引用非EDIFACT證書(諸如X.509)時,應在USC段的數據元0545中標識該證書的語法和版本。這樣的證書可在EDIFACT包中傳送。
本段組允許出現兩次。一次用于報文/包的發送方證書(報文/包的接收方將用它來驗證發送方的簽名),另一次則是在發送方為了對稱密鑰的保密性而使用接收方公開密鑰的情況下,用于報文/包的接收方證書(只用證書參考引用)。
如果在同一個安全頭段組中該段組出現兩次,則可用復合數據元安全標識細目(S500)和數據元證書參考(0536)將它們區分開來。
如果不使用非對稱算法,該段組應被省略。
USC,證書
本段包含證書持有者的憑證,并標識生成該證書的認證機構。代碼型數據元過濾函數(0505)應標識用于段組2的USA段和USR段的二進制區的過濾函數。
USC段中的S500可以出現兩次,一次用于證書持有者(識別使用包含于本證書內的公開密鑰相對應的私有密鑰進行簽名的那一方),另一次用于證書發布者(認證機構CA)。
USA,安全算法
本段標識了安全算法及該算法的用法,并包括所需的技術參數。在段組2中,USA段可出現三次,分別標識:
(1)證書發布者用于計算證書的哈希值的算法(哈希函數);
(2)證書發布者用于生成證書(即簽署根據證書內容計算出的哈希函數的結果)的算法(非對稱算法);
(3)發送方用于簽署報文/包(即簽署根據證書內容計算出的哈希函數的結果)的算法(非對稱算法),或發送方使用的接收方非對稱算法(非對稱算法),該算法用來加密應用于報文/包內容的對稱算法所需的密鑰,并且這個密鑰在由USH段觸發的段組1中被引用。
需要時,可使用番丁算法指示。
USR,安全結果
本段包含了認證機構應用于證書的安全功能的結果,該結果應是由認證機構通過簽署根據憑證數據計算出的哈希結果而得出的證書的簽名。
對證書而言,簽名計算始于USC段的第一個字符(即“U”),終止于最后一個USA段的最后一個字符(包括緊隨該USA段的分隔符)。
段組 n:UST-USR (安全尾組)
本段組包含與安全頭段組的鏈接和應用于報文/包的安全功能的結果。
UST,安全尾
本段在安全頭段組與安全尾段組間建立一個鏈接,并說明了包含在這些組中安全段的數目。
USR,安全結果
本段包含應用于報文/包的安全功能的結果,這些安全功能是在被鏈接的安全頭段組中規定的。根據在被鏈接的安全頭段組中規定的安全機制,該結果應為下列兩種結果之一:(1)根據在安全頭段組的段組1中的USA段中指明的算法直接對報文/包進行計算得而出的結果;
(2)通過用非對稱算法簽署哈希結果而計算出來的結果,其中非對稱算法在安全頭段組的段組2中的USA段中指明,哈希結果是根據在安全頭段組的段組1中的USA段中指明的算法對報文/包進行計算而得出的。
4)安全應用的范圍
安全應用的范圍有兩種可能性。
第一種可能性是每個完整性值、鑒別值及數字簽名的計算始于當前的安全頭段組,并包含當前的安全頭段組和報文體/對象本身。在這種情況下,安全應用的范圍不應包括其他的安全頭段組或安全尾段組。
安全頭段組始于第一個字母“U”,終止于結束該安全頭段組的分隔符;報文體/對象始于結束最后一個安全頭段組的分隔符之后的第一個字符,終止于第一個安全尾段組的第一個字符前的分隔符。
因此,以這種方式集成的安全服務的執行順序未作規定。它們彼此間完全獨立。
圖3-16描述了上述這種情況(在安全頭段組2中定義的安全服務的應用范圍用陰影框表示)。

圖3-16 應用范圍:僅為安全頭段組和報文體/包(示意圖)
第二種可能性是計算始于當前的安全頭段組,并包含當前的安全頭段組和有關的安全尾段組。在這種情況下,安全應用的范圍應包括當前的安全頭段組、報文體/對象以及其他所有被嵌入的安全頭段組和安全尾段組。
該范圍應包括從當前的安全頭段組的第一個字符“U”到有關的安全尾段組的第一個字符之前的分隔符的每一個字符。
圖3-17描述了上述這種情況(在安全頭段組2中定義的安全服務的應用范圍用陰影框表示)。

圖3-17 應用范圍:從安全頭段組到安全尾段組(示意圖)
對于每個新增的安全服務,可選擇上述兩種范圍中的一個。在上述兩種情況中,安全頭段組和有關的安全尾段組之間的關系應由USH和UST段中的數據元安全參考號提供。
3.5.1.2 使用原則
1)服務的選擇
安全頭段組可包含下列通用信息:
● 所應用的安全服務;
● 有關的參與方的標識;
● 所使用的安全機制;
● “唯一”值(順序號和/或時戳);
● 接收的抗抵賴性請求。
如果在同一EDIFACT結構中需要多種安全服務時,則安全頭段組可以出現多次。這就是涉及多對參與方的情況。但是,當同一對參與方需要多個安全服務時,這些服務可以含于一對安全頭段組和安全尾段組之中,就好象某個服務隱含于其他服務中一樣。
2)真實性
如果EDIFACT結構要求源鑒別服務,則應使用一對適當的安全頭段組和安全尾段組并根據GB/T 18794.2規定的原則提供該項服務。
源鑒別安全服務應在段組1的USH段中規定,算法則在該段組的USA段中標識。
安全發起方應計算在安全尾段組中的USR段中傳送的真實性值,安全接收方應查證該真實性值。
該服務可以包括完整性服務,并且作為一個“源抗抵賴性”服務的副產品的形式獲得。
如果基于防拆硬件或可信第三方實施適當的“源鑒別”服務,則可把它當成一個“源抗抵賴性”服務的實例。這樣的做法應在交換協定中予以明確。
3)完整性
如果EDIFACT結構要求內容完整性服務,則應使用一對適當的安全頭段組和安全尾段組并根據GB/T 18794.6—2003規定的原則提供該項服務。
完整性安全服務應在段組1的USH段中規定,算法則在段組1的USA段中標識。該算法應是哈希函數或對稱算法。
安全發起方應計算在安全尾段組中的USR段中傳送的完整性值,安全接收方應查證該完整性值。
完整性服務可以通過源鑒別服務或源抗抵賴性服務的副產品的形式獲得。
如果需要順序完整性服務,則應在安全頭段組中或者包含安全順序號和安全時戳的兩者之一,或者包含這兩者;同時還應使用內容完整性服務、源鑒別服務和源抗抵賴性服務中的一個。
4)源抗抵賴性
如果EDIFACT結構要求源抗抵賴性服務,則應使用一對適當的安全頭段組和安全尾段組并根據GB/T 18794.4—2003規定的原則提供該項服務。
源抗抵賴性安全服務應在段組1的USH段中規定,哈希算法則在段組1中的USA段中標識,如果使用證書,還應在段組2的USA段中標識用于簽名的非對稱算法。
如果證書不在報文/包中傳送,接收方應知曉所采用的算法為非對稱算法。在這種情況下,該非對稱算法應在交換協定中明確。
安全服務發起方應計算在安全尾段組的USR中傳送的數字簽名,安全服務接收方應查證該數字簽名值。
源抗抵賴性服務還能提供內容完整性和源鑒別服務。
3.5.1.3 符合EDIFACT語法的內部表示法和過濾器
采用數學算法計算完整性數值和數字簽名帶來了兩個問題。
第一個問題是計算結果依賴于字符集的內部表示。這樣,發送方數字簽名的計算及接收方對該簽名的驗證就應使用同一字符集編碼來完成。因此,發送方可以指明用于生成原始的安全確認結果的表示法。
第二個問題是安全的計算結果類似隨機的位模式。這可能會導致在傳輸期間和使用翻譯軟件時出現問題。為避免這些問題,利用過濾函數將位模式可逆地映射到所使用的字符集的特定表示法上。為簡單起見,每個安全服務只使用一個過濾函數。這個映射的結果中所出現的異常終止符通過加入一個轉義序列來處理。
3.5.2 批式EDI的交換和組的安全頭段組與安全尾段組的使用規則
3.5.2.1 組級和交換級的安全——集成的報文安全
與報文/包傳送相關的安全威脅及針對這些威脅的安全服務也適用于組級和交換級。
在第2章描述的用于報文/包的安全技術,也可用于交換級和組級。
就組級和交換級安全而言,應采用與報文/包級安全中相同的安全頭段組和安全尾段組,即使安全應用于多個以上的級上,頭尾交叉引用應總是應用于同一級。
在報文/包級應用安全時,被保護的結構是報文體或對象;在組級時,是該組中包括所有報文/包的頭和尾在內的所有報文/包的集合;在交換級時,是該交換中包括所有報文/包或組的頭和尾在內的所有報文/包或交換的集合。
3.5.2.2 安全頭段組和安全尾段組
圖3-18描述了同時含有交換級安全和組級安全的一個交換。

圖3-18 同時含有交換級安全和組級安全的一個交換(示意圖)
3.5.2.3 安全頭段組和安全尾段組的結構
僅為交換級安全頭段組和安全尾段組段表見表3-5,僅為組級安全頭段組和安全尾段組段表見表3-6。
表3-5 安全頭段組和安全尾段組段表(僅為交換級安全)

表3-6 安全頭段組和安全尾段組段表(僅為組級安全)

3.5.2.4 安全應用的范圍
安全應用的范圍有兩種可能性。
第一種可能性是每個完整性值、鑒別值及數字簽名的計算始于當前的安全頭段組,并包含當前的安全頭段組和組/包本身。在這種情況下,安全應用的范圍不應包括其他的安全頭段組或安全尾段組。
安全頭段組始于第一個字母“U”,終止于結束該安全頭段組的分隔符;組或報文/包始于結束最后一個安全頭段組的分隔符之后的第一個字符,終止于第一個安全段組的第一個字符前的分隔符。
因此,以這種方式集成的安全服務的執行順序未做規定,它們彼此間完全獨立。
圖3-19和圖3-20描述了上述這種情況(在安全頭段組2中定義的安全服務的應用范圍用陰影框表示)。

圖3-19 應用范圍:僅為安全頭段組和組或報文/包(示意圖)

圖3-20 應用范圍:僅為安全頭段組和報文/包(示意圖)
第二種可能性是計算始于并包含當前的安全頭段組,終止于有關的安全尾段組。在這種情況下,安全應用的范圍應包括當前的安全頭段組、組或報文/包以及其他所有被嵌入的安全頭段組和安全尾段組。
該范圍應包括從當前的安全頭段組的第一個字符“U”到有關的安全尾段組的第一個字符之前的分隔符的每一個字符。
圖3-21和圖3-22描述了上述這種情況(在安全頭段組2中定義的安全服務的應用范圍用陰影框表示)。

圖3-21 應用范圍:從安全頭段組到安全尾段組(示意圖)

圖3-22 應用范圍:從安全頭段組到安全尾段組(示意圖)
對每個新增的安全服務,可選擇上述兩種范圍中的一個。在上述兩種情況中,安全頭段組和有關的安全尾段組之間的關系應由USH和UST段中的數據元安全參考號提供。