2013-07-01 73 views
0

我是一個年輕的專業人​​士,他進入嵌入式設計,IT網絡,控制/監控系統等等。目前,我正在使用Tibbo Techonology的DS1102設備開發監控系統。我的監測系統的建議?

http://tibbo.com/products/controllers/ds110x/ds1102

它的覆蓋串口和以太網通信的可編程器件。對於我的項目,其主要任務是串行數據收集和數據庫人口。串行通訊通過RS485完成,使用的數據庫是MySQL 5.5。我的數據庫託管在公共IP上,該IP也爲接口運行Web服務器,而我的設備位於NAT後面。它使用公共IP直接連接到數據庫。

我想徵詢意見,以便我可以加強和升級它。現在這些是我想問的 問題。

  1. 哪個更好?讓服務器在公共IP上或使用端口轉發? 我也用它作爲監控系統界面的網絡服務器。

  2. 要與設備進行通信(重新啓動,改變IP等),我在 蟒使用UDP(使用端口設備的65535)寫的應用程序,並且還設置有用於特定命令的應用進行通信的設備。我的擔心是我想要加密我的python應用程序和設備之間的通信。在DS1102上唯一可用於加密和解密的功能是RC4。關於在這個應用中使用RC4有什麼想法?另外,我打算在端口65535上進行端口轉發,以便我可以從外部使用我的python應用程序。 RC4可以爲此做到可靠嗎?我真的很想學習如何正確使用加密。

  3. 我還計劃爲警報消息實施SMTP。 Tibbo有一個我從中獲得的樣本代碼。問題在於,它位於AUTH PLAIN LOGIN上。我想我想稍後將其轉換爲STARTTLS。你能推薦一些關於STARTTLS算法的課程嗎?

  4. 什麼是郵件的詳細信息從:<>和RCPT TO:<>?因爲在使用命令 DATA時,程序員可以繼續寫:From和To:這可以使他的身份成爲其他人。

就是這樣。建議是非常受歡迎的。 你也可以分享一些很好的閱讀材料和鏈接。我總是渴望學習。 :)

感謝您的時間。

回答

0

2. 加密用少量數據(密鑰)的機密性代替任意數量數據(明文)的機密性。換句話說,您的通信只與密鑰一樣保密 - 如果共享密鑰泄露出去,加密就毫無價值。 More on this.

另請注意,普通RC4不提供真實性(消息完整性)。敵手可以儘可能多地修改消息。他甚至可以發送自己的消息,這將被密碼認爲是完全有效的。驗證消息的有效性取決於解析消息的代碼。

如果你的消息很簡單(只有幾個字節左右),攻擊者可以簡單地發送隨機字節,直到他們解密,這樣他們形成一個有效的消息,而不知道任何關鍵。舉例來說,這種情況平均發生在1個字節的消息僅嘗試100次之後。

顯然你必須使用某種nonce來防止瑣碎的重播攻擊。

RC4也比較古怪本身。我想你已經知道了許多「drop-n」變體等等。

總之,協議設計是危險的。即使是專家也經常錯誤(例如,看看WEP)。解決這個問題最直接的方法是找到可以處理現有協議的硬件,如TLS