wiki:SCU

Version 6 (modified by fornasiero, 14 years ago) (diff)

--

SCU - Secure Code Update Cookbook

TODO:

  • Upload SCU software package
  • Test procedure on other environments

This document includes instructions how to install and to run the Secure Code Update protocol.

Table of Contents

  1. Introduction
  2. Architectural Overview
  3. Installation
    1. Hardware and Software Requirements
  4. Running a Secure Code Update session
    1. Detailed HOWTO

Introduction

Architectural Overview

Installation

Hardware and Software Requirements

Installing the SCU protocol requires the following hardware tools and software packages:

Appunti: Config files in CONFIG_FILE=HOME_PATH+"/synapse-config.txt"; SECRET_KEYS_FILE=HOME_PATH+"/synapse-secret-keys.xml"; PUBLIC_KEYS_FILE=HOME_PATH+"/synapse-public-keys.bin";

Security bits configured during deployment

Running a Secure Code Update session

Detailed HOWTO

SecureSynapseInterface? is just a high-level interface that manages in a parallel fashion all nodes connected to the pc. Lower level control tools are:

  • Java application: net.tinyos.signet.SynapseKeyStorage?
  • Java application: net.tinyos.signet.KeyVolumeManagerClient?
  • Java application: net.tinyos.signet.FlashManagerClient?
  • Java application: net.tinyos.signet.SecurityTaggerV0
  • Java application: net.tinyos.signet.SecurityEncrypterV0
  • Java application: net.tinyos.signet.Suino
  • TinyOS SDK tools

SynapseKeyStorage? tool

java SynapseKeyStorage? [-generate <# of security bits for authentication> <#of uses per key> <# of security bits for encryption> <# of security bits for DoS protection> <filename>] [-get-public <key storage filename> <destination filename>]

java net.tinyos.signet.SynapseKeyStorage? -generate 80 30 128 128 /tmp/pippo/synapse-secret-keys.xml java net.tinyos.signet.SynapseKeyStorage? -get-public /tmp/pippo/synapse-secret-keys.xml /tmp/pippo/synapse-public-keys.bin

KeyVolumeManagerClient? tool

java KeyVolumeManagerClient? [-comm <source>] [-verbose] [-progress] [-upload <public key file>] [-download <output file>]

java net.tinyos.signet.KeyVolumeManagerClient? -comm serial@/dev/ttyUSB0:telosb -progress -upload /tmp/pippo/synapse-public-keys.bin

FlashManagerClient? tool

FlashManagerClient? [-comm <source>] [-verbose] [-progress] [-print-table] [-format] [-read <read_addr> <read_size> <output filename>] [-readid <partition ID,4 digits radix 16> <output file>] [-writefile <desired partition ID, 4 digits radix 16> <local filename> <program start offset radix, 4 digits radix 16>]

SecurityTaggerV0 tool

java SecurityTaggerV0 [-sign <keys filename> <block size> <inputfile> <outputfile> [-update-keys [-low-overhead]] [-use-key-refresh] ]

SecurityEncrypterV0 tool

java net.tinyos.signet.SecurityEncrypterV0 <private keys file> <imputfile> <outputfile>

Suino tool

java net.tinyos.signet.Suino [-comm <source>] < --prepare | --format | --reset | --load <app.id> | --transfer <app.id> | --alive >