2013-04-05 2 views
28

제한적인 8 비트 마이크로 컨트롤러 보드 인 Arduino의 이전 버전에서는 거의 HTTP가 아닌 HTTPS를 구현하는 것이 거의 불가능한 것으로 보입니다. 그러나 최신 버전의 Arduino Due는 32 비트 ARM 코어를 제공합니다 (here 스펙 참조).Arduino Due HTTPS 지원

나는 여러 네트워크 라이브러리 (libcurl, openssl, yaSSL)를 검사하려고했지만 Arduino Due와 함께 작동하도록 이미 이식 된 사람을 찾지 못했습니다.

OpenSSL은이 프로세서에서 실행하기에는 너무 무거울 수 있지만 임베디드 라이브러리로는 yaSSL이 가능해야한다고 생각합니다.

Arduino에서 HTTPS 요청을 실행하는 데 사용할 수있는 라이브러리에 대한 정보가 있습니까?

+1

ARM 용 OpenSSL을 컴파일하지 않는 이유는 무엇입니까? –

+1

@ H2CO3 - 96KB RAM? 행운을 빕니다. –

+0

@BrettHale 순수 연산이있는 암호화 전용 부품? 해시 초기화 테이블을 ROM이나 progmem에 넣으시겠습니까? –

답변

19

불행히도 이것은 설명하기에는 너무 길다.

► 내가 수집 한 것과 박스 솔루션

의 어떠한 아웃, HTTPS는 밖으로 출력 아트멜 SAM3X8E ARM 코어 텍스 M3의 CPU에서 실행중인 웹 서버에 대한 간단한 솔루션없다 상자. 텍사스 악기 provides better options 지금 스텔라리스 마이크로 컨트롤러 ARM Cortex-M3 CPU이 장착 된 보드를 사용합니다.

는 대체

하나가 배치 차례로 신속한 응용 프로그램 개발 및 SSL을 용이하게하는 중간 장치와 통신하는 simple secure communication protocol을 구현할 수있는 기반으로 암호화 기능을 렌더링 사용할 수있는 여러 가지 옵션이 있습니다 ►.

프로젝트를 모바일로 연결하고 연결된 상태로 유지 보수하는 기존의 70 $ Android 스마트 폰과 같은이 중간 장치는 Amazon SQS과 통신하는 지정된 포트에서 서비스를 실행합니다. 이미 available입니다. 이것은 추악하거나 어려울 수도 있지만, Arduino에서 전체 TLS 3을 지원하는 웹 서버의 프로그래밍 방식 토대를 구축하는 것보다 훨씬 쉽습니다. 적절한 동기 부여를 감안할 때 후자가 쉽지만 자신의 프로젝트에 대한 신속하고 실용적인 해결책을 원하는 경우는 아닙니다.

암호화 라이브러리 (2010 유지되지 않음)

이 라이브러리의 많은 것 여전히 필요 :

► 토론

다음은 시작하는 토론의 목록입니다 적응 시키되, community e xperts는이를 매우 빠르게 도와줍니다.

행운을 빈다. 최종 프로젝트를 github에 업로드 할 자유가 있다면 그저 감사와 추종자를 얻었을 것입니다.

+1

언급할만한 또 다른 암호화 라이브러리는 [cryptlib] (https://www.cs.auckland.ac.nz/~pgut001/cryptlib/)이다. 홈페이지에 따르면 "cryptlib의 휴대 성이 뛰어나므로 AMX, ChorusOS, eCos, FreeRTOS/OpenRTOS, uITRON, MQX, PalmOS, RTEMS, ThreadX, T-Kernel 등의 다양한 사용자 정의 임베디드 시스템 환경에서도 사용되고 있습니다. uC/OS II, VDK, VxWorks 및 XMK를 지원합니다. " – Sebivor

5

IMHO Arduino (DUE 포함)는 무겁거나 암호화 된 웹 기반 통신을위한 잘못된 도구입니다. 나는 같은 크기와 가격대로보다 적합한 하드웨어를 찾는 것을 강력하게 제안 할 것이다. 곧 https에 들어가면 실제 운영 체제가 제공하는 많은 다른 것들이 필요하기에 충분히 근접합니다. 다른 말로 나는 Raspi와 같은 것을 찾으러 갈 것을 제안합니다. 크기와 상금은 비슷하지만 Linux보다 강력합니다. 특히 Linux를 실행할 수 있습니다. -> HTTPS가 간단 해집니다.

6

arduino에서 https를 지원할 때 큰 문제는 프로세서를 과부하로 설정하여 프로젝트를 제대로 수행 할 수없는 위험이 있다는 것입니다.

PolarSSL과 같은 임베디드 플랫폼 대상 솔루션조차도 너무 많은 메모리를 사용하고 처리 능력을 과도하게 사용할 수 있습니다. 가장 간소화 된 구현에서도 SSL 지원은 광범위한 채택을 위해 일반화되어야하며 필요하지 않은 구성 요소를 포함해야합니다. 또한 신뢰할 수있는 인증 기관과 인증서 해지와 같은 방법으로 인증서 기관과 통신하는 방법에 대한 질문이 있습니다.

나는 당신의 필요에 따라 표면이 부서지지 않는 해결책 대신에 보일 것입니다. CurveCP의 구현 인 CurveProtect과 같은 것입니다.

물론 당신의 결정은 당신이하고 싶은 일과 문제를 풀어 나가는 데 얼마나 많은 시간을 할애했는지에 따라 결정됩니다. PolarSSL의 설치 공간은 30K (일반적으로 100K에 가깝습니다) 정도 될 수 있습니다.

+2

정확히 내 요점. SSL은 자원에 매우 무겁고 실제 운영체제 플랫폼에서는 이미 까다 롭습니다. 이 모든 것이 가능한 경우 임베디드 시스템에서 피하려고 노력할 것입니다. 취소 지점도 매우 유효합니다. 임베디드 시스템의 핵심 관리는 결코 쉬운 일이 아닙니다. 실제로 플랫폼에 상관없이 결코 사소하지는 않습니다. 그러나 임베디드는 약간의 꼬임을 더합니다. –

관련 문제