This document is the master's thesis of Remy Spaan from May 2016. The thesis identifies current security shortcomings in automotive systems based on previous studies of vehicle hacking. It then provides a model and proof-of-concept implementation to secure part of the update system for a widely used electronic control unit (ECU) in cars. The system aims to provide confidentiality, authenticity and integrity for software updates while preventing common attacks, using cryptographic techniques designed for resource-constrained ECUs. While not covering all aspects of the update process, the work takes steps toward more secure over-the-air firmware updates for vehicle systems.
The document provides an overview of the C preprocessor, which is a macro processor that transforms C code before compilation. It covers preprocessing tasks like handling headers, macros, conditionals, and other directives. It also describes the traditional mode for backward compatibility with older code and implementations.
01 of 03 parts
Get Part 2 from https://www.slideshare.net/ArunUmrao/notes-for-c-programming-for-bca-mca-b-sc-msc-be-amp-btech-1st-year-2
Get Part 3 from https://www.slideshare.net/ArunUmrao/notes-for-c-programming-for-bca-mca-b-sc-msc-be-amp-btech-1st-year-3
C is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations. C provides constructs that map efficiently to typical machine instructions and has found lasting use in applications previously coded in assembly language. Such applications include operating systems and various application software for computers, from supercomputers to PLCs and embedded system.
This document is an introduction to using Arduino microcontrollers titled "Introduction to Arduino: A piece of cake!". It contains an overview of Arduino hardware and software, instructions for setting up the Arduino integrated development environment and building simple circuits. It also provides example code for basic input/output programs and projects using lights, buttons, sensors and LCD displays. The document is intended to teach beginners how to get started with the Arduino platform.
The document is a user manual for the SOLTRK control unit, which controls PV tracking systems. It provides instructions for installing, connecting, commissioning and operating the SOLTRK. The SOLTRK automatically tracks the sun's position and aligns PV modules accordingly. It connects to an SMA Sunny WebBox data logger for configuration and monitoring via RS485 communication. The manual includes wiring diagrams, settings, functions and troubleshooting information to support installers and operators.
This document is a guide to the differences between AIX 5L Version 5.3 and previous versions. It covers new features in virtualization, including the POWER Hypervisor, micro-partitioning, virtual Ethernet and SCSI devices. It also discusses enhancements to application development in AIX 5L Version 5.3, such as improved POSIX real-time functions, block device mapping, and scalability improvements. The document is intended as a reference for experts migrating to the new version.
This thesis submitted by Joshua Landwehr to the University of Delaware examines the Tapestry execution and synchronization models for parallel programming. Tapestry uses a threaded dependency model where actors are represented as threads and dependencies between actors control execution flow. The thesis describes the key components of the Tapestry model including actors, states, arcs, loops, pipelines, and how it supports various execution models. It also provides details on the Tapestry framework, threads implementation, and fibers runtime and evaluates Tapestry on benchmarks like Fibonacci and N-Queens.
This document provides the user manual for the CK3R and CK3X mobile computers. It describes the features and specifications of the devices. The manual covers topics such as turning the device on, charging and replacing the battery, using the keypad and screen, reading barcodes, transferring files, installing accessories, and downloading additional Intermec applications. It also provides instructions for configuring settings on the devices.
This document is a Wikibook about the Jeep Liberty vehicle. It discusses the Liberty's history, specifications of its engines and drivetrain components, modifications that can be made including lifts and accessories, and includes various licenses and attribution information at the end as required by the document's Creative Commons license. The LaTeX source code for the document is included as an attachment that can be extracted for editing.
This document is the contents page for the book "The Road to learn React" by Robin Wieruch. It outlines the chapters included in the book, which cover topics like the basics of React, components, styling, APIs, testing, debugging and more. The book is intended to teach readers the fundamentals of React in a practical way without complex tooling by building a real-world application from start to finish.
Notes of 8051 Micro Controller for BCA, MCA, MSC (CS), MSC (IT) & AMIE IEI- b...ssuserd6b1fd
If you are beginners in 8051 micro controller and wants to be a professional in 8051 programming then read this notes. It surely helped you in understanding of 8051 from bottom to top.
This document is the user guide for Mercury QuickTest Professional version 8.0.1. It describes how to use the software to test other applications and provides documentation on features, typographical conventions, and the table of contents. The guide is copyrighted and various patents cover features of the software.
This document is a user guide for the VideoJet 10 video encoding and transmission device. It provides information on installing and configuring the device, including connecting video and network cables, setting the date and time, configuring encoding settings, and establishing connections between senders and receivers. The guide also covers operating the device for live video streaming and playback of recorded video clips. Safety information is provided at the beginning, and maintenance procedures such as testing network connections and performing a device reset are discussed at the end.
This document is the Akka Java documentation for release 2.3.9 from Typesafe Inc. It provides an introduction to Akka, which is a toolkit for building scalable, resilient applications using the actor model. Akka aims to make writing concurrent, fault-tolerant and scalable applications easier by providing higher-level abstractions and tools based on the actor model. The documentation covers concepts like actors, actor systems, fault tolerance, and provides examples of using Akka for common patterns like scheduling periodic messages.
Notes for C++ Programming / Object Oriented C++ Programming for MCA, BCA and ...ssuserd6b1fd
C++ programming language notes for beginners and Collage students. Written for beginners. Colored graphics. Function by Function explanation with complete examples. Well commented examples. Illustrations are made available for data dealing at memory level.
Notes for C Programming for MCA, BCA, B. Tech CSE, ECE and MSC (CS) 1 of 5 by...ssuserd6b1fd
C programming language notes for beginners and Collage students. Written for beginners. Colored graphics. Function by Function explanation with complete examples. Well commented examples. Illustrations are made available for data dealing at memory level.
This document is the user manual for Snort version 2.8.6. It provides an overview of Snort's capabilities in different operating modes like sniffer, packet logger, and network intrusion detection system modes. It also describes how to configure Snort, including preprocessor and rule configuration, as well as output and logging options. The document contains detailed information on topics like includes, rule profiling, output modules, and more.
Arduino: Crea bots y gadgets Arduino aprendiendo mediante el descubrimiento d...SANTIAGO PABLO ALBERTO
This document is a preface and table of contents for the book "Make: Arduino Bots and Gadgets" by Kimmo and Tero Karvinen. The preface discusses safety considerations for projects in the book. The table of contents provides an overview of the 5 chapters in the book, which cover building basic bots and gadgets using Arduino, including a stalker guard that detects movement using ultrasonic sensors, an insect robot that walks and avoids obstacles, and an interactive painting project that detects hand gestures to control images displayed on a screen.
How use Modelica? Read this note for better understanding. Professionally written and explained. Good for software development by beginners in Modelica .
Creating a Truly Global Connectivity Solution - Is It Even Possible?Dan Mårtensson
This document discusses the challenges automotive OEMs face in achieving truly global connectivity solutions for connected vehicles. It outlines Sierra Wireless' end-to-end solution that includes a smart SIM, IoT cloud platform, and connectivity management to provide flexible, reliable connectivity worldwide. This solution allows OEMs to use a single SIM and provider while gaining coverage through Sierra Wireless' global MNO partnerships. It simplifies operations and gives flexibility to change connectivity providers without hardware changes.
The document discusses Movimento's vision for a software defined car (SDC) through an OTA platform. It proposes defining virtual boundaries for car components through a car software agent and ECUs with wired connectivity and software/data management capabilities. The SDC platform would allow for over-the-air software/data management from the cloud to vehicle ECUs and components. This approach aims to address challenges with current OTA processes like escalating validation burdens and inconsistent handling of vehicles from R&D to post-sale.
LAS16-100K1: Welcome Keynote
Speakers: George Grey
Date: September 26, 2016
★ Session Description ★
George Grey, CEO of Linaro will welcome attendees to the conference and give an update on the latest projects taking place at Linaro.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-100k1
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-100k1/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
The document describes NEO-IDM, an IoT device management platform based on LwM2M standards. It provides toolkit and engineering services to monitor, configure, control and update IoT devices. The platform supports any device, any network, and any service through its scalable and connectivity framework. It offers solutions for smart home, airport and other applications.
The document introduces Lochbridge's Connected Car Maturity Model, which provides automakers a way to assess their connected car programs across four key objectives: loyalty, differentiation, monetization, and quality. It describes solutions that enable each objective and allows companies to self-report their progress to determine their grade. Lochbridge has identified these objectives and solutions as the most important for driving connectivity investments. The model is presented as the industry's first way to score and track connected car efforts and determine which solutions should be prioritized.
Introducing resinOS: An Operating System Tailored for Containers and Built fo...Balena
This presentation, from the Embedded Linux Conference Europe in October 2016, discusses how resinOS was built, highlights some of its key features, and shares a roadmap for future development and contribution.
resinOS is the latest open-source tool built by resin.io to enable the future of hardware with the tools of modern software. resinOS is a simple yet powerful operating system that brings standard Docker containers to embedded devices and works on a wide variety of device types and architectures. resinOS was born from the team’s experience deploying embedded containers across device types and has been battle-tested in production environments.
You can download resinOS at https://resinos.io
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)Leon Anavi
Brief introduction to the state of GENIVI SOTA projects and its integration in Automotive Grade Linux (AGL) for AGL face to face meeting in Vannes 25-27 May, 2016. The presentation also features requirements and brief analysis of open source software tools for installation strategy on AGL devices.
Red Bend Software: Optimizing the User Experience with Over-the-Air UpdatesRed Bend Software
This document discusses best practices for optimizing the user experience with over-the-air (OTA) updates. It outlines Red Bend's OTA updating service, including planning an OTA system, testing updates, operating update campaigns, and measuring the impact of OTA updates. Red Bend has delivered over 1.75 billion OTA updates across many brands and can help OEMs provide reliable, easy-to-use OTA updating as a cloud-based software as a service.
OMA Seminar/Webinar, October 27, 2016, "How Developers Can Get the Most Out of IoT Standards and Tools" - Presentation #5 from Tao Lin, PhD, Distinguished Architect, Movimento Group
"Support OTA for Automotive with OMA DM"
This introduces the linaro OP-TEE project in the context of the Automotive Grade Linux distribution. This TEE is today considered as a potential key element to provides some security enforcement in the scope of Software OTA for the AGL distribution.
This brief slides set was presented during AGL Face to Face Technical Meeting 25 – 27 May, Vannes, France
The document discusses security challenges for connected and autonomous vehicles. It notes that vehicle systems are becoming more complex with more external connections, making security an increasing risk. It outlines the current and future vehicle architecture and connectivity. The document also summarizes research on automotive security threats over time, responses from the industry, and the need for new approaches to security as systems take on more cyber-physical functions. It argues that absolutely secure systems are impossible and systems should be designed to recover from compromise.
This document is a presentation by Dvir Reznik of Harman International Industries about the company. It summarizes that Harman is a global leader in audio technology with over 80 years of industry "firsts". It has a presence in over 25 countries and focuses on connected car, lifestyle audio, professional solutions, and connected services. Harman has iconic brands and pursues innovation across technologies to enable seamless experiences for consumers. The presentation outlines Harman's history, current business segments, global footprint, innovation approach, culture influence, and strategic roadmap for sustainable growth.
The document provides an overview of the automotive startup landscape and emerging trends in automotive technology. Some key points:
- The automotive industry has evolved from craft production to mass production to lean manufacturing approaches, creating barriers for new startups.
- Automotive 3.0 focuses less on the vehicle and more on services like connectivity, ridesharing, and autonomous vehicles enabled by advances in software and mobile technology.
- The US, India, China, Israel and Germany have large numbers of automotive startups concentrated in areas like transportation technology, electric vehicles, and connected cars. Total funding for automotive startups has grown significantly from $18B in 2010 to over $40B in 2016.
This document discusses the challenges of over-the-air (OTA) updates for connected cars. It notes that while OTA updates are common for mobile devices, they are more complex for cars which have over 100 electronic control units (ECUs) from multiple vendors and evolving software. An OTA platform is proposed to intelligently manage updates across this heterogeneous environment through features like adaptive delta compression, a message bus, and support for various vehicle networks and file formats. The platform aims to standardize OTA updates for cars in a way that is scalable, secure, and handles the large sizes and dependencies between vehicle software components.
Vector red bend_webinar_flashing_over_the_air_and_delta_technology_20140121_enRed Bend Software
Red Bend and Vector show the benefits of using Delta and Over-the-Air Technology for re-programming ECUs. The participants receive lots of information about the used technologies and the optimisation possibilities for re-programming. The webinar is rounded off by the presentation of the products used.
Connected Car Security and the Future of Transportation Liz Slocum
My slides about connected car security and the future of transportation that I presented to the Cloud Security Alliance, IoT Working Group on July 28, 2016.
Software update for IoT Embedded World 2017Chris Simmonds
Many embedded Linux projects have a requirement to update the software on devices in the field. Recent security flaws in basic components such as OpenSSL and bash, combined with the interconnectedness of all things, have highlighted the problem and made it an absolute necessity
eclipse is an open source programming tool.
s an open-source software system
whose aim is to serve as a platform for integrating various Logic Programming extensions
This document is a thesis submitted by David Liebman to the State University of New York at New Paltz for the degree of Master of Science in Computer Science. The goal of the thesis is to create a chatbot using natural language processing and deep learning models. The thesis provides background on recurrent neural networks, transformers, and pre-trained language models like GPT-2. It then describes the experimental design and setup for installing chatbot models on devices like the Raspberry Pi. Several chatbot experiments are conducted using GRU, transformer, and GPT-2 models with discussion of the results.
The document describes the development and testing of the Euclidean Travelling Salesman Platform (ETSP) to test heuristics for solving the Travelling Salesman Problem (TSP). It discusses the motivation, objectives, and requirements for ETSP. It also evaluates the performance of ETSP and compares the QSTSH heuristic tested on ETSP to a greedy nearest neighbor heuristic. The results show that QSTSH has better accuracy and efficiency than the greedy nearest neighbor approach.
This document is a draft of a book on mathematics for programmers. It covers various topics in mathematics including prime numbers, modular arithmetic, probability, combinatorics, Galois fields, and logarithms. The document provides explanations, examples, and applications of these mathematical concepts for use in computer programming. It is intended to help programmers understand and apply core mathematical principles in their work.
This document summarizes a bachelor's project that investigates using blockchain technology in different application domains. It develops a proof of concept decentralized application for a coffee shop using Ethereum smart contracts and analyzes the benefits and limitations. The project explores how blockchain can restore trust in banking and have societal impacts by decentralizing organizations and applications. It aims to understand how decentralization through blockchain can be applied beneficially in economic systems and society in general.
Cenet-- capability enabled networking: towards least-privileged networkingJithu Joseph
In today's IP networks, any host can send packets to any other host irrespective of whether the recipient is interested in communicating with the sender or not. The downside of this openness is that every host is vulnerable to an attack by any other host. We ob- serve that this unrestricted network access (network ambient authority) from compromised systems is also a main reason for data exfiltration attacks within corporate networks. We address this issue using the network version of capability based access control. We bring the idea of capabilities and capability-based access control to the domain of networking. CeNet provides policy driven, fine-grained network level access control enforced in the core of the network (and not at the end-hosts) thereby removing network ambient authority. Thus CeNet is able to limit the scope of spread of an attack from a compromised host to other hosts in the network. We built a capability-enabled SDN network where communication privileges of an endpoint are limited according to its function in the network. Network capabilities can be passed between hosts, thereby allowing a delegation-oriented security policy to be realized. We believe that this base functionality can pave the way for the realization of sophisticated security policies within an enterprise network. Further we built a policy manager that is able to realize Role-Based Access Control (RBAC) policy based network access control using capability operations. We also look at some of the results of formal analysis of capability propagation models in the context of networks.
This document provides an introduction and overview of the contents and structure of a book on quantitative finance programming in C++. It outlines what topics will be covered in each chapter, including introductions to C++, object-oriented programming, generic programming, the standard template library, and matrix classes. It also lists prerequisites, software requirements, what topics are excluded, and where to find help. The document aims to prepare the reader for what to expect from the book.
This document provides an introduction to security on mainframe systems. It discusses fundamental security concepts like confidentiality, integrity and availability. It also covers security elements such as identification, authentication, authorization, encryption and auditing. Additionally, it examines the System z architecture and how the hardware and operating system provide security features. The document uses a case study about securing an online bookstore to illustrate how these concepts apply in a business context. It is intended to help readers understand mainframe security.
This document is a textbook titled "Programming Fundamentals - A Modular Structured Approach using C++" by Kenneth Leroy Busbee. It covers topics related to programming fundamentals such as data types, operators, functions, input/output, and more using C++ as the programming language. The textbook is divided into chapters that each cover a programming concept and include examples and exercises. It is intended to teach structured programming techniques using a modular approach in C++.
This document provides a technical overview of the Symbol blockchain protocol. It describes the key components of the Symbol system including transactions, blocks, accounts, addresses, cryptography, trees, networking, consensus and more. The goal in developing Symbol was to create a trustless, high-performance, layered blockchain architecture that improves upon the original NEM protocol.
This document provides an architectural design for a collaborative problem solving software called ProjectPlace. It describes the modules, data structures, databases and interfaces that will be used to implement the project. The design uses a three-tier architecture pattern with modules for the client applet, server, logger, common room, project room, and plugins. It also describes the data dependencies and use cases like login, chatting, project creation, and more.
This work is part of the End of Study Project realized within Talan Tunisia consulting to obtain the
national computer engineering diploma at the National School of Engineers of Carthage. The goal of
this project is to create an Ethereum based application to perform Mutual Fund operation by increasing
the security and transparency in mutual fund shares management as well as reducing transaction cost
and time consuming.
________________________________________________
Ce travail fait partie du projet de fin d’études réalisé au sein de l’entreprise Talan Tunisie en vue
d’otention du diplôme national d’ingénieur en informatique de l’École nationale des ingénieurs de
Carthage. L’objectif de ce projet est de créer une application basée sur Ethereum afin d’exécuter des
opérations de fonds communs de placement en renforçant la sécurité et la transparence de la gestion des
parts de fonds communs de placement, ainsi qu’en réduisant les coûts de transaction et le temps requis.
Report on e-Notice App (An Android Application)Priyanka Kapoor
The document is a report submitted for a degree at DigiMantra Labs, Ludhiana from January 5, 2014 to May 30, 2014. It describes the development of an e-Notice Application for Android phones. The app allows users to access online notices on their phone and acts as an online notice board where people can communicate and post notices with text, images or videos. It aims to digitize the traditional notice board and allow staff/students to read and respond to notices from anywhere. The app also serves as a mailing list to notify all employees of new notices without needing to maintain a separate mailing list.
This document is an introduction to the PDF version of an online book about programming in Java. It provides some basic information about the book, including that it is available online at a given URL, the PDF does not include source code or solutions but provides links to those resources, and each section has a link to the online version. It also covers licensing details, noting that the work can be distributed unmodified for non-commercial purposes under a Creative Commons license.
This document provides an overview and tutorial for HADES, a digital circuit design and simulation tool. It covers installing and using HADES, including creating components, wiring circuits, simulating designs, and advanced features like hierarchical designs, scripting, and writing new components. The document is the HADES Tutorial version 0.92 from December 21, 2006 by Norman Hendrich of the University of Hamburg.
The document discusses support architecture for high-level synthesis of algorithms that use pointers. It first introduces high-level synthesis and its typical steps of compilation, allocation, scheduling, binding and generation. It then presents a case study on OpenCV image processing algorithms that heavily use pointers. The proposed architecture aims to address the memory model problem for such algorithms. It consists of different memory structures like RAM, ring buffer and virtual buffer to support locality and efficient handling of pointers. Exception handling and integration methods are also discussed to map the algorithm to the architecture within the high-level synthesis flow.
The document is the user manual for OMNeT++ version 4.6. It contains 18 chapters that describe the modeling concepts, NED language, simple modules, messages, simulation library, graphics and animation, building simulations, configuring simulations, running simulations, result recording and analysis, eventlog, documenting models, testing, parallel distributed simulation, plug-in extensions, embedding the simulation kernel, NED reference, NED grammar, NED XML binding, NED functions, message definitions grammar, display string tags, configuration options, result file formats, and eventlog file format of the OMNeT++ discrete event network simulator.
This document provides an overview and summary of the ns Manual, which documents the Network Simulator ns. It describes ns as being written in C++ and using OTcl as a command and configuration interface. The manual contains documentation on topics like the simulator basics, nodes and packet forwarding, links, queue management, delays, and the differentiated services module. It is intended to help users understand and utilize the various components and capabilities of the ns network simulator.
Virtual Environments as Driving Schools for Deep Learning Vision-Based Sensor...Artur Filipowicz
At the turn of the 20th century, inventors and industrialists alike strived to enable every person to own and drive a car. Overtime, automobile ownership grew to meet that vision. One hundred years later, automobile manufacturers and technology companies are working on self-driving cars which would be neither owned nor driven by individuals. The benefits of replacing cars with fully autonomous vehicles are enormous. While it is difficult to put a value on lives saved, injuries avoided, pollution reduced, and commute time repurposed, economic savings from this technology are estimated to be on the order of trillions of dollars. The main roadblock in achieving the vision for this century is developing technology which would enable autonomous vehicles to perceive and understand the environment as well as, if not better than, human divers. Perception is a roadblock because presently no algorithm is capable of reaching human levels of cognition.
This thesis explores the interaction between virtual reality simulation and Deep Learning which may develop computer vision that rivals human vision. The specific problem considered is detection and localization of a stop object, the stop sign, based on an image. A video game, Grand Theft Auto 5, is used to collect over half a million images and corresponding ground truth labels with and without stop signs in various lighting and weather conditions. A deep convolutional neural network trained on this data and fine tuned on real world data achieves accuracy in stop sign detection of over 95% within 20 meters of the stop sign and has a false positive rate of 4% on test data from the real world. Additionally, the physical constraints on this problem are analysed, a framework for the use of simulators is developed, and domain adaptation and multi-task learning are explored.
This document provides an overview and summary of the book "Modern Fortran in Practice".
The book shows how modern features in Fortran 2008 such as object orientation, array operations, user-defined types, and parallel computing can be applied to write concise, modular, and efficient Fortran code. It provides practical examples of interfacing Fortran with C, memory management, graphics/GUIs, and parallel programming. It also analyzes numerical algorithms and illustrates open source library usage. The full code examples are available online.
3. Abstract
Modern cars are increasingly connected to the Internet, providing a variety of new features
that are beneficial towards both drivers and car manufacturers. With all these new features
comes more leisure, although it also introduces an entire new set of security issues. It is
generally known among car manufacturers and security researchers that the current state
of car security is weak. There are no real standards regarding car security on a physical or
wireless level. In the recent years, several studies have been conducted on modern vehicles,
with a security perspective in mind. This master thesis identifies the current shortcomings
regarding automotive security by taking a closer look at these studies. Additionally, this
thesis provides a model and a proof-of-concept implementation to secure a part of the update
system of a widely used electronic control unit (ECU) in car systems. This proof-of-concept
system provides aspects like confidentiality, authenticity and integrity of a supplied update,
while preventing common security pitfalls. It uses implementations of cryptographic primi-
tives designed for high speed and takes into account the constraints the ECUs are bound to.
While this thesis does not cover all aspects of the update process, it takes a step towards
the direction of making over-the-air firmware updates for car systems more secure.
Keywords. Car security, Over-the-air updates, automotive security, firmware updates, ECUs
i
5. Acknowledgements
With this thesis, an end of an era nears for me personally. The era of education. Elementary
school, high school, college, and after a little break, university. That does not mean that I will
stop learning about new things, hopefully. One is never too old to learn.
First and foremost I want to thank my father Jan for giving me the opportunity to entirely
focus on my study the last few years. Without having to worry about a lot of things I could
throw myself into this Master’s education and without his support it would have been a very
tough challenge.
I would also like to thank my university’s supervisors Peter Schwabe and Lejla Batina for
being my all-knowing oracles and giving me advice throughout the entire process from idea up
to the result, this thesis.
Additionally, I want to thank everyone at Sogeti for giving me the opportunity to do my
research at this company and keeping up with my awful word play jokes. My thanks go out to
Sjoerd Verheijden, who kept me on track and kept me thinking of the bigger picture, without let-
ting me drown in details. Also my thanks go to Koen ten Holter for providing me with the initial
idea of this thesis and proofreading my thesis several times. Furthermore I would like to thank
Rikkert ten Klooster for being my partner in crime (a bad choice of words with hacking in mind).
Furthermore, I would like to give my thanks to Liis Jaks whose thesis was an inspiration to me
and a cornerstone for this thesis. During my time at Sogeti, she was very knowledgeable and
helpful on the subject and always had or made time to look at my thesis and discuss the outcome.
– Remy Spaan, May 2016.
iii
15. List of abbreviations
ABS Anti-lock Breaking System
AES Advanced Encryption Standard
CAN Controller Area Network
CRC Cyclic Redundancy Check
DDoS Distributed Denial of Service
DoS Denial-of-Service
ECC Elliptic Curve Cryptography
ECDLP Elliptic Curve Discrete Logarithm Problem
ECU Electronic Control Unit
EEPROM Electrically Erasable Programmable Read Only Memory
FPGA Field-Programmable Gate Array
GPS Global Positioning System
HSM Hardware Security Module
IoT Internet of Things
LIN Local Interconnected Network
MAC Message Authentication Code
MITM Man In The Middle
MMU Memory Management Unit
MOST Media Oriented Systems Transport
NAT Network Address Translation
OBD On-Board Diagnostics
OEM Original Equipment Manufacturer
OTA Over-the-air
PCM Powertrain Control Module
PKI Public Key Infrastructure
xiii
16. PRNG Pseudorandom Number Generator
RCDLR Remote Control Door Lock Receiver
ROM Read-Only Memory
RSA Rivest Shamir Adleman
SCP Secure Copy Protocol
SHA Secure Hash Algorithm
SIM Subscriber Identity Module
SoC System on a Chip
SPE Signal Processing Extensions
SSH Secure Shell
SSL Secure Sockets Layer
TCU Telematics Control Unit
TLS Transport Layer Security
TRNG True Random Number Generator
VIN Vehicle Identification Number
xiv
17. 1 Introduction
Automobiles are becoming increasingly computerized. Until recently, cars were controlled purely
by mechanical means but now, thanks to digitalization, more cars have embedded computer sys-
tems to arrange control flows. While some of these flows are trivial, for instance door locking
mechanisms, these same systems also control critical systems like brake pressure, engine power
and airbags. Automobiles are controlled by multiple computers which are interconnected through
wired and wireless systems. These Electronic Control Units (or ECUs) perform a great deal of
actions that would normally not be possible, for instance the Anti-lock Breaking System (ABS)
and remote car locking and unlocking. Without 70 to 100 of these embedded ECUs, modern cars
would not be able to leave the driveway, because they contain firmware consisting of up to 100
million lines of code [1].
Due to the increasing amount of technology in car systems, these systems are becoming more
vulnerable to attacks. Figure 1 illustrates the standard physical and wireless features of modern
cars and their associated networks. Most of these features are supported by one or more ECUs.
Regarding wireless security, the telematics component is the most relevant aspect. The Telem-
atics Control Unit (TCU) of a car handles all incoming and outgoing data that is sent over the
air. Think of a data connection for Internet access, GPS data, voice calls or connections to other
systems by other means.
Recently, Tesla introduced over-the-air (OTA) firmware updates for its cars [2]. These
firmware updates are distributed through the mobile network, as all of Tesla’s car models have
a Subscriber Identity Module (SIM) card included. It is estimated that by 2018, 36 million cars
will have a SIM card embedded [3]. At first this embedded SIM card was only used for emer-
gencies, like automatically dialing the emergency number if sensors detected a crash, but now
companies are realizing that there are more possibilities. One of these possibilites is supplying
car owners with over-the-air updates. This removes the need for customers to visit the garage
to receive an update and enables manufacturers to update car systems on a more frequent basis.
An over-the-air update could also unburden the manufacturer in case of a forced car recall due
to an error or security flaw in the firmware.
Together with the introduction of all these new systems including the OTA update, a variety
of potential attack vectors have surfaced. During an over-the-air update, the binary firmware
passes through untrusted communication channels. First, a wireless channel is used to send the
firmware to the car such as the cellular network, WiFi or Bluetooth. Then, physical channels
inside the car, for instance a Controller Area Network (CAN) or Ethernet connection, distribute
the firmware from the TCU to the correct ECU. Data passing these channels can be eavesdropped
by an attacker and therefore, the firmware can be obtained or modified with potentially devas-
1
18. Figure 1: Car Networking. The different color nodes shows how the car features are usually
grouped. HVAC stands for heating, ventilation and air conditioning, TPMS stands for tire-
pressure monitoring system, OBD stands for on-board diagnostics. Source: [4].
tating effects. Hence, this update process should be protected from being tampered with or read
by possibly malicious individuals or organizations such as car tuners, competing manufacturers
or hackers.
At the moment there are no standards available regarding the required security of automo-
biles. There is an ISO 11898 standard [5] that specifies the physical and datalink layers of the
CAN, which is one of the available transport mechanisms of data in a car, but this standard
does not include any security aspects. Most implemented security features are proprietary and
security has not been considered necessary for a long time. Security plays an increasingly bigger
role in modern life so adequate security of systems we use inherently becomes more important.
More devices are connected to the internet, and with the Internet of Things (IoT) taking a more
prominent place in our daily lives, the security of these devices needs be to addressed too.
This thesis gives an insight into the current research towards the current state of physical and
wireless security of a car. Additionally, it provides an update model independent of the wireless
channel that is used and a proof-of-concept implementation of an ECU handling, authenticating
and verifying a new firmware version. The proof of concept uses proven secure cryptographic
primitives for encryption, authentication and verification of the firmware and is implemented on
2
19. a widely used microprocessor used in ECUs, the MPC5566.
This thesis is structured as follows: The next Section will describe some of the work and
research that has been done on this subject in the past and which initiatives to improve car
security are currently ongoing. Section 3 and 4 describe the attacker model and required security
properties for our proof-of-concept implementation. Section 5 mentions the target platform and
the to-be-used cryptography, an elaboration on the choice of the used primitives, which results
in the used models in Section 6. Section 7 defines the variables, keys and functions that are used
in our model while Section 8 focuses on the implementation itself. Ultimately, Section 9 contains
the results and future work that might be interesting to investigate with the results of this thesis
in mind.
1.1 Background
Sogeti (Soci´et´e Pour la Gestion de l’Entreprise et Traitement de l’Information), an originally
French IT company, founded in 1967 by Serge Kampf, is a part of the Capgemini group. Sogeti
Netherlands is well known for its testing method TMap (Test Management approach) it has
developed, this method has been apopted globally as a standard. Sogeti operates in a model where
every expertise is divided in a business line, which currently totals in 16 different business lines.
Figure 14 in Appendix B shows the distinct divisions and business lines of Sogeti Netherlands.
This thesis was conducted at the Security business line. Sogeti’s main services are the deployment
of skilled employees in other companies as well as providing project based solutions with a fixed
outcome. The Sogeti group currently has 20.000 employees, of which 2.500 are based in The
Netherlands. Next to being deployed to a large number of client sites, Sogeti has a presence in
15 countries and over 100 locations worldwide.
3
21. 2 Related Work
In recent years, there has been an increasing amount of literature on the topic of automotive
security. Numerous studies focused on uncovering vulnerabilities in car systems, while others
proposed solutions to prevent or detect these attacks. Some studies picked up where others left
off, executing practical attacks on modern vehicles with the theoretical knowledge provided by
other studies. In the following sections we will discuss some of the researchers’ findings to give
an idea of the current state of automotive security: Section 2.1 lists a number of theoretical and
practical attacks executed by various research groups, Section 2.2 shows targeted attacks on the
telematics units of various car manufacturers such as BMW, General Motors and Tesla, while
Section 2.3 lists solutions discussed in various research papers. Finally, Section 2.4 provides an
overview of some of the dependent and independent organisations currently working on the issue
of security in automotive systems.
2.1 Practical attacks
There are a lot of shortcomings regarding the physical and wireless security of automobiles. Ear-
lier research has shown that once an attacker gains physical access to a car, its security can easily
be compromised [6].
In 2010, Koscher et al. [7] conducted an experimental security analysis of an unnamed mod-
ern automobile, uncovering and executing both physical and wireless attacks. The paper showed
that, in contrast to what the researchers expected, the tested automotive systems were tremen-
dously fragile. The typical car contains multiple communication channels like the CAN bus and
groups different components together. For instance, powertrain components that generate real-
time telemetry and other time-critical systems are interconnected in one CAN bus while another
CAN bus controls less critical components like door locks and lights. From a security perspective
it seems a good idea to physically separate these buses from each other, but in practice they
are bridged to support subtle interaction requirements. Access escalation due to abusing this
case of interconnected communication channels was explained and demonstrated in this paper.
Furthermore, a simple fuzzing infrastructure which floods random packets onto the CAN bus, the
standard communication channel for ECUs in a car, could easily execute a denial-of-service (DoS)
attack leaving the CAN bus overloaded, thus useless. Since the CAN bus can be eavesdropped
simply by connecting a reading device to the On-Board Diagnostics (OBD-II) port, executing a
DoS attack is easy because the OBD-II also allows sending packets.
Moreover, the basic access controls implemented in the ECUs were frequently unused. For
example, the firmware on an ECU controls all of its critical functionality and thus the investi-
gated car’s CAN protocol described methods for ECUs to protect against unauthorized firmware
updates. The researchers demonstrated that they were able to load firmware onto some key
5
22. Vulnerability
Class
Channel
Implemented
Capability
Visible
to user
Scale
Full
Control
Direct physical
OBD-II
Port
Plug attack hardware directly into
car OBD-II port
Yes Small Yes
Indirect physical CD CD-based firmware update Yes Small Yes
CD Special song (WMA) Yes Medium Yes
PassThru
WiFi or wired control connection to
advertised PassThru devices
No Small Yes
PassThru WiFi or wired shell injection No Viral Yes
Short-range
wireless
Bluetooth
Buffer overflow with paired Android
phone and Trojan app
No Large Yes
Bluetooth
Sniff MAC address, brute force PIN,
buffer overflow
No Small Yes
Long-range
wireless
Cellular
Call car. authentication exploit, buffer
overflow (using laptop)
No Large Yes
Cellular
Call car. authentication exploit, buffer
overflow (using iPod with exploit au-
dio file, carphones, and a telephone)
No Large Yes
Table 1: Attack surface capabilities [8]. The mentioned PassThru channel uses tools like Ford’s
Vehicle Communication Module (VCM) which is a diagnostic device that works together with
diagnostic tools for Windows to connect to cars through the OBD-II port [9].
ECUs, like the telematics unit - a critical ECU - and the Remote Control Door Lock Receiver
(RCDLR), without any form of authentication. Similarly, the diagnostic protocol used by the
OBD-II port should also make an attempt to restrict access to certain DeviceControl diagnostic
capabilities. The research group was therefore also surprised to find that critical ECUs in the
tested car would respond to DeviceControl packets without authentication first.
Finally, the researchers found that, in addition to being able to load custom code onto an
ECU via the CAN network, it was very straightforward to design this code in a way to completely
erase any evidence of itself after executing an attack. Thus, without such a forensic trail, it may
be impossible to determine if a particular crash is caused by an attack or not. This was deemed to
be a very dangerous capability too, as it minimizes the possibility of any law enforcement action
that might deter individuals from using such attacks. Summarized, this experimental analysis
showed so many design and implementation flaws it concluded that security of cars is virtually
non-existent.
The follow-up research paper by Checkoway et al. progressed deeper into the unnamed car’s
systems and the comprehensive security analysis explained extended wireless attack vectors next
to physical attack vectors [8]. Figure 1 shows the different channels the researchers used to gain
complete control over a car. The figure illustrates the capabilities of a well-organized and well-
funded group with decent knowledge of car systems in general and includes short- and long-range
6
23. wireless attacks next to the physical attacks introduced in the earlier paper. The researchers used
the attack on the OBD-II port to be able to bridge into every communication channel in the car
and to gain access to all ECUs. Next, the researchers extracted the firmware of all the ECUs
of the car (around 30 ECUs for the researched model) and disassembled the firmware. Static
analysis of the firmware code was performed and several vulnerabilities were found.
Another physical interface of the car, the entertainment system, was analyzed by the re-
searchers. Where every modern car provides a user with a CD player able to interpret a mixture
of audio formats, modern cars generally also provide the user with a USB interface to allow users
to control their car’s media system with their own device. This opens up new attack vectors for
an adversary as it possibly allows to attack the media system of the car, for example by social
engineering the target to play a malformed song or connect his personal media device to the car.
Where taking over the CD player of a car alone might not do any harm, the researchers found
that thanks to the interconnectivity of all systems that the CD player is a good attack vector for
eventually attacking other automotive components through this interface. The researchers were
able to create a WMA audio file such that, when burned onto a CD, it plays fine on a PC but
sends random CAN packets when played by the CD player in the car.
Next to the vulnerabilities found through the physical interfaces of the car, the short-range
wireless interfaces like RFID car keys, WiFi and Bluetooth posed to be attack vectors easily
exploited by the researchers. The Bluetooth interface allows users’ cellphones to connect to the
car, for instance to call hands-free. Through reverse-engineering the researchers gained access to
the operating system of the telematics ECU. They found that the telematics ECU uses a vul-
nerable implementation of the Bluetooth protocol stack. More specifically, this implementation
made several calls to a strcpy function which is deemed unsafe due to its vulnerability regarding
buffer overflows. The researchers wrote an exploit, gaining a shell on the telematics unit and
consequently downloading more complex code through the 3G-connection of the car.
Finally, the long-range wireless channels also provided targets for the researchers to exploit.
The telematics unit of the tested car has an implemented cell phone interface, supporting voice,
SMS and 3G data. The critical telematics functions, like automatically dialing the emergency
number when a crash is detected, are done over voice dialing as it provides connectivity over the
widest area, whereas 3G coverage is not available everywhere. The researchers demonstrated an
attack where a flaw in the aqLink software 1
of the telematics unit was exploited to authenticate
a custom-made modem to the telematics unit, let it download an additional payload and execute
it to gain control over the car remotely.
1Airbiquity’s aqLink software allows data to be sent over voice channels instead of the common digital data
channels: http://www.airbiquity.com/news/press-releases/airbiquity-releases-aqlink-5-band-modem/
7
24. 2.1.1 Ford Escape and Toyota Prius
In an extended paper by Miller et al [10] the security of two modern popular vehicles, particularly
the Ford Escape and Toyota Prius, were thoroughly investigated. Pointing at the previous re-
search done, the researchers expanded on the ideas of what an attacker could do to influence the
behaviour of a vehicle after a succesful attack. These attacks would allow arbitrary remote code
execution on the ECU through one of the compromised channels mentioned in the earlier sections.
In particular, the researchers demonstrated how they were able to control some of the steer-
ing, braking, acceleration and display functions on the two tested vehicles. The researchers went
into great detail explaining the attacks, the relevant messages over the CAN bus and all technical
information needed to reproduce and understand the issues involved including source code and
a description of necessary hardware to execute these attacks.
Although the researchers gained full access to all ECUs easily, understanding, observing, and
reverse engineering the code and the messages sent over the CAN buses was far from easy. For
example, in the Ford Escape, a certain CAN packet was observed including a byte to indicate how
much the accelerator was depressed. However, this packet was being sent from the PCM (which
reads the accelerator sensor) to the ABS, presumably to help it figure out if there was a traction
control event in progress. It did not have anything to do with whether the car should speed up
or not. There were countless examples like this including, for example, packets that indicate how
much the brake is depressed but when replayed would not engage the brake. Understanding the
actual meaning of all messages would take more research. Giving the assumption that a modern
car runs on millions of lines of code [1], this was expected to be the case.
Another problem is that the receiving ECUs might have some safety features built into it
that makes it ignore the packets the researchers were sending. For example, on the Toyota Prius,
the packets used for turning the wheel in Intelligent Park Assist would only work if the car is in
reverse. Likewise, packets for the Lane Keep Assist feature are ignored if they tell the steering
wheel to turn more than 5%. It may be possible to circumvent these restrictions by tricking the
ECU, but some extra work would be required, making these attacks a bit harder to execute.
2.2 Flaws in Telematics Control Units
Next to flaws in the physical channels of an automotive system, the different types of Telematics
Control Unit (TCU) used in cars show enough flaws to exploit one of the vulnerabilities associated
with these devices.
8
25. 2.2.1 Chrysler and Uconnect
Very recently, Chrysler recalled 1.4 million vehicles after two security researchers revealed a soft-
ware bug [11]. The paper by Miller et al., the same researchers who investigated the Ford Escape
and the Toyota Prius mentioned in an earlier section, demonstrated several attacks that compro-
mized the safety of a Jeep Cherokee thus the safety of a driver, using remote exploits [12]. This
time the researchers used the Jeep Cherokee 2014 as a target. Figure 2 illustrates the archirec-
tural diagram of the car. It stands out that also in this car, the radio system of the car including
phone, Bluetooth and WiFi channels is interconnected to both CAN buses. Compromizing the
radio would mean access to all the ECUs that control the physical attributes of the vehicle.
The 2014 Jeep Cherokee uses the Uconnect radio manufactured by Harman Kardon as the
source for infotainment, Wi-Fi, GPS, apps, and cellular communication2
. This system is widely
available for different types of vehicles and includes a system on a chip (SoC) to provide its func-
tionality. The Uconnect system also contains a chip to communicate with the two CAN buses:
The CAN-IHS (Controller Area Network - Interior High Speed) and CAN-C (Controller Area
Network - Control) buses. The researchers found several flaws in this Uconnect system. When
looking at the WiFi interface, which is used to let users connect to a WiFi hotspot in the car,
they they were able to reverse engineer the WiFi.E:generateRandomAsciiKey() algorithm that
generates a password for the WPA2 protected WiFi communication channel. This algorithm uses
time as an input for password generation and by estimating the time the amount of passwords
to test was narrowed down to around 15 million. However, if no valid time was fetched before
starting the WPA2 password generation algorithm, the date 1 January 2013 00:00 was used as
an input. From there, researchers were able to narrow down the password to only a few options,
making it trivial to find the correct WPA2 password.
This hack worked only when in close proximity of a car, so the researchers looked to find a
way into the cellular communication channel. The ability to interconnect any device using the
cellular network of Sprint 3
made it possible to connect a laptop tethered to the Sprint network
to connect to an open port available on the Jeep. The researchers also found the range of IP
addresses used in the Sprint network by the Jeep, and with a basic scan they found 2700 devices.
They eventually opened a shell to the operating system of the TCU, and could send commands to
the CAN bus remotely. By sending some commands the researchers were able to kill the brakes
and the engine remotely. A few days after the paper was published, the Sprint network blocked
the communication on the vulnerable port and Chrysler patched the issue. After that, Chrysler
voluntarily recalled 1.4 million vehicles to patch the vulnerabilities.
2http://www.driveuconnect.com/features/entertainment/
3http://newsroom.sprint.com/news-releases/sprint-velocity-offers-automakers-customizable-approach-to-enhancing-new-and
htm
9
26. Figure 2: Jeep Cherokee 2014 architecture diagram [12].
2.2.2 General Motors’ OnStar
Just after the Chrysler hack, a researcher exposed a vulnerability in General Motors’ (GM) vehi-
cles equipped with its telematics system OnStar [13]. After eavesdropping on the communication
between the mobile application RemoteLink - which lets a driver control some features of their
car, like locking doors and turning on lights - and the car, the researcher built a device called
OwnStar that captured the communication between the application and the car. More specifi-
cally, the researcher jammed the frequency range of the car receiving the open door instruction
but saving the information as well. With the car unable to read the signal due to the jamming,
the user would again try to open the car with the application. The OwnStar device would then
save the second signal and replay the first signal to the car so the user would get into the car.
With this information of the second signal, the researcher was able to act as if he owned the car,
finding its the exact location, unlocking the doors and even starting the engine [14].
While Chrysler voluntarily recalled 1.4 million vehicles after only a few days and patched a
fix before the research was even published, General Motors had received a similar research paper
in 2010, stating that the telematics OnStar used by GM was vulnerable to attack. GM took five
years to actually address this issue and create a patch. The difference between these two cases
10
27. was the fact that the researchers did not publicly name the brand and mark of car they investi-
gated. The unnamed car mentioned in [7,8], the two experimental analysis that were mentioned
earlier in this section, was GM’s 2009 Chevrolet Impala. The result is that GM took nearly
five years to protect its vehicles from this hack, leaving millions of GM cars vulnerable to that
attack that was privately announced to GM. This attack was a remote exploit that targeted the
OnStar dashboard computer and was capable of everything from tracking vehicles to engaging
their brakes at high speed to disabling brakes altogether [15].
Note that in this case, the weakness was not in the vehicle or TCU itself but in the applica-
tion provided. The application communicated through SSL with the servers from GM, but the
certificate of the server was not checked for validity. Spoofing the GM server and intercepting the
communication uncovered that apart from the SSL connection, the data itself was not encrypted.
In this way, the researcher used the information credentials for further access to the application
and from there on, the car was compromised.
2.2.3 Tesla’s Model S
Tesla’s Model S is a state-of-the-art electric vehicle with lots of electronic components, including
a 17” touch screen display which lets the user control a variety of functions of the car like control
media, access navigation, enable the autopilot or adjust the height of the vehicle 4
. Users have
to register for a Tesla account on the website of Tesla. With this account, for instance users can
log in to the Tesla iPhone application to control functions of their vehicle with a mobile phone.
Figure 3 shows a screenshot of the Tesla iPhone application. Locking and unlocking the car,
locating it and controlling the roof are features of this application are amongst the functions of
the iPhone application.
An article by Dhanjani in 2014 [16, 17] showed that the Tesla account can pose potential
security issues due to a few aspects. First of all, the requirements for the password for a user
account were six characters with at least one number and one letter. Combined with the fact
that authentication by the user is single-factor and the website of Tesla did not seem to have
any account lockout policy after a certain amount of incorrect login attempts, this requirement
was vulnerable to a brute-force attack. After the article was published, Tesla bumped up the
minimum password length to eight characters. Secondly, the Tesla REST API alows third party
applications to use the credentials entered by the user to invoke the REST API on behalf of
the user. This leads to the risk of malicious third-party applications being able to collect and
abuse credentials of Tesla accounts. Until Tesla releases a SDK for third-party applications it
was advised to Tesla owners not to use these applications. Finally, the WiFi connection used
by the Model S showed services with open ports, like SSH, HTTP, NFS and telnet. However
the researcher did not follow up on finding out more about these services, these services could
4Tesla Model S: http://www.teslamotors.com/models
11
28. Figure 3: A screenshot of the Tesla iPhone application.
potentially be vulnerable to attack.
2.2.4 BMW’s ConnectedDrive
BMW’s ConnectedDrive technology offers features like remote services, personal assistance and
real time traffic information 5
. The technology is embedded in a control unit, also called a Com-
box, and has been included in various BMW models since 2010. The Combox is responsible for
playing music files from a USB stick, pairing with a Bluetooth device and includes a modem for
GSM/GPRS/EDGE capabilities.
A researcher, asked by the German motorist’s club ADAC to look at the privacy aspects of
this device, published an article about the security vulnerabilities found in this control unit [18].
At first this device appeared to be well-secure, but after thorough investigation flaws were found.
First of all, the emergency services offered by the device were encrypted using algorithms that
are considered broken, like DES for example. Furthermore, after dumping and inspecting the
firmware of the modem in the device, the researcher found that BMW used the same symmetric
cryptography keys to communicate with the back-end server for all cars and that the private
keys were easily extracted from the firmware. Also, some services of BMW’s ConnectedDrive do
not encrypt messages in transit between the car and the back-end server. Finally, the messages
5BMW ConnectedDrive: http://www.bmw.nl/nl/content/meer-bmw/bmw-connecteddrive/overzicht/
connecteddrive-uitgelegd.html
12
29. sent are not salted so the messages are not protected against replay attacks.
According to BMW, the found vulnerabilities were confirmed and patched. Although users
can not turn off ConnectedDrive technology themselves as it is integrated into the car system,
a formal written request together with a visit to a garage is sufficient to disable it. Around 2.2
million cars worldwide were affected by these vulnerabilities [18].
2.2.5 Aftermarket Telematics Control Units
In a security analysis of a popular aftermarket Telematics Control Unit (TCU), Foster et al.
found that besides security flaws in TCUs produced by the original equipment manufacturers,
these TCUs also have vulnerabilities [19]. The automotive aftermarket is a big market in the
USA and includes replacement parts and accessories for cars. The TCU is an accessory designed
for add-on after the original sale of a car. This device looks like a dongle and is usually attached
to a car’s OBD-II port. It typically uses some form of low-power ARM core and incorporates
accelerometers, a GPS chip, a cellular and/or Bluetooth modem, and a CAN transceiver chip.
The paper focused on analyzing one specific aftermarket TCU. The researchers were able
to demonstrate both local and remote vulnerabilities and exploits using these vulnerabilities.
In particular, the vulnerability of the TCU’s SMS-based remote update procedure eventually
provided the researchers arbitrary shell access, enabling them to compromize the entire car
system. The bad design of the update protocol is illustrated in Figure 4. After examining logs
created from initiating an update via SMS, the researchers could determine the entire procedure
of the update:
1. The SMS command rupd,USER,HOST,PORT,DIR is sent to the TCU, which responds with
update,started.
2. The TCU uses SCP to remote into the HOST on port PORT as user USER and retrieves
UpdateFile.txt from DIR.
3. UpdateFile.txt is examined and files which have incorrect hashes or do not exist on the
local system are then retrieved via SCP from the update server to a temporary directory
on the TCU.
4. If the hashes of the new files match those found in UpdateFile.txt, the new files are moved
to their target directories, otherwise the update process is restarted.
5. If UpdateFile.txt contains any of the following console commands, they are executed
performing the appropriate action: clear, identify, status, reset.
The system uses the Secure Copy Protocol (SCP) to copy the files from the update server
to the TCU. The researchers found quite a few weaknesses in the update procedure. First of
13
30. Figure 4: The flawed remote update procedure of a TCU. Source: [19].
all, the updates are not cryptographically signed in any way so it is easy to change the integrity
of the update. Secondly, the TCU does not authenticate the server whereas the server does
authenticate the device. Unfortunately, like in previous examples, all devices seem to share the
same public/private keypair used for the update process. Finally, the update mechanism allows
an arbitrary update server to be chosen, opening up more possibilities for the researchers to
exploit. The researchers created a rogue update server that serves an update which immediately
spawns a reverse shell and SSH tunnel to the victim TCU. The attack is illustrated in Figure 5
and goes as follows:
1. A remote update is initiated using the rogue server via telnet, web, or SMS.
2. The TCU downloads UpdateFile.txt containing console.bak (the original console bi-
nary), console (a shell script created which contains the attack), and the command clear.
3. After the TCU downloads all the files and replaces the system console command with the
console script it calls console clear to clear the logs.
4. The console script starts and replaces itself with the original console.bak, starts a re-
verse shell and SSH tunnel, sends a SMS to the researchers informing that the attack was
successful, and then calls the original console with the clear command.
5. Once the researchers receive the SMS from our script, or get a notification from the update
server that the reverse shell is ready, they can SSH or tunnel into the device to get a root
shell and access to the telnet and web interfaces.
14
31. Figure 5: Remote exploitation via a malicious update [19].
To exploit the remote vulnerabilities on a larger scale the researchers needed to determine the
addresses of the TCUs; either its IP address or the phone number associated with the SIM card.
Some providers have Network Address Translation (NAT) to hide their client’s IP addresses from
the outside world. When this is not the case, the provided built-in web server of the TCU is
accessible from the Internet and can be indexed by search engines. The researchers found that
an Internet (Shodan) search for a particular string of words revealed several likely TCUs. Since
all the TCUs from the same manufacturer use the same SSH server key, the server fingerprint
search returned a considerable amount of devices. To scan for the associated phone number of the
TCU, the researchers used the given fact that these SIM cards usually have a range of associated
telephone numbers. Moreover, sending an SMS registration command to a suspected range of
telephone numbers such as status would confirm a TCUs identity, making the creation of a a
war dialer for enumerating these devices relatively straightforward.
15
32. 2.3 Proposed Solutions
The uncovered security vulnerabilities listed in the previous subsections are just a small selection
of vulnerabilities in automotive systems. Next to criticism, there was also room for construc-
tivism. Consequently, most researchers did not only come up with vulnerabilities in the published
articles but provided possible solutions to address, detect or prevent these very same vulnerabili-
ties. The solutions range from basic, for instance two-factor authentication or not using outdated
encryption methods, to more advanced solutions like using a protected REST API or using mo-
bile NAT to hide public services from IP addresses of cars. However most proposed solutions
are aimed at specific parts of the automotive system, none of them really propose details on how
things should be fixed. From a car manufacturer’s point of view, a forced recall is a method
of last resort to address vulnerabilities and update firmware of a car, because it damages the
reputation. (quote needed) (informal)
On a more specific note, there currently is little research available on how wireless com-
munication should be secured, how it should be handled by internal systems and for instance,
how OTA updates should be distributed safely and securely. Most research about this topic is
high-level and does not describe the security-relevant details needed to successfully implement
a secure system. Recent research showed different frameworks and mechanisms for over-the-air
updates. In 2008, Nilsson et al. designed a way of securely updating firmware over the air called
secure firmware updates over the air or SFOTA [20]. Though this protocol suits a great deal
of the distribution of firmware updates, its assumptions include that the portal distributing the
updates is well-protected and not considered a target for intrusion or denial-of-service attacks.
Furthermore, the research does not cover sufficiently strong cryptographic primitives and does
only include the over-the-air part, not the internal part of the securing the vehicle.
Later in 2008, Nilsson et al. [21] proposed a framework for self-verification of firmware updates
over the air in vehicle ECUs. This framework provides verification of the firmware on an ECU
after flashing it. It provides a method to battle the time of check to time of use attack explained
in Section 4.7. It uses a hardware visualization technique called SPUMONE [22]. This framework
has potential in cases where the target ECU has enough power, frequency and memory available
-the target CPU used in the paper is the SH7780 with a SH-4A architecture- but most of the
ECUs in a modern car are much more resource constrained, so this solution is not viable for our
case.
In 2011, Idrees et al. provided a protocol for over-the-air firmware updates [23]. In this
paper, a dedicated hardware security module (HSM), which can be a smartcard for instance, was
introduced to handle the cryptographic requirements during an update. However, there it seems
to be unpractical to equip all ECUs with a dedicated HSM. Next to unpractical, this solution
would also be costly to implement as an increasing amount of ECUs are embedded into cars.
16
33. The protocol uses ideas and recommendations from two automotive security initiatives: EVITA
and HIS, which will be elaborated later in this section.
In 2013, Studnia et al. analyzed multiple of the common security flaws and presented the se-
curity solutions currently being devised to address these problems [24]. Together with addressing
the lack of suitable and strong enough cryptographic protocols for encryption, the paper focused
on anomaly detection in the most used physical communication channel in a car: the CAN bus.
The proposed system is simple but uses a lot of available resources. On every CAN bus, each
frame identifier is associated to only one ECU. In other words, these frames can only be sent by
one particular ECU and therefore cannot legitimately be sent by the others. Then, whenever a
message is broadcasted on the bus, each ECU checks if the frame identifier is one of its own. If it
is the case and if the ECU itself is not the actual sender of the frame currently being broadcasted,
it immediately emits a high-priority alert frame to override the illicit broadcast.
In summary, various researchers proposed theoretical and practical solutions to prevent these
basic attacks from happening. These preventive and detective measures should be known to any
security-minded individual and it is again frightening to see the lack of basic security measures
implemented in car systems by either Original Equipment Manufacturers (OEMs) or aftermarket
companies, like including randomness into their security seystems or not using the same keypair
for every car.
2.4 Initiatives towards better car security
Next to proposed solutions by individuals or research groups, there are some organizations that
are or have been committed to address global security issues with automotive systems and look
for means to improve the security. In this subsection, some of these initiatives are presented.
2.4.1 Automotive Open System Architecture (AUTOSAR)
AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide development partnership
of vehicle manufacturers, suppliers and other companies from the electronics, semiconductor and
software industry. Since 2003, AUTOSAR has paved the way for innovative electronic systems
that improve performance, safety and environmental friendliness. AUTOSAR has been pushing
for standards in the industry and is aiming to be prepared for the upcoming technologies and
to improve cost-efficiency without making any compromise with respect to quality. It also facil-
itates the exchange and update of software and hardware over the life of a vehicle. Next to the
BMW Group, Bosch GmbH, Ford, General Motors, Toyota and the Volkswagen Group, more
than 180 partners play an important role in the partnership. Only companies which have joined
the AUTOSAR Development Partnership can use the designed AUTOSAR specifications free of
charge.
17
34. To date, AUTOSAR has released multiple specifications and recommendations regarding
performance, safety and environmental friendliness of automotive systems, though none of these
relate to securing firmware updates. Besides, the AUTOSAR stack implementation requires
a lot of extra resources that causes issues with more resource constrained ECUs. Since the
automotive industry is highly cost-driven, companies usually settle for less quality. Futhermore,
with the specifications being open to interpretation, most partners have their own proprietary
implementations of these specifications, the opposite of the intention of this partnership.
2.4.2 E-Safety Vehicle Intrusion Protected Applications (EVITA)
The E-Safety Vehicle Intrusion Protected Applications or EVITA project had the objective to de-
sign, verify and prototype an architecture for automotive on-board networks where the security-
relevant components are protected against tampering and sensitive data is protected against
compromise when transferred inside a vehicle. The project was run by a partnership of compa-
nies such as Robert Bosch GmbH, BMW Research and Infineon [25]. The project ran from July
2008 until December 2011.
When the team started the project, several security requirements for automotive on-board
networks were specified by looking at several defined use cases for automotive networks. After
that, the goal was to design, verify and prototype an architecture for the on-board automotive
network. The security functions of EVITA are split between software and hardware and the root
of trust is placed in hardware security modules (HSMs) instead of on ECUs itself. For proto-
typing, Field-programmable gate arrays (FPGAs) were used to extend the standard ECUs with
the functionality of cryptographic coprocessors. In order to ensure that the identified require-
ments are satisfied, selected parts of the secure on-board architecture and the communications
protocols have been modelled using UML and verified using model-based verification tools. The
resulting architecture and protocols were published as open specifications [26, 27]. Some of the
specifications rely on custom-made AUTOSAR specifications.
As shown in Figure 6, there are three classes of EVITA: Full, Medium and Light. EVITA
Full provides security for very critical applications requiring powerful security, for instance the
headunit handling the communication from the car to the outside world. EVITA Full includes
support for cryptographic primitives such as AES-128, Whirlpool, and ECC-256. For less critical
automotive applications like communication between ECUs, EVITA Medium can be used. The
Medium HSM is identical to EVITA Full except for stripping the ECC-256 and the WHIRLPOOL
cryptographic primitives to suit less powerful ECUs. EVITA Light is more typical for sensors
and actuators and only supports AES-128 symmetric encryption. The necessary shared secret
can be established in various manners, for instance, by pre-configuration during manufacturing,
by self-initialization or by running a key establishment protocol in software at the attached ap-
plication processor.
18
35. Figure 6: EVITA scheme: Full, Medium and Light [26].
2.4.3 Herstellerinitiative Software (HIS)
Herstellerinitiative Software (HIS) which translates to ’OEM software initiative’ from German,
is a consortium consisting of the car manufacturers Audi, BMW, Daimler AG, Porsche and
Volkswagen. The initiative aims to standardize various aspects of software in ECUs. Among
the works performed by the different groups in the consortium are software modules, software
tests, software tools and bootloaders. With regard to flash programming, work has been done
on reducing the time to flash a device and increasing the robustness of the flashing process [28].
The specification describes the protocols required to create a firmware flasher. Although HIS
does not focus on security specifically, ideas and specifications of HIS are usable in this thesis.
19
37. 3 Attacker model
Using the various examples mentioned in the earlier sections we can create our attacker model.
In our attacker model, the attacker has physical and wireless access to the car. So the attacker
can eavesdrop on internal communication, intercept communication, replay, change or inject
messages into the untrusted channel to try and recover the communication. This model is an
adaptation of the Dolev-Yao attacker model [29]. With these possibilities, an attacker could
compromise the security of a car. It is important to realize that there is a difference between
safety issues and security issues with a car. Where safety issues happen at random, computer
security incidents happen due to malicious behavior. This makes car security different from
car safety. Compromizing the security of a car usually leads to compromizing the safety of
the car, whereas compromizing the safety of a car does not have to mean the security of a car
is compromized. We will now take a look at the various adversaries that would benefit from
obtaining, modifying or disrupting the firmware inside a car in any way.
3.1 Car Owners
Car owners are the biggest group of adversaries interested in modifying firmware. Despite being
the biggest group, they are limited in both knowledge and resources. The majority of car owners
do not possess the knowledge to mount an advance attack on a car system for own benefit. Then
again, usually people are only interested in increasing the power output of their engine and they
will look at possibilities to get extra content or performance for their vehicle without having to
spend too much time or resources on it.
It is not very unrealistic that in the future, several new car features can be unlocked by paying
extra for it. With current (mobile) payment options it is fairly straightforward to buy additional
features for cars. Newer car models already offer extra features on a subscription base, like voice
dialing, navigation, and remote diagnostics. Examples of these subscription-based services are
General Motor’s OnStar, Chevrolet’s MyLink and BMW’s Assist. Improved steering, better en-
gine performance and sophisticated braking could be features that would be accessed by payment
or a subscription in the future. A firmware update to several ECUs could unlock these features,
for instance.
We have seen several methods of identification of a user to a backend portal. Some examples of
identification and authentication are the Vehicle Identification Number (VIN), a user account, the
mobile phone number associated with the car, a public/private keypair or a combination of any
of these methods. When a car owner wants extra content or features for his car without wanting
to pay for it, he will possibly try to circumvent measures of authentication or identification. For
instance, sharing the same user account with additional privileges in multiple cars.
21
38. 3.2 Engine Tuners
Car tuning is modification of the performance or appearance of a vehicle. Where most vehicles
leave the factory set up for an average driver’s expectations and conditions, car tuning has be-
come a way to personalize the characteristics of a vehicle to the owner’s preference. Cars may
be altered to provide better fuel economy, produce more power, or to provide better handling.
Since ECUs are embedded into cars, engine tuning exists.
There are two ways to increase the performance of a vehicle by (ab)using ECUs. One is
chip tuning, where performance chips are placed between engines and actuators, altering the
data that ECUs receive and hereby changing the performance of the engine. ECU remapping
is an adjustment of the firmware of the engine, either by writing own firmware or changing the
firmware of the manufacturer. Both options are performed to yield optimal performance, to in-
crease the engine’s power output, economy, or durability. These goals may be mutually exclusive,
and increased performance may decrease the engine life due to more stress on engine components.
Since the introduction of the obligatory OBD-II port in 1986, ECU remapping has become more
popular in contrast to chip tuning. Since ECUs have been embedded into cars, engine tuning
has turned out to be a benefitial industry.
ECU remapping is available for almost all modern cars. Usually a chip is desoldered and
the firmware is extracted, disassembled and analyzed. After that, parameters of the firmware
are tested to optimize the performance of a car. Next, the new firmware is flashed to the ECU
through the OBD-II port. Once a performance or tuning pack is available for a car type, it can
be used for all cars of the same type. Being the first to create a flash pack for a new type of
car can earn a lot of prestige next to income, so the incentive of car tuners is more than just money.
Being able to tune modern ECUs is becoming increasingly challenging due to the waging
arms race between the car manufacturers and engine tuners [30]. Attacks are becoming more
advanced due to so-called anti-tuning protection included in modern ECUs. Engine tuners need
to have extensive knowledge of cars, the communication buses of cars and ECUs to successfully
extract, modify and re-insert firmware. Groups of engine tuners therefore will have to invest a
lot of time and resources to be able to create a tuning pack.
3.3 Security Researchers
Security researchers have other intentions when trying to obtain, modify or disrupt firmware.
Security researchers or research groups are usually well-funded, resourceful and independent, i.e.
have no bias towards any other entity. Their research is valuable to the affected community and
companies often are disclosed useful information from security research about their products.
For instance, the research group testing the unnamed sedan notified General Motors before
22
39. publishing their research, which showed a lot of flaws in the firmware used by GM in their cars.
Security researchers are driven by their eagerness to learn new things and to test hypothesis. In
the end, from a manufacturer’s point of view, they offer a great service by uncovering potential
vulnerabilities and exploits, usually for free. However due to several clashes with the disclosure
of vulnerabilities, security researchers also sell their findings on the zero-day market [31].
3.4 Black Hat Hackers
A black hat hacker is a hacker who violates computer security for little reason beyond malicious-
ness or for personal gain [32]. Black hat hackers keep the awareness of the vulnerabilities to
themselves and do not notify the general public or the manufacturer for patches to be applied.
When driven by personal gain, black hat hackers would be interested in obtaining firmware for
cars for reselling it to government agencies, terrorists or competing car companies, or for exploit
creation or other malicious activities. Selling these vulnerabilities as zero-days can be quite lu-
crative [31]. Once black hat hackers have gained control over a system, they may apply patches
or backdoors to car systems only to keep their reigning control.
3.5 Ethical Hackers
Ethical hackers act within the same principles of security researchers, but can apply more means
to compromize a system, like social engineering. Ethical hackers can try and test security unan-
nounced and disclose the found vulnerabilities using responsible disclosure, for instance. In
contrast to black hat hackers, ethical hackers do not violate computer security for personal gain
but to make the world a safer place. When acting on behalf of a contract, ethical hackers could
have a lot of resources and time at their disposal. Their knowledge or eagerness to learn new
things drives them to try and find vulnerabilities. In this case, ethical hackers can try to obtain
car firmware to reverse engineer and test the firmware for vulnerabilities, or test if the firmware
can be extracted in the first place.
3.6 Car Thieves
Car thieves are driven by personal gain and usually do not have any knowledge or resources
available to steal a car, for instance. However, professional crime syndicates often have quite a
lot of resources available. These syndicates will generally use exploits created or sold by black hat
hackers. With these resources, they would be able to equip car thieves with devices to remotely
unlock cars or disabling the alarm or GPS by plugging in a device to the open OBD-II port of a
car. An example would be a car thief that works at a valet parking, targets expensive vehicles,
parks them, modifies the firmware by plugging in a device to the OBD-II port so the car can be
tracked and remotely unlocked at a later time.
23
40. 3.7 Competing Car Companies
Car companies have entire research departments dedicated to optimizing their cars’ behavior. The
resources and knowledge at their disposal is sufficient to mount attacks like desoldering chips or
man-in-the-middle attacks to obtain the firmware of a car of a competing company. This firmware
can give the company insights on how aspects like fuel distribution, engine optimization and brake
pedal sensing are handled by the firmware. Of course, legal issues prevent car companies from
officially employing such strategies. Though, with the recent scandals in the automotive industry,
it would not be surprising if these tactics were already employed unofficially.
3.8 Terrorists
Terrorists could be able to use exploits gained by black hat hackers or disclosed by researchers
to create chaos or fear, for example mass disabling one type or brand of car in a city to cause
a traffic breakdown or mass accidents. Terrorists can be state-sponsored actors, making the
resources and know-how at their disposal virtually unlimited. This would enable terrorists to
mount brute-force attacks against the wireless vehicle infrastructure for example, and hereby
possibly causing various incidents.
3.9 Summary
Adversary Resources Knowledge Time
Car owners * * *
Engine tuners ** *** **
Security researchers ** *** **
Blackhats * *** **
Car thieves */*** * *
Ethical hackers */** *** **
Terrorists *** */*** ***
Competing car companies *** *** ***
Table 2: Summary of possible adversaries
Table 2 shows the various adversaries and their available resources, knowledge and time to
mount attacks to “get what they want“. Competing car companies, terrorists and car thieves
backed by crime syndicates usually have the most resources at their disposal. When it comes to
knowledge, car owners, car thieves and terrorists work with what they are supplied with. Since
terrorists and competing car companies have the most resources available they likely have more
time to work on attacks as well.
24
41. 4 Required Security Properties
With the available research, the recent car hacks and the adversaries willing to put resources
into attacking the car to obtain, modify or disrupt the firmware of a car, we can now define the
required security properties that need to be addressed to secure a firmware update. Next to the
standard requirements regarding information security, the CIA triad (Confidentiality, Integrity,
Availability), we need several other security properties to secure our update model.
4.1 Confidentiality
Our first required security property is confidentiality, which stands for preventing data from
disclosure to unauthorized parties: keeping this data confidential. In information security, data
encryption is a common method of ensuring confidentiality. Encryption is very widespread in
today’s environment and can be found in almost every major protocol in use. A very prominent
example is SSL/TLS, the security protocol for communication over the Internet. This protocol is
used to ensure confidentiality but also integrity, for instance. Another measure of keeping data
confidential is the use of access control methods to restrict access to the data only to people that
are authorized. Usually, sensitive data is categorized into classes. The more sensitive the data,
the higher the class and the stronger the used encryption methods and authorization methods
to keep the data confidential.
For our model we need confidentiality to prevent attackers from reading the data that is
communicated over an insecure channel.
4.2 Integrity
In information security, data integrity stands for maintaining and assuring the accuracy and
completeness of data over its entire life-cycle. This means that data should not be modified in an
unauthorized or undetected way, as data that has been tampered with could be useless or even
malicious. In addition to message confidentiality, information security systems typically provide
message integrity. There are various ways of assuring integrity of a message, for instance during
transport over an insecure or unstable communication channel. Often, a hash function is used
to create a hash value for a certain block of data. The hash value over the data is calculated on
both the sender and the receiver’s side. If both resulting hash values match, the integrity can
be guaranteed in a high probability, meaning that the chance the data was altered is negligible.
However, a hash function does not guarantee integrity. Moreover, securely sending the hash value
for a message over a untrusted channel is another challenge. Most recent hash functions provide
pre-image resistance, second pre-image resistance and collision resistance so that it becomes in-
feasible to break the system. When transfering data from one system to another using a serial
communication channel like the CAN bus, other means of assuring integrity to a certain extent
25
42. is provided, for instance by using a cyclic redundancy check (CRC). However, the CRC was
originally designed to detect accidental changes in the data. To really provide message integrity,
we need something stronger. A message authentication code (MAC) provides a message with
integrity next to authentication.
For our model we need integrity to assure that the data that is transfered from the sender
from the receiver is not modified (by an attacker) in any way.
4.3 Availability
For our model we need availability to allow authorized users to be able to access data when
needed. Nowadays, denying access to data has become a very common attack. Usually, a dis-
tributed denial-of-service (DDoS) attack is the cause of data being unavailable. Such downtime
can be very costly. Next to that, general DoS attacks are perceived to be very annoying. Other
factors that could lead to unavailability of important data may include power outages or natural
disasters such as floods and fires. Redundancy is a way to ensure availability, but only up to a
certain level. Regularly doing off-site backups can limit the damage to (digital) infrastructure by
natural disasters or power outages. For data services that are highly critical regarding uptime,
multiple copies usually exist and are being kept synchronized. Sometimes, availability cannot be
guaranteed. For instance, if a car is in an underground parking lot without reception to the mo-
bile network, updates cannot be applied. On the CAN bus, the most used communication channel
inside a modern car, availability is an issue as well. A device sending a certain packet with a dom-
inant bit forces the bus in a dominant state. Consequently, every time another device wants to
send, the bus arbitration algorithm tells it to back off, resulting in no message getting on the bus.
For our model we need availability to assure the updates can be transfered over the air and
to assure the updates are applied from the telematics unit to the corresponding ECU.
4.4 Authenticity
Authenticity is the assurance that a message, transaction, or other exchange of information is
from the source it claims to be. Authenticity involves the proof of identity and can be assured
through authentication. The process of authentication usually involves more than one proof of
identity. This proof might be something a user knows or possesses, like a password or a de-
vice like a keycard. Modern systems can also let a user provide proof based on something he
is. Biometric authentication methods for instance, include aspects like fingerprint or retinal scans.
For user interaction with systems, programs, and each other, authentication is deemed criti-
cal. A user ID and a password input is the most used method of authentication. However, this
method of authentication introduces a variety of problems as well. Passwords can be simply
26
43. brute-forced if the passwords are not long enough or not complex enough. Also, remembering
dozens of passwords for as many applications can be frustrating for users. Furthermore, when a
user ID and password combination is compromised, adversaries can claim to be someone they are
not. Hence, two-factor or multi-factor authentication is more common for enterprise and critical
applications and systems. Multi-factor authentication systems can use key cards, USB tokens,
mobile devices or biometric data. For system to system authentication, Public Key Infrastructure
(PKI) Authentication is a commonly used method. For instance, SSL connections to websites
do not only provide encryption but also verification that the web site is authentically the site it
claims to be.
For our model we need authenticity to prove that the systems we use are in fact the systems
they claim to be. We need authentication both ways, so-called mutual authentication, to ensure
that the correct sender is communicating with the correct receiver. It prevents so-called man-in-
the-middle (MITM) attacks, where an attacker intercepts and/or relays communication between
the sender and receiver and controls the entire conversation.
4.5 Forward Secrecy
Forward secrecy (FS; also known as perfect forward secrecy, or PFS) is a property of key-
agreement protocols like Diffie-Hellman to ensure that a session key derived from a set of long-
term keys cannot be compromised if one of the long-term keys is compromised in the future. The
key used to protect transmission of data must not be used to derive any additional keys, and if
the key used to protect transmission of data is derived from some other keying material, then
that material must not be used to derive any more keys. In this way, the compromise of a single
key permits access only to data protected by that single key. The Diffie-Hellman key exchange
protocol can use ephemeral keys to ensure forward secrecy.
For our model we need forward secrecy to prevent an attacker from intercepting data from a
used untrusted channel and later decrypt it using a compromised long-term key.
4.6 Private Key Protection
When using a public-key cryptosystem, a compromized private key can have disastrous effects.
Obviously, all cryptosystems rely on this private key to remain private. We have seen some cases
where all private keys on the client side were the same [30]. If such a key gets compromised,
the entire system of encryption collapses like a house of cards. When storing a private key on
a microprocessor, there is one main risk: an attacker attempting to compromise the ROM and
extracting the key. This can be done in various ways. One way is an attacker attempting to
compromise the ROM location where the keys are stored with a bit flip. Another way is attempt-
ing to extract the key from the ROM location without leaving a trace of device tampering. A
27
44. redundant copy of the private key can be placed in the ROM at manufacturing time to prevent
this type of attack [33].
For our model we need private key protection because our entire system will depend on its
privacy. If an attacker manages to obtain the private key of a TCU, ECU, or even the portal, he
can obtain the firmware as well.
4.7 TOCTTOU attack protection
A TOCTTOU (time of check to time of use) is a race-condition attack that exploits the time
between a race condition being checked and the result of this check being used to perform an ac-
tion. An examplary attack is described in [34], where a UNIX symlink (symbolic link) is changed
between validating this symlink and using it to read or write data, assuming the outcome of the
check is still valid. Operating systems have schedulers that designate processes time to execute.
While the first process does the check, a second process may interfere and use this very same
symlink whereas the original process assumes that it is using the resource exclusively.
In the case of a firmware update, this timing attack can take place between checking the
validity of the update on the microprocessor and flashing the update to the microprocessor,
replacing the old version.
4.8 Randomness
In information security, randomness is a very important variable that needs to be included in
encryption mechanics. Kerckhoff’s principle mentions that we cannot rely on the secrecy of al-
gorithms, only on the secrecy of keys [35]. The safety of keys also relies on the quality of random
numbers. Without properly generated randomness or initialization vectors (IVs), every message
with the same content will look the same. Not only to the sender or the receiver but also to an
attacker eavesdropping on the communication. Two ciphertexts with the same message should
be indistinguishable, and an adversary should not be able to derive information about a message
when only having access to the ciphertext and public key. A pseudorandom number generator
(PRNG) or true random number generator (TRNG) is used to generate sequences of numbers
whose properties approximate the properties of sequences of random numbers [36]. If the output
of a PRNG is even remotely predictable, it reduces the security of the entire encryption scheme.
In Section 2 we have seen that besides randomness in encryption, randomness in phone num-
bers of SIM cards in TCUs is useful, to mitigate scanning and wardialing attacks on IP ranges
or phone number ranges. Furthermore, the randomization of private keys during manufacturing,
chassis numbers (VIM numbers) for a range of vehicles should harden the attacker’s ability to
obtain any information at all if these keys or numbers are used for identification of a vehicle.
28
45. For our model we need randomness in every message that we send to prevent an attacker from
obtaining information about the plaintext without knowing the private key. Such a plaintext
attack, either a chosen-plaintext attack (CPA) or known-plaintext attack (KPA) is aimed at
reducing the security of the encryption scheme.
4.9 Summary
Required property Prevents attack Achieved by
Confidentiality Eavesdropping Encryption
Integrity Firmware tampering Hashing, CRC
Availability DoS attacks Anomaly detection, backups, timeouts
Authenticity MITM attacks, spoofing Mutual Authentication, certificates
Private key protection Key extraction Key redundancy, ROM protection
Timing attack protection TOCTTOU Atomicity, constant time algorithms
Randomness Plaintext attacks PRNG, TRNG, ciphertext indistinguishability
Table 3: Summary of required security properties for our model
To summarize, our model needs to assure various aspects regarding information security. Ta-
ble 3 shows the required properties to create a model that is robust against the attacks listed
in the second column. Finally, the third column shows the possible means to achieve the corre-
sponding security properties or prevent the attacks mentioned in the second column.
29
47. 5 Target Platform and Cryptography
Our proposed solution uses an ECU that is constrained by size, power, speed and even temper-
ature requirements [37]. Also, the required security properties discussed in the previous section
need to be taken into account when selecting the most suitable primitives. Modern cryptography
offers lots of variety in primitives to pick from. The choices made for various aspects of our model
are explained in this Section.
5.1 CPU
The microprocessor for this thesis is of the MPC5500 family and uses a FreeScale MPC5566MVR132
32-bit microcontroller as a specific processor. It offers a single core processor with speeds up to
132 MHz, 128KB of SRAM, 32KB data cache and 3MB of flash memory. These microprocessors
are used in automotive applications such as engine control and transmission control systems. For
instance, Bosch GmbH uses this family of microprocessors in the EDC-16 series of fuel injection
controllers. The MPC5566 uses the PowerPC architecture, more specifically a e200z6 core. This
e200z6 has a branch prediction unit, a 32-entry MMU, signal processing extensions (SPE) and
32 KB L1 data cache. It can use the complete 32-bit PowerPC instruction set [38].
Figure 7: MPC5566 Block Diagram. The MPC includes 3MB flash memory and 128KB of SRAM.
5.2 Storage
Although the specific CPU has some memory available for storage, the storage is not nearly
enough to run an operating system with hardware virtualization on top of it. There is enough
31
48. storage to put quite a large binary application in the memory, and there is even space for a
backup. When flashing occurs, there are two versions of the firmware in the flash memory: the
old version and the new version. For ECUs with smaller applications there even is space enough
to do a factory reset when necessary. In this case, during a firmware upgrade, the amount
of firmware versions on an ECU would be three: the factory version, the old version and the
new version. When an integrity check fails on the old or new firmware, the firmware should be
replaced with the factory firmware.
5.3 Delivery
There are various methods to communicate with a vehicle from the outside world, for instance
through the mobile network (GSM/LTE), through a Bluetooth connection, or through a wireless
network router. The available communication channels depend on the TCU that is included in
the car. Inside the car, there are several communication systems available to deliver the firmware
to the correct ECU. Apart from the CAN protocol, which is extremely vulnerable to denial-
of-service attacks, the Local Interconnected Network (LIN), FlexRay, Media Oriented Systems
Transport (MOST) and even Ethernet [39] are alternatives for transportation of the firmware.
However, since the method of delivery is not a factor in our model, we refrain from any specifics
regarding the delivery methods.
5.4 Retry Timeout
We propose the implementation of a timeout for a retry of communication when an integrity
check or authenticity check fails. Also, when a key exchange fails, there will be a timeout before
a device can retry to authenticate itself. Since there are legitimate cases where a check or key
exchange fails, like a temporary glitch in the wireless communication due to limited coverage, the
timeout period should increase as the number of failed attempts grows. To prevent brute-force
attacks like the one described in [40] where a 2-byte authentication seed was used in combination
with no brute-force protection, these timeouts should definitely be implemented.
5.5 Key sizes
NIST, the National Institute of Standards and Technology recommends the use of certain key
sizes for various symmetric and asymmetric (public- and private keypair) algorithms. These
recommendations are shown in Table 4. The first column of this table represents the minimum
strength in bits that the corresponding algorithms in the other columns provide. 2TDEA is the
2-key triple-DES algorithm (TDEA stands for Triple Data Encryption Algorithm), and 3TDEA
is the 3-key triple-DES algorithm. The third and fourth column show the the corresponding key
sizes of asymmetric or public-key algorithms Rivest Shamir Adleman (RSA) and Elliptic Curve
Cryptography (ECC) to achieve the minimum strength in bits in column one. NIST guidelines
state that ECC keys should be twice the length of equivalent strength symmetric key algorithms.
32
49. Of course, these estimates assume that no major breakthroughs in solving the underlying math-
ematical problems that ECC or RSA are based on will be found. If we look solely at key size,
symmetric cryptographic algorithms would be the right choice because they offer the best pro-
tection while using the smallest keys.
Minimum Strength Symmetric Algorithms RSA ECC
(bits) (bits) (bits)
80 2TDEA 1024 160
112 3TDEA 2048 224
128 AES-128 3072 256
192 AES-192 7680 384
256 AES-256 15360 512
Table 4: NIST-recommended key sizes of cryptographic algorithms [41]
5.6 Protocols
To add the various parts of information security to our model, we need to implement some
cryptographic protocols to assure confidentiality, integrity, and authenticity.
5.6.1 Symmetric vs Asymmetric cryptography
There has been written much about the use of symmetric and asymmetric key ciphers. Secret
communication using asymmetric encryption is possible even if the sender’s and receiver’s key are
public, as long as the sender’s and receiver’s private keys are kept private. On the contrary, sym-
metric ciphers are less resource-consuming because asymmetric ciphers need more mathematical
operations to offer the same security. Both approaches have its advantages and disadvantages.
Often, a combination of symmetric and asymmetric cryptography is used for security solutions.
For instance, two parties may agree on a shared secret resulting of a Diffie-Hellman key exchange.
This shared key can be directly used as a key or used to derive another key which can then be
used to encrypt further communications using a symmetric key cipher, for instance AES. In our
model we will use this combination to provide confidentiality, forward secrecy, authenticity and
integrity. More specifically, for asymmetric cryptography, we will use ECC, as it has a smaller
keysize and outperforms RSA, especially on embedded devices [42].
5.6.2 SHA-2
Often, cryptographic hash functions are used to assure the integrity of messages by providing
a checksum of the message. Hash functions are functions that map data of variable size —
for instance a message— to data that has a fixed —and usually smaller— size. For example,
33
50. computing the hash value of a message and comparing the result with a published hash result
can show if a message has been tampered with or not. There is a variety of hash functions
available. Some hash functions are more secure than others, for instance MD5 and SHA-1
are considered to be broken [43, 44]. The Secure Hash Algorithm 2 (SHA-2) is a family of
cryptographic hash functions and provides functions in hashes of 224, 256, 384 or 512 bits: SHA-
224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256. The SHA-2 hash function is
implemented in security applications and protocols such TLS and SSL, PGP and SSH. Although
there are some attacks known for some rounds of the hash function, there are no known attacks
against full-round SHA-2. So the security of SHA-2 is deemed sufficient for now and is included
in the National Institute of Standards and Technology (NIST) Federal Information Processing
Standards Publication (FIPS) [45]. Several implementations of the algorithm have been validated
by the Cryptographic Module Validation Program (CMVP) [46].
5.6.3 Elliptic curve Diffie-Hellman
Elliptic-curve Diffie-Hellman (ECDH) is an anonymous key agreement protocol that allows two
parties, each having an elliptic-curve key pair, to establish a shared secret, for instance for Alice
and Bob, over an untrusted channel. It is a variant of the Diffie-Hellman protocol using elliptic
curve cryptography (ECC), which is an approach to public-key cryptography and uses elliptic
curves over finite fields. The elliptic curve is a curve with the corresponding equation 𝑦2
=
𝑥3
+ 𝑎𝑥 + 𝑏 along with a point at infinity ∞. Its domain parameters are (𝑎, 𝑏, 𝑝, 𝐺, 𝑛, ℎ), where
𝑎 and 𝑏 are the curve parameters modulo 𝑝. 𝐺 is a point of order 𝑛 and by definition 𝑛𝐺 =
∞. The integer ℎ is the cofactor of 𝑛 (the ratio between the number of points on the curve
and the number 𝑛). The entire security of ECC depends on the ability to compute a point
multiplication and the inability to compute the multiplicand given the original and product
points, the discrete-logarithm problem or DLP. An attacker who can solve the elliptic-curve
discrete-logarithm problem (ECDLP) can figure out Alice’s secret key from Alice’s public key,
and can then compute the shared secret the same way Alice does. Alternatively, an attacker can
figure out Bob’s secret key from Bob’s public key, and can then compute the shared secret the
same way Bob does.
5.6.4 Curve25519
Curve25519 is a Diffie-Hellman function suitable for a wide variety of applications. Assume
that we have Alice and Bob that want to use the Curve25519 function to communicate. Given
Alice’s 32-byte secret key ska, Curve25519 computes Alice’s 32-byte public key pka. Given Bob’s
32-byte secret key skb, Curve25519 computes Bob’s 32-byte public key pkb. With the Alice’s
32-byte secret key and Bob’s 32-byte public key, Curve25519 computes a 32-byte secret ss for
Alice. This secret key is shared by the two users, and can then be used to authenticate and
encrypt messages between Alice and Bob. Curve25519 is constructed in a way that it avoids
many potential implementation pitfalls. For instance, it avoids any problems with poor random
34
51. number generators [47]. This selected curve is also listed as being a safe curve on the SafeCurves
page [48]. Curve25519 offers 128-bit security, which confirms the factor of two used earlier in
Table 4.
Bob
Generate skb
pkb = Curve25519(skb, 9)
Alice
Generate ska
pka = Curve25519(ska, 9)
send pka
send pkb
ss = Curve25519(ska,pkb)
ss = Curve25519(skb,pka)
Figure 8: A view of the Elliptic-curve Diffie-Hellman (ECDH) Curve25519 function
Figure 8 shows the data flow between two parties from a point of each party possessing a
secret key to both parties possessing the shared secret using the Curve25519 function.
5.6.5 Salsa20
Salsa20 is a stream cipher, which was designed in 2005 by Daniel J. Bernstein and submitted
to eSTREAM [49]. As of September 2011, Salsa20 is included in the eSTREAM portfolio. The
Salsa20 encryption function is a long chain of three simple operations on sixteen 32-bit words [50]:
∙ 32-bit Addition, producing the sum 𝑎 + 𝑏 mod 232 of two 32-bit words 𝑎, 𝑏.
∙ 32-bit Exclusive-or, producing the xor 𝑎 ⊕ 𝑏 of two 32-bit words 𝑎, 𝑏.
∙ 32-bit Rotation, producing the rotation 𝑎 ≪ 𝑏 of a 32-bit word 𝑎 by 𝑏 bits to the left, where
𝑏 is constant.
Salsa20 expands a 256-bit key, a 64-bit nonce and a 64-bit stream position into a 512-bit
stream. Salsa20 uses 20 rounds on the 32-bit words to acquire this stream. The cipher encrypts
a 𝑏-byte plaintext by xor’ing the plaintext with the first 𝑏 bytes of the stream and discarding the
rest of the stream. It decrypts a 𝑏-byte ciphertext by xor’ing the ciphertext with the first 𝑏 bytes
of the stream. There is no feedback from the plaintext or ciphertext into the stream. This gives
Salsa20 the advantage to seek to any position in the output stream in constant time and that
blocks can be computed in parallel. In comparison to AES —which is a block cipher but also
includes modes to stream—, Salsa20 is fast in software implementations as there is little time
needed for key setup and it has one of the lowest cycles-per-byte count for encryption [51]. Just
like AES, Salsa20 can be used together with an authenticator for authenticated encryption. It
is often used with the Poly1305 authenticator, which will be explained in the next subsection.
35
52. Next to the 20-round version of Salsa20, there are 8-round and 12-round variants of Salsa20 with
even faster speeds available, though they offer less security.
5.6.6 Poly1305
Poly1305 computes a 16-byte authenticator of a variable-length message 𝑚, using a 32-byte one-
time key. It produces a tag that authenticates the message such that an attacker has a negligible
chance of producing a valid tag for a inauthentic message. The message 𝑚 is broken into 16-
byte chunks which become coefficients of a polynomial in 𝑟, evaluated modulo the prime number
2130
− 5, which explains the origin of the name of the authenticator [52].
The 32-byte one-time key is partitioned into two 16-byte chunks and represented as a pair
(𝑟, 𝑠). The first 16 bytes of the one-time key form an integer, 𝑟, as follows: the first four bits of
the bytes at indexes 3, 7, 11 and 15 are cleared, the bottom 2 bits of the bytes at indexes 4, 8 and
12 are cleared and the 16 bytes are taken as a little-endian value. An accumulator is set to zero
and, for each chunk of 16 bytes from the input message, a byte with value 1 is appended and the
17 bytes are treated as a little-endian number. If the last chunk has less than 16 bytes then zero
bytes are appended after the 1 until there are 17 bytes. The value is added to the accumulator
and then the accumulator is multiplied by 𝑟, all mod 2130
− 5. Finally, the last 16 bytes of the
one-time key 𝑠, are treated as a little-endian number and added to the accumulator, mod 2128
to keep the result at 16 bytes. This result is serialised as a little-endian number, producing the
16-byte tag [53].
The 32-byte one-time key which is used as input, can be the result of any arbitrary keyed
function, like AES or Salsa20. Its security also relies on the keyed function that is used for
generation of the 32-byte one-time key. The pair (𝑟, 𝑠) should be unique, and must be unpre-
dictable for each invocation of the function. The 𝑠 should be unpredictable, but it is perfectly
acceptable to generate both 𝑟 and 𝑠 uniquely each time. Because each of them is 128 bits, using
a PRNG to generate hem is also acceptable. Recently, Poly1305 has been selected together with
the ChaCha20 symmetric cipher (a variant of Salsa20) for use with TLS/SSL and this combina-
tion has been added to OpenSSH too [54]. Poly1305 can be computed at high speed in various
CPUs and has optimized implementations for Athlon, Pentium, PowerPC, and UltraSPARC pro-
cessors [55].
5.6.7 Ed25519
Ed25519 is a specific implementation of EdDSA, the Edwards-curve Digital Signature Algorithm,
and was designed by Daniel Bernstein et al [56]. This algorithm is a variant of the Schnorr sig-
nature algorithm and uses elliptic-curve cryptography. More specifically, Ed25519 uses a twisted
Edwards curve birationally equivalent to the curve Curve25519, the Montgomery curve over the
36
53. prime field defined by the prime number 2255
− 19. A digital signature is used to provide au-
thenticity and integrity of a message. A valid digital signature provides the receiver of a message
assurance that the message was created by the sender of the message and that the message was
not altered in transit.
A Ed25519 keypair consists of a 64-byte private key and a 32-byte public key. At key gen-
eration, a 32-byte random seed, for instance the output of SHA256 on some random input, is
generated. This seed is then hashed using SHA512, which expands the 32-byte seed to 64 bytes.
This key is then split into a left half and a right half, both being 32 bytes long. The left half is
the input for the Curve25519 function after a few operations on the first and last bytes of the left
half. The resulting 32-byte secret scalar 𝑎 and the 32-byte right half is the private key. The public
key is generated by multiplying this secret scalar 𝑎 by a generator 𝐵 (the point (𝑥, 4/5)), which
results in a 32-byte group element 𝐴. Signature generation goes as follows: First of all, variable 𝑟
is computed by hashing the message 𝑀 and the right half of the private key using SHA512. Then,
𝑅 is computed by multiplying 𝑟 with the generator 𝐵, or: 𝑅 = 𝑟𝐵. Next, 𝑆 = (𝑟+ 𝐻(𝑅, 𝐴, 𝑀)𝑎)
mod ℓ where 𝑅 and 𝐴 are compressed points. The signature for a message 𝑀 consists of 𝑅 and
𝑆. Verification goes as follows: The verifier knows 𝐴, 𝑅, 𝑆 and 𝑀. It first parses 𝐴, then it
calculates H(R, A, M). Then it checks the group equation 8𝑆𝐵 = 8𝑅 + 8𝐻(𝑅, 𝐴, 𝑀)𝐴. If the
parsing and check succeeds, the signature is verified. There are various implementations written
in a variety of languages of the Ed25519 algorithm and some differ a bit regarding representation
of the keypair and calculation of the signature [57]. Apart from standalone libraries, Ed25519 is
being used in several protocols, operating systems and networks [58].
37
55. 6 Models
We assume that the communication channels between the manufacturer’s portal 𝑝 and host ℎ,
and between host ℎ and target 𝑡 are untrusted. For various reasons, we have to consider the
possibility that the communication can be eavesdropped or modified in some form. Next to that,
since it has been shown that internal communication of a car can easily be compromised if one
has gained physical access to it, so we have to take adequate measures to keep the transferred
firmware from being read by others.
The communication between the portal and the host is done over an untrusted channel. The
portal is a backend server of the manufacturer, the host is the TCU inside the vehicle to be
updated, the target is the ECU to be updated. Distinct messages between the same sender
and receiver set are required to have distinct nonces. For example, the lexicographically smaller
public key can use odd increasing nonces, while the lexicographically larger public key uses
even increasing nonces. The used nonces are long enough that randomly generated nonces have
negligible risk of collision.
6.1 Key storage
Now we have outlined the protocols we will use for our model, we also need to store the pub-
lic/private keys used for encryption. First of all, we need a public/private keypair for our portal,
host and targets. These keys need to be stored safely on the devices that are used. At manu-
facturing time, each device should get its own keypair, with a redundant copy of the private key
being placed in the ROM at the same time to prevent the key integrity attacks mentioned earlier
in this thesis. Furthermore, the portal should have knowledge of all public keys of the host. Also,
all hosts should have knowledge of the public key of the portal. Moreover, every target should
have knowledge of the public key of the host and the host should have a list of the public keys
of every distinct target in the vehicle.
6.2 Host to portal
There are two different options. One option is that the host ℎ asks the portal 𝑝 if there are any
updates available for the ECUs of the car. The model is shown below in Figure 9. First, an
authenticated ECDH key echange is executed between the host h and the portal p, initiated by
the host. If this key exchange succeeds, the protocol will move on to the next step. There, the
host asks the portal if there are any updates available for the ECUs it maintains. Therefore it
needs a list of ECUs and their versions, which is being stored by the host. Formally, the portal
asks the host for a version list and the host replies with the version list. The host encrypts the
ECU version list with the secret key it shares with the portal and sends it. The portal then
checks if it has any updates available and replies to the host with an encrypted response. Then,
39