In the first implementation I simply generated a hash of the MAC address for the first non-wifi ethernet adapter found on the device as the basis for generating the identicon. The identicon graphics itself was simply the original OctoMY™ logo with some changes applied to the limbs and colors.
This proved to be very effective and it became clear right away that there was something to the identicon idea. However there were some problems with the approach . First it would be very easy to "change" or "spoof" the identity of a robot simply by changing the MAC address. Second there was no guarantee that the device would have a MAC address or network interface at all. Finally, what if we decided to scrap the old hardware and move the software to a new one? The robot would "loose its mind"!
In the current iteration I have coupled the identity to the security aspects of the platform; the identity is now a secure hash of the full text of the public-key for the robot in PEM format. Benefits of this are many:
- The robot may have an identity regardless of what hardware it runs on and how many ethernet devices are present.
- An identity requires a key-pair, guaranteeing that the robot has the needed security in place.
- By verifying a message using RSA and generating the id and identicon directly from the related pub-key you know that the identicon is a real one and actually relates to the robot you are communicating with (paranoids would compare the full hash text as well, not just the identicon graphics).
Another thing that popped up as a problem was that I now had beautiful charming identicons for the robots them selves (OctoMY™ Agents), but there was no similar way of positively identifying the remotes and hubs that would interact with the robots! What I ended up doing was simply to make the same identicon generator produce identicons for OctoMY™ Remotes and OctoMY™ Hubs as well. And the results speak for themselves!
|OctoMY™ Agent, Remote & Hub identicons in purple and green.|
|Notice how each tier has a different identicon personality while retaining the color palette.|
|The "personality" of the OctoMY™Agent identicon varies the direction and bend of its limbs.|
|OctoMY™ Remote & Hub vary the radius/thickness of the rings and the rotation of the brain respectively.|