All Projects → ssimunic → iot-device-management

ssimunic / iot-device-management

Licence: AGPL-3.0 license
Leveraging Ethereum blockchain platform for identity, authentication and reputation of IoT devices

Programming Languages

javascript
184084 projects - #8 most used programming language
solidity
1140 projects
HTML
75241 projects

Projects that are alternatives of or similar to iot-device-management

ex-healthcare-claims-processing
Reference DAML application demonstrating a healthcare use case.
Stars: ✭ 27 (-67.86%)
Mutual labels:  smart-contracts, distributed-ledger-technology
ex-bond-issuance
Reference DAML application demonstrating a bond issuance use case.
Stars: ✭ 16 (-80.95%)
Mutual labels:  smart-contracts, distributed-ledger-technology
activeledger
Activeledger is a powerful distributed ledger technology.
Stars: ✭ 17 (-79.76%)
Mutual labels:  smart-contracts, distributed-ledger-technology
zestdb
ZestDB
Stars: ✭ 18 (-78.57%)
Mutual labels:  internet-of-things
chainlink-mix
Working with smart contracts with eth-brownie, python, and Chainlink.
Stars: ✭ 447 (+432.14%)
Mutual labels:  smart-contracts
FranklinPay-iOS
Secure Dollar Wallet
Stars: ✭ 35 (-58.33%)
Mutual labels:  smart-contracts
ESP32 Thing Plus
ESP32 Thing-compatible board using the WROOM module and a QWIIC connector.
Stars: ✭ 18 (-78.57%)
Mutual labels:  internet-of-things
market-contracts
🏬Contracts for market
Stars: ✭ 18 (-78.57%)
Mutual labels:  smart-contracts
t3rn
Composable smart contract hosting with fail-safe interoperable execution
Stars: ✭ 118 (+40.48%)
Mutual labels:  smart-contracts
ultimate-defi-research-base
Here we collect and discuss the best DeFI & Blockchain researches and tools. Feel free to DM me on Twitter or open pool request.
Stars: ✭ 1,074 (+1178.57%)
Mutual labels:  smart-contracts
LNPBPs
LNP/BP standards for bitcoin layer 2 & 3 protocols
Stars: ✭ 158 (+88.1%)
Mutual labels:  smart-contracts
europa
A sandbox to run and debug smart contracts for FRAME Contracts pallet and also a sandbox framework for Substrate runtime.
Stars: ✭ 71 (-15.48%)
Mutual labels:  smart-contracts
luckydog
luckydog(锦鲤) 一个幸运小游戏
Stars: ✭ 14 (-83.33%)
Mutual labels:  smart-contracts
challenge
Solidity Engineer Challenge
Stars: ✭ 94 (+11.9%)
Mutual labels:  smart-contracts
oasis-sdk
Official SDK for the Oasis Network.
Stars: ✭ 57 (-32.14%)
Mutual labels:  smart-contracts
HomeAssistantRepository
🏡 Home Assistant on Gentoo Linux.
Stars: ✭ 26 (-69.05%)
Mutual labels:  internet-of-things
useWeb3
useWeb3 provides a curated overview of the best and latest resources on Ethereum, blockchain and Web3 development.
Stars: ✭ 325 (+286.9%)
Mutual labels:  smart-contracts
plutus-experimental-smart-contracts
Experimental Smart Contracts In Plutus.
Stars: ✭ 34 (-59.52%)
Mutual labels:  smart-contracts
Blockchain-Alpha
Alpha from various sectors in the blockchain space.
Stars: ✭ 102 (+21.43%)
Mutual labels:  smart-contracts
polar
Polar is a development environment to compile, deploy, test, run scrt contracts on different networks.
Stars: ✭ 34 (-59.52%)
Mutual labels:  smart-contracts

IoT Device Management

Introduction

A system that leverages Ethereum platform for identity, authentication and reputation of IoT devices. Devices are registered in a smart contract via a web interface and send cryptographically signed messages to a platform that validates them using blockchain.

This project is a part of my undergraduate thesis Using blockchain for registration and control of IoT devices .

Abstract

IoT is facing identity, security and interoperability problem. Current systems rely on centralized client-server model that will soon be unsatisfactory due to the rapid increase in the number of devices connected to the Internet. Blockchain is shared, distributed and decentralized ledger that allows development of decentralized applications. This thesis examines the concept of its use for registration and management of IoT devices. A system that consists of a smart contract, web interface, and device and platform has been developed. Systems users, entities, register devices within a smart contract with their control information via a web interface. Devices sign messages using private key which are sent to the platform along with control information and associated proof. Received messages are validated using blockchain, which at the end provides authentication, integrity and non-repudiation.

Concept

Below are presented four main concepts that apply to this system.

Device Identity

Device is registered without revealing it's private properties by using Merkle tree. Public key or it's representation is used as an ID.

Example of properties being hashed into Merkle root

Message Authentication

Each message is signed and validated using blockchain on receiver's end.

Generating signature

Validation

Firmware Hashing

It is possible to confirm that device is running valid firmware that hasn't been tampered with.

Device Reputation

Based on Web of Trust principle, devices can form a network of trust. The more signatures a device has from other reputable devices, the more trusted it can be.

Architecture

Consists of entities, devices and an IoT platform.

Development

Technologies used are as follows:

  • Ethereum
  • Solidity
  • Truffle Framework
  • Web3.js
  • React

Structure

Main folders and their content:

  • contracts - Smart contracts (Solidity)
  • frontend - Web interface (React)
  • simulations - Device and platform simulations

Smart Contract

See file contracts/DeviceManager.sol for full list and explanations of methods and events.

Web Interface

Home and network status

Historical events for entity

Device registration

Identifier

Metadata

Firmware

Confirm

Download configuration

List devices

Edit device

Historical events for device

Devices and platform

Example device configuration.

{
    "identifier": "0xf34d4c8f79657f1086f55b817837439c303dff19",
    "metadataHash": "43af4ba721cd8c9ba432ed6aca9adb96d16f82c25ba76...",
    "firmwareHash": "b01d2af9ea9dd59dd9c8af3f1639da03c79b7ed28adaa...",
    "metadata": [
        "Olive grove",
        "45.0270,14.61685",
        "Espressif Systems",
        "00:0a:95:9d:68:16"
    ],
    "firmware": "333f14cdb0a8520199257479ba126a10bca96b229b7924085...",
    "address": "0xf34d4c8f79657f1086f55b817837439c303dff19",
    "publicKey": "d627bbb0a7c150f814a1960ebe69f0d8b4494e1033d9e72...",
    "privateKey": "48a2e48b2d178e7d1f1508f2964a89079f1f8a301ebb85a...",
    "curve": "secp256k1",
    "deviceId": 0
}

Simulation example for device and platform can be found in files simulations/device.js and simulations/platform.js.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].