NodeMCU 보드에로드 된 프로그램을 추출 할 수 있습니까?


13

WiFi 기능이있는 NodeMCU 보드를 사용하여 간단한 자산 추적기를 구축하고 있습니다. Azure IoT Hub에 연결하고 메시지를 게시 할 수있는 몇 가지 Arduino 스케치를 찾았습니다.

보드에 "로드"하는 데 필요한 키 중 하나는 Azure Device Connection 문자열이며 물론 WiFi SSID 및 암호입니다.

내 두려움은 누군가가 단순히 보드를 가지고 보안 자격 증명에 액세스하기 위해 파일을 "다운로드"할 수 있다는 것입니다.

내 두려움이 보증되지 않습니까, 자격 증명 상실이 완화해야하는 진정한 위협입니까?


3
@ Mike Ounsworth와 Bence Kaulics의 답변이 나에게 적절한 옵션을 제공한다고 생각합니다. 불행히도 나는 둘 다 허용되는 답변으로 표시 할 수 없습니다.
rams

답변:


12

[면책 조항 : 나는 보안 / 암호 전문가이며 매일 이와 같은 보안 아키텍처 질문을 처리합니다.]

무인 프로세스가 자격 증명에 액세스 할 수있는 방식으로 자격 증명을 저장하는 문제에 부딪 쳤지 만 공격자는 할 수 없습니다. 이것은 잘 알려져 있고 해결하기 어려운 문제입니다.

IoT 장치에 일부 TPM과 같은 마더 보드에 내장 된 하드웨어 키 저장소가 있거나 Android 하드웨어 지원 키 저장소 또는 Apple Secure Enclave 와 동등한 경우이를 사용할 수 있습니다.

기존 서버에서는 HSM 또는 스마트 카드를 사용할 수 있지만 내가 아는 유일한 전체 소프트웨어 솔루션은 모든 하드웨어 장치의 일련 번호를 결합하여 구축 된 일종의 "하드웨어 지문"에서 AES 키를 파생시키는 것입니다. 그런 다음 해당 AES 키를 사용하여 자격 증명을 암호화하십시오. 동일한 서버에서 실행되는 프로세스는 AES 키를 재구성하고 자격 증명을 해독 할 수 있지만 서버에서 파일을 추출하면 본질적으로 해독 할 수 없습니다.

IoT는 두 가지 이유로 렌치를 던져 넣습니다.

  1. 하드웨어 일련 번호가 고유하다는 가정은 아마 유지되지 않을 것입니다.

  2. 서버와 달리 공격자는 장치에 실제로 액세스 할 수 있으므로 암호 해독 프로그램을 실행하기 위해 장치의 셸을 얻을 수 있습니다.

기본적으로 로컬 프로세스가 데이터를 해독 할 수있는 경우 공격자가 해당 로컬 프로세스를 실행할 수 있기 때문에 하드웨어 암호화 (TPM) 및 "하드웨어 지문"암호화가 모두 난독 화됩니다.


따라서 표준 트릭은 작동하지 않는 것처럼 보입니다. 스스로에게 물어봐야 할 첫 번째 질문은 다음과 같습니다.

  • 내 위협 모델은 무엇입니까 Secure <--> Convenient? 이 프로젝트는 어디에 있습니까?

궁극적으로, 나는 당신에게 그것을 결정하는 중 필요가 있다고 생각 security > convenience하고 인간이 각각의 부팅 (같은 사용하여 뭔가 후 자격 증명을 입력해야 BenceKaulics의 대답 @를 )하거나 결정할 security < convenience그냥 어쩌면 약간 난처 당신이 경우를 사용하여 장치의 자격 증명을 넣어 차이를 느끼게합니다.


IoT 장치의 특성상 어려운 문제입니다.

완벽을 기하기 위해이 문제에 대한 완전한 산업 솔루션은 다음과 같습니다.

  • 제조시 각 IoT 장치에 고유 한 RSA 공개 키를 제공하십시오. 이 공개 키를 장치 일련 번호에 대한 DB에 기록하십시오.
  • 민감한 자격 증명을 적절한 서버에 저장하고 "게이트웨이"라고합니다.
  • IoT 장치가 RSA 키를 사용하여 게이트웨이를 인증하면 게이트웨이는 저장된 자격 증명을 사용하여 세션을 열고 세션 토큰을 장치에 다시 전달합니다.
  • 최상의 보안을 위해 게이트웨이는 물리적 (또는 VPN) 게이트웨이이므로 IoT 장치의 모든 트래픽이 게이트웨이를 통과하고 방화벽 규칙 및 항목을보다 강력하게 제어 할 수 있습니다. 인터넷 접속.

이렇게하면 장치를 손상시키는 공격자가 세션을 열 수 있지만 자격 증명에 직접 액세스 할 수는 없습니다.


2
예. 문제의 큰 부분은 여기에서 보호하려고 하는 것은 wifi 암호 인 공유 비밀 입니다. 공유 비밀은 장치를 물리적으로 해부 할 수있을 때 나쁜 생각입니다. 더 나은 디자인은 각 개별 장치와 통신해야하는 시스템간에 고유 한 보안 채널을 사용하여 장치 (또는 다른 컴퓨터)의 각 인스턴스 를 자체 보안 환경으로 분리합니다. 그 점에서, 와이파 이는 어떤 지점 간 2.4GHz 방식이나 심지어 "Esp Now"프로토콜에 비해 애플리케이션에 적합하지 않을 수 있습니다.
Chris Stratton

1
좋은 지적. SSID 암호 대신 WPA2 엔터프라이즈 클라이언트 인증서를 사용하여 공유 비밀 문제를 해결할 수 있습니다 (IoT 디바이스가 TLS 스택을 보유 할만큼 큰 경우에는 많지 않습니다). Azure IoT Hub에 대해서는 아무것도 모르지만 해당 Azure 장치 연결 문자열은 이미 장치마다 고유하다고 가정합니다. 불행히도 이것은 "DIY no security"와 "Industrial-scale security"사이에 많지 않은 매우 깨끗한 흑백으로 보입니다.
Mike Ounsworth

2
세션을 마음대로 열 수 있다면 왜 자격 증명이 필요한지 궁금합니다.
앤드류 Savinykh

1
@AndrewSavinykh 자격 증명이 무엇인지에 따라 다릅니다. 어쩌면 그들이하는 모든 일이 세션을 여는 것입니다. 그러나 Windows 도메인 AD 자격 증명이거나 IoT 장치에서 일반적으로 사용하거나 액세스 할 수없는 추가 API에 액세스 할 수 있습니다. 어쩌면 손상된 장치에서 오는 세션에는 문제가 없지만 공격자의 랩톱에서 오는 세션에는 문제가 없을 수 있습니다. 예, 사용 사례별로 매우 빠릅니다.
Mike Ounsworth

3
일련 번호 ??? 고유 한 일련 번호를 찾는 것은 문제가되지 않지만 일련 번호는 비밀이 아닙니다. 키를 만드는 데 쓸모가 없습니다. 지구상에서 일련 번호를 사용하여“표준 트릭”을 구성하는 곳은 어디입니까?
Gilles 'SO- 악의를 멈추십시오'

6

위협은 실제적이지만 운 좋게도 이러한 종류의 보안 문제가있는 최초이자 유일한 것은 아닙니다.

당신이 필요로하는 것입니다 ESP 와이파이 관리자 것은 당신이 여기에서 필요로하는 무슨이다.

이 라이브러리를 사용하면 저장된 세션이없는 ESP가 AP 모드로 전환되고 웹 포털을 호스팅합니다. PC 또는 스마트 폰으로이 AP에 연결하면 웹 페이지를 통해 WiFi 자격 증명을 구성 할 수 있습니다.

중요한 정보를 하드 코딩 할 필요가 없으며 장치를 다시 깜박일 필요없이 원하는 모든 WiFi 네트워크에서 장치를 사용할 수 있습니다.

작동 원리

  • ESP가 시작되면 스테이션 모드에서 설정하고 이전에 저장된 액세스 포인트에 연결을 시도합니다

  • 이것이 실패하거나 이전 네트워크가 저장되지 않은 경우 ESP를 액세스 포인트 모드로 옮기고 DNS 및 WebServer를 회전시킵니다 (기본 ip 192.168.4.1).

  • 브라우저 (컴퓨터, 전화, 태블릿)가있는 Wi-Fi 지원 장치를 사용하여 새로 만든 액세스 포인트에 연결

  • 캡 티브 포털 및 DNS 서버로 인해 '네트워크에 참여'유형의 팝업이 표시되거나 액세스하려는 도메인이 구성 포털로 리디렉션됩니다.

  • 스캔 한 액세스 포인트 중 하나를 선택하고 비밀번호를 입력 한 후 저장을 클릭하십시오.

  • ESP가 연결을 시도합니다. 성공하면 앱에 대한 제어 권한을 다시 포기합니다. 그렇지 않은 경우 AP에 다시 연결하고 재구성하십시오.

(ESP WiFi 관리자 설명서)


1
또는 AP 모드에있는 동안 레코드를 다운로드하십시오. 포스터가 자산 추적에 Wi-Fi 자체를 사용하지 않기를 바랍니다.
Chris Stratton

1
@ChrisStratton :-) 사실, 자산 추적에 WiFi를 사용하려고합니다. 운 좋게도 내가 사용하는 WiFI 네트워크는 공개적이고 개방적이지만 암호가 필요한 다른 네트워크를 사용해야 할 때의 영향이 걱정됩니다. 또한 AzureIoT Hub 연결 문자열이 장치에 있다는 사실도 있습니다.
rams

2
@rams 확실히, 장치의 EEPROM을 읽는 것은 큰 일이 아닙니다.
Bence Kaulics

3
@rams 하드웨어에서 EPROM을 읽을 수 있습니다. 최신 장치에는 보안이 강화 된 안전한 플래시 영역이있을 수 있습니다. 확실히 이것은 올바르게 시도하고 수행하기 위해 온칩 지원이 필요한 알려진 문제입니다.
Sean Houlihane

2
@SeanHoulihane-ESP8266에는 EEPROM이 없습니다. Arduino 기능을 에뮬레이션하는 것을 포함하여 모든 것에 사용되는 SPI 플래시는 ESP8266 외부에 있습니다. 멀티 칩 모듈에서도 괜찮은 실험실에서 프로브 할 수있는 별개의 다이입니다.
Chris Stratton

3

예, 비밀번호를 일반 텍스트로두면 비밀번호에 액세스 할 수 있습니다.

좋은 점은 많은 wifi 연결 인터페이스가 해시 암호를 허용한다는 것입니다. 내가 사용한 md5 해시와 md5는 매우 안전하지는 않지만 여전히 평균 조에게는 매우 어려운 과제입니다. 구성 파일에 따라 해시 알고리즘의 이름을 지정한 다음 암호를 쓰거나 wifi 인터페이스가 사용하는 기본 값을 사용합니다.


3
해시 중에 작동하는 해시 비밀번호를 추출 할 수 있다면 역전시키지 않고 비밀번호를 사용하지 못하게하는 방법은 무엇입니까?
Chris Stratton

1
@ChrisStratton 당신이 맞아요. 이를 방지하는 방법은 Information Security SE에 대한 것이며,이 질문은 자격 증명의 손실을 방지합니다. 그럼에도 불구하고 추가 소프트웨어 없이도 모바일에서 해시 된 비밀번호를 사용하여 네트워크에 연결할 수는 없습니다.
atakanyenel

1
그렇습니다. 실제로 다른 시스템에서 wifi 암호를 재사용하는 경우 일부 보호 기능을 제공하지만 해당 wifi 액세스 포인트에 대한 무단 연결에 대해서는별로 중요하지 않습니다.
Chris Stratton

1
예를 들어, MAC 화이트리스트는 단순히 암호를 가지고 해싱하는 것보다 훨씬 안전하지만,이 단계는 일반적으로 공용 장치의 자격 증명을 보호하기위한 것이 아니라 wifi 보안을위한 것입니다.
atakanyenel

2
아니요, MAC 허용 목록은 농담 입니다. 전혀 비밀 이 없습니다 . 물론 도난당한 ESP8266 또는 SPI 플래시에서 MAC을 쉽게 추출 할 수 있습니다. 와이파이 네트워크에 가입하거나 액세스 포인트가 어떤 일을 표시 할 수 있습니다 클라이언트의 연결을 기다리고 거기에 앉아 있었다, 그러나 경우에 GUI를 사용하는 사람들을 반대하는 화이트리스트 것 도움 유일한 장소 MAC 소개 에 연결된 적이 예 - 석재 종류의 칼.
Chris Stratton

1

간단한 답변-예. 할 수 있습니다. 최소한의 보호 기능을 제공하려면 최소한 어떤 종류의 난독 처리 를 수행 해야합니다.


1
난독 화로 인해 장치의 작동 방식 을 찾기가 더 어려워 지지만 장치 복제 를 방지하는 것은 쓸모가 없습니다 . 자격 증명 추출을 방지하는 것은 쓸모가 없습니다. 에뮬레이터에서 펌웨어를 실행하기 만하면됩니다.
Gilles 'SO- 악의를 멈추십시오'

전적으로 동의합니다. 그런 대답을 한 동기는 <IoT 네트워크 보안을 고려해야합니다>입니다. @Mike Ounsworth는 AES 및 / 또는 RSA 인프라를 사용하는 솔루션을 제안하는 자세한 답변을 제공했습니다. 하나 더 답변을 고려하고 있지만 암호화로 어떻게 넘어갈 지 잘 모르겠습니다 (수년 동안 지불 및 은행 솔루션을 사용하고 있습니다). 내 생각은 일반적으로 사람들이 그의 뒤뜰에서 IoT 장치를 보호하기 위해 암호화에 깊숙이 들어 가지 않기 때문에 실질적이고 균형 잡힌 조언을 제공해야한다고 생각합니다.
Amit Vujic

1
사람들이 안전한 장치를 만드는 방법을 알아낼 수 없기 때문에 안전하지 않은 장치를 만들고 싶다면 장치를 사용할 이유가 없습니다.
Gilles 'SO- 악마 그만'

내 경험은 사람들이 배우기를 원하지만 다시 한 번 보안 수준과 복잡성 사이에 균형이 있어야한다는 것입니다. 지불 산업에는 SET ( en.wikipedia.org/wiki/Secure_Electronic_Transaction ) 와 관련하여 매우 안전하지만 구현하기가 복잡하고 실제로 실패한 유명한 이야기 가 있습니다.
Amit Vujic

2
난독 화는 보안을 향상시키지 않고 복잡성을 추가합니다. 균형이 맞지 않습니다.
Gilles 'SO- 악마 그만'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.