Giter VIP home page Giter VIP logo

geth-iot's Introduction

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.

geth-iot's People

Contributors

ssimunic avatar williamkahn avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.