面向對象ESAM加密流程分析

安全傳輸應用場景:

  1. 請求爲明文+RN,應答爲明文+MAC
  2. 請求爲密文+SID,應答爲密文
  3. 請求爲密文+SID_MAC,應答爲密文+MAC
  4. 請求爲明文+RN_MAC,應答爲明文+MAC
  5. 請求爲明文+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)...

 

應用連接裏的會話密鑰協商目的:在建立應用連接時進行密鑰協商,產生會話密鑰,用於計算數據驗證碼和鏈路用戶數據的加密。

 

主站與採集終端/電能表的交互協議

  1. 建立應用連接
    1. 獲取安全芯片信息(芯片序列號、芯片版本、對稱密鑰版本[正式密鑰、測試密鑰]、證書版本、會話時效門限、會話時效剩餘時間、終端證書序列號、主站證書序列號等信息返回給主站)。
    2. 會話密鑰協商,如下流程
    3. 協商失效(時間到後需要重新建立會話協商)
  2. 證書及密鑰更新
    1. 主站證書更新(主站可獲取ESAM芯片信息,獲得終端內的主站證書版本和證書序列號,判讀是否需要更新)
    2. 終端/電能表對稱密鑰更新(主站可獲取終端/電能表安全芯片信息,獲得終端內部的對稱密鑰版本,判定是否需要更新)
  3. 讀取
    1. 明文模式
    2. 明文+MAC模式
    3. 密文模式
    4. 密文+MAC模式
  4. 設置和操作
    1. 明文模式
    2. 明文+MAC模式
    3. 密文模式
    4. 密文+MAC模式
  5. 上報
    1. 明文+RN_MAC模式
  6. 代理
    1. 明文+MAC模式
  7. 組廣播通信
    1. 明文+MAC模式
    2. 密文+MAC模式
  8. 終端抄讀電能表
    1. 明文+MAC模式(詳見培訓資料4.2.10的交互流程)
  9. 終端13版ESAM
    1. 13版安全芯片終端抄讀面向對象協議電錶(採用明文+MAC抄讀,終端不驗證電錶應答上來的MAC)
    2. 主站抄讀13版安全芯片終端(採用明文+RN_MAC,終端應答採用明文+MAC方式)

 

6.3.13 安全傳輸

6.3.13.1 SECURITY-Request數據類型

安全請求的數據類型(SECURITY-Request)定義見表114 。

  1. SECURITY-Request數據類型定義

數據類型定義

說明

 

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 。

  1. SECURITY-Response數據類型定義

數據類型定義

說明

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

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章