首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 基于ARM的嵌入式SMTP远程控制设计(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于ARM的嵌入式SMTP远程控制设计(2)
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2015-10-6 10:12
|
只看该作者
基于ARM的嵌入式SMTP远程控制设计(2)
远程控制
,
嵌入式
2.1 SMTP通讯基本流程
为实现设备的远程控制及状态响应,将SMTP软件的结构模块化。分为套接字通讯模块、E-mail编码模块、E-mail解析模块、SMTP/ESMTP协议模块、附件解析模块。其基本结构如图2。
图2:
嵌入式
SMTP远程控制流程
2.2 套接字通讯模块
网络套接字模块负责与远端客户机、服务器建立TCP连接,发送和接收从客户端发送的命令和数据以及向其他SMTP服务器端返回邮件数据。这些都是基于TCP/IP栈通过Linux操作系统的标准Socket机制来实现的。在网络模块中,为便于升级,考虑到了IPv4到IPv6过渡。在用户设置服务器地址的时候,可以支持IP地址输入和域名输入两种方式,这样给用户带来很大方便。
在该模块中,提供一个TCP流套接字服务器。在端口25上绑定套接字,最多可以提供一个连接,支持5个等待。一旦服务器接受一个连接,该套接字被传给SMTP/ESMTP协议模块,来处理SMTP协议实现交互。处理完后关闭套接字,然后可以等待另一个请求。
2.3 E-mail编码模块
在系统中,远程设备需要周期性的将设备运行状态及各参数发送给管理者,以及在管理者发送查询指令时将查询的关键值发送给管理者。这需要设备能够根据运行的参数构造标准结构的E-mail并发送。
E-mail编码模块的功能是:设备发送邮件时,将设备参数及状态转变成标准的适合在Internet上传输的邮件格式。
一个完整的E-mail报文包括包封、报头和报体。包封是用SMTP命令MAIL FROM和RCPT TO来定义。报头信息包括:收件人(To
,发件人(Sender
,抄送者(CC
,发送日期(Date:),主题 (Subject:),MIME版本(Mime-version:)等。在报体中信息包括:内容类型(Content-Type
,内容传输编码类型 (Content-Transfer-Encoding
,边界定义(Boundary
及信息内容等。邮件信息每行之间都以CR/LF(回车换行符)作为结尾。可以通过这些邮件头信息的关键词,解析出收件人、发件人、抄送人、发送日期,MIME版本号等[4]。
报体信息包括邮件的正文和附件。正文开始的标记是邮件头信息结束后的两个回车换行符,即两个CR/LF。邮件结束的标志是.。模块中提供了对MIME(MulTIpurpose Internet Mail Extensions)1.0格式邮件的处理。实现了MIME内容传输编码,包括:7-bit,8-bit, quoted-printable,Base64编解码。
2.4 SMTP/ESMTP协议模块
SMTP/ESMTP是一种基于命令/应答模式的锁步协议。客户机给出字符串命令,服务器给出数字代码应答,实现邮件的锁步传输。
在TCP连接基础上(端口号25),本模块实现SMTP/ESMTP协议的最小命令集。作为客户发送邮件时,实现的客户连接命令包括: ELHO(或者HELO)、AUTH LOGIN、USER、PASS、MAIL FROM、RCPT TO、DATA、RSET、NOOP、QUIT。作为服务器接收邮件时,响应的数字代码包括:220(服务就绪)、221(服务关闭)、250(要求的邮件操作完成)、354(开始邮件输入,以.结束)、500(命令不识别)[4][5]。
发送者的用户名和密码必须经过Base64编码后,发送到SMTP/ESMTP服务器端,认证才能成功。实现过程见图3。
图3:SMTP/ESMTP协议模块基本流程
2.5 E-mail解析模块
远端设备在收到邮件指令时,应能从邮件中正确析取出指令并做出响应。
系统中的E-mail解析模块通过查找E-mail中的主题来知道命令类型。其在E-mail报体中查找字符串Subject来发现E- mail的主题,并从中找到规定类型的命令字头。如无相应主题,返回-1,将邮件丢弃。根据主题命令字的不同,完成设备的相关动作控制或相应状态的邮件报告。对于数据块的更新,使用附件解析模块来得到附件中的数据。
3.安全性问题
由于SMTP技术的开放性和标准性,其开发的简单便利也带来很多缺点。设备的远程控制必须对访问者有所区分,否则系统的安全将不可预料。
特别是,SMTP协议在发送邮件信息,甚至是用户名和密码的时候采用的是明文发送。通过常见的抓包工具,就可以轻易获得正在接收或发送邮件的用户的所有信息,包括用户名和密码以及邮件信息,这给设备的正常操控带来了极大的威胁。即使ESMTP协议在发送用户名和密码的时候采用的是base64编码,但其解码也是轻而易举,因此其安全性也有限。
对于安全问题,可根据不同的控制环境使用不用的策略[6]。
(1) 闭环网络访问策略:把网络访问范围局限在 Intranet 范围内,通过网内任意PC机发送的邮件命令可以进行远程监视、诊断、远程控制和参数设置。所有可能的攻击点全部局限在本网络范围内。
(2) 只读访问策略:对关键信息和敏感信息,一个重要的安全措施就是将其标记为只读特性,尤其是从Intranet 范围外的IP 地址来的访问请求。这样用户可以在任意地方查看远程设备的状况,出现问题可以及时采取措施。
(3) 引入加密机制,如:MD5加密就可以增加安全性。
4.结束语
本文介绍了在ARM的硬件平台上,如何构建以
嵌入式
Linux为基础利用SMTP协议来进行设备的远程监控的实现方法。通过该方法,我们实现了对传统工控项目的远程控制改造升级。在该方案的基础上,完全可以实现设备的网络化和智能化管理,为现场可编程设备的在线远程监控、管理及维护等功能提供了实现的可能性和技术上的支持。通过对SMTP协议的合理利用,使“Action over IP”的思想得以实现,从而在远处可以对设备的“行为”进行有效的管理和控制。
该文的创新点为:
1、使用低成本、高可靠的ARM硬件平台替代价格昂贵的工控机降低了生产运营成本,提高硬质合金生产线的安全可靠性。
2、由于采用SMPT这样简单的通讯协议,降低了工控网络管理复杂性,使硬件与软件维修都变得方便,易于掌握。
3、采用加密传输通讯确保数据安全,ARM平台采用TCP/IP标准方便与外网通讯,实现企业数据库共享。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议