Skip to main content

IoT Security Hardening Toolkit for Edge Devices

Project description

🧩 IoTPatch — Secure, Auto-Patching Framework for IoT Devices

PyPI Version Python Version License Build Status Made with ❤️ by Soumyapriya Goswami


🔒 Overview

IoTPatch is a Python-based secure IoT firmware patching framework designed to demonstrate encrypted update delivery and authenticated device connectivity over MQTT with TLS.

It provides a modular interface to:

  • ✅ Establish secure MQTT communication between IoT nodes and servers.
  • 🔐 Manage firmware updates and patches safely using certificate-based authentication.
  • ⚙️ Integrate lightweight security layers for IoT edge devices with minimal dependencies.

Ideal for IoT security researchers, embedded developers, and students exploring secure OTA (Over-The-Air) update mechanisms.


🏗️ Architecture

+---------------------------+          MQTT/TLS          +---------------------------+
|        IoT Device         | <-------------------------> |       IoT Patch Server    |
|---------------------------|                             |---------------------------|
| • iotpatch.net (Client)   |                             | • Patch Distribution Node |
| • Patch Manager           |                             | • Validation Engine       |
| • Crypto & Utils          |                             | • Certificate Authority   |
| • Auto-apply + Rollback   |                             | • Update Scheduler        |
+---------------------------+                             +---------------------------+
         ↑           ↓
   [Secure Patch Pull]   [Encrypted Push + Verify]

🚀 Installation

You can install IoTPatch directly from PyPI:

pip install iotpatch

🔬 Use Cases

  • Securely updating fleets of smart sensors
  • Delivering emergency patches to medical IoT devices
  • Teaching secure OTA in IoT security courses
  • Prototyping post-quantum-ready update systems

📈 Roadmap

  • Web dashboard for patch management
  • Post-quantum signatures (Dilithium)
  • Binary diff optimization (zstd + courgette)
  • Dockerized server with REST API
  • MicroPython port for ultra-low footprint

🤝 Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create your feature branch
    git checkout -b feature/awesome-patch
    
  3. git commit -m 'Add awesome patch'
    
  4. Push to the branch and open a Pull Request

📄 License

This project is distributed under the MIT License.
See LICENSE for full details.


👨‍💻 Author

Soumyapriya Goswami
📧 soumyapriyagoswami@gmail.com
🔗 github.com/soumyapriyagoswami
💼 linkedin.com/in/soumyapriyagoswami


🔐 Secure your IoT fleet — one patch at a time.

GitHub Stars GitHub Forks

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iotpatch-0.2.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iotpatch-0.2.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file iotpatch-0.2.0.tar.gz.

File metadata

  • Download URL: iotpatch-0.2.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for iotpatch-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8787ead837578cbe50747de1f789b671bdc7ebc10f746eaa5b351d0d458d49e9
MD5 a20d6e92b7ceb3684d78e62a1937d206
BLAKE2b-256 669147780b8da6d8a5ea0b536491b3c9cc90bc8a05dbeab47d0550c20fbf6dbf

See more details on using hashes here.

File details

Details for the file iotpatch-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: iotpatch-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for iotpatch-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f034f44bb2087de9d51c2e65d79fd6a1453aeb3b8182c59578604b84dacaf35a
MD5 d54dc357869072d2862c5012786256d4
BLAKE2b-256 7afaad6647a5801bbfd287bc8d3116e8e09b0432ba4dfbf56b185032f41c7c96

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page