2016-06-20 2 views
3

나는 TLS를 통해 arduino pubsub 클라이언트와 모스키토 브로커 (공용 서버에서 실행 됨) 사이의 연결을 보호하려고 시도하고 있습니다.TLS를 통한 모질라 연결에 arduino 연결 보안 설정

일반적으로 (Windows 등에서) 인증서 파일을 제공하는 동안 다음과 같이 게시/구독 할 수 있습니다. (인증서와 키 파일은 제 작업 디렉토리에 있습니다).

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

그러나이 아두 이노에서이 작업을 수행하는 방법은 무엇입니까?

+0

모스 킷 클라이언트가 arduino에서 실행되지 않습니다. 여기에서 pubsub 클라이언트를 찾으십니까? http://pubsubclient.knolleary.net/? – hardillb

+1

그리고 어떤 하드웨어/Arduino를 사용하고 있습니까? Uno는 예를 들어 전체 TLS를 실행할 메모리를 가지고 있지 않습니다. ESP8288과 같은 것을 사용한다면 네트워크 칩으로 오프로드 될 수도 있습니다. – njh

+0

Sam3x8e 칩을 사용하고 있습니다. 고맙습니다! :) – Dileep

답변

1

정상적인 arduino 보드에 대한 암호화가 있다고 생각하지 마십시오. 적어도 내가 본 것은 아닙니다. 그러나 몇 가지 해결 방법이 있습니다. 암호화없이 다른 브로커 (arduino에 연결)를 사용하고 다른 쪽 브로커 (공개 브로커에 연결)를 사용하는 것입니다.

다른 옵션은 linux에서 실행되는 보드를 사용하고 arduino 코드에서 mosquitto 명령을 호출하는 것입니다. 다음은 인텔 에디슨 보드의 예입니다. 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 선택할 수 있습니다 - MQTTClient의 미리 만들어진 아두 이노 포트. pubsub 클라이언트에서는 사용할 수없는 MQTT V3.1.1, SSL/TLS, QOS-2 지원 등을 지원합니다.