Skip to content

Latest commit

 

History

History
134 lines (88 loc) · 6.2 KB

README.md

File metadata and controls

134 lines (88 loc) · 6.2 KB

TLS-IoT-Tools

open-tls-iot-client

Introduction

Looking for a secured tool to control your IoT device, like a garage door. This is it. This open source project is co-sponsored by Tracmo, Inc. The goal is to build an end-to-end highly secured MQTTs communication to control an end IoT device. The target is to build a mobile app that has the following features:

  • Use only X.509 to authenticate and secure the communication
  • Support Root CA authentication
  • Support Face ID or Touch ID
  • Prevent Middle-Man Attack
  • No need to set a NAT port forward for the end IoT device

Conceptual Architecture

How is this project organized?

Folder Description
esp32 Source and the binary build of ESP32 based target IoT Device
images Icon and image files
ios Source code of the iOS app
test_tools Test tools to simulate the target IoT Device
ifttt_webhook Lambda Function for AWS IoT Rule Engine

More Information

Each folder has its own README document. Please open the folder to see the document. For the overall technical instructions, please go to the project Wiki page.

Open TLS IoT Wiki

中文資訊 (Information in Chinese)


Sample Use-Case and The Origin of This Project

When I tried to build a smartphone-based garage door control. Making the door control device is not the difficult part. When I was looking for a mobile app that is easy to use and secured, I could not find a good alternative that can meet all I need, especially the security features. It is the door to be controlled. It has to be a very secured method. Most apps that support makers are Restful-based control. It is easy to use but lack of security. All I want is an end-to-end secured and easy-to-use app, so I decided to initiate a new one.

This is the app screen.

The app main screen

The remote control box built with an ESP32-PICO-MINI-02 kit.

The remote control box

This is the video to demonstrate how it works.

final testing

For more information, please check the full demo videos.


Contributors

Contributor Contact Roles
Samson Chen samson AT mytracmo.com Project Coordinator, ESP32, Documentations
Eric Jan janeric11yt AT gmail.com iOS Core App
Jie Chien jie AT mytracmo.com App Icon and Style Design
Shaofu Cu shaojeng AT gmail.com iOS App and Release
Enos Wu p510132006 AT gmail.com ESP32 Development

We welcome your participations. If you are interested in joining this project, please email us via opensource AT mytracmo.com


The App

Open TLS MQTT Client in iOS

Open TLS iOS App

Android app is not there yet. If you are interested to be the contributor, please contact us.


LICENSE

MIT License

Copyright (c) 2020 Tracmo, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Acknowledgements

This project makes use of the following third party libraries:

License https://github.com/novastone-media/MQTT-Client-Framework/blob/master/LICENSE

License https://github.com/x2on/OpenSSL-for-iPhone/blob/master/LICENSE

License https://github.com/evgenyneu/keychain-swift/blob/master/LICENSE

License https://github.com/krzyzanowskim/CryptoSwift/blob/master/LICENSE

This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).