Feature #617

Extend imrest APIs to support new pairing and registration methods

Added by Hammel 23 days ago. Updated about 21 hours ago.

Status:In ProgressStart date:01 Apr 2018
Priority:ImmediateDue date:
Assignee:Hammel% Done:


Target version:Iron Man - 002 - MVP
Severity:01 - Critical


This is to allow Jarvis to connect to the server and submit requests via the imrest interface.


#1 Updated by Hammel 14 days ago

  • Subject changed from Extend imwww APIs to support new pairing and registration methods to Extend imrest APIs to support new pairing and registration methods
  • Description updated (diff)
  • Status changed from New to In Progress
  • % Done changed from 0 to 30

Implemented but needs testing. The update is that the inbound message body has a UUID in JSON format, re: { uuid: <value> } that then becomes a filename under /etc/ironman/jarvis/<uuid>. Also supports the GET monitor API, including support in imwww to save a descriptor (re: Location) when configuring the monitor's networks.

#2 Updated by Hammel about 21 hours ago

Implementing SSL has become problematic, probably because I can't quite grasp all the nuances of getting it right (not to mention the problems of dealing with self-signed certs). But it also now seems like overkill. What I really want is the same process the sensors are using with the monitor:

  1. Exchange UUID key at registration: each monitor has a unique UUID and each Jarvis node has unique UUID.
  2. Encrypt a message with aes(UUID+IV+message).
  3. Send IV plus encrypted message in the clear (http, not https)
  4. Decrypt using UUID+IV

The UUID is never sent except in the registration so it's a low-probability of getting intercepted - the user has to enable registration. So while the message and IV are sent in the open, the message itself is encrypted. You can know who is talking but not what is being said. At least not easily.

This will simplify message passing considerably. It's probably hackable, but not easily. And even the hacking could be reduced by using a sneaker-net input of remote end point keys.

I need to implement this on both end points: monitor (imrest) and Jarvis.

Also available in: Atom PDF