# 🧩 IoTPatch — Secure, Auto-Patching Framework for IoT Devices
[](https://pypi.org/project/iotpatch/)
[](https://pypi.org/project/iotpatch/)
[](LICENSE)
[]()
[](https://github.com/soumyapriyagoswami)
---
### 🔒 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
```text
+---------------------------+ 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](https://pypi.org/project/iotpatch/):
```bash
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
```bash
git checkout -b feature/awesome-patch
```
3. ```bash
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`](LICENSE) for full details.
---
## 👨💻 Author
**Soumyapriya Goswami**
📧 [soumyapriyagoswami@gmail.com](mailto:soumyapriyagoswami5@gmail.com)
🔗 [github.com/soumyapriyagoswami](https://github.com/soumyapriyagoswami)
💼 [linkedin.com/in/soumyapriyagoswami](https://www.linkedin.com/in/soumyapriya-goswami-9bb8a4288?lipi=urn%3Ali%3Apage%3Ad_flagship3_profile_view_base_contact_details%3BRMoeaSNPSnGw1pqYvCoCMg%3D%3D)
---
<p align="center">
<b>🔐 Secure your IoT fleet — one patch at a time.</b>
</p>
<p align="center">
<img src="https://img.shields.io/github/stars/soumyapriyagoswami/iotpatch?style=social" alt="GitHub Stars"/>
<img src="https://img.shields.io/github/forks/soumyapriyagoswami/iotpatch?style=social" alt="GitHub Forks"/>
</p>
Raw data
{
"_id": null,
"home_page": "https://github.com/soumyapriyagoswami/iotpatch.git",
"name": "iotpatch",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "iot, security, firmware, mqtt, vulnerability-scanner, encryption, edge-computing",
"author": "Soumyapriya Goswami",
"author_email": "Soumyapriya Goswami <soumyapriya.goswami.it2023@kgec.ac.in>",
"download_url": "https://files.pythonhosted.org/packages/66/91/47780b8da6d8a5ea0b536491b3c9cc90bc8a05dbeab47d0550c20fbf6dbf/iotpatch-0.2.0.tar.gz",
"platform": null,
"description": "# \ud83e\udde9 IoTPatch \u2014 Secure, Auto-Patching Framework for IoT Devices\r\n\r\n[](https://pypi.org/project/iotpatch/)\r\n[](https://pypi.org/project/iotpatch/)\r\n[](LICENSE)\r\n[]()\r\n[](https://github.com/soumyapriyagoswami)\r\n\r\n---\r\n\r\n### \ud83d\udd12 Overview\r\n\r\n**IoTPatch** is a Python-based **secure IoT firmware patching framework** designed to demonstrate **encrypted update delivery** and **authenticated device connectivity** over **MQTT with TLS**.\r\n\r\nIt provides a modular interface to:\r\n- \u2705 Establish **secure MQTT communication** between IoT nodes and servers. \r\n- \ud83d\udd10 Manage **firmware updates and patches** safely using certificate-based authentication. \r\n- \u2699\ufe0f Integrate lightweight security layers for **IoT edge devices** with minimal dependencies.\r\n\r\nIdeal for **IoT security researchers, embedded developers, and students** exploring **secure OTA (Over-The-Air)** update mechanisms.\r\n\r\n---\r\n\r\n## \ud83c\udfd7\ufe0f Architecture\r\n\r\n```text\r\n+---------------------------+ MQTT/TLS +---------------------------+\r\n| IoT Device | <-------------------------> | IoT Patch Server |\r\n|---------------------------| |---------------------------|\r\n| \u2022 iotpatch.net (Client) | | \u2022 Patch Distribution Node |\r\n| \u2022 Patch Manager | | \u2022 Validation Engine |\r\n| \u2022 Crypto & Utils | | \u2022 Certificate Authority |\r\n| \u2022 Auto-apply + Rollback | | \u2022 Update Scheduler |\r\n+---------------------------+ +---------------------------+\r\n \u2191 \u2193\r\n [Secure Patch Pull] [Encrypted Push + Verify]\r\n```\r\n## \ud83d\ude80 Installation\r\n\r\nYou can install **IoTPatch** directly from [PyPI](https://pypi.org/project/iotpatch/):\r\n\r\n```bash\r\npip install iotpatch\r\n```\r\n\r\n## \ud83d\udd2c Use Cases\r\n\r\n- **Securely updating fleets of smart sensors** \r\n- **Delivering emergency patches to medical IoT devices** \r\n- **Teaching secure OTA in IoT security courses** \r\n- **Prototyping post-quantum-ready update systems**\r\n\r\n---\r\n\r\n## \ud83d\udcc8 Roadmap\r\n\r\n- [ ] Web dashboard for patch management \r\n- [ ] Post-quantum signatures (Dilithium) \r\n- [ ] Binary diff optimization (zstd + courgette) \r\n- [ ] Dockerized server with REST API \r\n- [ ] MicroPython port for ultra-low footprint\r\n\r\n---\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nContributions are welcome! \r\n\r\n1. **Fork** the repository \r\n2. Create your feature branch \r\n ```bash\r\n git checkout -b feature/awesome-patch\r\n ```\r\n3. ```bash\r\n git commit -m 'Add awesome patch'\r\n ```\r\n4. Push to the branch and open a Pull Request\r\n\r\n---\r\n\r\n## \ud83d\udcc4 License\r\n\r\nThis project is distributed under the **MIT License**. \r\nSee [`LICENSE`](LICENSE) for full details.\r\n\r\n---\r\n\r\n## \ud83d\udc68\u200d\ud83d\udcbb Author\r\n\r\n**Soumyapriya Goswami** \r\n\ud83d\udce7 [soumyapriyagoswami@gmail.com](mailto:soumyapriyagoswami5@gmail.com) \r\n\ud83d\udd17 [github.com/soumyapriyagoswami](https://github.com/soumyapriyagoswami) \r\n\ud83d\udcbc [linkedin.com/in/soumyapriyagoswami](https://www.linkedin.com/in/soumyapriya-goswami-9bb8a4288?lipi=urn%3Ali%3Apage%3Ad_flagship3_profile_view_base_contact_details%3BRMoeaSNPSnGw1pqYvCoCMg%3D%3D)\r\n\r\n---\r\n\r\n<p align=\"center\">\r\n <b>\ud83d\udd10 Secure your IoT fleet \u2014 one patch at a time.</b>\r\n</p>\r\n\r\n<p align=\"center\">\r\n <img src=\"https://img.shields.io/github/stars/soumyapriyagoswami/iotpatch?style=social\" alt=\"GitHub Stars\"/>\r\n <img src=\"https://img.shields.io/github/forks/soumyapriyagoswami/iotpatch?style=social\" alt=\"GitHub Forks\"/>\r\n</p>\r\n",
"bugtrack_url": null,
"license": null,
"summary": "IoT Security Hardening Toolkit for Edge Devices",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/soumyapriyagoswami/iotpatch.git"
},
"split_keywords": [
"iot",
" security",
" firmware",
" mqtt",
" vulnerability-scanner",
" encryption",
" edge-computing"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7afaad6647a5801bbfd287bc8d3116e8e09b0432ba4dfbf56b185032f41c7c96",
"md5": "d54dc357869072d2862c5012786256d4",
"sha256": "f034f44bb2087de9d51c2e65d79fd6a1453aeb3b8182c59578604b84dacaf35a"
},
"downloads": -1,
"filename": "iotpatch-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d54dc357869072d2862c5012786256d4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 5672,
"upload_time": "2025-10-29T17:50:26",
"upload_time_iso_8601": "2025-10-29T17:50:26.726109Z",
"url": "https://files.pythonhosted.org/packages/7a/fa/ad6647a5801bbfd287bc8d3116e8e09b0432ba4dfbf56b185032f41c7c96/iotpatch-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "669147780b8da6d8a5ea0b536491b3c9cc90bc8a05dbeab47d0550c20fbf6dbf",
"md5": "a20d6e92b7ceb3684d78e62a1937d206",
"sha256": "8787ead837578cbe50747de1f789b671bdc7ebc10f746eaa5b351d0d458d49e9"
},
"downloads": -1,
"filename": "iotpatch-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "a20d6e92b7ceb3684d78e62a1937d206",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 5336,
"upload_time": "2025-10-29T17:50:28",
"upload_time_iso_8601": "2025-10-29T17:50:28.157249Z",
"url": "https://files.pythonhosted.org/packages/66/91/47780b8da6d8a5ea0b536491b3c9cc90bc8a05dbeab47d0550c20fbf6dbf/iotpatch-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-29 17:50:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "soumyapriyagoswami",
"github_project": "iotpatch",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "iotpatch"
}