MQTT 네트워크에서 어떤 간단한 보안 테스트를 수행 할 수 있습니까?


13

집에서 MQTT 네트워크를 설정하려고합니다. 실습을 통해 지식을 쌓고 싶습니다. 내 랩톱 (Windows 7) 및 일부 Raspberry Pi 기반 클라이언트에서 호스팅되는 브로커와의 소규모 네트워크입니다. 또한 내 휴대 전화 (Android)에서 클라이언트를 만드는 것에 대해 생각하고 있습니다.

저의 목표는 실험 할 수있는 간단한 네트워크를 구축하는 것입니다. 먼저 실험을 해보면서 보안 테스트를 수행하고 싶습니다.

악의적 인 MQTT 클라이언트로 작동하도록 설계된 MQTT Server Test Suite 를 찾았습니다 . 시작하는 것은 매우 유망합니다.

테스트 툴 일반 기능

  • 완전 자동화 된 블랙 박스 네거티브 테스트
  • 기성품 테스트 케이스
  • 자바 (tm)로 작성
  • GUI, 명령 행, 원격 인터페이스 모드
  • 계측 (상태 확인) 기능
  • 지원 및 유지 보수
  • 포괄적 인 사용자 설명서
  • 결과보고 및 분석

또한 MQTT 보안 기능을 확인하는 데 사용할 수있는 몇 가지 간단한 방법에 관심이 있습니다. 초보자가 MQTT 네트워크에서 몇 가지 기본 보안 검증을 수행하는 가장 간단한 방법은 무엇입니까?

답변:


12

일부 아이디어-사용자 이름 / TLS가 있거나없는 모든 조합을 다루지 않았으므로 누락 된 부분을 볼 수 있기를 바랍니다.

클라이언트가 TLS없이 익명으로 연결할 수 있습니까?

mosquitto_sub -t test/topic -h <broker address>

클라이언트가 사용자 이름을 제공하지만 암호는없고 TLS가없는 경우 연결할 수 있습니까?

mosquitto_sub -t test/topic -u <username> -h <broker address>

클라이언트가 사용자 이름과 비밀번호 (올바른지 여부)를 제공하고 TLS를 제공하지 않으면 연결할 수 있습니까?

mosquitto_sub -t test/topic -u <username> -P <password> -h <broker address>

클라이언트가 $SYS주제를 구독 하고 브로커에 대한 정보를 볼 수 있습니까?

mosquitto_sub -t '$SYS/#' -v -h <broker address>

클라이언트가 TLS를 사용하여 연결할 수 있습니까?

mosquitto_sub -t test/topic -h <broker address> -p 8883 --capath /etc/ssl/certs

고객이 모든 주제를 구독 할 수 있습니까? 무엇을 봅니까?

mosquitto_sub -t '#' -v

게시 할 때도 위의 내용을 모두 반복하십시오.


5

어쩌면 분명히 말할 수도 있지만 초보자는 안전한 네트워크를 구축 할 수 없다고 강조하는 것이 중요하다고 생각합니다. 그래도 학습에 아무런 문제가 없습니다.

MQTT의 기본 보안은 전송 계층에서 구현되므로 실제 보안에 중점을 두어야합니다.

자동화 된 테스트 스위트가 전문가의 능력을 복제하여 프로토콜 구현에서 허점을 찾을 수 있는지에 대해 놀랐습니다.


4
나는 완전히 안전한 네트워크를 기대하지 않습니다. 온 전성 검사 만 실행하고 싶으므로 매우 기본적인 테스트를 통해 시작해야 할 것이 있는지 확인하십시오.
Bence Kaulics
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.