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.