我想制造一种可以安全地与网络服务器通信的嵌入式设备。我更喜欢使用标准SSL,因此网络服务器类似于网络浏览器一样查看我的设备。
- 嵌入式方面是否有任何prebuit库可以做到这一点?
- 可以为我处理握手和解密的IC呢?
- 如果不是,我该怎么做呢?
我想制造一种可以安全地与网络服务器通信的嵌入式设备。我更喜欢使用标准SSL,因此网络服务器类似于网络浏览器一样查看我的设备。
Answers:
我建议使用Microchip TCP堆栈。Microchip提供了针对PIC18,PIC24,dsPIC和PIC32进行了优化的免费许可的TCP / IP堆栈。
Microchip的TCP / IP堆栈包括安全套接字层(SSL)功能。
但这不是免费的。见下文:
为了遵守美国出口控制限制,必须单独从Microchip购买SSL模块的加密部分。可以从http://www.microchipdirect.com/productsearch.aspx?Keywords=SW300052以象征性的费用获得数据加密例程库(SW300052) 。
为了获得更好的结果,您可以使用具有内置AES加密/解密引擎和其他证券引擎的ENCx24J600。
考虑以下嵌入式SSL库:
http://www.yassl.com/yaSSL/Products-cyassl.html
也许http://gitorious.org/tropicssl/
Tropicssl和Polarssl源自http://www.ohloh.net/p/xyssl
Tropicssl和xyssl是BSD许可的,而其他所有都是GPL的,可以选择$的专有许可。
如果系统足够复杂,无法运行操作系统,则可以使用许多工具和库来完成这项工作。在嵌入式Linux系统上,可以将wget与SSL一起使用。在具有更高级别语言(如Python或Ruby)的任何系统上,网络库(Python SSL)将支持SSL。如果您只能访问C,则可以使用OpenSSL库编写某些内容。
如果没有操作系统,我想您需要做很多工作。至少,您需要一个TCP / IP堆栈。我将使用mbed构建一个原型-有一篇论坛文章建议他们目前可能拥有SSL库。