CyberSecurity Plug-in
Introduction
This document describes the purpose and usage of the DevWareX Cybersecurity Plugin for use with CyberSecurity Provisioned onsemi image sensors.
It is assumed the reader has working knowledge of DevWareX and the use of Plugins.
Purpose
The purpose of the plugin is 2-fold:
Provide a demonstration of CyberSecurity capabilities of Session Establishment and Register and Video Authentication.
Provides Python scripts that perform the above capabilities. Note that the Plugin uses these same scripts for the demonstration.
CyberSecurity Capabilities Demonstration
Each of the demonstration areas is described below.
Session Establishment
This is a demonstration of establishing a session with and without a “Salt” value. The onsemi Public key is provided to the script, which then issues a “GET_UID” command followed by a “START_SESSION” command.
Register Authentication
The Session Establishment process is run again. Register writes are then performed, and the value of the sensor-generate MAC (Message Authentication Code) is compared to the value calculated by the Plug-in. A mismatch of values indicates that another entity has written to the sensor outside of the Plug-in script. A mismatch can be forced via the “Force RegAuth Failure” radio-button.
Video Authentication
The Session Establishment process is run again. The sensor is then set to stream a test pattern. A frame is then captured and the sensor-generate MAC (Message Authentication Code) is compared to the value calculated by the Plug-in. A mismatch of values indicates that another entity has altered the captured frame. There is no method available to force this type of failure.
Usage
Start DevWareX but select “Cancel” at the “Startup Wizard” dialog. From the “Plug-ins” menu select “CyberSecurity AR0827AT” and you’ll see the following 2 dialogs:
The Plugin only appears in the list when an AR0827AT is detected, and only when connected to Demo3.
Note that the controls in the green rectangle configure and control the operations.
The currently active controls are:
Public Keys
The “Sensor Public Key (ECDH only)” is populated by default with the onsemi Public Key.
This field can be modified but will only enable the “Start Session” button when 130 characters are entered.
The onsemi key can be restored via the “Restore onsemi Public Key” button.
Host Salt
This can be set to <blank> and a random value will be generated, or populated by the user with a 32 character value.
The “Start Session” button will only be enabled when 0 or 32 characters are detected.
Start Session: establish a session.
Register Authentication resets the sensor, establishes a session and verifies Register Authentication.
Video Authentication: resets the sensor, establishes a session and verifies the Video Authentication.
Show Python Console: automatically shown when the plugin is launched, but it can be manually hidden / exposed via this radio button.
Force RegAuth Failure: when selected, Register Authentication operation is forced to fail.
Failure is forced via a background task that performs register reads separate from the operation script itself.
The red rectangle shows the Pass / Fail results of the controls, while the details of the operation is displayed in the Python Console.
Python Reference Scripts
The sensor settings and operations to perform the demonstrations are implemented via Python scripts. They are located in the installation folder (usually “\Aptina Imaging”) under:
apps_data\cyber_security
The specific scripts for each of the 3 demonstration steps are:
Session: session.py and comms.py
Register Authentication: register_authenticateion.py.py
Video Authentication: video_auth_apbase.py and video_authentication.py