DLMS协议中的高级安全(HLS)身份验证

1.四步身份验证协议

在IEC 62056-53中已说明,ACSE提供部分高级身份安全(HLS)验证服务。高级身份安全验证适用于通信通道不能提供内部安全,应采取防范措施以防止偷听和信息(密码)重现的情况。这时,采用4步身份验证协议,客户机和服务器采用下列方式进行4步身份验证:

第1步:客户机向服务器传送"密码"CtoS(例如:随机数)

第2步:服务器向客户机传送"密码"StoC(例如:随机数)

第3步:客户机对StoC进行加密处理(例如:用密钥加密),处理结果f(StoC)返送给服务器。服务器检查f(StoC)是否正确,如果正确,服务器认为客户机的身份验证通过。

第4步: 服务器对客户机的身份验证通过后,服务器对StoC进行加密处理(例如:用密钥加密),处理结果f(CtoS)返送给客户机。客户机检查f(CtoS) 是否正确,如果正确,客户机认为服务器的身份验证通过。

2.补充解释:

高级安全(HLS)验证服务的第1步由客户机应用层的服务原语COSEM-OPEN.request实现。参数"Security_Mechanism_Name"包含HLS机制的标识,参数"Calling_ Authentication_Value"包含密码CtoS。

高级安全(HLS)验证服务的第2步由服务器应用层的服务原语COSEM-OPEN.response实现。参数"Security_Mechanism_Name"包含HLS机制的标识,参数"Responding_Authentication_Value" 包含密码StoC。

第2步完成后,连接已正式建立,但是客户机的访问受到当前"连接"对象的方法"reply_to_HLS_ authentication"的限制。

第3步和第4步由连接对象的方法reply_to HLS_authentication支持。如果这两步都成功地完成,则准予当前连接包含所有访问权限,否则,客户机或服务器中断本次连接。

另外,连接对象提供改变HLS"秘密"的方法(例如:密钥),即change_HLS_secret.

注:在客户机已经执行change_HLS_secret() (或 change_LLS_secret() )方法后,它等待服务器响应确认密码已经修改,有可能服务器已传送了确认,但是由于通信问题,确认信息并未传达到客户机端,因此,客户机不知道密码是否已经更改,为简单起见,在此种情况下,服务器不提供任何特别支持,也就是说它留给客户机处理这种情况。

相关推荐
用户9623779544815 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机19 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机19 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544820 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star20 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954481 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
YuMiao1 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
Jony_4 天前
高可用移动网络连接
网络协议
chilix4 天前
Linux 跨网段路由转发配置
网络协议