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

相关推荐
Irissgwe几秒前
进程间通信
linux·服务器·网络·c++·进程间通信
IT小白32 小时前
windows的VMware虚拟机上的Linux系统(CentOS)配置永久ip(关机重启ip不变)
网络·网络协议·tcp/ip
喵叔哟2 小时前
29_内容生产质量网关Skill:草稿生成+事实校验+发布前检查
网络·人工智能
星幻元宇VR2 小时前
VR环保学习机|科技助力绿色教育新模式
大数据·科技·学习·安全·vr·虚拟现实
未知鱼2 小时前
Python安全开发之简易目录扫描器(含详细注释)
开发语言·python·安全
Jianghong Jian3 小时前
Hashcat:强大的密码恢复与安全测试工具
测试工具·安全·密码学
liulilittle3 小时前
LINUX RING BUFFER TUN/TAP 1
linux·服务器·网络·c++·信息与通信·通信
蛊明3 小时前
批量检测 IP 是否在线:CPing vs QuickPing
网络·网络协议·tcp/ip
路由侠内网穿透.4 小时前
本地部署开源书签管理工具 LinkAce 并实现外部访问( Linux 版本)
linux·运维·服务器·网络·网络协议·开源
木易 士心5 小时前
深入理解 MySQL 权限撤销(REVOKE)机制:从语法到安全实践
数据库·后端·mysql·安全