Our project partners have recently made a number of contributions to the project GitHub repository.
Our SOFIE consortium partner AUEB (Dr. Nikos Fotiou) has contributed two pieces of software to the project GitHub repository:
The first component supports identifiers, authentication, and authorization (IAA) based on OAuth2 and Decentralized Identifiers (DIDs) and is available here: https://github.com/SOFIE-project/DISS-DIDs. The code implements techniques discussed and developed in the following two papers:
Yki Kortesniemi, Dmitrij Lagutin, Tommi Elo, and Nikos Fotiou, “Improving the Privacy of IoT with Decentralised Identifiers (DIDs),” Journal of Computer Networks and Communications, vol. 2019, 2019 (https://doi.org/10.1155/2019/8706760).
Dmitrij Lagutin, Yki Kortesniemi, Nikos Fotiou, and Vasilios A. Siris, “Enabling Decentralised Identifiers and Verifiable Credentials for Constrained IoT Devices using OAuth-based Delegation,” Proc. Workshop on Decentralized IoT Systems and Security (DISS) in conjunction with the Network and Distributed System Security Symposium (NDSS), San Diego, CA, USA, February 2019 (https://sofie.comnet.aalto.fi/images/0/06/DID-OAauth-NDSS2019_DISS.pdf).
This repository includes Python scripts that can be used for interacting with Hyperledger Indy.
The second component, is available here: https://github.com/SOFIE-project/spiot and includes implementation of techniques described in this paper:
- Nikos Fotiou, Vasilios A. Siris, and George C. Polyzos, “Interacting with the Internet of Things using Smart Contracts and Blockchain Technologies,” Proc. 11th International Conference on Security, Privacy and Anonymity in Computation, Communication and Storage (SpaCCS), Melbourne, Australia, December 2018 (https://arxiv.org/pdf/1901.07807).
It includes various sub-components, such as:
- Implementation of a hash lock in an Ethereum smart contract
- Code that shows how to use NaCL (https://nacl.cr.yp.to) and web.crypto APIs (useful for performing encryption operations at the browser)
- Code that shows how web3.js can be used in a browser, including event handling