Arduino에서 HTTPS를 얻는 방법?


31

간단히 말해 : Arduino에서 HTTPS 연결을 얻는 방법이 있습니까?

나는 그것을 찾고 있었고, 표준 라이브러리와 이더넷 쉴드로는 불가능하다는 것을 알았지 만 그것을 할 수있는 사용자 정의 라이브러리가 있습니까?

WiFi 쉴드와 같은 보조 프로세서는 어떻습니까? Arduino Yún에 SSL이 있는지 아는 사람이 있습니까?


1
당신은 이것에 관심이있을 수 있습니다 : stackoverflow.com/questions/15830333/arduino-due-https-support
puredevotion

첫 번째 질문은 "Arduino와 어떻게 연결될 수 있습니까?"입니다. SIM800을 사용하는 경우 HTTPS가 포함됩니다.
피터

답변:


13

Arduino에 장착 된 MCU는 https 연결을 처리 할 수있는 마력이 없습니다.

Yún은 curl, wget 또는 python과 같은 소프트웨어 를 사용하여 Linux 측 에서 https 처리 합니다. 스케치는 작업을 Linux 측에 위임 할 수 있습니다.

curl은 사전 설치되어 있음에도 불구하고 잘 작동하지만 python-openssl은 디스크 공간 제약으로 인해 즉시 사용할 수 없으므로 python-openssl을 수동으로 설치해야합니다.


"Yún이 Linux 쪽에서 https를 처리합니다"라고 말할 때 Arduino Yún 또는 Yún Shield를 의미합니까?
Ciasto piekarz 2012 년

curl wget 또는 python은 https와 관련이 없습니다
Peter

8

(면책 조항 : 저는 실제로 evothings.com 기사의 저자입니다.)
Arduino UNO는 TLS를 능가합니다. 방금 주제에 대한 블로그 게시물 시리즈를 완성했습니다. 지속적인 통신을 위해 AES-128 키를 교환하기 위해 타원 곡선 암호화 (sect163r2)를 수행하는 Arduino UNO의 실제 예가 있습니다.

http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_1
...
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_8

진정한 HTTPS 연결을 시도하는 다른 방법을 사용했습니다. 대신에 동일한 프로토콜을 사용하지만 안전하지 않은 통신 채널을 사용합니다. HTTP에서 거의 TLS.


6

Arduino의 전원이 거의 공급되지 않기 때문에 SSL 라이브러리의 크기와 복잡성으로 인해 가능하지 않다고 생각합니다. 즉, 일반 서버에 요청을 보내고 일종의 PHP 스크립트를 사용하여 요청을 HTTPS 서버에 프록시 할 수 있다고합니다. 그래도 잘 작동하는지 확실하지 않습니다.

이것에 관심이있을 수 있습니다 .


6

나는 이것을 여기에 연결하기위한 대답으로 나열합니다. 아직 https는 아니지만 아직 작업 중이며 향후 http://evothings.com/is-it-possible-to-secure-micro-controllers-used-within-iot/ 에서 가능할 수 있습니다 .

다음은 1024 비트 공개 키를 사용하여 메시지를 암호화 한 벤치 마크입니다.

Arduino UNO       16Mhz AVR               ==> 12596 ms*   8504 ms#
Arduino Leonardo  16Mhz AVR               ==> 12682 ms*   8563 ms#
Arduino Mega      16Mhz AVR               ==> 12596 ms*   8504 ms#
Arduino Due       84Mhz ARM               ==>  1032 ms*
Arduino Yún       16Mhz AVR + 400Mhz MIPS ==>   707 ms*
Intel Galileo     400Mhz x86              ==>   192 ms*

이것은 그가 가지고 갔지만 풀 ssl / https 구현에 얼마나 가까운지를 알기 위해 테스트 서버를 설정하는 중입니다.


1
더 읽을 가치가 있는지 여부를 독자가 즉시 볼 수 있도록 게시 한 링크에서 가장 흥미로운 세부 정보를 입력 해 주시겠습니까? 그렇지 않으면 귀하의 답변은 SE 정책을 따르지 않으며 폐쇄되어야합니다.
jfpoilpret

2

Federico Fissore가 위에서 언급했듯이 Yún은 Yún의 Linux 측에서만 HTTPS (또는 SSL을 호출하려는 모든 SSL) 만 처리 할 수 ​​있습니다.

첫 번째 방법은 Python을 Python OpenSSL과 함께 사용하는 것입니다. 이를 수행하는 방법은 SSH 또는 YunSerialTerminal을 통해 다음 명령을 실행하는 것입니다.

opkg update
opkg install python-openssl

opkg update패키지 목록이 최신인지 확인한 다음 opkg installPython OpenSSL 을 설치합니다. 그런 다음 Python을 사용하여 Arduino와 대화 할 수 있습니다. Arduino 웹 사이트의이 페이지는 Arduino 와 함께 Python을 사용하는 데 도움이됩니다.

스케치 curl-k옵션 과 함께 사용할 수도 있습니다 . 예를 들면 다음과 같습니다.

Process process;
process.runShellCommand("curl -k http://example.net");
while(p.running()); // this waits for the command to be done before continuing

또한 파일을 다운로드하려면을 사용할 수 있습니다 wget. wgetSSH 또는 YunSerialTerminal을 통해 다음 명령을 다시 실행 하여 업그레이드해야합니다 .

opkg update
opkg upgrade wget

그런 다음 스케치에서이 작업을 수행 할 수 있습니다.

Process process;
process.runShellCommand("wget http://example.net");
while(p.running()); // this waits for the command to be done before continuing

Arduino Yún Shield를 사용하는 것도 가능합니까? Arduino Yún 대신에!
Ciasto piekarz

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.