PORTING A NETWORK CRYPTOGRAPHIC SERVICE TO THE RMC2000 : A CASE STUDY IN EMBEDDED SOFTWARE DEVELOPMENT.

Slides:



Advertisements
Similar presentations
TIE Extensions for Cryptographic Acceleration Charles-Henri Gros Alan Keefer Ankur Singla.
Advertisements

SSL CS772 Fall Secure Socket layer Design Goals: SSLv2) SSL should work well with the main web protocols such as HTTP. Confidentiality is the top.
An Introduction to Secure Sockets Layer (SSL). Overview Types of encryption SSL History Design Goals Protocol Problems Competing Technologies.
CCNA – Network Fundamentals
Mar 19, 2002Mårten Trolin1 This lecture On the assignment Certificates and key management SSL/TLS –Introduction –Phases –Commands.
Embedded Network Controller with Web Interface Bradley University Department of Electrical & Computer Engineering By: Ed Siok Advisor: Dr. Malinowski.
11/13/01CS-550 Presentation - Overview of Microsoft disk operating system. 1 An Overview of Microsoft Disk Operating System.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Understanding Networks. Objectives Compare client and network operating systems Learn about local area network technologies, including Ethernet, Token.
Introduction To Networking
Networks 1 CS502 Spring 2006 Network Input & Output CS-502 Operating Systems Spring 2006.
CS-3013 & CS-502, Summer 2006 Network Input & Output1 CS-3013 & CS-502, Summer 2006.
ECE 4220 Real Time Embedded Systems Final Project Presentation Spring 2014 University of Missouri Columbia By: Michael Brauch Temperature Data Logger.
1 I/O Management in Representative Operating Systems.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Senior Design Project 2004/2005 Web-Enabled Caller Identification 12/09/2004 Barron Shurn Daniel St. Clair Professor Soules.
OS Implementation On SOPC Final Presentation
File System. NET+OS 6 File System Architecture Design Goals File System Layer Design Storage Services Layer Design RAM Services Layer Design Flash Services.
Silicon Labs ToolStick Development Platform
Chapter 3 Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Small Form Computing A bump in the wire. The questions ● What can we do with an inexpensive small computer? ● Can we make it a part of a seamless wireless.
Advanced Embedded Systems Design Pre-emptive scheduler BAE 5030 Fall 2004 Roshani Jayasekara Biosystems and Agricultural Engineering Oklahoma State University.
hardware and operating systems basics.
Introduction to USB Development. USB Development Introduction Technical Overview USB in Embedded Systems Recent Developments Extensions to USB USB as.
NetBurner MOD 5282 Network Development Kit MCF 5282 Integrated ColdFire 32 bit Microcontoller 2 DB-9 connectors for serial I/O supports: RS-232, RS-485,
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
UNIX SVR4 COSC513 Zhaohui Chen Jiefei Huang. UNIX SVR4 UNIX system V release 4 is a major new release of the UNIX operating system, developed by AT&T.
CSI315 Web Development Technologies Continued. Communication Layer information needs to get from one place to another –Computer- Computer –Software- Software.
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
1 Design and Performance of a Web Server Accelerator Eric Levy-Abegnoli, Arun Iyengar, Junehwa Song, and Daniel Dias INFOCOM ‘99.
Operating Systems.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
LWIP TCP/IP Stack 김백규.
IP and Errors IP Best Effort Datagrams can be: –Lost –Delayed –Duplicated –Delivered out of order –Corrupted.
LWIP TCP/IP Stack 김백규.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
IP Forwarding.
Introduction to Secure Sockets Layer (SSL) Protocol Based on:
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Geneva, Switzerland, 11 June 2012 Switching and routing in Future Network John Grant Nine Tiles
Network Security. 2 SECURITY REQUIREMENTS Privacy (Confidentiality) Data only be accessible by authorized parties Authenticity A host or service be able.
The Agent Based Crypto Protocol The ABC-Protocol by Jordan Hind MSE Presentation 3.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
SSL/TLS How to send your credit card number securely over the internet.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
CE Operating Systems Lecture 13 Linux/Unix interprocess communication.
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Azam Supervisor : Prof. Raj Jain
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
CSC414 “Introduction to UNIX/ Linux” Lecture 2. Schedule 1. Introduction to Unix/ Linux 2. Kernel Structure and Device Drivers. 3. System and Storage.
Copyright © 2012 Kendall Electric, Inc. All rights reserved.
Enterprise Network Systems TCP Mark Clements. 3 March 2008ENS 2 Last Week – Client/ Server Cost effective way of providing more computing power High specs.
Kernel Expanded version of Kodak’s AMX kernel Features –Uses Preemptive Priority Scheduling –Multithreading –Multitasking.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
Unit - I Real Time Operating System. Content : Operating System Concepts Real-Time Tasks Real-Time Systems Types of Real-Time Tasks Real-Time Operating.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
APACHE Apache is generally recognized as the world's most popular Web server (HTTP server). Originally designed for Unix servers, the Apache Web server.
BUILDING AND IMPLEMENT A EMBEDDED WEB SERVER BASE ON TCP/IP STACK WITH A SoC PLATFORM Professor : CHI-JO WANG Name : Bui Quang Hoa (M982b211)
INTRODUCTION TO WIRELESS SENSOR NETWORKS
Introduction to the ARM mbed Platform– A Hands-on Course
The Transport Layer Implementation Services Functions Protocols
Kernel Design & Implementation
Originally by Yu Yang and Lilly Wang Modified by T. A. Yang
Client-Server Interaction
DEBROS: A UNIX-like OS for 8-bit microcontrollers
Page Replacement.
Chapter 2: The Linux System Part 1
Presentation transcript:

PORTING A NETWORK CRYPTOGRAPHIC SERVICE TO THE RMC2000 : A CASE STUDY IN EMBEDDED SOFTWARE DEVELOPMENT

2 Porting a Network Cryptographic Service to RCM2000 About RCM2000

3 Porting a Network Cryptographic Service to RCM2000 About Dynamic C

4 Porting a Network Cryptographic Service to RCM2000 Reference site

5 Porting a Network Cryptographic Service to RCM2000 Introduction Experience porting a transport-layer cryptography service to an embedded microcontroller Some key development issues and techniques involved in porting networked software to a connected, limited resource device such as the Rabbit RCM2000 The effectiveness of a few proposed porting strategies by examining important program and run-time characteristics

6 NETWORK CRYPTOGRAPHIC SERVICES SSL (Secure Sockets Layer) a protocol that layers on top of TCP/IP to provide secure communications e.g., to encrypt web pages with sensitive information not cheap negotiating an SSL session can degrade server performance iSSL a cryptographic library that layers on top of the Unix sockets layer to provide secure point-to-point communications

7 NETWORK CRYPTOGRAPHIC SERVICES Ported iSSL service to the RCM2000 SSL forms a layer above TCP → easily moved from the server to other hardware use coprocessor cards for performance uses the RSA and AES cipher algorithms the RSA algorithm uses a difficult-to-port bignum package → we only ported the AES cipher (uses the Rijndael algorithm ) only implemented 128-bit keys and blocks referred to the AESCrypt implementation developed by Eric Green and Randy Kaelber

8 THE RCM2000 ENVIRONMENT The RCM2000 TCP/IP Development Kit 512k of flash RAM 128k SRAM runs a 30 MHz 8-bit Z80-based microcontroller access up to 1MB through bank switching 10 Base-T network interface software implementing (TCP/IP, UDP and ICMP)

9 THE RCM2000 ENVIRONMENT Dynamic C developed along with the Rabbit microcontrollers → support the Rabbit 2000 in embedded system applications ANSI C variant support cooperative and preemptive multitasking support battery-backed variables support atomicity guarantees for shared multi-byte variables local variables → static default storage class for variables → static not support the #include → using instead #use Bit fields and enumerated types are not supported

10 PORTING AND DEVELOPMENT ISSUES Three broad classes of porting problems that demanded code rewrites the absence of certain libraries and operating system facilities Dynamic C does not provide the standard random function the protocols include timeouts, but Dynamic C does not have a timer the iSSL library makes some use of a file-system, something not provided by the RCM2000 environment writing a random function changing the program logic so it no longer read a hash value from a file final port did not implement the RSA cipher because it relied on a fairly complex bignum library that we considered too complicated to rework

11 PORTING AND DEVELOPMENT ISSUES differing APIs with similar functionality the protocol for accessing the RCM2000's TCP/IP stack differs quite a bit from the BSD sockets used within iSSL sloppy memory management memory leaks remove logging altogether to make logging write to a circular buffer rather than a file

12 PORTING AND DEVELOPMENT ISSUES Interrupts used the serial port on the RCM2000 board for debugging configured the serial interface to interrupt the processor when a character arrived In response, the system either replied with a status messages or reset the application, possibly maintaining program state to set up the interrupt from the serial port enable interrupts from the serial port register the interrupt routine enable the interrupt receiver

13 PORTING AND DEVELOPMENT ISSUES Memory not support the standard library functions malloc and free provides the xalloc function that allocates extended memory remove all references to malloc and statically allocate all variables → drop support of multiple key and block sizes in the iSSL library

14 PORTING AND DEVELOPMENT ISSUES Program structure use of high-level operating system functions such as fork that were not provided by the RCM2000 environment → restructure the program provide neither the standard Unix fork nor an equivalent of accept the socket bound to the port handles the request → connection is required to have a corresponding call to tcp listen easily increase the number of processes ( and hence simultaneous connections ) by adding more costatements → the program would have to be re-compiled

15 EXPERIMENTAL RESULTS Compared the C implementation of the AES algorithm ( Rijndael ) included with the iSSL library with a hand-coded assembly version supplied by Rabbit Semiconductor pumped keys through the two implementations of the AES cipher → faster than the C port by a factor of A variety of optimizations on the C code including moving data to root memory unrolling loops disabling debugging enabling compiler optimization → only improved run time by perhaps 20%

16 EXPERIMENTAL RESULTS Problems lack of experience with Dynamic C lack of experience with the RCM2000 platform

17 CONCLUSIONS Problems support for some hardware idiosyncrasies API for TCP/IP both differed substantially from the Unix-like behavior the service originally used the substantial difference between BSD-like sockets and the provided TCP/IP implementation the simple absence of a file-system Solutions writing substantial amounts of additional code to implement the missing library functions reworking the original code to use or simply avoid the API

18

19

20