= 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. [[PageOutline(2-3,Table of Contents,inline)]] == Introduction == == Architectural Overview == == Installation == === Hardware and Software Requirements Installing the SCU protocol requires the following hardware tools and software packages: * [http://www.ubuntu.com/ Linux PC] This guide has been tested using Ubuntu 8.10 and 10.04 * [http://docs.tinyos.net/index.php/Getting_started TinyOS-2.x SDK] * SCU software package * At least 2 TelosB sensor nodes 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> ] [-get-public ] 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 ] [-verbose] [-progress] [-upload ] [-download ] java net.tinyos.signet.KeyVolumeManagerClient -comm serial@/dev/ttyUSB0:telosb -progress -upload /tmp/pippo/synapse-public-keys.bin ==== FlashManagerClient tool ==== FlashManagerClient [-comm ] [-verbose] [-progress] [-print-table] [-format] [-read ] [-readid ] [-writefile ] ==== SecurityTaggerV0 tool ==== java SecurityTaggerV0 [-sign [-update-keys [-low-overhead]] [-use-key-refresh] ] ==== SecurityEncrypterV0 tool ==== java net.tinyos.signet.SecurityEncrypterV0 ==== Suino tool ==== java net.tinyos.signet.Suino [-comm ] < --prepare | --format | --reset | --load | --transfer | --alive >