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

相关推荐
newxtc2 分钟前
【58同城-注册安全分析报告】
安全
SUGERBOOM3 分钟前
【网络安全】服务基础第一阶段——第六节:Windows系统管理基础---- DNS部署与安全
安全·web安全
学步_技术5 分钟前
Python编码系列—Python中的HTTPS与加密技术:构建安全的网络通信
python·安全·https
芯世源气体检测仪21 分钟前
可燃气体报警器一直报警是什么原因?如何解决?
安全
Bia01 小时前
Linux实现异步IO的方法:epoll,posix aio,libaio,io_uring
linux·网络·数据库·gnu
爱为斯坦1 小时前
TCP、HTTP以及RPC的梳理
网络
白总Server1 小时前
VScode是什麽?
数据库·ide·vscode·网络协议·tcp/ip·udp·编辑器
极客小张2 小时前
搭建多协议的串口服务器流程:RS-232、RS-485和TCP/IP、MQTT网络协议(代码示例)
服务器·网络·arm开发·物联网·网络协议·tcp/ip·串口服务器
LNTON羚通2 小时前
抽烟检测算法全套方案抽烟检测算法应用场景介绍
网络·数据库·人工智能·算法·安全·音视频·视频推流
新知图书2 小时前
Django框架安全
安全·django·sqlite