面向对象ESAM加密流程分析

面向对象ESAM加密流程分析

安全传输应用场景:

请求为明文+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数据类型定义

数据类型定义

说明

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数据类型定义

数据类型定义

说明

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

}

相关作品

C罗的伟大与世界杯遗憾无关
(0755) 3656 3788

C罗的伟大与世界杯遗憾无关

📅 07-03 👀 3969
太平洋押金多久会返还
365bet体育网址

太平洋押金多久会返还

📅 06-30 👀 1376