Carleton University - School of Computer Science Honours Project
Winter 2021
Certificate-Based TLS use and Security of Default Settings in MQTT Software
Kevin Sullivan
SCS Honours Project Image
ABSTRACT
MQ Telemetry Transport (MQTT) is a messaging protocol that is designed for use by low-resource devices in low-bandwidth and unreliable networks. As such, it has gained popularity for use in the Internet of Things (IoT), where many devices are low-power, and network conditions vary. The OASIS MQTT Technical Committee describes MQTT as "Security Enabled" [Committee, 2020], however the security of the protocol is minimal, and the MQTT specification places the burden of security on the implementer of the protocol. MQTT software often presents the option of using Transport Layer Security (TLS) to encrypt MQTT packets. This report aims to investigate how well existing MQTT software have implemented certificate-based TLS solutions, and whether default MQTT broker configurations can be considered safe. During this investigation it is revealed that certificate-based TLS clashes with the fundamental goals of the MQTT protocol, troubleshooting TLS issues over MQTT presents interesting challenges, and that MQTT broker default configurations are not safe. To conclude, some suggestions are made towards providing greater troubleshooting information for issues with certificate-based TLS solutions, and more secure default settings for MQTT brokers are proposed.