Implement the Lightweight Cryptographic (LWC) Protocols to be deployed on the 5G testbed. These will be used for authentication of IoT nodes focusing on the use case of RFID systems.
The first part of the project entails implementing LWC authentication protocols for the Internet of Things (IoT) nodes on the network. We will be specifically focusing on the case of RFID, where the readers will act as the IoT nodes at the edge of the network. Figure-1 is a schematic diagram providing a bird’s eye view of our proposed framework. We can see multiple instances of
The protocol should have a high throughput and a light memory and computational footprint. The security guarantees should be reasonably provided.
Client → RFID Reader; Server → Authentication Server;
Before the client can make any requests, it must be authenticated with the server. Instead of implementing a cookie mechanism to maintain sessions, we used a WebSocket server to keep the connection alive after successful authentication. This has the added benefit of two-way communication between the client and the server.
Another future implementation scope is that of pluggable authentication protocols. Developers can implement and deploy their own protocols using the library; however, that protocol must be implementable as a general challenge-response based protocol.
loauth
loauth is a lightweight extensible library designed to provide ease of implementations using challenge-response communication protocols. Written in python, we are actively looking at developers to port it for various hardware platforms. Below is a test snippet for the Base Class of the loauth authentication library.
import hashlib
import hmac as hm
import Cijfer
class test(Cijfer.cijfer):
def sign(self, key, msg):
return hm.new(key, msg, hashlib.sha256).digest()
def verify(self, key, msg, sign):
return hm.compare_digest(sign, hm.new(key, msg, hashlib.sha256).digest() )
Fork it from our GitHub repository and contribute :D