0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MCGS用户程序云端授权系统设计

jf_10471008 来源:jf_10471008 作者:jf_10471008 2022-11-08 12:04 次阅读

MCGS用户程序云端授权系统设计

基于HTTP请求通过外接串口服务器实现MCGS组态屏(TPC7062Ti)云端授权系统搭建,重点讲解如何实现系统对时(基于UDP协议的NTP对时协议)、加密算法的选择、加密算法的设计与实现。

算法实现

MCGS组态屏授权管理可以通过“开发平台”内置的“用户权限管理”,这种方式基本属于一次配置授权永久有效,而现在介绍的这种授权方式可以利用云平台修改设备授权状态,实现更加可控的设备管理。

通过MCGS实现云端授权有几个难点,如何将MCGS组态屏接入互联网,如何连接管理服务器,如何进行数据加密与解密,如何获取当前时间戳(非MCGS时间戳)等困难。

1.接入互联网

“接入互联网”可以使用市场上常见的串口转4G串口服务器、串口转WIFI串口服务器、串口转以太网串口服务器设备实现,其中串口转4G对于需要移动的应用场景有着不可替代性,但这种方式存在流量费用。一般来说MCGS组态屏应用于固定环境,此时可以采用串口转WIFI串口服务器或者串口转以太网串口服务器,WIFI相对于以太网稳定性较差且易受干扰,接下来小编就采用MCGS组态屏连接串口转以太网的NA111串口服务器实现设备上网。

2.连接管理服务器

“连接管理服务器”为了方便我就直接采用OneNET的HTTP服务器实现,应用场景并不复杂,只需要定义一个字符型变量,并且可以通过“GETPOST”请求或修改变量就行。

3.获取时间戳

“获取当前时间戳”可以通过串口服务器NA111连接NTP服务器通过NTP协议获取准确时间戳,这里我就通过中国国家授时中心(ntp.ntsc.ac.cn:123)的NTP服务器获取时间。

【注】网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议。

数据加密

这几个难点中最难的是如何对数据进行加密,利用MCGS脚本开发进行数据的加密与解密是比较困难,若一个加密不能被该理解的设备所理解这样的加密是没有意义的,而MCGS并不支持使用加密库函数导致加密解密都需要从原理自行封装脚本,导致不能使用运算过于复杂的算法,常见的加密算法有对称加密和非对称加密和散列算法,接下来分析哪个算法适合MCGS脚本加密,先从安全级别较高的非对称加密分析。

1.非对称加密

非对称加密算法,又称为公开密钥加密算法。它需要两个密钥,一个称为公开密钥(public key),即公钥,另一个称为私有密钥 (private key),即私钥,常见的非对称加密算法有RSA、ECC等,他们都有运算复杂且非常消耗MCU的算力,并不适用于组态屏的加密。

共享密钥加密算法。在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥对数据进行加密和解密。这就要求加密和解密方事先都必须知道加密的密钥。

2.散列算法

散列算法,常见的有MD5、CRC16、SHA1等,严格来说他们不能算作加密算法而是摘要算法,他们加密的结果是不可逆的,常被用于文件完整性以及数字签名等场景。

3.对称加密

现在就只剩下了对称加密,AES、DES、3DES等都属于对称加密,对称加密结果是可逆的,算法可以简单可以复杂,对于笔者来说,使用组态屏的脚本程序实现AES、DES、3DES仍有些困难,并且写这样脚本有点违背使用MCGS的初衷(开发简单),MCGS的加密脚本就只能使用对称加密的思想来实现。

上述这么多的算法留着给那些有兴趣,并且熟悉MCGS脚本开发的人自行探索,笔者这里就是用密码本加密,为了方便前端开发,就使用Base64编码表再结合Base64格式化文本实现数据加密,若认为这样的算法不可靠,可以对明文进行“加”“减”进一步加密,不建议使用“乘”“除”“与”“或”“非”“异或”这些可能导致数据不可逆的算法,这里就不再额外加密明文。

使用Base64就需要了解Base64,Base64算法很简单只需要把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'=',使用MCGS脚本实现这一操作也不算简单但可以实现,先将Base64编码表使用字符串变量一一存储,比如将base64_list的初值赋予“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”,也可以自定义密码本(每个字符都必须唯一对应)对应的加密时也需要使用对于密码本加密,上述字符串顺序不可乱,乱了就是不再是Base64编码表。

MCGS加密过程讲解

通过!InStr(1,base64_list,”M”)查找加密字符的码值,解出的码值使用!I2Bin(s)转换为二进制字符(不足6字节前面填零),再通过字符串拼接合成原始二进制字符串,将“=”忽略不转换(因为Base64把三个字节分成四个字节,不足3个字节,则用0填充,输出字符使用'='),使用!Mid(str,1,8)和!Bin2I(s)转换为ASCII码值,在使用!I2Ascii(s)转换为ASCII字符,拼接这些字符串就可以得到明文。

解决了怎么加密,现在需要考虑对什么数据进行加密,这取决于我们要实现怎样的授权系统,比如,实现云端修改账户模式,这样就需要预先定义模式对应码值表(9573-长期授权,6685-授权1天等等),为了保证码值的安全甚至可使用当前时间对码值进行保护,实现动态密钥。或者利用云端设置有效时间,也就是需要对结束时间的时间戳进行加密。

本文仅探讨算法和实现方法,有时间再讲解算法的实现。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8634

    浏览量

    84332
  • MCGS
    +关注

    关注

    11

    文章

    87

    浏览量

    34742
收藏 人收藏

    评论

    相关推荐

    云端设备管理系统:开启高效运维新时代

    随着数字化飞速发展,云端设备管理系统应运而生。通过实时监测设备运行状态,云端设备管理系统能及时发现潜在问题,提高设备管理效率。它自动化了诸多繁琐的管理流程,如设备巡检、维修工单生成等,
    的头像 发表于 08-26 09:57 71次阅读
    <b class='flag-5'>云端</b>设备管理<b class='flag-5'>系统</b>:开启高效运维新时代

    鸿蒙开发Ability Kit程序访问控制:安全控件概述

    安全控件是系统提供的一组系统实现的ArkUI组件,应用集成这类组件就可以实现在用户点击后自动授权,而无需弹窗授权。它们可以作为一种“特殊的按
    的头像 发表于 07-03 09:22 188次阅读
    鸿蒙开发Ability Kit<b class='flag-5'>程序</b>访问控制:安全控件概述

    鸿蒙开发Ability Kit程序框架服务:向用户申请单次授权

    基于授权最小化的原则,防止应用获取和滥用用户数据,针对部分应用敏感权限,在弹窗向用户申请授权时,新增“允许本次使用”的授权选项。
    的头像 发表于 07-01 14:34 243次阅读
    鸿蒙开发Ability Kit<b class='flag-5'>程序</b>框架服务:向<b class='flag-5'>用户</b>申请单次<b class='flag-5'>授权</b>

    鸿蒙开发Ability Kit程序框架服务:向用户申请授权

    当应用需要访问用户的隐私信息或使用系统能力时,例如获取位置信息、访问日历、使用相机拍摄照片或录制视频等,应该向用户请求授权,这部分权限是user_grant权限。
    的头像 发表于 07-01 09:18 288次阅读
    鸿蒙开发Ability Kit<b class='flag-5'>程序</b>框架服务:向<b class='flag-5'>用户</b>申请<b class='flag-5'>授权</b>

    有了云端,智能家居还有必要部署本地AI吗?

      电子发烧友网报道(文/黄山明)现如今,不少终端产品中都安装了AI程序,不过这些AI程序基本上都需要通过互联网访问云端AI服务,来实现各种智能化功能,例如语音识别、图像识别、自然语言处理等。这种
    的头像 发表于 05-10 00:19 2364次阅读

    小米汽车答疑:智能泊车、授权登录等问题

    对于“授权登录账号维持多久需重授权?”,小米汽车明确表示,如用户为亲属/友人提供车辆使用许可,则默认长期生效;如需取消,仅需在小米汽车App中的“车辆-钥匙与安全”选项中删除即可。
    的头像 发表于 05-07 14:19 573次阅读

    带FreeRTOS操作系统用户程序跳转到iap工程进不去中断是什么原因?

    用户程序移植了FreeRTOS操作系统,为了避免在任务中进行跳转到iap工程中,现将跳转放到定时器中断中,但是跳转到iap工程后串口等中断不进入了,程序正常跑着!!!有遇到此问题的吗,
    发表于 04-25 07:45

    特斯拉正与车企洽谈FSD系统授权事宜

    值得一提的是,自2021年起,马斯克已数次提及与其他车企就FSD授权展开早期探讨,但此后再无动静。去年,特斯拉对外公布了Autopilot及FSD的授权计划。然而,今年初马斯克却表示,部分汽车制造商对特斯拉的完全自动驾驶技术存在疑虑。
    的头像 发表于 04-24 11:46 340次阅读

    鸿蒙原生应用元服务-访问控制(权限)开发Stage模型向用户申请授权

    requestPermissionsFromUser()方法后,应用程序将等待用户授权的结果。如果用户授权,则可以继续访问目标操作。如果
    发表于 04-15 16:44

    MCGS嵌入版组态软件主控窗口的属性设置

    MCGS嵌入版组态软件的主控窗口是组态工程的主窗口,是所有设备窗口和用户窗口的父窗口,主控窗口可以放置一个设备窗口和多个用户窗口,负责所有窗口的管理和调控,并调度用户策略的运行。
    发表于 03-28 11:34 815次阅读
    <b class='flag-5'>MCGS</b>嵌入版组态软件主控窗口的属性设置

    VMware宣布停止买断授权,改为订阅制

    VMware日前宣布未来将全面终止买断授权,改为订阅制,此举影响全球的用户及国内VMware用户云端支出,为此数字通国际云端服务业务处处长罗
    的头像 发表于 02-27 18:17 1215次阅读

    EG网关网口连接MCGS触摸屏应用案例

    EG网关网口连接MCGS触摸屏应用案例 前言:MCGS触摸屏广泛应于工业控制领域,是一款性能高,运行稳定的人机交互设备。
    的头像 发表于 12-19 17:12 946次阅读
    EG网关网口连接<b class='flag-5'>MCGS</b>触摸屏应用案例

    基于MCGS的水泥生产现场监控教学仿真系统

    电子发烧友网站提供《基于MCGS的水泥生产现场监控教学仿真系统.pdf》资料免费下载
    发表于 11-08 10:22 0次下载
    基于<b class='flag-5'>MCGS</b>的水泥生产现场监控教学仿真<b class='flag-5'>系统</b>

    HarmonyOS/OpenHarmony原生应用开发-华为Serverless云端服务支持说明(一)

    、华为Serverless服务框架 提供了多种云端服务: 认证服务:助力应用快速构建安全可靠的用户认证系统。 云函数:提供Serverless化的代码开发与运行平台。 云数据库:提供端云数据的协同管理
    发表于 10-08 10:22

    3分钟轻松实现串口连接MCGS触摸屏应用案例

    前言:MCGS触摸屏广泛应于工业控制领域,是一款性能高,运行稳定的人机交互设备。此次我们要把MCGS的TPC7062系列触摸屏连接到EMCP物联网云平台,实现电脑Web页面、手机APP和微信对MCGS触摸屏的远程监控。
    的头像 发表于 09-26 10:46 7984次阅读
    3分钟轻松实现串口连接<b class='flag-5'>MCGS</b>触摸屏应用案例