2016-06-20 13 views
3

Я пытаюсь обеспечить соединение между клиентом и mosquitto-брокер arduino pubsub (который работает на общедоступном сервере) через TLS.Защита ардуино от москитов связи с TLS

Обычно (на окнах и т. Д.), Я могу опубликовать/подписаться, как показано ниже, и предоставить файлы сертификатов. (файлы сертификатов и ключей находятся в моем рабочем каталоге).

mosquitto_pub -h myhost.com -p 8883 -t "/test" -m "your secure message" --cafile ca.crt --cert client.crt --key client.key

mosquitto_sub -h myhost.com -p 8883 -t "/test" --cafile ca.crt --cert client.crt --key client.key

Но есть способ сделать это в Arduino?

+0

Клиент mosquitto не работает на arduino, вы имеете в виду клиента pubsub отсюда http://pubsubclient.knolleary.net/? – hardillb

+1

И какое оборудование/Arduino вы используете? Например, Uno не имеет памяти для запуска полного TLS. Хотя возможно, что он может быть выгружен в сетевой чип, если использовать что-то вроде ESP8288. – njh

+0

Я использую чип Sam3x8e. Спасибо! :) – Dileep

ответ

1

Не думайте, что есть доступ к шифрованию для обычных плат arduino, по крайней мере, не то, что я видел. Однако существует несколько обходных решений: либо вы используете другого брокера без шифрования с одной стороны (подключенного к arduino), а затем шифрования на другом конце (подключенного к публичному брокеру).

Другой вариант - использовать плату, которая работает на Linux, а затем вызывать команды mosquitto из кода arduino. Вот пример для платы Intel edison: https://software.intel.com/en-us/blogs/2015/04/06/using-edison-securely-connect-iot-sensor-to-the-internet-with-mqtt

+0

Да, я также искал вокруг, и я не мог найти способ. :(:(Спасибо за ответ! :) – Dileep

4

Ваш pubsub Клиент MQTT не поддерживает SSL/TLS из коробки. Вы можете попробовать интегрироваться с небольшими библиотеками SSL/TLS.

Несколько встроенных SSL библиотеки:
https://wolfssl.com/wolfSSL/Products-wolfssl.html
http://www.matrixssl.org/

Или вы можете выбрать для Paho MQTT Client - это прекомпилированное Arduino порт MQTTClient. Он поддерживает MQTT V3.1.1, SSL/TLS, QOS-2 и т. Д., Которые недоступны в клиенте pubsub.