新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的嵌入式SMTP遠程控制設計

        基于ARM的嵌入式SMTP遠程控制設計

        作者: 時間:2009-06-18 來源:網絡 收藏

        編碼模塊的功能是:設備發送郵件時,將設備參數及狀態轉變成標準的適合在Internet上傳輸的郵件格式。
        一個完整的報文包括包封、報頭和報體。包封是用命令MAIL FROM和RCPT TO來定義。報頭信息包括:收件人(To:),發件人(Sender:),抄送者(CC:),發送日期(Date:),主題(Subject:),MIME版本(Mime-version:)等。在報體中信息包括:內容類型(Content-Type:),內容傳輸編碼類型(Content-Transfer-Encoding:),邊界定義(Boundary:)及信息內容等。郵件信息每行之間都以CR/LF(回車換行符)作為結尾。可以通過這些郵件頭信息的關鍵詞,解析出收件人、發件人、抄送人、發送日期,MIME版本號等[4]。
        報體信息包括郵件的正文和附件。正文開始的標記是郵件頭信息結束后的兩個回車換行符,即兩個CR/LF。郵件結束的標志是CR/LF>.CR/LF>。模塊中提供了對MIME(Multipurpose Internet Mail Extensions)1.0格式郵件的處理。實現了MIME內容傳輸編碼,包括:7-bit,8-bit, quoted-printable,Base64編解碼。
        2.4 /E協議模塊
        SMTP/ESMTP是一種命令/應答模式的鎖步協議。客戶機給出字符串命令,服務器給出數字代碼應答,實現郵件的鎖步傳輸。
        在TCP連接基礎上(端口號25),本模塊實現SMTP/E的最小命令集。作為客戶發送郵件時,實現的客戶連接命令包括: ELHO(或者HELO)、AUTH LOGIN、USER、PASS、MAIL FROM、RCPT TO、DATA、RSET、NOOP、QUIT。作為服務器接收郵件時,響應的數字代碼包括:220(服務就緒)、221(服務關閉)、250(要求的郵件操作完成)、354(開始郵件輸入,以CR/LF>.CR/LF>結束)、500(命令不識別)[4][5]。
        發送者的用戶名和密碼必須經過Base64編碼后,發送到SMTP/ESMTP服務器端,認證才能成功。實現過程見圖3。

        本文引用地址:http://www.104case.com/article/152450.htm

        圖3:SMTP/E模塊基本流程
        2.5 解析模塊
        遠端設備在收到郵件指令時,應能從郵件中正確析取出指令并做出響應。
        系統中的E-mail解析模塊通過查找E-mail中的主題來知道命令類型。其在E-mail報體中查找字符串Subject來發現E-mail的主題,并從中找到規定類型的命令字頭。如無相應主題,返回-1,將郵件丟棄。根據主題命令字的不同,完成設備的相關動作控制或相應狀態的郵件報告。對于數據塊的更新,使用附件解析模塊來得到附件中的數據。
        3. 安全性問題
        由于SMTP技術的開放性和標準性,其開發的簡單便利也帶來很多缺點。設備的必須對訪問者有所區分,否則系統的安全將不可預料。
        特別是,在發送郵件信息,甚至是用戶名和密碼的時候采用的是明文發送。通過常見的抓包工具,就可以輕易獲得正在接收或發送郵件的用戶的所有信息,包括用戶名和密碼以及郵件信息,這給設備的正常操控帶來了極大的威脅。即使ESMTP協議在發送用戶名和密碼的時候采用的是base64編碼,但其解碼也是輕而易舉,因此其安全性也有限。
        對于安全問題,可根據不同的控制環境使用不用的策略[6]。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        tcp/ip相關文章:tcp/ip是什么




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 郑州市| 大荔县| 澄城县| 莆田市| 精河县| 泸定县| 乐平市| 叶城县| 章丘市| 舟曲县| 双鸭山市| 神木县| 嫩江县| 南安市| 如皋市| 甘南县| 奉化市| 富锦市| 栾川县| 扶余县| 视频| 庆城县| 丰都县| 建宁县| 柳河县| 富宁县| 克山县| 黎城县| 通辽市| 五指山市| 阆中市| 邯郸市| 哈尔滨市| 和林格尔县| 滦平县| 通榆县| 南康市| 鹤峰县| 碌曲县| 西和县| 运城市|