我是一名年轻的专业人士,从事嵌入式设计,IT网络,控制/监控系统等方面的工作。目前,我正在使用Tibbo Techonology的设备DS1102开发一个监控系统。
http://tibbo.com/products/controllers/ds110x/ds1102
它是一种可编程设备,涵盖串行和以太网通信。对于我的项目,其主要任务是串行数据收集和数据库填充。串行通信通过RS485完成,数据库使用的是MySQL 5.5。我的数据库托管在公共IP上,当我的设备在NAT后面时,该公共IP也运行接口的Web服务器。它使用公共IP直接连接到数据库。
我想请求建议,以便我可以增强和升级它。现在这些是 我想问的问题。
哪个更好?将服务器置于公共IP上还是使用端口转发? 我也将它用作我的监控系统界面的网络服务器。
为了与设备通信(重启,更改IP等),我写了一个应用程序 python使用UDP(使用设备的端口65535),并将设备设置为与应用程序通信以获取特定命令。我担心的是我想加密我的python应用程序和设备之间的通信两种方式。 DS1102上唯一可用于加密和解密的功能是RC4。您对使用RC4进行此应用有何看法?此外,我打算在端口65535上进行端口转发,以便我可以从外部使用我的python应用程序。 RC4也能可靠吗?我真的想学习如何正确使用加密。
我还计划为警报消息实施SMTP。 Tibbo有一个我以我为基础的示例代码。问题是,它是在AUTH PLAIN LOGIN上。我想我想稍后把它变成STARTTLS。你能推荐一些关于STARTTLS算法的课程吗?
MAIL FROM的详细信息是什么:<>和RCPT TO:<>?因为使用命令 数据,程序员无论如何都可以编写From:和To:这可以使他的身份成为别人。
现在就是这样。建议非常欢迎。 您还可以分享一些好的阅读材料和链接。我总是渴望学习。 :)
感谢您的时间。
答案 0 :(得分:0)
2。 加密用任意数量的数据(明文)的机密性代替少量数据(密钥)的机密性。换句话说,您的通信仅与密钥一样保密 - 如果共享密钥泄露,则加密毫无价值。 More on this.
另请注意,普通RC4不提供真实性(消息完整性)。攻击者可以根据需要修改消息。他甚至可以发送自己的消息,这些消息被密码认为是完全有效的。验证消息的有效性取决于解析消息的代码。
如果你的消息很简单(只有几个字节左右),攻击者可以简单地发送随机字节,直到它们解密,使得它们形成有效的消息,而不知道关于密钥的任何信息。例如,仅在100次尝试1字节消息后,就会发生这种情况。
你显然必须使用某种随机数来防止琐碎的重播攻击。
RC4本身也非常古怪 。我想你已经知道了许多“drop- n ”变种等等。
简而言之,协议设计是危险的。即使是专家也经常弄错(例如WEP)。解决此问题的最直接方法是找到可以处理现有协议的硬件,例如TLS。