首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM的嵌入式SMTP远程控制设计(2)

基于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标准方便与外网通讯,实现企业数据库共享。
返回列表