安全傳輸應用場景:
- 請求爲明文+RN,應答爲明文+MAC
- 請求爲密文+SID,應答爲密文
- 請求爲密文+SID_MAC,應答爲密文+MAC
- 請求爲明文+RN_MAC,應答爲明文+MAC
- 請求爲明文+SID_MAC,無應答
不需要建立應用連接的三種應用場景:
1. 明文+隨機數的請求,用於GET-Request服務
2. 明文+RN_MAC請求,用於終端或電錶的主動上報REPORT-Notification
3. 明文/密文+SID_MAC,用於廣播或組地址通信
其它類型傳輸服務均用到建立應用連接是的會話密鑰,必須建立應用連接。
13版安全芯片:
13版安全芯片協議中安全模式參數的密文、密文+MAC安全級別,等同於明文+RN_MAC模式,主站設置服務、操作服務將使用明文+RN_MAC,終端使用明文+MAC應答。
13版終端抄讀面向對象電錶採用明文+MAC,終端在收到電錶返回的數據,不對MAC進行校驗。
13版終端上行協議升級爲面向對象協議後採用明文+RN_MAC,終端應答爲明文+MAC,其中MAC的計算方式:明文+隨機數進行MD5計算,計算結果在用ESAM芯片處理獲得MAC值。
ESAM芯片的序列號是每一個芯片的唯一標識,各不相同。
對稱密鑰版本用於判斷終端/電錶的密鑰狀態是出廠測試密鑰狀態還是正式密鑰狀態,否則需要進行密鑰更新操作。
證書版本(主站證書版本號+終端證書版本號)、終端證書序列號、主站證書序列號爲證書標識,用於判斷證書是否需要更新。
會話時效門限用於確定主站和終端/電錶之間會話最大有效時間,通過會話時效剩餘時間得知是否需要重新建立會話連接,會話時效剩餘時間歸零後,需要重新建立會話才能夠進行訪問。
單地址應用協商計數器(ASCTR)用於組織會話協商數據。
主動上報計數器用於主站對上報數據合法性判斷依據之一。
應用廣播通信系列號(AGSEQ)...
應用連接裏的會話密鑰協商目的:在建立應用連接時進行密鑰協商,產生會話密鑰,用於計算數據驗證碼和鏈路用戶數據的加密。
主站與採集終端/電能表的交互協議
- 建立應用連接
- 獲取安全芯片信息(芯片序列號、芯片版本、對稱密鑰版本[正式密鑰、測試密鑰]、證書版本、會話時效門限、會話時效剩餘時間、終端證書序列號、主站證書序列號等信息返回給主站)。
- 會話密鑰協商,如下流程
- 協商失效(時間到後需要重新建立會話協商)
- 證書及密鑰更新
- 主站證書更新(主站可獲取ESAM芯片信息,獲得終端內的主站證書版本和證書序列號,判讀是否需要更新)
- 終端/電能表對稱密鑰更新(主站可獲取終端/電能表安全芯片信息,獲得終端內部的對稱密鑰版本,判定是否需要更新)
- 讀取
- 明文模式
- 明文+MAC模式
- 密文模式
- 密文+MAC模式
- 設置和操作
- 明文模式
- 明文+MAC模式
- 密文模式
- 密文+MAC模式
- 上報
- 明文+RN_MAC模式
- 代理
- 明文+MAC模式
- 組廣播通信
- 明文+MAC模式
- 密文+MAC模式
- 終端抄讀電能表
- 明文+MAC模式(詳見培訓資料4.2.10的交互流程)
- 終端13版ESAM
- 13版安全芯片終端抄讀面向對象協議電錶(採用明文+MAC抄讀,終端不驗證電錶應答上來的MAC)
- 主站抄讀13版安全芯片終端(採用明文+RN_MAC,終端應答採用明文+MAC方式)
6.3.13 安全傳輸
6.3.13.1 SECURITY-Request數據類型
安全請求的數據類型(SECURITY-Request)定義見表114 。
數據類型定義 |
說明 |
|
|
SECURITY-Request∷=SEQUENCE { 應用數據單元 CHOICE { 明文應用數據單元 [0] octet-string, 密文應用數據單元 [1] octet-string }, 數據驗證信息 CHOICE { 數據驗證碼 [0] SID_MAC, 隨機數 [1] RN, 隨機數+數據MAC [2] RN_MAC, 安全標識 [3] SID } } |
SID——見6.3.3.16 。 RN——見6.3.3.18 。 SID_MAC——見6.3.3.17 。 |
|
|
|
RN_MAC∷=SEQUENCE { 隨機數 RN, 數據MAC MAC } |
MAC——見6.3.3.15 。 |
6.3.13.2 SECURITY-Response數據類型
安全響應的數據類型(SECURITY-Response)定義見表115 。
數據類型定義 |
說明 |
SECURITY-Response∷=SEQUENCE { 應用數據單元 CHOICE { 明文應用數據單元 [0] octet-string, 密文應用數據單元 [1] octet-string, 異常錯誤 [2] DAR }, 數據驗證信息 CHOICE OPTIONAL |
DAR——見6.3.3.11 。 MAC——見6.3.3.15 。
|
表115(續)
{ 數據MAC [0] MAC } } |
|
以下爲建立應用連接時的密鑰協商
數據類型定義 |
說明 |
|
ConnectMechanismInfo∷=CHOICE { 公共連接 [0] NullSecurity, 一般密碼 [1] PasswordSecurity, 對稱加密 [2] SymmetrySecurity, 數字簽名 [3] SignatureSecurity(面向對象用的是數字簽名,0~2不支持) } |
ConnectMechanismInfo爲建立應用連接的機制信息。 |
|
|
NullSecurity∷=NULL PasswordSecurity∷=visible-string SymmetrySecurity∷=SEQUENCE { 密文1 octet-string, 客戶機簽名1 octet-string } SignatureSecurity∷=SEQUENCE { 密文2 octet-string, 客戶機簽名2 octet-string } |
密文1——對客戶機產生的隨機數加密得到的密文。 客戶機簽名1——客戶機對密文1的簽名。 密文2——客戶機對服務器產生的主站證書等數據加密信息。 客戶機簽名2——客戶機對密文2的簽名。 |
數據類型定義 |
說明 |
ConnectResult∷=ENUMERATED { 允許建立應用連接 (0), 密碼錯誤 (1), 對稱解密錯誤 (2), 非對稱解密錯誤 (3), 簽名錯誤 (4), 協議版本不匹配 (5), 其他錯誤 (255) } |
ConnectResult採用枚舉方式表示應用連接請求認證的結果。 |
數據類型定義 |
說明 |
|
ConnectResponseInfo∷=SEQUENCE { 認證結果 ConnectResult, 認證附加信息 SecurityData OPTIONAL } |
ConnectResponseInfo用於表示應用連接請求的認證響應信息。 |
|
|
SecurityData∷=SEQUENCE { 服務器隨機數 RN, 服務器簽名信息 octet-string } |
|