diff options
author | jaseg <git-bigdata-wsl-arch@jaseg.de> | 2021-04-09 18:39:18 +0200 |
---|---|---|
committer | jaseg <git-bigdata-wsl-arch@jaseg.de> | 2021-04-09 18:39:18 +0200 |
commit | e87677ca40c9c2fa754a006a714e61a7ee4cc2e8 (patch) | |
tree | 4fb1e428390e3b49f83790d828406652ebb33ce9 /thesis/safety_reset.tex | |
parent | 50998fcfb916ae251309bd4b464f2c122e8cb30d (diff) | |
download | master-thesis-e87677ca40c9c2fa754a006a714e61a7ee4cc2e8.tar.gz master-thesis-e87677ca40c9c2fa754a006a714e61a7ee4cc2e8.tar.bz2 master-thesis-e87677ca40c9c2fa754a006a714e61a7ee4cc2e8.zip |
Rename ma folder -> thesis
Diffstat (limited to 'thesis/safety_reset.tex')
-rw-r--r-- | thesis/safety_reset.tex | 2804 |
1 files changed, 2804 insertions, 0 deletions
diff --git a/thesis/safety_reset.tex b/thesis/safety_reset.tex new file mode 100644 index 0000000..765dcad --- /dev/null +++ b/thesis/safety_reset.tex @@ -0,0 +1,2804 @@ +\documentclass[12pt,a4paper,notitlepage]{report} +\usepackage[ngerman, english]{babel} +\usepackage[utf8]{inputenc} +\usepackage[a4paper, top=2cm, bottom=3.5cm, left=3cm, right=4cm]{geometry} +% Matti remarkable tablet special size +%\usepackage[paperwidth=15cm, paperheight=244mm, top=1cm, bottom=1cm, left=5mm, right=5mm]{geometry} +\usepackage[T1]{fontenc} +\usepackage[ + backend=biber, + style=numeric, + natbib=true, + url=false, + doi=true, + eprint=false + ]{biblatex} +\addbibresource{safety_reset.bib} +\usepackage{amssymb,amsmath} +\usepackage{listings} +\usepackage{eurosym} +\usepackage{wasysym} +\usepackage{amsthm} +\usepackage{tabularx} +\usepackage{multirow} +\usepackage{multicol} +\usepackage{tikz} +\usepackage{mathtools} +\DeclarePairedDelimiter{\ceil}{\lceil}{\rceil} +\DeclarePairedDelimiter{\paren}{(}{)} + +\usetikzlibrary{arrows} +\usetikzlibrary{chains} +\usetikzlibrary{backgrounds} +\usetikzlibrary{calc} +\usetikzlibrary{decorations.markings} +\usetikzlibrary{decorations.pathreplacing} +\usetikzlibrary{fit} +\usetikzlibrary{patterns} +\usetikzlibrary{positioning} +\usetikzlibrary{shapes} + +\usepackage[binary-units]{siunitx} +\DeclareSIUnit{\baud}{Bd} +\usepackage{hyperref} +\usepackage{tabularx} +\usepackage{commath} +\usepackage{graphicx,color} +\usepackage{ccicons} +\usepackage{subcaption} +\usepackage{float} +\usepackage{footmisc} +\usepackage{array} +\usepackage[underline=false]{pgf-umlsd} +\usetikzlibrary{calc} +%\usepackage[pdftex]{graphicx,color} +\usepackage{epstopdf} +\usepackage{pdfpages} +\usepackage{minted} % pygmentized source code +% Needed for murks.tex +\usepackage{setspace} +\usepackage[draft=false,babel,tracking=true,kerning=true,spacing=true]{microtype} % optischer Randausgleich etc. +% For german quotation marks + +\usepackage{fltpage} + +\renewcommand{\floatpagefraction}{.8} +\newcommand{\degree}{\ensuremath{^\circ}} +\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} + +\usepackage{fancyhdr} +\fancyhf{} +\fancyfoot[C]{\thepage} +\newcommand{\includenotebook}[2]{ + \fancyhead[C]{Included Jupyter notebook: #1} + \includepdf[pages=1, + pagecommand={\thispagestyle{fancy}\section{#1}\label{#2_notebook}} + ]{resources/#2.pdf} + \includepdf[pages=2-, + pagecommand={\thispagestyle{fancy}} + ]{resources/#2.pdf} +} + +\begin{document} +\selectlanguage{ngerman} +\input{murks} +\titelen{A Post-Attack Recovery Architecture for Smart Electricity Meters} +\titelde{Eine Architektur zur Kontrollwiederherstellung nach Angriffen auf Smart Metering in Stromnetzen} +\typ{Masterarbeit} +\grad{Master of Science (M. Sc.)} +\autor{Jan Sebastian Götte} +\gebdatum{\rule{2cm}{12pt}} % Geburtsdatum des Autors +\gebort{\rule{3cm}{12pt}} % Geburtsort des Autors +\ifdefined\includeprivatedata +\input{private-data.tex}{}{} +\fi +\gutachter{Prof. Dr. Björn Scheuermann}{Prof. Dr.-Ing. Eckhard Grass} +\mitverteidigung +\makeTitel +\selbstaendigkeitserklaerung{\today} +\vfill +\selectlanguage{english} +{\center{ +\begin{minipage}[t][10cm][b]{\textwidth} + \center{\ccbysa} + + \center{This work is licensed under a Creative-Commons ``Attribution-ShareAlike 4.0 International'' license. The + full text of the license can be found at:} + + \center{\url{https://creativecommons.org/licenses/by-sa/4.0/}} + + \center{For alternative licensing options, source files, questions or comments please contact the author at + \texttt{masterarbeit@jaseg.de}}. + + \center{This is version \texttt{\input{version.tex}\unskip} generated on \today. The git repository can be found at:} + + \center{\url{https://git.jaseg.de/master-thesis.git}} +\end{minipage} +}} +\newpage + +% Hier folgt die eigentliche Arbeit (bei doppelseitigem Druck auf einem neuen Blatt): +\tableofcontents +\newpage + +\chapter{Introduction} + +In the power grid, as in many other engineered systems, we can observe an ongoing diffusion of information systems into +industrial control systems. Automation of these control systems has already been practiced for the better part of a +century. Throughout the 20th century this automation was mostly limited to core components of the grid. Generators in +power stations are computer-controlled according to electromechanical and economic models. Switching in substations is +automated to allow for fast failure recovery. Human operators are still vital to these systems, but their tasks have +shifted from pure operation to engineering, maintenance and surveillance\cite{crastan03,anderson02}. + +With the turn of the century came a large-scale trend in power systems to move from a model of centralized generation, +built around massive large-scale fossil and nuclear power plants, towards a more heterogenous model of smaller-scale +generators working together. In this new model large-scale fossil power plants still serve a major role, but two new +factors come into play. One is the advance of renewable energies. The large-scale use of wind and solar power in +particular from a current standpoint seems unavoidable for our continued existence on this planet. For the electrical +grid these systems constitute a significant challenge. Fossil-fueled power plants can be controlled in a precise and +quick way to match energy consumption. This tracking of consumption with production is vital to the stability of the +grid. Renewable energies such as wind and solar power do not provide the same degree of controllability, and they +introduce a larger degree of uncertainty due to the unpredictability of the forces of nature\cite{crastan03}. + +Along with this change in dynamic behavior, renewable energies have brought forth the advance of distributed generation. +In distributed generation end-customers that previously only consumed energy have started to feed energy into the grid +from small solar installations on their property. Distributed generation is a chance for customers to gain autonomy and +shift from a purely passive role to being active participants of the electricity market\cite{crastan03}. + +To match this new landscape of decentralized generation and unpredictable renewable resources the utility industry has +had to adapt itself in major ways. One aspect of this adaptation that is particularly visible to ordinary people is the +computerization of end-user energy metering. Despite the widespread use of industrial control systems inside the +electrical grid and the far-reaching diffusion of computers into people's everyday lives the energy meter has long been +one of the last remnants of an offline, analog time. Until the 2010s many households were still served through +electromechanical Ferraris-style meters that have their origin in the late 19th +century\cite{borlase01,ukgov04,bnetza02}. Today under the umbrella term \emph{Smart Metering} the shift towards fully +computerized, often networked meters is well underway. The roll out of these \emph{Smart Meters} has not been very +smooth overall with some countries severely lagging behind. As a safety-critical technology, smart metering technology +is usually standardized on a per-country basis. This leads to an inhomogenous landscape with--in some instances--wildly +incompatible systems. Often vendors only serve a single country or have separate models of a meter for each country. +This complex standardization landscape and market situation has led to a proliferation of highly complex, custom-coded +microcontroller firmware. The complexity and scale of this--often network-connected--firmware makes for a ripe substrate +for bugs to surface. + +A remotely exploitable flaw inside a smart meter's firmware\footnote{ + There are several smart metering architectures that ascribe different roles to the component called \emph{smart + meter}. Coarsely divided into two camps these are systems where all metering and communication functions reside + within one physical unit and systems where metering and communication functions are separated into two units called + the \emph{smart meter} and the \emph{smart meter gateway}\cite{stuber01}. An example for the former are setups in + the USA, an example of the latter is the setup in Germany. For clarity, in this introductory chapter we use + \emph{smart meter} to describe the entire system at the customer premises including both the meter and a potential + gateway. +} could have consequences ranging from impaired billing functionality to an existential threat to grid +stability\cite{anderson01,anderson02}. In a country where meters commonly include disconnect switches for purposes such +as prepaid tariffs a coördinated attack could at worst cause widespread activation of grid safety systems by repeatedly +connecting and disconnecting megawatts of load capacity in just the wrong moments\cite{wu01}. + +Mitigation of these attacks through firmware security measures is unlikely to yield satisfactory results. The enormous +complexity of smart meter firmware makes firmware security extremely labor-intensive. The diverse standardization +landscape makes a coördinated, comprehensive response unlikely. + +In this thesis, instead of focusing on the very hard task of improving firmware security we introduce a pragmatic +solution to the--in our opinion likely--scenario of a large-scale compromise of smart meter firmware. In our proposal +the components of the smart meter that are threatened by remote compromise are equipped with a physically separate +\emph{safety reset controller} that listens for a reset command transmitted through the electrical grid's frequency and +on reception forcibly resets the smart meter's entire firmware to a known-good state. Our safety reset controller +receives commands through Direct Sequence Spread Spectrum (DSSS) modulation carried out on grid frequency through a +large controllable load such as an aluminum smelter. After forward error correction and cryptographic verification it +re-flashes the meter's main microcontroller over the standard JTAG interface. + +In this thesis, starting from a high level architecture we have carried out extensive simulations of our proposal's +performance under real-world conditions. Based on these simulations we implemented an end-to-end prototype of our +proposed safety reset controller as part of a realistic smart meter demonstrator. Finally we experimentally validated +our results and we will conclude with an outline of further steps towards a practical implementation. + +\chapter{Fundamentals} + +\section{Structure and operation of the electrical grid} + +Since this thesis is filed under \emph{computer science} we will provide a very brief overview of some basic concepts of +modern power grids. + +\subsection{Structure of the electrical grid} + +The electrical grid is composed of a large number of systems such as distribution systems, power stations and substations +interconnected by long transmission lines. Mostly due to ohmic losses\footnote{ + Power dissipation of a resistor of resistance $R [\Omega]$ given current $I [A]$ is $P_\text{loss} [W] = + U_\text{drop} \cdot I = I^2 \cdot R$. Fixing power $P_\text{transmitted} [W] = U_\text{line} \cdot I$ this yields a + dependency on line voltage $U_\text{line} [V]$ of $P_\text{loss} = + \left(\frac{P_\text{transmitted}}{U_\text{line}}\right)^2 \cdot R$. Thus, ignoring other losses a $2\times$ increase + in transmission voltage halves current and cuts ohmic losses to a quarter. In practice the economics are much more + complicated due to the cost of better insulation for higher-voltage parts and the cost of power factor compensation. +} +the efficiency of transmission of electricity through long transmission lines increases with the square of +voltage\cite{crastan01,simon01}. % simon01: p. 425, 9.4.1.1, crastan p.55, 3.1 +In practice economic considerations take into account a reduction of the considerable transmission losses (about +\SI{6}{\percent} in case of Germany\cite{destatis01}) as well as the cost of equipment such as additional transformers +and the cost increase for the increased voltage rating of components such as transmission lines. Overall these +considerations have led to a hierarchical structure where large amounts of energy are transmitted over very long +distances (up to thousands of kilometers) at very high voltages (upwards of \SI{200}{\kilo\volt}) and voltages get lower +the closer one gets to end-customer premises. In Germany at the local level a substation will distribute +\SIrange{10}{30}{\kilo\volt} to large industrial consumers and small transformer substations which converting this to +the \SI{400}{\volt} three-phase AC households are usually hooked up with\cite{crastan01}. + +\subsubsection{Transmission lines, bus bars and tie lines} + +The number one component of the electrical grid are transmission lines. Short transmission lines that tightly couple +parts of a substation are called \emph{bus bars}. Transmission lines that couple otherwise independent grid segments are +called \emph{tie lines}. A tie line often connects grid segments operated by two different operators e.g.\ across a +country border. + +In mathematical analysis \emph{short} transmission lines can be approximated as a simple lumped-component +RLC\footnote{Resistor-inductor-capacitor.} circuit. In longer lines the effect of wave propagation along the line has to +be taken into consideration. In the lumped model the transmission line is represented by a circuit of one or two +inductors, one or two capacitors and some resistors. This representation simplifies analysis. For \emph{long} +transmission lines above \SI{50}{\kilo\meter} (cable) or \SI{250}{\kilo\meter} (overhead lines) this approximation +breaks down and wave propagation along the line's length has to be taken into account. The resulting model is what RF +engineering calls a transmission line and models the line's parasitics\footnote{Stray capacitance, ohmic resistance and +stray inductance.} as being uniformly distributed along the length of the line. To approximate this model in +lumped-element evaluations the line is represented as a long chain of small lumped-component RLC sections. This complex +structure makes simulation and analysis more difficult in comparison to short lines\cite{crastan01}. + +Almost all transmission lines used in the transmission and distribution grid use three-phase alternating current (AC). +Long-distance overland lines are usually implemented as overhead lines due to their low cost and ease of maintenance. +Underground cables are much more expensive because of their insulation and are only used when overhead lines cannot be +used for reasons such as safety or aesthetics. In specialized applications such as long, high-power undersea cables +high-voltage DC (HVDC) is used. In HVDC converter stations at both ends of the line convert between three-phase AC and +the line's DC voltage. These converter stations are controlled electronically and do not exhibit any of the mechanical +inertia that is characteristic for rotating generators in a power plant. Since HVDC re-synthesizes three-phase AC from +DC at the receiving end of the line it can be used to couple non-synchronous grids. This allows for additional degrees +of control over the transmission of power compared to a regular transmission line. These technical benefits are offset +by high initial cost (mostly due to the converter stations) leading to HVDC being used in specific situations +only\cite{crastan03}. + +\subsubsection{Generators} + +Traditionally all generators in the power grid were synchronous machines. A synchronous machine is a generator whose +copper coils are wound and connected in such a way that during normal operation its rotation is synchronous with the +grid frequency. Grid frequency and generator rotation speed are bidirectionally electromechanically coupled. If a +generator's angle of rotation would lag behind the grid it would receive electrical energy from the grid and convert it +into mechanical energy, acting as a motor--When the machine leads it acts as a generator and is braked. Small +deviations between rotational speed and grid frequency will be absorbed by the electromechanical coupling between both. +Maintaining optimal synchronization over time is the task of complex control systems inside power stations' speed +governors\cite{simon01,crastan01}. + +Nowadays besides traditional rotating generators the grid also contains a large amount of electronically controlled +inverters. These inverters are used in photovoltaic installations and other setups where either DC or non-synchronous AC +is to be fed into the grid. Setups like these behave differently to rotating generators. In particular \emph{inertia} in +these setups is either absent or a software parameter. This potentially reduces their overload capacity compared to +rotating generators. The fundamentally different nature of electronically controlled inverters has to be taken into +account in planning and regulation\cite{crastan03}. + +\subsubsection{Switchgear} + +In the electrical grid switches perform various roles. The ones a computer scientist would recognize are used for +routing electricity between transmission lines and transformers and can be classified into ones that can be switched +under load (called load switches) and ones that can not (called disconnectors). The latter are used to ensure parts of +the network are free from voltage e.g.\ during maintenance. The former are used to re-route flows of electrical +currents. A major difference in their construction is that in contrast to disconnectors load switches have built-in +components that extinguish the high-power arc discharge that forms when the circuit is interrupted under load\footnote{ + While an arc discharge is considered a fault condition in most low-voltage systems including computers, in energy + systems it is often part of normal operation. +}. Beyond this there are circuit breakers. Circuit breakers are safety devices that even under failure conditions can +still switch at several times the circuit's nominal current. They are activated automatically on conditions such as +overcurrent or overvoltage. Finally, fuses can be considered non-resettable switches. The fuse in a computer power +supply is barely more than a glass tube with some wire in it that is designed to melt at the designated current. In +energy systems fuses are often much more complex devices that in some cases utilize explosives to quickly and decisively +open the circuit and extinguish the resulting arc discharge\cite{nelles01,crastan01,simon01}. +% disconnect switches, fuses, breakers -> crastan 1 (ch. 8) + +\subsubsection{Transformers} + +Along with transmission lines transformers are one of the main components most people will be thinking of when talking +about the electrical grid. Transformers connect grid segments at different voltage levels with one another. In the +distribution grid transformers are used to provide standard end-user voltage levels to the customer (e.g. 230/400V in +Europe) from a \SIrange{10}{25}{\kilo\volt} feeder. In places that use overhead wiring to connect customer households +this is the role of the pole-mounted gray devices the size of a small refrigerator that are characteristic for these +systems. Transformers can also be used to convert between buses without a fourth neutral conductor and buses with one. + +Transformers are large and heavy devices consisting of thick copper wire or copper foil windings arranged around a core +made from thin stacked, insulated iron sheets. The entire core sits within a large metal enclosure that is filled with +liquid (usually a specialized oil) for both cooling and electrical insulation. This cooling liquid is cooled by radiator +fins on the transformer enclosure itself or an external heat exchanger. Depending on the design cooling may rely on +natural convection within the cooling liquid or on electrical pumps\cite{crastan01,simon01}. + +Transformers come in a large variety of coil and wiring configurations. There exist autotransformers where the secondary +is part of the primary (or vice-versa) that are used to translate between voltage levels without galvanic isolation at +lower cost. Transformers used in parts of the electrical grid often have several taps and include \emph{tap changers}. A +tap changer is a system of mechanical switches that can be used to switch between several discrete transformer ratios to +adjust secondary voltage under load\cite{simon01}. Tap changers are used in the distribution grid to maintain the +specified voltage tolerances at the customer's connection. + +\subsubsection{Instrument transformers} + +While operating on the exact same physical principles instrument transformers are very different from regular +transformers in an energy system. Instrument transformers are specialized low-power transformers that are used as +transducers to measure voltage or current at very high voltages. They are part of the control and protection systems of +substations\cite{crastan01}. + +\subsubsection{Chokes} + +Chokes are large inductors. In power grid applications their construction is similar to the construction of a +transformer with the exception that they only have a single winding on the core. They are used for a variety of +purposes. A frequent use is as a series inductor on one of the phases or the neutral connection to limit transient fault +currents. In addition to this inductors are also used to tune LC circuits. One such use are Petersen coils, large +inductors in series with the earth connection at a transformer's star point that are used to quickly extinguish arcs +between phase and ground on a transmission line. The Petersen coil forms a parrallel LC resonant circuit with the +transmission line's earth capacitance. Tuning this circuit through adjusting the Petersen coil reduces earth fault +current to a level low enough to quickly extinguish the arc\cite{simon01}. + +\subsubsection{Power factor correction} + +Power factor is a power engineering term that is used to describe how close the current waveform of a load is to that of +a purely resistive load. Given sinusoidal input voltage $V(t) = V_\text{pk} \sin \paren{\omega_\text{nom} t}$ with +$\omega_\text{nom} = 2 \pi f_\text{nom} = 2 \pi \cdot \SI{50}{\hertz}$ being the nominal angular frequency, the current +waveform of a resistor with resistance $R \left[\Omega\right]$ according to Ohm's law would be $I(t) = \frac{V(t)}{R} = +\frac{1}{R} V_\text{pk} \sin\paren{\omega_\text{nom} t}$. In this case voltage and current are perfectly in phase, i.e. +the current at time $t$ is linear in voltage at constant factor $\frac{1}{R}$. + +In contrast to this idealized scenario reality provides us with two common issues: One, the load may be reactive. This +means its current waveform is an ideal sinusoid, but there is a phase difference between mains voltage and load current +like so: $I(t) = \frac{V(t)}{R} = \frac{1}{\left|Z\right|} V_\text{pk} \sin\paren{\omega_\text{nom} t + \varphi}$. $Z$ +is the load's complex impedance combining inductive, capacitive and resistive components and $\varphi$ is the phase +difference between the resulting current waveform and the mains voltage waveform. Examples of such loads are motors and +the inductive ballasts in old fluorescent lighting fixtures. + +The second potential issue are loads with a non-sinusoidal current waveform. There are many classes of these but the +most common one are the switching-mode power supplies (SMPS) used in most modern electronic devices.. Most SMPS have an +input stage consisting of a bridge rectifier followed by a capacitor that provide high-voltage DC power to the following +switch-mode convert circuit. This rectifier-capacitor input stage under normal load draws a high current only at the +very peak of the input voltage sinusoid and draws almost zero current for most of the period. + +These two cases are measured by \emph{displacement power factor} and \emph{distortion power factor} that when combined +yield the overall true power factor. The power factor is a key quantity in the design and operation of the power grid. +As a variable in the operation of electrical grids it is also referred to as \emph{VAR} after its is unit Volt-Ampère +Reactive. A high power factor (close to $1.0$, i.e.\ an in-phase sinusoidal current waveform) yields lowest +transmission and generation losses. If reactive power generation and consumption are mismatched and power factor is +low, high currents develop that lead to high transmission losses. For this reason grids include circuits to compensate +reactive power imbalances\cite{crastan01}. These circuits can be as simple as inductors or capacitors connected to a +power line but often can be switched to adapt to changing load conditions. Static var compensators are particularly +fast-acting reactive power compensation devices whose purpose is to maintain a constant bus voltage\cite{rogers01}. + +\subsubsection{Loads} + +Lastly, there is the loads that the electrical grid serves. Loads range from mains-powered indicator lights in devices +such as light switches or power strips weighing in at mere Milliwatts to large smelters in industrial metal production +that can consume a fraction of a gigawatt all on their own. + +\subsection{Operational concerns} +\subsubsection{Modelling the electrical grid} + +Modelling performs an important role in the engineering of a reliable power infrastructure. The grid is a complex, +highly dynamic system. To maintain operational parameters such as voltage, grid frequency and currents inside their +specified ranges complex control systems are necessary. To design and parametrize such control systems simulations are a +valuable tool. Using model calculations the effects of control systems on operational variables such as transmission +efficiency or generation losses can be estimated. Model simulations can be used to identify structural issues such as +potential points of congestion. The same models can then be used to engineer solutions to such issues, e.g.\ by +simulating the effect of a new transmission line. + +There are several aspects under which the grid or parts of the grid can be simulated. There are static analysis methods +such as modal analysis that yield information on problematic electromechanical oscillations by computing the eigenvalues +of a large system of differential equations describing the collective behavior of all components of the grid. Modal +analysis is one example of simulations used in grid planning. Modal analysis is used in decisions to install additional +stabilization systems in a particular location. In contrast to static analysis, transient simulations calculate an +approximation of the time-domain behavior of some variable of interest under a given model. Transient simulations are +used e.g.\ in the design of control systems. Finally, power flow equations describe the flow of electrical energy +throughout the network from generator to load. Numerical solutions these equations are used to optimize control +parameters to increase overall efficiency. + +% TODO decide what of this to keep. +% \subsubsection{Generator controls} +% \subsubsection{Load shedding} +% \subsubsection{System stability} +% \subsubsection{Power System Stabilizers} + +\section{Smart meter technology} + +Smart meters were a concept pushed by utility companies throughout the early 21st century. Smart metering is one component of the +larger societal shift towards digitally interconnected technology. Old analog meters required that service personnel +physically come to read the meter. \emph{Smart} meters automatically transmit their readings through modern +technologies. Utility companies were very interested in this move not only because of the cost savings for meter reading +personnel: An always-connected meter also allows several entirely new use cases that have not been possible before. One +often-cited one is utilizing the new high-resolution load data to improve load forecasting to allow for greater +generation efficiency. Computerizing the meter also allows for new fee models where electricity cost is no longer fixed +over time but adapts to market conditions. Models such as prepayment electricity plans where the customer is +automatically disconnected until they pay their bill are significantly aided by a fully electronic system that can be +controlled and monitored remotely\cite{anderson02}. A remotely controllable disconnect switch can also be used to coerce +customers in situations where that was not previously economically possible\footnote{ + The Swiss association of electrical utility companies in Section 7.2 Paragraph (2)a of their 2010 white paper on the + introduction of smart metering\cite{vseaes01} cynically writes that remotely controllable disconnect switches ``lead + a new tenant to swiftly register'' with the utility company. This white paper completely vanished from their website + some time after publication, but the internet archive has a copy. +}. Figure \ref{fig_smgw_schema} shows a schema of a smart metering installation in a typical household\cite{stuber01}. + +\begin{figure} + \centering + \includegraphics[width=\textwidth]{resources/smgw_usage_scenario} + \vspace*{1cm} + \caption{A typical usage scenario of a smart metering system in a typical home. This diagram shows a gateway + connected to multiple smart meters through its local metrological network (LMN) and a multitude of devices on the + customer's home area network (HAN). A solar inverter and an electric car are connected through a controllable local + systems (CLS) adaptor.} + \label{fig_smgw_schema} +\end{figure} + +To the customer the utility of a smart meter is largely limited to the convenience of being able to read it without +going to their basement. In the long term it is said that there will be second-order savings to the customer since +electricity prices adapting to the market situation along with this convenience will lead them to consume less +electricity and to consume it in a way that is more amenable to utilities, both leading to reduced +cost\cite{borlase01,bmwi03,anderson02}. + +Traditional Ferraris counters with their distinctive rotating aluminum disc are simple electromechanical devices. Since +they do not include any semiconductors or other high technology that might be prone to failure a cheap Ferraris-style +meter can last decades. In contrast to this, smart meters are complex high technology. They are vastly more expensive to +develop in the first place since they require the development and integration of large amounts of complex, custom +firmware. Once deployed, their lifetime is limited by this complexity. Complex semiconductor devices tend to fail, and +firmware that needs to communicate with the outside world tends to not age well\cite{borkar01}. This combination of +higher unit cost and lower expected lifetime leads to increased costs per household. This cost is usually shared between +utility and customer. + +As part of its smart metering rollout the German government in 2013 had a study conducted on the economies of smart +meter installations. This study came to the conclusion that for the majority of households computerizing an existing +Ferraris meter is uneconomical. For larger consumers or new installations the higher cost of installation over time is +expected to be offset by the resulting savings in electricity cost\cite{bmwi03}. + +\subsection{Smart metering and Human-Computer Interaction} + +A fundamental aspect in realizing many of the cost and energy savings promised by the smart metering revolution is that +it requires a paradigm shift in consumer interaction. Previously most consumers would only confront their energy use +when they receive their monthly or yearly electricity bill. A large part of the cost savings smart meters promise over +traditional metering infrastructure\footnote{ We are excluding savings from Demand-Side Response (DSR) implemented +through smart meters here: Traditional ripple control systems already allowed for these\cite{dzung01}, and due to the +added cost of high-power relays many smart meters do not include such features. } critically depend on the consumer +regularly interacting with the meter through an in-home display or app, then changing their behavior. We live in an era +where our attention is already highly contested. A myriad of apps and platforms compete for our attention through our +smart phones and other devices. Introducing an entirely new service exerting cognitive pressure into this already +complex battleground is a large endeavour. On the one hand it is not clear how this new service would compete with +everything else. On the other hand if it does manage to capture our attention and lead us to modify our behavior, what +are the side effects? For instance an in-home display might increase financial anxiety in economically disadvantaged +customers. + +Human Computer Interaction research has touched the topic of smart metering several times and has many insights to offer +for technologists\cite{pierce01,rodden01,lupton01,costanza01,fell01}. An issue pointed out in \cite{rodden01} is that at +least in some countries consumers fundamentally distrust their utility companies. This trust issue is exacerbated by +smart meters being unilaterally forced onto consumers by utility companies. Much of the success of smart metering's +ubiquitous promises of energy savings depends on consumer coöperation. Here, the aforementioned trust issue calls into +question smart metering's chances of long-term success. + +As \cite{pierce01} pointed out smart metering developments could benefit greatly from early involvement of HCI research. +A systematic analysis of non-technical aspects can prevent issues such as privacy implications initially being +overlooked in the dutch deployment\cite{cuijpers01}. It is not clear that current standardization practice encompasses +an in-depth consideration of the role of consumers in the socio-technological environment posed by this new technology. +Standardization is often narrowly focused on technological aspects with little input beyond the occassional public +consultation at the time the new standards are being implemented into law. This corporate-driven approach to +technological progress being forced through national standardization bears a risk of failing to meet its advertised +consumer benefits. + +\subsection{Common components} +\label{sm-cpu} + +Smart meters usually are built around an off-the-shelf microcontroller (microcontroller unit, MCU). Some meters use +specialized smart metering system-on-chips (SoCs)\cite{ifixit01} while others use standard microcontrollers with core +metering functions implemented in external circuitry (cf.\ Section \ref{sec-easymeter} where we detail the meter in our +demonstration setup). Specialized SoCs usually contain a segment LCD driver along with some high-resolution +analog-to-digital converters for the actual measurement functions. In many smart meter designs the metering SoC is +connected to another full-featured SoC acting as the modem. At a casual glance this might seem to be a security measure, +but it is be more likely that this is done to ease integration of one metering platform with several different +communication stacks (e.g.\ proprietary sub-gigahertz wireless, power line communication (PLC) or Ethernet). In these +architectures there is a clear line of functional demarcation between the metering SoC and the modem. As evidenced by +over-the-air software update functionality (see e.g.\ \cite{honeywell01}) this does not however extend to an actual +security boundary. + +Energy usage is calculated by measuring both voltage and current at high resolution and then integrating the +measurements. Current measurements are usually made with either a current transformer or a shunt in a four-wire +configuration. Voltage is measured by dividing input AC down with a resistor chain. Both are integrated digitally using +the MCU's time base as a reference. + +Whereas legacy electromechanical energy meters only provided a display of aggregate energy use through a decimal counter +as well as an indirect indication of power through a rotating wheel one of the selling points of smart meters is their +ability to calculate advanced statistics on energy use. These statistics are supposed to help customers better target +energy conservation measures\cite{bmwi03}. + +Smart meters can perform additional functions in addition to pure measurement and data aggregation. One is to serve as a +gateway between the utility company's control systems and large controllable loads in the consumer's household for +Demand-Side Management (DSM)\cite{borlase01}. In DSM the utility company can control when exactly a high-power device +such as a water storage heater is switched on. To the customer the precise timing does not matter since the storage +heater is set so that it has enough hot water in its reservoir at all times. The utility company however can use this +degree of control to reduce load variations during peak times. The efficiency gains realized with this system translate +into lower electricity prices for DSM-enabled loads for the customer. Traditionally DSM was realized on a local level +using ripple control systems. In ripple control control data is coded by modulating a carrier at a low frequency such as +\SI{400}{\hertz} on top of the regular mains voltage. These systems require high-power transmitters at tens of kilowatts +and still can only bridge regional distances\cite{dzung01}. + +Another important additional function is that some smart meters can be used to remotely disconnect consumer households +with outstanding bills. Using euphemisms such as \emph{utility revenue protection}\cite{kamstrup01} or \emph{reducing +nontechnical losses}\cite{brown01} while cynically claiming \emph{Consumer Empowerment}\cite{kamstrup01} these systems +allow an utility company to remotely disconnect a customer at any time\cite{anderson01}. Whereas before smart metering +this required either additional hardware or an expensive site visit by a qualified technician smart meters have ushered +in an era of frictionless control\footnote{ Note that in some countries such as the UK non-networked mechanical +prepayment meters did exist. In such systems the user inserts coins into a coin slot that activates a disconnect switch +at the household's main electricity connection. These systems were non-networked and did not allow for remote control. +A disadvantage of such systems compared to modern \emph{smart} systems are the high cost of the coin acceptor and the +overhead of site visits required to empty the coin box\cite{anderson02}. }. + +\subsection{Cryptographic coprocessors} + +Just like in legacy electricity meters in smart meters physical security is still a key component of the overall system +design. Since in both types of meter cost depends on physical quantities being measured at the customer premises +customers can save cost in case they are able to falsify the meter's measurements without being +detected\cite{anderson02}. For this reason both types of meters employ countermeasures against physical intrusion. +Compared to high-risk devices such as card payment processing terminals or ATMs the tamper proofing used in smart meters +is only basic\cite{anderson02}. Common measures include sealing the case by irreversibly ultrasonically welding the +front and back plastic shells together or the use of security seals on the lid covering the input and output screw +terminals. The common low-tech attack of using magnets to saturate the current transformer's ferrite cores is detected +using hall sensors\cite{anderson02,anderson03,itron01,hager01,easymeter01}. German smart metering standards specify the +use of a smartcard-like security module to provide transport encryption and other cryptographic +services\cite{bsi-tr-03109-2,bsi-tr-03109-2-a}. During our literature review we did not find many references to similar +requirements in other national standards, though this does not mean that individual manufacturers do not use smartcards +for engineering reasons or due to pressure from utilities. The limited documentation on meter internals that we did find +such as \cite{ifixit01,bigclive01,eevblog01} suggests where no such regulation exists manufacturers and utilities likely +choose to forego such advanced measures and instead settle on simple software implementations. + +\subsection{Physical structure and installation} + +Smart meters are installed like traditional electricity meters. In Japan this means they are usually installed on an +exterior wall and need to be resistant against weather and extreme environmental conditions (direct sunlight, high +temperature, high humidity). In Germany the meter is always installed either indoors or in an outdoor utility closet +that is sealed to keep out the weather. In most countries the meter is connected through large integrated screw +terminals. In the US meters compliant with the domestic ANSI C12 standard are round and plug into a large socket that is +wired into the house or apartment's electrical connection. + +Modern smart meters are usually made with plastic cases. Ferraris meters often used cases stamped from sheet metal with +glass windows on them. Smart meters now look much more like other modern electronic devices. A common construction style +is to separate the case into front and back halves with both clipped or ultrasonically welded together. Ultrasonic +welding gives a robust, airtight interface that cannot easily be separated and reconnected without leaving visible +traces, which helps with tamper evidence properties. As an industry-standard process common in various consumer goods +ultrasonic welding is a cheap and accessible technology\cite{easymeter01,ifixit01}. + +Communication interfaces sometimes are brought out through regular electromechanical connectors but often also are +optical interfaces. A popular style here is to use a regular UART connected to an LED/phototransistor optocoupler +mounted on the side of the case. The user interface is usually limited to an LCD display. For cost and ingress +protection smart meters rarely use mechanical buttons. Some smart meters use a phototransistor mounted behind the +faceplate that can be activated with a flashlight as a crude contact-less input device\cite{easymeter01}. + +All meters provide several options for security seals to be installed to detect opening of the meter or access to its +terminal block. The shape and type of these security seals varies. Factory-installed seals are used to detect tampering +of the meter itself while seals made by the utility during meter installation are used to guard the meter's terminal +block and detect attempts at by-passing\cite{czechowski01}. + +\section{Regulatory frameworks around the world} + +Smart metering regulation varies from country to country as it is tightly coupled to the overall regulation of the +electrical grid. The standardization of the physical form factor and metrological parameters of a meter is usually +separate from the standardization of its \emph{smart} functionality. Most countries base the standard for their meters' +outwards-facing communication interface on a family of standards unified under the IEC as DLMS/COSEM. Employing this +base protocol ountry-specific standardization only covers which precise variant of it is spoken and what features are +supported. + +\subsection{International standards} + +The family of standards one encounters most in smart metering applications are IEC 62056 specifying the Device Language +Message Specification (DLMS) and the Companion Specification for Electronic Metering (COSEM). DLMS/COSEM are +application-layer standards describing a request/response schema similar to HTTP. DLMS/COSEM are mapped onto a +multitude of wire protocols. They can be spoken over TCP/IP or mapped onto low-speed UART serial interfaces +\cite{sato01,stuber01}. Besides DLMS/COSEM there are a multitude of standards usually specifying how DLMS/COSEM are to +be applied. + +DLMS/COSEM show some amount of feature creep. They do not adhere to the age-old systems design adage that a tool should +\emph{do one thing and do it well}. Instead they try to capture the convex hull of all possible applications. This led +to a complicated design that requires extensive additional specification and testing to maintain interoperability. In +particular in the area of transport security it becomes evident that the IEC as an electrical engineering standards body +stretched their area of expertise where resorting to established standard protocols would have led to a better +outcome\cite{weith01}. Compared to industry-standard transport security the IEC standards provide a simplistic key +management framework based on a static shared key with unlimited lifetime and provide sub-optimal transport security +properties (e.g.\ lack of forward-secrecy)\cite{khurana01,sato01}. + +\subsection{The regulatory situation in selected countries} + +In this section we will give an overview of the situation in a number of countries. This list of countries is not +representative and notably does not include any developing countries and is geographically biased. We selected these +countries for illustration only and based our selection in a large part on the availability of information in a language +we can read. We will conclude this section with a summary of common themes. + +\subsubsection{Germany} + +Germany standardized smart metering on a national level. Apart from the calibration standards applying to any type of +meter smart meters are covered by a set of communications and security standards developed by the German Federal Office +for Information Security (BSI). Germany mandates smart meter installations for newly constructed buildings and during +major renovations but does not require most legacy residential installations to be upgraded. This is a consequence of a +2013 cost-benefit analysis that found these upgrades to be uneconomical for the majority of residential +customers\cite{bmwi03,bmwi1,bmwe01,brown01}. + +The German standards strictly separate between metering and communication functions. Both are split into separate +devices, the \emph{meter} and the \emph{gateway} (called \emph{smart meter gateway} in full and often abbreviated +\emph{SMGW}). One or several meters connect to a gateway through a COSEM-derived protocol. The communication interface +between meter and gateway can optionally be physically unidirectional. An unidirectional interface eliminates any +possibility of meter firmware compromise. The gateway contains a cryptographic security module similar to a +smartcard\cite{mahlknecht01} that is entrusted with signing of measurements and maintaining an authenticated and +encrypted communication channel with its authorities. Security of the system is certified according to a Common Criteria +process. + +The German specification does not include any support for disconnect switches as they are common in some other countries +outside of demand-side management. It only does not prohibit the installation of one behind the smart meter +installation. This makes it theoretically possible for a utility company to still install a disconnect switch to +disconnect a customer, but this would be a spearate installation from the smart meter. In Germany there are significant +barriers that have to be met before a utility company may cut power to a household\cite{delaw01}. The elision of a +disconnect switch means attacks on German meters will be limited in influence to billing irregularities and attacks +using DSM equipment such as water storage heaters that represent only a fraction of overall load. + +\subsubsection{The Netherlands} +The Netherlands were early to take initiative to roll out smart metering after its recognition by the European +Commission in 2006\cite{cuijpers01,ec04}. After overcoming political issuses the Netherlands were above the European +median in 2018, having replaced almost half of all meters\cite{cuijpers01,ec03}. Dutch smart meters are standardized by +a consortium of distribution system operators. They integrate gateway and metrology functions into one device. The +utility-facing interface is a IEC DLMS/COSEM-based interface over cellular radio such as GPRS or LTE\cite{aubel01}. Like +e.g.\ the German standard, the Dutch standard precisely specifies all communication interfaces of the +meter\cite{dsmrp3}. Another parallel is that the Dutch standard also does not cover any functionality for remotely +disconnecting a household. This absence of a disconnect switch limits attacks on Dutch smart meters, too to causing +billing irregularities. + +\subsubsection{The UK} + +The UK is currently undergoing a smart metering rollout. Meters in the UK are nationally standardized to provide both +Zigbee ZSE-based and IEC DLMS/COSEM connectivity. UK smart metering specifications are shared between electrical and gas +meters. Different to other countries' specifications the UK national specifications require electrical meters to have an +integrated disconnect switch and gas meters to have an integrated valve. In Northern Ireland most consumers use prepaid +electricity contracts\cite{anderson02}. Prepayment and credit functionality are also specified in the UK's national +smart metering standard, as is remote firmware update functionality\cite{ukgov02}. Outside communications in these +standards is performed through a gateway (there called \emph{communications hub}) that can be shared between several +meters \cite{ukgov01,ukgov02,ukgov03,brown01,sato01}. The combination of both gas and electricity metering into one +family of standards and the exceptionally large set of \emph{required} features make the UK regulations the maximalist +option among the regulations in this section. The mandatory inclusion of both disconnect switches and remote +connectivity up to remote firmware update make it an interesting attack target\cite{anderson01}. + +\subsubsection{Italy} + +Italy was among the first countries to legally mandate the widespread installation of smart meters in households. Italy +in 2006 and 2007 by law set a starting date for the rollout in 2008\cite{brown01}. The Italian electricity market was +recently privatized. While the wholesale market and transmission network privatization has advanced the vast majority of +retail customers continued to use the incumbent distribution system operator ENEL as their supplier\cite{ec03}. This +dominant position allowed ENEL to orchestrate the large-scale rollout of smart meters in Italy. Almost every meter in +Italy had been replaced by a smart meter by 2018\cite{ec03}. An unique feature of the Italian smart metering +infrastructure is that it relies on Power Line Communication (PLC) to bridge distances between meters and cellular radio +gateways\cite{gungor01}. + +\subsubsection{Japan} + +Japan is currently rolling out smart metering infrastructure. Compared to other countries in Japan significant +standardization effort has been spent on smart home integration\cite{usitc01,sato01,brown01}. Japan has domestic +standards under its Japanese Industrial Standards organization (JIS) that determine metrology and physical dimensions. +Tokyo utility company TEPCO is currently rolling out a deployment that is based on the IEC DLMS/COSEM standards suite +for remote meter reading in conjuction with the Japanese ECHONET home-area network protocol. Smart meters are +connected to TEPCO's backend systems through the customer's internet connection, sub-gigahertz radio based on 802.15.4 +framing, regular landline internet or PLC\cite{toshiba01,sato01}. + +A unique point in the Japanese utility metering landscape is that the current practice is monthly manual readings. In +Japan residential utility meters are usually mounted outside the building on an exterior wall and every month someone +with a mirror on a long stick will come and read the meter. The meter reader then makes a thermal paper print-out of the +updated utility bill and puts it into the resident's post box. This practice gives consumers good control over their +consumption but does incur significant personnel overhead. + +\subsubsection{The USA} + +In the USA the rollout of smart meters has been promoted by law as early as 2005. The US electricity market is highly +complex with states having significant authority to decide on their own policies\cite{brown01}. Originally different +from the IEC standards used in large fraction of the rest of the world the USA developed their own domestic set of +standards for smart meters under the Americal National Standards Institute (ANSI)\cite{sato01}. Today ANSI is converging +with the IEC on the protcol layer. An obvious feature of ANSI-standard meters is that they are round and plug into a +wall-mounted socket while IEC devices are usually rectangular and connected directly to the mains wiring through large +screw terminals\cite{ifixit01}. + +\subsection{Common themes} + +Researching the current situation around the world for the above sections we were able to distill some common themes. +First, smart metering is slowly advancing on a global scale and despite significant reservations from privacy-conscious +people and consumer advocates it seems it is here to stay. Still, there are some notable exceptions of countries that +have decided to scale-back an ongoing rollout effort after subsequent analysis showed economical or other +issues\footnote{cf.\ the Netherlands and Germany}. + +\subsubsection{The introduction of smart metering} + +The smart meter rollout is largely driven by utility companies. Utility companies field a variety of arguments for the +rollout. The most prominent argument is a general increase in energy-efficiency along with a reduction of emissions. +This argument is based on the estimation that smart metering will increase private customers' awareness of their own +consumption and this will lead them to reduce their consumption. The second highly popular argument for smart metering +is that it is necessary for the widespread adoption of renewable energies. This argument again builds on the trend +towards green energy to rationalize smart metering. Interestingly this argument is often formulated as an inevitability +instead of a choice. + +Academic reception of smart metering is dyed with an almost unanimous enthusiasm. In particular smart meter +communication infrastructure has received a large amount of research +attention\cite{dzung01,gungor01,kabalci01,lloret01,mahmood01,yan01,anderson01,anderson02}. Outside of human-computer +interaction claims that smart meters will reduce customer energy consumption have often been uncritically accepted. + +\subsubsection{Standardization and reality of smart devices} + +Regulators, utilities and academics meet in their enthusiasm on the issue of smart home integration of smart metering. A +feature of many concepts is that the meter acts as the centerpiece of a modern, fully integrated smart +home\cite{aubel01,geelen01,bsi-tr-03109-1,abdallah01}. The smart meter serves as a communication hub between a new class +of grid-aware loads and the utility company's control center. Large (usually thermal) loads such as dishwashers, +refrigerators and air conditioners are expected to intelligently adapt their heating/cooling cycles to better match +the grid's supply. A frequent scenario is one in which the meter bills the customer using near-real time pricing, and +supplies large loads in the customer's household with this pricing information. These loads then intelligently schedule +their operation to minimize cost\cite{sato01}. At the time between 2000 and 2005 when smart metering proposals were +first advanced this vision might have been an effect of the \emph{law of the instrument}\cite{kaplan01,anderson02}. Back +then outside of specialty applications household devices were not usually networked\cite{merz01}. Smart meters at the +time may have seemed to be the obvious choice for a smart home communications hub. + +From today's perspective, this idea is obviously outdated. Smart \emph{things} now have found their way into many homes. +Only these things are directly interconnected through the internet--foregoing the home-area network (HAN) technologies +anticipated by smart metering pioneers. The simple reason for this is that nowadays anyone has Wifi, and Wifi +transceivers have become inexpensive enough to disappear in the bill of materials (BOM) cost of a large home device such +as a washing machine. Smart meters are usually situated in the basement--physically far away from most of one's devices. +This makes connecting them to said devices awkward and connecting them via the local Wifi lends the question why the +smart devices should not simply use the internet directly. + +Connecting things to a smart meter through a local bus is academically appealing. It promises cost-savings from a +simpler physical layer (such as ZigBee instead of Wifi) and it neatly separates concerns into home infrastructure and +the regular internet. Communication between smart meter and devices never leaves the house. This promises tolerance to +utility backend systems breaking. It also physically keeps communication inside the house, bypassing the utility's eyes +improving both customer privacy and agency. The presently popular model of a device as simple as a light bulb proxying +its every action through a manufacturer's servers somewhere on the public internet is in stark contrast to this +scenario. Alas, the reason that this model is as popular is that in most cases it simply works. Device manufacturers +integrate one of many off-the-shelf Wifi modules. The resulting device will work anywhere on earth\footnote{For some +places channel assignments may have to be updated. This is a configuration-level change and in some devices can be done +by the end-user during provisioning.}. A HAN-connected device would have several variants with different modems for +different standards. Some might work across countries, but some might not. And in some countries there might not even be +a standard for smart grid HANs. + +Looking at the situation like this begs the question why this realization has not yet found its way into mainstream +acceptance by smart metering implementors. The customer-facing functionality promised through smart meters would be +simple to implement as part of a now-standard \emph{Internet of Things} application. An in-home display that shows +real time energy consumption and cost statistics would simply be an Android tablet fetching summarized data from the +utility's billing backend. Custom hardware for this purposes seems anachronistic today. Demand-side response by large +loads would be as simple as an HTTPS request with a token identifying the customer's contract that returns the +electricity price the meter is currently charging along with a recommendation to switch on or off. It seems the smart +home has already arrived while smart metering is still getting off the starting blocks\cite{anderson02}. +% TODO is this too critical? Is maybe the modern smart home compatible with smart meters? Is maybe the local-only path +% of data, avoiding utility clouds a design feature? (may be true in DE, NL, probably not anywhere else) + +\section{Security in smart distribution grids} + +The smart grid in practice is nothing more or less than an aggregation of embedded control and measurement devices that +are part of a large control system. This implies that all the same security concerns that apply to embedded systems in +general also apply to most components of a smart grid. Where programmers have been struggling for decades now with input +validation\cite{leveson01}, the same potential issue raises security concerns in smart grid scenarios as well\cite{mo01, +lee01}. Only, in smart grid we have two complicating factors present: Many components are embedded systems, and as such +inherently hard to update. Also, the smart grid and its control algorithms act as a large (partially-)distributed +system making problems such as input validation or authentication harder\cite{blaze01} and adding a host of distributed +systems problems on top\cite{lamport01}. + +Given that the electrical grid is essential infrastructure in our modern civilization, these problems amount to +significant issues in practice. Attacks on the electrical grid may have grave consequences\cite{anderson01,lee01} while +the long maintenance cycles of various components make the system slow to adapt. Thus, components for the smart grid +need to be built to a much higher standard of security than most consumer devices to ensure they live up to well-funded +attackers even decades down the road. This requirement intensifies the challenges of embedded security and distributed +systems security among others that are inherent in any modern complex technological system. The safety-critical nature +of the modern smart metering ecosystem in particular was quickly recognized by security experts\cite{anderson01}. + +A point we will not consider in much depth in this work is theft of electricity. An incentive for the introduction of +smart metering that is frequently cited in utility industry publications outside of a general public's view is the +reduction of electricity theft\cite{czechowski01}. Academic publications tend to either focus on other benefits such as +generation efficiency gains through better forecasting or rationalize the consumer-unfriendly aspects of smart metering +with ``enormous social benefits''\cite{mcdaniel01}. They do not usually point out the economical incentive such +\emph{revenue protection} mechanisms provide\cite{anderson01,anderson02}. + +\subsection{Privacy in the smart grid} + +A serious issue in smart metering setups is customer privacy. Even though the meter ``only'' collects aggregate energy +consumption of a whole household this data is highly sensitive\cite{markham01}. This counterintuitive fact was initially +overlooked in smart meter deployments leading to outrage, delays and reduced features\cite{cuijpers01}. The root cause +of this problem is that given sufficient timing resolution these aggregate measurements contain ample entropy. Through +disaggregation algorithms individual loads can be identified and through pattern matching even complex usage patterns +can be discerned with alarming accuracy\cite{greveler01}. Similar privacy issues arise in many other areas of modern +life through pervasive tracking and surveillance\cite{zuboff01}. What makes the case of smart metering worse is that +even the fig leaf of consent such practices often hide behind does not apply here. If a citizen does not consent to +Google's privacy policy Google says they can choose not to use their service. In today's world this may not be a free +choice thereby invalidating this argument but it is at least technically possible. Smart metering on the other hand is +mandated by law and depending on the law a customer unwilling to accept the accompanying privacy violation may not be +able to evade it\cite{bmwi04}. + +\subsection{Smart grid components as embedded devices} + +A fundamental challenge in smart grid implementations is the central role smart electricity meters play. Smart meters +are used both for highly-granular load measurement and (in some countries) load switching\cite{zheng01}. Smart +electricity meters are effectively consumer devices. They are built down to a certain price point that is measured by +the burden it puts on consumers. The cost of a smart meter is ultimately limited by it being a major factor in the +economies of a smart meter rollout\cite{bmwi03}. Cost requirements preclude some hardware features such as the use of a +standard hardened software environment on a high powered embedded system (such as a hypervirtualized embedded linux +setup) that would both increase resilience against attacks and simplify updates. Combined with the small market sizes in +smart grid deploymentsthis results in a high cost pressure on the software development process for smart electricity +meters. Most vendors of smart electricity meters only serve a handful of markets. A large fraction of smart meter +development cost lies in the meter's software. Landis+Gyr, a large manufacturer that makes most of its revenue from +utility meters in their 2019 annual report write that they \SI{36}{\percent} of their total R\&D budget on embedded +software (firmware) while spending only \SI{24}{\percent} on hardware R\&D\cite{landisgyr01,landisgyr02}. There exist +multiple competing standards applicable to various parts of a smart electricity meter and most countries have their own +certification regimen\cite{cenelec01}. This complexity creates a large development burden for new market +entrants\cite{perez01}. + +\subsection{The state of the art in embedded security} + +Embedded software security generally is much harder than security of higher-level systems. This is due to a combination +of the unique constraints of embedded devices: Among others they are hard to update and usually produced in small +quantities. They also lack capabilities compared to full computers. Processing power is limited and memory protection +functions are spartan. Even well-funded companies continue to have trouble securing their embedded +systems. A spectacular example of this difficulty is the recently-exposed flaw in Apple's iPhone SoC first-stage ROM +bootloader\footnote{ + Modern system-on-chips integrate one or several CPUs with a multitude of peripherals, from memory and DMA + controllers over 3D graphics accelerators down to general-purpose IO modules for controlling things like indicator + LEDs. Most SoCs boot from one of several boot devices such as flash memory, Ethernet or USB according to a + configuration set by pin-strapping configuration IOs or through write-only fuse bits. + + Physically, one of the processing cores of the SoC (usually one of the main CPU cores) is connected such that it is + taken out of reset before all other devices, and is tasked with enabling and configuring all other peripherals of + the SoC. In order to run later intialization code or more advanced bootloaders, this core on startup runs a very + small piece of code hard-burned into the SoC in the factory. This ROM loader initializes the most basic peripherals + such as internal SRAM memory and selects a boot device for the next bootloader stage. + + Apple's ROM loader measures only a few hundred bytes. It performs authorization checks to ensure only software + authorized by Apple is booted. The present flaw allows an attacker to circumvent these checks and boot their own + code on a USB-connected iPhone. This compromises Apple's chain of trust from ROM loader to userland right at its + root. Since this is a flaw in the factory-programmed first stage read-only boot code of the SoC it cannot be patched + in the field. +}, that allows a full compromise of any iPhone before the iPhone X. iPhone 8, one of the affected models, was still +being manufactured and sold by Apple until April 2020. In another instance in 2016 researchers found multiple flaws in +the secure-world firmware used by Samsung in their mobile phone SoCs. The flaws they found were both severe +architectural flaws such as secret user input being passed through untrusted userspace processes without any protection +and shocking cryptographic flaws such as +CVE-2016-1919\footnote{\url{http://cve.circl.lu/cve/CVE-2016-1919}}\cite{kanonov01}. And Samsung is not the only large +multinational corporation having trouble securing their secure world firmware implementation. In 2014 researchers found +an embarrassing integer overflow flaw in the low-level code handling untrusted input in Qualcomm's QSEE +firmware\cite{rosenberg01}. For an overview of ARM TrustZone including a survey of academic work and past security +vulnerabilities of TrustZone-based firmware see \cite{pinto01}. + +For their mass-market phones these companies have R\&D budgets that dwarf some countries' national budgets. If even +they have trouble securing their secure embedded software stacks, what is a smart meter manufacturer to do? If a +standard as in case of the German one requires IP gateways to speak TLS, a protocol that is notoriously tricky to +implement correctly\cite{georgiev01}, the manufacturer is short on options to secure their product. + +Since thorough formal verification of code is not yet within reach for either large-scale software development or code +heavy in side-effects such as embedded firmware or industrial control software\cite{pariente01} the two most effective +measures for embedded security are reducing the amount of code on one hand, and labor-intensively reviewing and testing +this code on the other hand. A smart meter manufacturer does not have a say in the former since it is bound by the +official regulations it has to comply with, and will likely not have sufficient resources for the latter. We are left +with an impasse: Manufacturers in this field likely do not have the security resources to keep up with complex standards +requirements. At the same time they have no option to reduce the scope of their implementation to alleviate the burden +on firmware security. + +\subsection{Attack avenues in the smart grid} + +If we model the smart grid as a control system responding to changes in inputs by regulating outputs, on a very high +level we can see two general categories of attacks: Attacks that directly change the state of the outputs, and attacks +that try to influence the outputs indirectly by changing the system's view of its inputs. The former would be an attack +such as shutting down a power plant to decrease generation capacity\cite{lee01}. The latter would be an attack such as +forging grid frequency measurements where they enter a power plant's control systems to provoke the control systems to +oscillate\cite{kosut01,wu01,kim01}. + +\subsubsection{Communication channel attacks} + +Communication channel attacks are attacks on the communication links between smart grid components. This could be +attacks on IP-connected parts of the core network or attacks on shared busses between smart meters and IP gateways in +substations. Generally, these attacks can be mitigated by securing the aforementioned communication links using modern +cryptography. IP links can be protected using TLS, and more low-level busses can be protected using more lightweight +Noise\cite{perrin01}-based protocols. + +Cryptographic security transforms an attackers ability to read and manipulate communication contents into a mere denial +of service attack. Thus, in addition to cryptographic security safety under DoS conditions must be ensured for continued +system performance under attacks. This safety property is identical with the safety required to withstand random outages +of components, such as communication link outages due to physical damage from storms, flooding etc\cite{sato01}. In +general attacks at the meter level are hard to weaponize. Meters primarily serve billing purposes. The use of smart +meter data for load forecasting is not yet common practice. Once it is this data will only be used to refine existing +forecasting models that are based on aggregate data collected at higher vantage points in the distribution grid. This +combination of smart metering data with more trusted aggregate data from sensors within the grid infrastructure limits +the potential impact of a data falsification attack on smart meters. It also allows the utility to identify potentially +corrupt meter readings and thus detect manipulation above a certain threshold. In order for an attack to have more +far-reaching consequences the attacker would need to compromise additional grid infrastructure\cite{kim01,kosut01}. + +\subsubsection{Exploiting centralized control systems} + +The type of smart grid attack most often cited in popular discourse, and to the author's knowledge the only type that +has so far been carried out in practice, is a direct attack on centralized control systems. In this attack, computer +components of control systems are compromised by the same techniques used to compromise any other kind of computer +system such as spearfishing, exploiting insecure services running on internet-exposed ports and using one compromised +system to compromise other systems on the same ostensably secure internal network. These attacks are very powerful as +they yield the attacker direct control over whatever outputs the compromised control systems are controlling. If an +attacker manages to compromise the right set of control computers, they may even be able to cause physical +damage\cite{lee01}. + +Despite their potentially large impact, these attacks are only moderately interesting from a scientific perspective. For +one, their mitigation mostly consists of a straightforward application of decades-old security best practices. Though +there is room for the implementation of genuinely new, power systems-specific security systems in this field, the general +state of the art is lacking behind other fields of embedded security. From this background low-hanging fruit should take +priority\cite{heise02}. Given political will these systems can readily be fortified. There is only a comparatively +small number of them and having a technician drive to every one of them in turn to install a firmware security update is +feasible. + +\subsubsection{Control function exploits} + +Control function exploits are attacks on the mathematical control loops used by the centralized control system. One +example of this type of attack are resonance attacks as described in \cite{wu01}. In this kind of attack, inputs from +peripheral sensors indicating grid load to the centralized control system are carefully modified to cause a +disproportionately large oscillation in control system action. This type of attack relies on complex resonance effects +that arise when mechanical generators are electrically coupled. These resonances, colloquially called ``modes'', are +well-studied in power system engineering\cite{rogers01,grebe01,entsoe01,crastan03}. Even disregarding modern attack +scenarios, for stability electrical grids are designed with measures in place to dampen any resonances inherent to grid +structure. These resonances are hard to analyze since they require an accurate grid model and they are unlikely to be +noticed under normal operating conditions. + +Mitigation of these attacks can be achieved by ensuring unmodified sensor inputs to the control systems in the first +place. Carefully designing control systems not to exhibit exploitable behavior such as oscillations is also possible but +harder. + +\subsubsection{Endpoint exploits} + +The one to us rather interesting attack on smart grid systems is someone exploiting the grid's endpoint devices such as +smart electricity meters. These meters are deployed on a massive scale, with at least one meter per household on +average\footnote{Households rarely share a meter but some households may have a separate meter for detached properties +such as a detached garage or basement.}. Once compromised, restoration to an uncompromised state can be difficult if it +requires physical access to thousands of devices in hard-to-access locations. + +By compromising smart electricity meters, an attacker can forge the distributed energy measurements these devices +perform. In a best-case scenario, this might only affect billing and lead to customers being under- or over-charged if +the attack is not noticed in time. In a less ideal scenario falsified energy measurements reported by these devices +could impede the correct operation of centralized control systems. + +In some countries such as the UK smart meters have one additional function that is highly useful to an attacker: They +contain high-current disconnect switches to disconnect the entire household or business in case electricity bills are +left unpaid for a certain period. In countries that use these kinds of systems on a widespread level, the load +disconnect switch is controlled by the smart meter's central microcontroller. This allows anyone compromising this +microcontroller's firmware to actuate the disconnect switch at will. Given control over a large number of +network-connected smart meters, an attacker might thus be able to cause large-scale disruptions of power +consumption\cite{anderson01,temple01}. Combined with an attack method such as the resonance attack from \cite{wu01} +that was mentioned above, this scenario poses a serious threat to grid stability. + +In places where Demand-Side Management (DSM) is common this functionality may be abused in a similar way. In DSM the +smart metering system directly controls power to certain devices such as heaters. The utility can remotely control the +turn-on and turn-off of these devices to smoothen out the load curve. In exchange the customer is billed a lower price +for the energy consumed by these loads. DSM was traditionally done in a federated fashion usually through low-frequency +PLC over the distribution grid\cite{dzung01}. Smart metering systems no longer require large, resource-intensive +transmitters in substations and bear the potential for a rollout of such technology on a much wider scale than before. +This leads to a potentially significant role of DSM systems in the impact calculation of an attack on a smart metering +system. DSM does not control as much load capacity as remote disconnect switches do but the attacks cited in the above +paragraph still fundamentally apply. + +\subsection{Practical threats} + +As a highly integrated system the electrical grid is vulnerable to attacks from several angles. One way to classify +attacks is by their motivation. Along this axis we found the following motives: + +\begin{description} + \item[Service disruption.] An attack aimed at disrupting service could e.g.\ aim at causing a blackout. It could + also take aim in a more subtle way targeting a degradation of parameters such as power quality (voltage, + frequency and waveform). It could target a particular customer, geographic area or all parts of the grid. + Possible motivations range from a tennage hacker's boredom to actual cyberwar\cite{cleveland01,lee01}. + \item[Commercial disruption.] Simple commercial motives already motivate a wide variety of attacks on grid + infrastructure\cite{czechowski01}. Though generally mostly harmless from a cypersecurity point of view there are + instances where these attacks put the lives of both the attacker and bystanders at grave risk\cite{anderson01}. + Such attacks generally aim at the meter itself but a more sophisticated attacker might also target the + utility's backend computer bureaucracy. + \item[Data extraction.] The smart grid collects large amounts of data on both individual consumers and on an + aggregate level. The privacy risk in individual consumer's data is obvious. On the web + data collection practices ranging from questionable to flat-out illegal have widely proliferated for various + purposes including election manipulation\cite{heise03}. Assuming criminals in this field would eschew + fertile ground such as this due to legal or ethical concerns is optimistic. Taking the risk to individual + customer's data out of the equation even aggregate data is still highly attractive to some. Aggregate real-time + electricity usage data is a potential source on timely information on matters such as national social events + (through TV set energy consumption\cite{greveler01}) or the state of the economy. +\end{description} + +A factor to consider in all these cases is that one actor's attacks have the potential to weaken system security +overall. An attacker might add new backdoors to gain persistence or they might disable existing mitigations to enable +further steps of their attack. + +In this paper we will largely concentrate on attacks of the first type because they both have the most serious +consequences and the most motivated attackers. Attackers that may want to disrupt service include nation state's +cyberwar operations. This type of attacker is both highly skilled and highly funded. + +\subsection{Conclusion or, why we are doomed} + +We can conclude that a compromise of a large number of smart electricity meters cannot be ruled out. The complexity of +network-connected smart meter firmware makes it exceedingly unlikely that it is in fact flawless. Large-scale +deployments of these devices sometimes with disconnect relays make them an attractive target for attackers interested in +causing grid instability. The attacker model for these devices includes nation states, who have considerable resources +at their disposal. + +For a reasonable guarantee that no large-scale compromises of hard- and software built today will happen over a span of +some decades, we would have to radically simplify its design and limit attack surface. Unfortunately, the complexity of +smart electricity meter implementations mostly stems from the large list of requirements these devices have to conform +with. Alas, the standards have already been written, political will has been cast into law and changes that reduce scope +or functionality have become exceedingly unlikely at this point. + +A general observation with smart grid systems of any kind is that they comprise a departure from the federated +control structure of yesterday's ``dumb'' grid and the advent of centralization to an enormous scale. This modern, +centralized infrastructure has been carefully designed to defend against malicious actors and all involved parties have +an interest in keeping it secure but in centralized systems scaling attacks is inherently easier than in decentralized +systems\cite{anderson02}. An attacker can employ centralized control to their advantage. From this perspective the +centralization of smart metering control systems--sometimes up to a national level\cite{anderson01,anderson02}--poses a +security risk. + +\chapter{Restoring endpoint safety in an age of smart devices} + +As laid out in the previous section we cannot fully rule out a large-scale compromise of smart energy meters at some +point in the long-term future. Instead we have to rephrase our claim to security. We cannot rule out exploitation: We +have to limit its impact. Assuming that we cannot strip any functionality from smart meters all we can do is to flush +out an attacker once they are in. Mitigation replaces prevention. + +In a worst-case scenario an attacker would gain unconstrained code execution e.g.\ by exploiting a flaw in a network +protocol implentation. Smart meters use standard microcontrollers that do not have advanced memory protection functions +(cf.\ Section \ref{sm-cpu}). We can assume the attacker has full control over the main microcontroller given any such +flaw. With this control they can actuate the disconnect switch if present. They can transmit data through the device's +communication interfaces or use the user interface components such as LEDs and the LCD. Using the self-programming +capabilities of flash microcontrollers an attacker could even gain persistency. Note that in systems separating +cryptographic functions into some form of cryptographic module\footnote{such as systems used in +Germany\cite{bsi-tr-03109}.} we can be optimistic and assume the attacker has not yet compromised this cryptographic +co-processor. + +With the meter's core microcontroller under attacker control we cannot use this microcontroller to restore control over +the system. We have no way of ensuring the attacker does not simply delete a security mechanism we include in the core +microcontroller's firmware. Theoretically a secure boot implementation could be used to ensure meters boot into a safe +state after temporary power loss but we cannot rely on secure boot being present on every smart meter application +controller. Nowadays secure boot is a standard feature in many SoC aimed at smartphones or smart TVs but it is still +very uncommon in microcontrollers. + +Our solution to this problem is to add another smaller microcontroller to the smart meter design. This microcontroller +will contain a small piece of software that receives cryptographically authenticated commands from utility companies. On +demand it can reset the meter's core microcontroller to a known-good state. To reliably flush out an attacker from a +compromised core microcontroller we re-program the core microcontroller in its entirety. We propose using JTAG to +re-program the core microcontroller with a known-good firmware image read from a sufficiently large SPI flash connected +to the reset controller. JTAG is supported by most microcontrollers complex enough to be used in a smart meter design. +JTAG programming functionality can be ported to a new microcontroller with relatively little work. + +Our solution requires the core mircocontroller's JTAG interface to be activated (i.e. not fused-shut). For our solution +to work the core microcontroller firmware must not be able to permanently disable the JTAG interface by itself. In +microcontrollers that do not yet provide this functionality this is a minor change that could be added to a custom +microcontroller variant at low cost. On most microcontrollers keeping JTAG open should not interfere with code readout +protection\footnote{Readout protection usually forces a device to erase its program and data memories before allowing +JTAG access.}. Code secrecy should be of no concern\cite{schneier01} here but some manufacturers have strong preferences +due to a fear of copyright infringement. + +\section{The theory of endpoint safety} +\label{sec_criteria} + +In order to gain anything by adding our reset controller to the smart meter's already complex design we must satisfy two +interrelated conditions. +\begin{enumerate} +\item \emph{security} means our reset controller itself does not have any remotely exploitable flaws +\item \emph{safety} menas our reset controller will perform its job as intended +\end{enumerate} + +Note that our \emph{security} property includes only remote exploitation, and excludes any form of hardware attack. +Even though most smart meters provide some level of physical security, we do not wish to make any assumptions on this. +In the following section we will elaborate our attacker model and it will become apparent that sufficient physical +security to defend against all attackers in our model would be infeasible, and thus we will design our overall system +to remain secure even if we assume some number of physically compromised devices. + +\subsection{Attack characteristics} +The attacker model the two above conditions must hold under is as follows. We assume three angles of attack: Attacks by the +customer themselves, attacks by an insider within the metering systems controlling utility company and lastly attacks +from third parties. Examples for these third parties are hobbyist hackers or outside cybercriminals on the one hand, +but also other companies participating in the smart grid infrastructure besides the utility company such as intermediary +providers of meter-reading services. + +Due to the critical nature of the electrical grid, we have to include hostile state actors in our attacker model. When +acting directly, these would be classified as third-party attackers by the above schema, but they can reasonably be +expected to be able to assume either of the other two roles as well e.g. through infiltration or bribery. In the +generalized attacker model in \cite{fraunholz01} the authors give a classification of attacker types and provide a nice +taxonomy of attacker properties. In their threat/capability rating, criminals are still considered to have higher threat +rating than state-sponsored attackers. The New York Times reported in 2016 that some states recruit their hacking +personnel in part from cybercriminals. If this report is true, in a worst-case scenario we have to assume a +state-sponsored attacker to be the worst of both types. Comparing this against the other attacker types in +\cite{fraunholz01}, this state-sponsored attacker is strictly worse than any other type in both variables. We are left +with a highly-skilled, very well-funded, highly intentional and motivated attacker. + +Based on the above classification of attack angles and our observations on state-sponsored attacks, we can adapt +\cite{fraunholz01} to our problem, yielding the following new attacker types: + +\begin{enumerate} + \item \textbf{Utility company insiders controlled by a state actor.} + We can ignore the other internal threats described in \cite{fraunholz01} since an insider coöperating with a + state actor is strictly worse in every respect. + \item \textbf{State-sponsored external attackers.} + A state actor can directly attack the system through the internet and with proper operations security they do + not risk exposure or capture. + \item \textbf{Customers controlled by a state actor.} + A state actor can very well compromise some customers for their purposes. They might either physically + infiltrate the system posing as legitimate customers, or they might simply deceive or bribe existing customers + into coöperation. + \item \textbf{Regular customers.} + A hostile state actor might gain control of some number of customers through means such as voluntary + coöperation, bribery or infiltration but this limits the scale of an attack since an attacker has to avoid + arousing premature attention. Though regular customers may not have the motivation, skill or resources of a + state-sponsored attacker, potentially large numbers of them may try to attack a system out of financial + incentives\cite{anderson01,czechowski01}. To allow for this possibility, we consider regular customers separate + from state actors posing as customers. +\end{enumerate} + +\subsection{Overall structural system security} + +Considering overall security, we first introduce the reset authority, a trusted party acting as the single authority for +issuing reset commands in our system. In practice this trusted party may be part of the utility company, part of an +external regulatory body or a hybrid setup requiring both to coöperate. We assume this party will be designed to be +secure against all of the above attacker types. The precise design of this trusted party is out of scope for this work +but we will provide some practical suggestions on how to achieve security below in Section \ref{sec-regulation}. + +Using an asymmetric cryptographic design centered around the reset authority, we rule out all attacks except for +denial-of-service attacks on our system by any of the four attacker types. All reset commands in our system originate +from the reset authority and are cryptographically secured to provide authentication and tamper detection. Under this +model attacks on the electrical grid components between the reset authority and the customer device degrade into denial +of service attacks. To ensure the \emph{safety} criterion from Section \ref{sec_criteria} holds we must make sure our +cryptography is secure against man-in-the-middle attacks and we must try to harden the system against denial-of-service +attacks by the attacker types listed above. Given our attacker model we cannot fully guard against this sort of attack +but we can at least choose a communication channel that is resilient under the above model. + +Finally, we have to consider the issue of hardware security. We will solve the problem of physical attacks by simply not +programming any secret information into devices. This also simplifies hardware production. We consider supply-chain +attacks out-of-scope for this work. + +\subsection{Complex microcontroller firmware} + +The \emph{security} property from \ref{sec_criteria} is in a large part reliant on the security of our reset +controller firmware. The best method to increase firmware security is to reduce attack surface by limiting external +interfaces as much as possible and by reducing code complexity as much as possible. If we avoid the complexity of most +modern microcontroller firmware we gain another benefit beyond implicitly reduced attack surface: If the resulting +design is small enough we may even succeed in formal verification of our security properties. Though formal +verification tools are not yet suitable for highly complex tasks they are already adequate for small amounts of code and +simple interfaces. + +\subsection{Modern microcontroller hardware} + +Microcontrollers have gained enormously in both performance and efficiency as well as in peripheral support. Alas, these +gains have largely been driven by insatiable customer demand for faster, more powerful chips and for the longest time +security has not been considered important outside of some specific niches such as smartcards. A few years ago a +microcontroller would spend its entire lifetime without ever being exposed to any networks\cite{anderson02}. Though this +trend has been reversing with the increasing adoption of internet-of-things things and more advanced security features +have started appearing in general-purpose microcontrollers, most still lack even basic functionality found in processors +for computers or smartphones. + +One of the components lacking from most microcontrollers is strong memory protection or even a memory mapping unit as it +is found in all modern computer processors and SoCs for applications such as smartphones. Without an MPU (Memory +Protection Unit) or MMU (Memory Management Unit) many memory safety mitigations cannot be implemented. This and the +absence of virtualization tools such as ARM's TrustZone make hardening microcontroller firmware a big task. It is very +important to ensure memory safety in microcontroller firmware through tools such as defensive coding, extensive testing +and formal verification. + +In our design we achieve simplicity on two levels: One, we isolate the very complex metering firmware from our reset +controller by having both run on separate microcontrollers. Two, we keep the reset controller firmware itself extremely +simple to reduce attack surface there. Our protocol only has one message type and no state machine. + +\subsection{Safety vs. security: Opting for restoration instead of prevention} + +By implementing our reset system as a physically separate microcontroller we sidestep most security issues around the +main application microcontroller. There are some simple measures that can be taken to harden its firmware. +Implementing industry best practices such as memory protection or stack canaries will harden the system and increase the +cost of an attack but it will not yield a system that we can be confident enough in to say it is fully secure. The +complexity of the main application controller firmware makes fully securing the system a formidable effort--and one that +would have to be repeated by every meter vendor for every one of their code bases. + +In contrast to this our reset system does not provide any additional security. Any attack that could occur without it +can still occur with it in place. What it provides is a fail-safe mechanism that can quickly immobilize a malicious +actor mid-attack. It does this in a way that can be adapted to any meter architecture and any microcontroller platform +with low effort since it relies on established standard interfaces such as JTAG and SWD. Concentrating research and +development resources on a single platform like this allows for a system that is more economical to implement across +device series and across vendors. + +Attack resilience in the power grid can benefit from a safety-focused approach. The greater threat such an attack poses +is not the temporary denial of service of utility metering functions. Even in a highly integrated smart grid as +envisioned by utility companies these measurement functions are used by utility companies to increase efficiency and +reduce cost but are not necessary for the grid to function at all. Thus if we can provide mere \emph{safety} with a +fail-safe semantic instead of unattainable perfect \emph{security} we have gained resilience against a large class of +realistic attack scenarios. + +\subsection{Technical outline of a safety reset system} + +There are several ways our system could be practically implemented. The most basic way is to add a separate +microcontroller connected to the meter's main application MCU and optionally other embedded microcontrollers such as +modems. This discrete chip could either be placed on the metering board itself or it could be placed on a separate PCB +connected to the programming interface(s) of the metering board. In certain cases the latter might allow its use in +otherwise unmodified legacy designs. + +The safety reset controller would be a much simpler MCU than the meter's main application controller. Its software can +be kept simple leading to low program flash and RAM requirements. Since it does not need to address rich periphery such +as external parallel memory, LCDs etc.\ it can be a physically small, low-pin count device. If the main application +controller is supposed to be reset to a full factory image with little or no reduced functionality its firmware image +size is certainly too large for the reset controller's embedded flash. Thus a realistic setup would likely use an +external SPI flash chip to store this image. + +The most likely interfaces to reset the main application controller and possibly other microcontrollers such as modem +chips would be the controller's integrated programming port such as JTAG. Parallel high-voltage flash programming has +come to be uncommon in modern microcontrollers and most nowadays use some form of a serial interface. There exist a +variety of serial programming and debug interfaces but JTAG has grown to be by far the most broadly supported one and +has largely displaced vendor-specific debug interfaces except for very small devices. + +The kind of microcontroller that would likely be used as the main application controller in a smart meter application +will almost certainly support JTAG. These microcontrollers are high pin-count devices since they need to connect to a +large set of peripherals such as the LCD and the large program flash makes it likely for a proper debugging interface to +be present. The one remaining issue in this coarse technical outline is what communication interface should be used to +transmit the trigger command to the reset controller. In the following section we will give an overview on communication +interfaces established in energy metering applications and evaluate each of them for our purpose. + +\section{Communication channels on the grid} + +There is a number of well-established technologies for communication on or along power lines. We can distinguish three +basic system categories: Systems using separate wires (such as DSL over landline telephone wiring), wireless radio +systems (such as LTE) and \emph{power line communication} (PLC) systems that reüse the existing mains wiring and +superimpose data transmissions onto the 50 Hz mains sine\cite{gungor01,kabalci01}. + +For our scenario, we will ignore short-range communication systems. There exists a large number of \emph{wideband} +power line communication systems that are popular with consumers for bridging Ethernet segments between parts of an +apartment or house. These systems transmit up to several hundred megabits per second over distances up to several tens +of meters\cite{kabalci01}. Technologically, these wideband PLC systems are very different from \emph{narrowband} +systems used by utilities for load management among other applications and they are not relevant to our analysis. + +\subsection{Power line communication (PLC) systems and their use} + +In long-distance communications for applications such as load management, PLC systems are attractive since they allow +re-using the existing wiring infrastructure and have been used as early as in the 1930s\cite{hovi01}. Narrowband PLC +systems are a potentially low-cost solution to the problem of transmitting data at small bandwidth over distances of +several hundred meters up to tens of kilometers. + +Narrowband PLC systems transmit on the order of Kilobits per second or slower. A common use of this sort of system are +\emph{ripple control} systems. These systems superimpose a low-frequency signal at some few hundred Hertz carrier +frequency on top of the 50Hz mains sine. This low-frequency signal is used to encode switching commands for +non-essential residential or industrial loads. Ripple control systems provide utilities with the ability to actively +control demand while promising savings in electricity cost to consumers\cite{dzung01}. + +In any PLC system there is a strict trade-off between bandwidth, power and distance. Higher bandwidth requires higher +power and reduces maximum transmission distance. Where ripple control systems usually use few transmitters to cover +the entire grid of a regional distribution utility, higher bandwidth bidirectional systems used for automatic meter +reading (AMR) in places such as Italy or France require repeaters within a few hundred meters of a transmitter. + +\subsection{Landline and wireless IP-based systems} + +Especially in automated meter reading (AMR) infrastructure the cost-benefit trade-off of power line systems does not +always work out for utilities. A common alternative in these systems is to use the public internet for communication. +Using the public internet has the advantage of low initial investment on the part of the utility company as well as +quick commissioning. Disadvantages compared to a PLC system are potentially higher operational costs due to recurring +fees to network providers as well as lower reliability. Being integrated into power grid infrastructure, a PLC system's +failure modes are highly correlated with the overall grid. Put briefly, if the PLC interface is down, there is a good +chance that power is out, too. In contrast general internet services exhibit a multitude of failures that are entirely +uncorrelated to power grid stability. For purposes such as meter reading for billing purposes, this stability is +sufficient. However for systems that need to hold up in crisis situations such as the recovery system we are +contemplating in this thesis, the public internet may not provide sufficient reliability. + +\subsection{Short-range wireless systems} + +Smart meters contain copious amounts of firmware but still pale in comparison to the complexity of full-scale computers +such as smartphones. For short-range communication between a meter and a cellular radio gateway mounted nearby or +between a meter and a meter reading operator in a vehicle on the street a protocol such as Wifi (IEEE 802.11) is too +complex. Absent widely-used standards in this space proprietary radio protocols grew attractive. These are often based +on some standardized lower-level protocol such as ZigBee (IEEE 802.15) but entirely home-grown ones also exist. To the +meter manufacturer a proprietary radio protocol has several advantages. It is easy to implement and requires no external +certification. It can be customized to its specific application. In addition it provides vendor lock-in to customers +sharing infrastructure such as a cellular radio gateway between multiple devices. In other fields a lack of +standardization has led to a proliferation of proprietary protocols and a fragmented protocol landscape. This is a large +problem since the consumer cannot easily integrate products made by different manufacturers into one system. In advanced +metering infrastructure this is unlikely to be a disadvantage since usually there is only one distribution grid +operator for an area. Shared resources such as a cellular radio gateway would most likely only be shared within a +single building and usually they are all operated by the same provider. + +Systems in Europe commonly support Wireless M-Bus, an European standardized protocol\cite{silabs01} that operates on +several ISM bands\footnote{ + Frequency bands that can be used for \emph{Industrial, Scientific and Medical} applications by anyone and that do + not require obtaining a license for transmitter operation. Manufacturers can use whatever protocol they like on + these bands as long as they obtain certification that their transmitters obey certain spectral and power + limitations. +}. ZigBee is another popular standard and some vendors additionally support their own proprietary protcols\footnote{ + For an example see \cite{honeywell01}. +}. + +\subsection{Frequency modulation as a communication channel} + +For our system, we chose grid frequency modulation (henceforth GFM) as a low-bandwidth unidirectional broadcast +communication channel. Compared to traditional PLC, GFM requires only a small amount of additional equipment, works +reliably throughout the grid and is harder to manipulate by a malicious actor. + +Grid frequency in Europe's synchronous areas is nominally 50 Hertz, but there are small load-dependent variations from +this nominal value. Any device connected to the power grid (or even just within physical proximity of power wiring) can +reliably and accurately measure grid frequency at low hardware overhead. By intentionally modifying grid frequency, we +can create a very low-bandwidth broadcast communication channel. Grid frequency modulation has only ever been proposed +as a communication channel at very small scales in microgrids before\cite{urtasun01} and to our knowledge has not yet +been considered for large-scale application. + +Advantages of using grid frequency for communication are low receiver hardware complexity as well as the fact that a +single transmitter can cover an entire synchronous area. Though the transmitter has to be very large and powerful the +setup of a single large transmitter faces lower bureaucratic hurdles than integration of hundreds of smaller ones into +hundreds of local systems that each have autonomous governance. + +\subsubsection{The frequency dependency of grid frequency} + +Despite the awesome complexity of large power grids the physics underlying their response to changes in load and +generation is surprisingly simple. Individual machines (loads and generators) can be approximated by a small number of +differential equations and the entire grid can be modelled by aggregating these approximations into a large system of +nonlinear differential equations. Evaluating these systems it has been found that in large power grids small signal +steady state changes in generation/consumption power balance cause an approximately linear change in +frequency\cite{kundur01,crastan03,entsoe02,entsoe04}. \emph{Small signal} here describes changes in power balance that +are small compared to overall grid power. \emph{Steady state} describes changes over a time frame of multiple waveform +cycles as opposed to transient events that only last a few milliseconds. + +This approximately linear relationship allows the specification of a coefficient with unit \si{\watt\per\hertz} linking +power differential $\Delta P$ and frequency differential $\Delta f$. In this thesis we are using the European power +grid as our model system. We are using data provided by ENTSO-E (formerly UCTE), the governing association of European +transmission system operators. In our calculations we use data for the continental European synchronous area, the +largest synchronous area. $\frac{\Delta P}{\Delta f}$, called \emph{Overall Network Power Frequency Characteristic} by +ENTSO-E is around \SI{25}{\giga\watt\per\hertz}. + +We can derive general design parameter for any system utilizing grid frequency as a communication channel from the +policies of ENTSO-E\cite{entsoe02,entsoe03}. Any such system should stay below a modulation amplitude of +\SI{100}{\milli\hertz} which is the threshold defined in the ENTSO-E incidents classification scale for a Scale 0-1 +(from ``Anomaly'' to ``Noteworthy Incident'' scale) frequency degradation incident\cite{entsoe02} in the continental +Europe synchronous area. + +\subsubsection{Control systems coupled to grid frequency} + +The ENTSO-E Operations Handbook Policy 1 chapter\cite{entsoe02} defines the activation threshold of primary control to +be \SI{20}{\milli\hertz}. Ideally, a modulation system would stay well below this threshold to avoid fighting the +primary control reserve. Modulation line rate should likely be on the order of a few hundred Millibaud. Modulation at +these rates would outpace primary control action which is specified by ENTSO-E as acting within between ``a few +seconds'' and \SI{15}{\second}. + +Keeping modulation amplitude below this threshold would help to avoid spuriously triggering these control functions. +The effective \emph{Network Power Frequency Characteristic} of primary control in the European grid is reported by +ENTSO-E at around \SI{20}{\giga\watt\per\hertz}. This works out to an upper bound on modulation power of +\SI{20}{\mega\watt\per\milli\hertz}. + +\subsubsection{An outline of practical transmitter implementation} + +In its most basic form a transmitter for grid frequency modulation would be a very large controllable load connected to +the power grid at a suitable vantage point. A spool of wire submerged in a body of cooling liquid such as a small lake +along with a thyristor rectifier bank would likely suffice to perform this function during occasional cybersecurity +incidents. We can however decrease hardware and maintenance investment even further compared to this rather +uncultivated solution by repurposing regular large industrial loads as transmitters in an emergency situation. For some +preliminary exploration we went through a list of energy-intensive industries in Europe\cite{ec01}. The most +electricity-intensive industries in this list are primary aluminum and steel production. In primary production raw ore +is converted into raw metal for further refinement such as casting, rolling or extrusion. In steelmaking iron is +smolten in an electric arc furnace. In aluminum smelting aluminum is electrolytically extracted from alumina. Both +processes involve large amounts of electricity with electricity making up \SI{40}{\percent} of production costs. Given +these circumstances a steel mill or aluminum smelter would be good candidates as transmitters in a grid frequency +modulation system. + +In aluminum smelting high-voltage mains is transformed, rectified and fed into about 100 series-connected electrolytic +cells forming a \emph{potline}. Inside these pots alumina is dissolved in molten cryolite electrolyte at about +\SI{1000}{\degreeCelsius} and electrolysis is performed using a current of tens or hundreds of Kiloampère. The resulting +pure aluminum settles at the bottom of the cell and is tapped off for further processing. + +Like steelworks, aluminum smelters are operated night and day without interruption. Aside from metallurgical issues the +large thermal mass and enormous heating power requirements do not permit power cycling. Due to the high costs of +production inefficiencies or interruptions the behavior of aluminum smelters under power outages is a +well-characterized phenomenon in the industry. The recent move away from nuclear power and towards renewable energy has +lead to an increase in fluctuations of electricity price throughout the day. These electricity price fluctuations have +provided enough economic incentive to aluminum smelters to develop techniques to modulate smelter power consumption +without affecting cell lifetime or product quality\cite{duessel01,eisma01}. Power outages of tens of minutes up to two +hours reportedly do not cause problems in aluminum potlines and are in fact part of routine operation for purposes such +as electrode changes\cite{eisma01,oye01}. + +The power supply system of an aluminum plant is managed through a highly-integrated control system as keeping all cells +of a potline under optimal operating conditions is challenging. Modern power supply systems employ large banks of diodes +or SCRs\footnote{SCRs, also called thyristors, are electronic devices that are often used in high-power switching +applications. They are normally-off devices that act like diodes when a current is fed into their control terminal.} to +rectify low-voltage AC to DC to be fed into the potline\cite{ayoub01}. The potline voltage can be controlled almost +continuously through a combination of a tap changer and a transductor. The individual cell voltages can be controlled by +changing the anode to cathode distance (ACD) by physically lowering or raising the anode. The potline power supply is +connected to the high voltage input and to the potline through isolators and breakers. + +In an aluminum smelter most of the power is sunk into resistive losses and the electrolysis process. As such an +aluminum smelter does not have any significant electromechanical inertia compared to the large rotating machines used +in other industries. Depending on the capabilities of the rectifier controls high slew rates are possible, permitting +modulation at high\footnote{Aluminum smelter rectifiers are \emph{pulse rectifiers}. This means instead of simply +rectifying the incoming three-phase voltage they use a special configuration of transformer secondaries and in some +cases additional coils to produce a large number of equally spaced phases (e.g.\ six) from a standard three-phase input. +Where a direct-connected three-phase rectifier would draw current in six pulses per mains voltage cycle a pulse +rectifier draws current in more, smaller pulses to increase power factor. For example a 12-pulse rectifier will draw +current in 12 pulses per cycle. In the best case an SCR pulse rectifier switched at zero crossing should allow +\SIrange{0}{100}{\percent} load changes from one rectifier pulse to the next, i.e. within a fraction of a single cycle.} +data rates. + +\subsubsection{Avoiding dangerous modes} + +Modern power systems are complex electromechanical systems. Each component is controlled by several carefully tuned +feedback loops to ensure voltage, load and frequency regulation. Multiple components are coupled through transmission +lines that themselves exhibit complex dynamic behavior. The overall system is generally stable, but may exhbit +instabilities to particular small-signal stimuli\cite{kundur01,crastan03}. These instabilities, called \emph{modes}, +occur when due to mis-tuning of parameters or physical constraints the overall system exhibits oscillation at a +particular frequency. \cite{kundur01} separates these modes into four categories: + +\begin{description} + \item[Local modes] where a single power station oscillates in some parameter, + \item[Interarea modes] where subsections of the overall grid oscillate with respect to each other due to weak + coupling between them, + \item[Control modes] caused by imperfectly tuned control systems and + \item[Torsional modes] that originate from electromechanical oscillations in the generator itself. +\end{description} + +The oscillation frequencies associated with each of these modes are usually between a few tens of Millihertz and a few +Hertz\cite{grebe01,entsoe01,crastan03}. It is hard to predict the particular modes of a power system at the scale of the +central European interconnected system. Theoretical analysis and simulation may give rough indications but cannot yield +conclusive results. Due to the obvious danger as well as high economical impact due to inefficiencies experimental +measurements are infeasible. Modes are highly dependent on the power grid's structure and will change with changes in +the power grid over time. For all of these reasons, a grid frequency modulation system must be designed very +conservatively without relying on the absence (or presence) of modes at particular frequencies. A concrete design +guideline that we can derive from this situation is that the frequency spectrum of any grid frequency modulation system +should not exhibit large peaks and should avoid a concentration of spectral energy in small frequency bands. + +\subsubsection{Overall system parameters} + +In conclusion we end up with the following tunable parameters for a grid frequency modulation based on a large +controllable load: + +\begin{description} + \item[Modulation amplitude.] Amplitude is proportionally related to modulation power. In a practical setup we might + realize a modulation power up to a few hundred \si{\mega\watt} which would yield a few tens of \si{\milli\hertz} + of frequency amplitude. + \item[Modulation preemphasis and slew-rate control.] Preemphasis might be necessary to ensure an adequate + Signal-to-Noise ratio (SNR) at the receiver. Slew-rate control and other shaping measures might be necessary to + reduce the impact of these sudden load changes on the transmitter's primary function (say, aluminum smelting) + and to prevent disturbances to other grid components. + \item[Modulation frequency.] For a practical implementation a careful study would be necessary to determine the + optimal frequency band for operation. On one hand we need to prevent disturbances to the grid such as the + excitation of local or inter-area modes. On the other hand we need to optimize Signal-to-Noise ratio (SNR) + and data rate to achieve optimal latency between transmission start and reset completion and to reduce the + overall burden on both transmitter and grid. + \item[Further modulation parameters.] The modulation itself has numerous parameters that are discussed in Section + \ref{mod_params} below. +\end{description} + +\section{From grid frequency to a reliable communication channel} +Based on the physical properties oulined above we will provide the theoretical groundwork for a practical communication +system based on grid frequency modulation. + +\subsection{Channel properties} +In this section we will explore how we can construct a reliable communication channel from the analog primitive we +have outlined in the previous section. Our load control approach to grid frequency modulation leads to a channel with the +following properties. + +\begin{description} + \item[Slow-changing.] Accurate grid frequency measurements take several periods of the mains sine wave. Faster + sampling rates can be achieved with more complex specialized synchrophasor estimation algorithms but this will + result in a trade-off between sampling rate and accuracy\cite{belega01}. + \item[Analog.] Grid frequency is an analog signal. + \item[Noisy.] While stable over long periods of time thanks to power stations' Load-Frequency Control + systems\cite{entsoe04} there are considerable random short-term variations. Our modulation amplitude is limited + by technical and economic constraints so we have to find a system that will work at poor SNRs. + \item[Polarized.] Grid frequency measurements have an inherent sense of polarity that we can use in our modulation + scheme. +\end{description} + +\subsection{Modulation and its parameters} +\label{mod_params} + +In this section we will analyze what makes for a good set of parameters for a modulation scheme fitting grid frequency +modulation. + +As described before the grid's oscillatory modes mean that we should avoid any modulation technique that would +concentrate energy in a small bandwidth. Taking this principle to its extreme provides us with a useful pointer towards +techniques that might work well: Spread-spectrum techniques. By employing spread-spectrum modulation we can produce +close to ideal frequency-domain behavior. Modulation energy is spread almost flatly across the modulation +bandwidth\cite{goiser01}. At the same time we achieve modulation gain which increases system sensitivity. This +modulation gain potentially allows us to use a weaker stimulus allowing for a further reduction of the probability of +disturbance to the overall system. Spread-spectrum techniques also inherently allow us to trade-off receiver sensitivity +for data rate. This tunability is a useful parameter in the overall system design. + +Spread spectrum covers a whole family of techniques that are comprehensively explained in \cite{goiser01}. +\cite{goiser01} divides spread spectrum techniques into the coarse categories of \emph{Direct Sequence Spread Spectrum}, +\emph{Frequency Hopping Spread Spectrum} and \emph{Time Hopping Spread Spectrum}. + +In \cite{goiser01} a BPSK or similar modulation is assumed underlying the spread-spectrum technique. Our grid frequency +modulation channel effectively behaves more like a DC-coupled wire than a traditional radio channel: Any change in +excitation will cause a proportional change in the receiver's measurement. Using our FFT-based measurement methodology +we get a real-valued signed quantity. In this way grid frequency modulation is similar to a channel using coherent +modulation. We can utilize both signal strength and polarity in our modulation. + +For our purposes we can discount both Time and Frequency Hopping Spread Spectrum techniques. Time hopping helps to +reduce interference between multiple transmitters but does not help with SNR any more than Direct Sequence does since +all it does is allowing other transmitters to transmit. Our system is strictly limited to a single transmitter so we do +not gain anything through Time Hopping. + +Frequency Hopping Spread Spectrum techniques require a carrier. Grid frequency modulation itself is very limited in +peak frequency deviation $\Delta f$. Frequency hopping could only be implemented as a second modulation on top of GFM, +but this would not yield any benefits while increasing system complexity and decreasing data bandwidth. + +Direct Sequence Spread Spectrum is the only remaining approach for our application. Direct Sequence Spread Spectrum +works by directly modulating a long pseudo-random bit sequence onto the channel. The receiver must know the same +pseudo-random bit sequence and continuously calculates the correlation between the received signal and the pseudo-random +template sequence mapped from binary $[0, 1]$ to bipolar $[1, -1]$. The pseudo-random sequence has an approximately equal +number of $0$ and $1$ bits. The positive contribution of the $+1$ terms of the correlation template approximately cancel +out with the $-1$ terms when multiplied with an uncorrelated signal such as white Gaussian noise. + +By using a family of pseudo-random sequences with low cross-correlation channel capacity can be increased. Either the +transmitter can encode data in the choice of sequence or multiple transmitters can use the same channel at once. The +longer the pseudo-random sequence, the lower its cross-correlation with noise or other pseudo-random sequences of the +same length. Choosing a long sequence we increase modulation gain while decreasing bandwidth. For any given application +the sweet spot will be the shortest sequence that is long enough to yield sufficient SNR for subsequent processing +layers such as channel coding. + +A popular code used in many DSSS systems are Gold codes. A set of Gold codes has small cross-correlations. For some +value $n$ a set of Gold codes contains $2^n + 1$ sequences of length $2^n - 1$. Gold codes are generated from two +different maximum length sequences generated by linear feedback shift registers (LFSRs). For any bit count $n$ there are +certain empirically determined preferred pairs of LFSRs that produce Gold codes with especially good cross-correlation. +The $2^n + 1$ gold codes are defined as the XOR sum of both LFSR sequences shifted from $0$ to $2^n-1$ bit as well as +the two individual LFSR sequences. Given LFSR sequences \texttt{a} and \texttt{b} in numpy notation this is +\mintinline{python}{[a, b] + [ a ^ np.roll(b, shift) for shift in len(b) ]}. + +In DSSS modulation the individual bits of the DSSS sequence are called \emph{chips}. Chip duration determines modulation +bandwidth\cite{goiser01}. In our system we are directly modulating DSSS chips on mains frequency without an underlying +modulation such as BPSK as it is commonly used in DSSS systems. + +\subsection{Error-correcting codes} + +To reduce reception error rate we have to layer channel coding on top of the DSSS modulation. The messages we expect to +transmit are at least a few tens of bits long. We are highly constrained in SNR due to limited transmission power and +with lower SNR comes higher BER (Bit Error Rate). At a fixed BER, packet error rate grows exponentially with +transmission length so for our relatively long transmissions we would realistically get unacceptable error rates. + +Error correcting codes are a very broad field with many options for specialization. Since we are implementing only an +advanced prototype in this thesis we chose to spend only limited resources on optimization and settled on a basic +Reed-Solomon code. We have no doubt that applying a more state-of-the-art code we could gain further improvements in +code overhead and decoding speed among others\cite{mackay01}. Since message length in our system limits system response +time but we do not have a fixed target we can tolerate some degree of overhead. Decoding speed is of very low concern +to us because our data rate is extremely low. We derived our implementation by adapting and optimizing an existing open +source decoder that we validated on an open source encoder implementation. We generate test signals using a Python tool +on the host. + +\subsection{Cryptographic security} +\label{sec-crypto} +Above the communication base layer elaborated in the previous section we have to layer a cryptographic protocol to +ensure system security. We want to avoid a case where a third party could interfere with our system or even subvert this +safety system itself for an attack. From a protocol security perspective the system we are looking for can informally +be modelled as consisting of three parties: the trusted \emph{transmitter}, one of a large number of untrusted +\emph{receivers}, and an \emph{attacker}. These three play according to the following rules: + +\begin{description} + \item[Access.] Both transmitter and attacker can transmit any bit sequence. + \item[Indistinguishability.] The receiver receives any transmission by either but cannot distinguish between them. + \item[Kerckhoff's principle.] Since the protocol design is public and anyone can get access to an electricity meter + the attacker knows anything any receiver might know\cite{kerckhoff01,kerckhoff02}. + \item[Priority.] The transmitter is stronger than an attacker and will ``win'' during simultaneous transmission. + \item[Seeding.] Both transmitter and receiver can be seeded out-of-band with some information on each other such as + public key fingerprints. +\end{description} + +We are not considering situations where an attacker attempts to jam an ongoing transmission. In practice there are +several avenues to prevent such attempts. Compromised large loads that are being abused by the attacker can be manually +disconnected by the utility. Error-correcting codes can be used to provide resiliency against small-scale disturbances. +Finally, the transmitter can be designed to have high enough power to be able to override any likely attacker. + +With the above properties in mind our goal is to find a cryptographic primitive that has the following properties: +\begin{description} + \item[Authentication.] The transmitter can produce a message bit sequence that a certain subset of receivers can + identify as being generated by the transmitter. On reception of this sequence, all addressed receivers perform a + safety reset. + \item[Unforgeability.] The attacker cannot forge a message, i.e.\ find a bit sequence other than one of the + transmitter's previous messages that a receiver would accept. This implies that the attacker also cannot create + a new distinct message from a previously transmitted message. + \item[Brevity.] The message should be short. Our communication channel is outrageously slow compared to anything + else used in modern telecommunications and every bit counts. +\end{description} + +On a protocol level we also have to ensure \emph{idempotence}. Our system should have an at-most-once semantic. This +means for a given message each receiver either performs exactly one safety reset or none at all, even if the message is +re-transmitted by either the transmitter or an attacker. We cannot achieve the ideal exactly-once semantic wit pure +protocol gymnastics since we are using an unidirectional lossy communication primitive. A receiver might be offline +(e.g.\ due to a local power outage) and then would not hear the transmission even if our broadcast primitive was +reliable. Since there is no back channel, the transmitter has no way of telling when that happens. The practical impact +of this can be mitigated by the transmitter repeating the message a number of times. + +It follows from the unforgeability requirement that we can trivially reach idempotence at the protocol level by keeping +a database of all previous messages and only accepting new messages. By considering this in our cryptographic design we +can reduce the storage overhead of this ``database''. + +Along with the indistinguishability property the access requirement implies that we need a cryptographic +signature\cite{lamport01}. However, we have relaxed constraints on this signature compared to standard cryptographic +practice\cite{anderson04}. While cryptographic signatures need to work over arbitrary inputs, all we want to ``sign'' +here is the instruction to perform a safety reset. This is the only message we might ever want to transmit so our +message space has only one element. The information content of our message thus is 0 bit! All the information we want to +transmit is already encoded \emph{in the fact that we are transmitting} and we do not require a further payload to be +transmitted: We can omit the entirety of the message and just transmit whatever ``signature'' we +produce\cite{haller01,rfc1760}. This is useful to conserve transmission bits so our transmission does not take an +exceedingly long time over our extremely slow communication channel. + +We can modify this construction to allow for a small number of bits of information content in our message (say two or +three instead of zero) at no transmission overhead by transmitting the cryptographic signature as usual but simply +omitting the message. The message contains only a few bits of information and we are dealing with minutes of +transmission time so the receiver can reconstruct the message through brute-force. Though this trade-off between +computation and data transmission might seem inelegant it does work for our extremely slow link for up to a few bits of +information. + +There is an important limitation in the rules of our setup above: The attacker can always record the reset bit sequence +the transmitter transmits and replay that same sequence later. Even without cryptography we can trivially prevent an +attacker from violating the at-most-once criterion. If every receiver memorizes all bit sequences that have been +transmitted so far it can detect replays. With this mitigation by replaying an older authentic transmission an attacker +can cause receivers that were offline during the original transmission to reset at a later point. Considering our goal +is to reset them in the first place this should not pose a threat to the system's safety or security. + +A possible scenario would be that an attacker first causes enough havoc for authorities to trigger a safety reset. The +attacker would record the trigger transmission. We can assume most meters were reset during the attack. Due to this the +attacker cannot cause a significant number of additional resets immediately afterwards. However, the attacker could +wait several years for a number of new meters to be installed that might not yet have updated firmware that includes the +last transmission. This means the attacker could cause them to reset by replaying the original sequence. + +A possible mitigation for this risk would be to introduce one bit of information into the trigger message that is +ignored by the replay protection mechanism. This \emph{enable} bit would be $1$ for the actual reset trigger message. +After the attack the transmitter would then perform scheduled transmissions of a ``disarm'' message that has this bit +set to $0$. This message informs all new meters and meters that were offline during the original transmission of the +original transmission for replay protection without actually performing any further resets. + +We could use any of several traditional asymmetric cryptographic primitives to produce these signatures. The +comparatively high computational effort required for signature verification would not be an issue. Transmissions take +several minutes anyway and we can afford to spend some tens of seconds even in signature verification. Transmission +length and by proxy system latency would be determined by the length of the signature. For RSA signature length is the +modulus length (i.e. larger than \SI{1000}{bit} for very basic contemporary security). For elliptic curve-based systems +curve length is approximately twice the security level and signature size is twice the curve length because two curve +points need to be encoded\cite{anderson02}. For contemporary security this results in more than 300 bit transmission +length. We can exploit our unique setting's low message entropy to improve on this by basing our scheme on a +cryptographic hash function used as a one-way pseudo-random function (PRF). Hash-based signature schemes date back to +the very beginnings of cryptographic signatures\cite{anderson04,diffie01,lamport02}. Today, in general applications +schemes based on asymmetric cryptography are preferred but hash-based signature systems have their applications in +certain use cases. One example of such a scheme is the TESLA scheme\cite{perrig01} that is the basis for navigation +message authentication in the European Galileo global navigation satellite system. Here, a system based purely on +asymmetric primitives would result in too much computation and communication overhead\cite{ec05}. In the following +sections we will introduce the foundations of hash-based signatures before deriving our authentication scheme. + +\subsubsection{Lamport signatures} + +1979, Lamport in \cite{lamport02} introduced a signature scheme that is based only on a one-way function such as a +cryptographic hash function. The basic observation is that by choosing a random secret input to a one-way function and +publishing the output, one can later prove knowledge of the input simply by publishing it. In the following paragraphs +we will describe a construction of a one-time signature scheme based on this observation. The scheme we describe is the +one usually called a ``Lamport Signature'' in modern literature but is slightly different from the variant described in +the 1979 paper. For our purposes we can consider both to be equivalent. + +\paragraph{Setup.} In a Lamport signature, for an n-bit hash function $H$ the signer generates a private key $s = +\left(s_{b, i} | b\in\left\{0, 1\right\}, 0\le i<n\right)$ of $2n$ random strings of length $n$. The signer publishes a +public key $p = \left(p_{b, i} = H\left(s_{b, i}\right), b\in\left\{0, 1\right\}, 0\le i<n\right)$ that is simply the +list of hashes of each of the random strings that make up the private key. + +\paragraph{Signing.} To sign a message $m$, the signer publishes the signature $\sigma = \left(\sigma_i = k_{H(m)_i, +i}\right)$ where $H(m)_i$ is the $i$-th bit of $H$ applied to $m$. That is, for the $i$-th bit of the message's hash +$H(m)$ the signer publishes either of $p_{0, i}$ or $p_{1, i}$ depending on the hash bit's value, keeping the other +entry of $P$ secret. + +\paragraph{Verification.} The verifier can compute $H(m)$ themselves and check the corresponding entries $\sigma_i = +k_{H(m)_i}$ of $S$ correctly evaluate to $p_{b, i} = H\left(s_{b, i}\right)$ from $P$ under $H$. + +The above scheme is a one-time signature scheme only. After one signature has been published for a given key, the +corresponding key must not be reüsed for other signatures. This is intuitively clear as we are effectively publishing +part of the private key as the signature, and if we were to publish a signature for another message an attacker could +derive additional signatures by ``mixing'' the two published signatures. + +\subsubsection{Winternitz signatures} + +An improvement to basic Lamport signatures as described above are Winternitz signatures as detailed in +\cite{merkle01,dods01}. Winternitz signatures reduce public key length as well as signature length for hash length $n$ +from $2n$ to $\mathcal O \left(n/t\right)$ for some choice of parameter $t$ (usually a small number such as 4). + +\paragraph{Setup.} The signer generates a private key $s = \left(s_i\right)$ consisting of $\ceil{\frac{n}{t}}$ random +bit strings. The signer publishes a public key $p = \left(H^{2^t}\left(s_i\right)\right)$ where each element +$H^{2^t}\left(s_i\right)$ is the $2^t$-fold recursive application of $H$ to $s_i$. + +\paragraph{Signing.} The signer splits $m$ padded to a multiple of $t$ bits into $\ceil{\frac{n}{t}}$ chunks $m_i$ of +$t$ bit each. The signer publishes the signature $\sigma = \left( \sigma_i = H^{m_i}\left(s_i\right) \right)$. + +\paragraph{Verification.} The verifier can calculate for each $\sigma_i = H^{m_i}\left(s_i\right)$ that $H^{2^t - +m_i}\left(\sigma_i\right) = H^{2^t - m_i}\left(H^{m_i}\left(s_i\right)\right) = H^{2^t - m_i + m_i} \left(s_i\right) = +p_i$. + +To prevent an attacker from forging additional signatures from one signature by calculating $\sigma_i' = +H\left(\sigma_i\right)$ matching $m_i' = m_i + 1$, this scheme is usually paired with a simple checksum as described in +\cite{merkle01}. + +\subsubsection{Using hash-based signatures for trigger authentication} + +Applying these concepts the most basic trigger authentication scheme possible would be to simply generate a random +secret key bit string $s$ and publish $p = H(s)$ for some hash function $H$. To activate the trigger, $\sigma = s$ is +published and receivers verify that $H(\sigma) = p = H(s)$. This simplistic scheme has one main disadvantage: It is a +fundamentally one-time construction. To prevent an attacker from re-triggering a receiver a second time by replaying a +valid trigger $\sigma$ all receivers have to blacklist any ``used'' $\sigma$. Alas, this means we can only ever trigger +a receiver \emph{once}. The good part is that any receiver that missed this trigger can still be triggered later, but +the bad part is that once $s$ is burned we are out of options. The trivial solution to this would be to simply provision +each receiver with a whole list of public keys in advance. This however takes $n$ times the amount of space for $n$-fold +retriggerability and for each one we have to memorize separately whether it has been used up. Luckily we can easily +derive a scheme that yields $n$-fold retriggerability and naturally memorizes replay state while using no more space +than the original scheme by taking some inspiration from Winternitz signatures. + +In this improved scheme the secret key $s$ is still a random bit string. The public key is $p = H^n(s)$ for $n$-times +retriggerability. The $i$-th time the trigger is activated, $\sigma_i = H^{n-i}(s)$ is published, and every receiver +can verify that $\sigma_{i-1} = H\left(\sigma_i\right)$ with $\sigma_0 = p$. In case a receiver missed one or more +previous triggers it continues computing $H\left(H\left(\sigma_i\right)\right)$ and +$H\left(H\left(H\left(\sigma_i\right)\right)\right)$ and so on until either reaching the $n$-th recursion +level--indicating an invalid signature--or finding $H^n\left(\sigma_i\right) = \sigma_j$ with $\sigma_j$ being the last +signature this receiver recorded or $p$ in case there is none. + +This scheme provides replay protection since the receiver memorizes the last signature they acted on. Public key length +is equal to the length of the hash function $H$ used. Even for our embedded systems use case $n$ can realistically be up +to $\mathcal O\left(10^3\right)$, which is enough for our purposes. This use of a hash chain for event authentication is +identical to the one in the S/KEY one-time password system\cite{anderson04,haller01,rfc1760}. +% 1990ies crypto yeah! + +The ``disarm'' message we discussed above for replay protection can be integrated into this scheme by encoding the +``enable'' bit into the least significant bit of $n$ in our $H^n$ construction. In the chain of valid signatures every +second one would be a disarm signature: Reset and disarm signatures would alternate in this scheme. By skipping a disarm +signature two resets can still be triggered directly after one another. + +In practice it may be useful to have some control over which meters reset. An attack exploiting a particular network +protocol implementation flaw might only affect one series of meters made by one manufacturer. Resetting \emph{all} +meters may be too much in this case. A simple solution for this is to define addressable subsets of meters. ``All +meters'' along with ``meters made by manufacturer $x$'' and ``meters of model $y$'' are good choices for such scopes. On +the cryptographic level the protocol state is simply duplicated for each scope. This incurs memory and computation +overhead linear in the number of scopes but device memory requirements are small at a few bytes only and computation is +of no concern due to the very slow channel so this simple solution is adequate. The transmitter has to either store +copies of all scope's keys or derive these keys from a root key using the scope's identifier. Keys are small and the +transmitter would be using a regular server or hardware security module for key management so either easily feasible. + +A diagram of the key structure in this key management scheme is shown in Figure \ref{fig:sig_key_chain}. The +transmitter key management is shown in Figure \ref{fig:tx_scope_key_illu}. This scheme is simplistic but suffices for +our prototype in Section \ref{sec-prototype} and may even be useful in a practical implementation. During +standardization of a safety reset system the key management system would most likely have to be customized to the +particular application's requirements. Developing an universal solution is outside the scope of this work. + +\begin{figure} + \centering + \begin{minipage}[c]{0.5\textwidth} + \includegraphics{resources/signature_key_chain} + \end{minipage} + \begin{minipage}[c]{0.45\textwidth} + \caption{ + The hash chain between secret transmitter key and public device key. Each step represents one invocation of the + hash function. To generate a new chain a random transmitter key is generated, then hashed $n$ times to + generate the corresponding device key. A new trigger message can be generated by generating the key at depth + $m-1$ where $m$ is the height of the last used trigger, or $n$ initially. Every second trigger message is a + disarm message and every second one a reset message. Depending on which is needed either one may be skipped. + } + \label{fig:sig_key_chain} + \end{minipage} +\end{figure} + +\begin{figure} + \centering + \includegraphics[width=\textwidth]{resources/transmitter_scope_key_illustration} + \caption{ + An illustration of a key management system using a common master key. First, the transmitter derives one secret + key for each addressable group from the master key. Then public device keys are generated like in Figure + \ref{fig:sig_key_chain}. Finally for each device the manufacturer picks the group public keys matching the + device. In this example one device is a series A meter made by manufacturer B so it gets provisioned with the + keys for the ``all devices'', ``manufacturer B'' and ``series A'' groups. The other device is also made by + manufacturer B but is a series C device so it gets provisioned with the ``all devices'', ``manufacturer B'' and + ``series C'' device keys. In this example the transmitter stores (or is able to derive) all six shown + group keys, but each device only needs to store the three applying to it--one for each of the three scopes ``all + devices'', ``manufacturer'' and ``series''. + } + \label{fig:tx_scope_key_illu} +\end{figure} + +\chapter{Practical implementation} + +To validate the practical feasibility of the theoretical concepts we laid out in the previous chapter we decided to +build a prototype of a safety reset controller. In this section we describe the reasoning behind the components of this +prototype and the engineering that went into its firmware. The prototype consists of a smart meter whose application +microcontroller is reset by a microcontroller on an external circuit board. We lay out how we extensively +tested all parts of our firmware implementation. We conclude with results of a practical end-to-end experiment +exercising every part of our prototype. + +\section{Data collection for channel validation} + +To design a solid system we needed to parametrize mains frequency variations under normal conditions. To set modulation +amplitude as well as parameters of our modulation scheme we need a frequency spectrum of mains frequency variations +(that is $\mathcal F\left(f(V(t))\right)$: Taking mains frequency $f(x)$ as a variable, the frequency spectrum of that +variable, as opposed to the frequency spectrum of mains voltage $V(t)$ itself). + +\subsection{Grid frequency estimation} +\label{frequency_estimation} + +In commercial power systems Phasor Measurement Units (PMUs, also called \emph{synchrophasors}) are used to precisely +measure parameters of the mains voltage waveform, one of which is grid frequency. PMUs are used as part of SCADA systems +controlling transmission networks to characterize the operational state of the network. + +From a superficial viewpoint measuring grid frequency might seem like a simple problem. Take the mains voltage waveform, +measure time between two rising-edge (or falling-edge) zero-crossings and take the inverse $f = t^{-1}$. In practice, +phasor measurement units are significantly more complex than this. This discrepancy is due to the combination of both +high precision and quick response that is demanded from these units. High precision is necessary since variations of +mains frequency under normal operating conditions are quite small--in the range of \SIrange{5}{10}{\milli\hertz} over +short intervals of time. Relative to the nominal \SI{50}{\hertz} this is a derivation of less than \SI{100}{ppm}. +Relative to the corresponding period of \SI{20}{\milli\second} this means a time derivation of about $2 \mu\text{s}$ +from cycle to cycle. From this it is already obvious why a simplistic measurement cannot yield the required precision +for manageable averaging times: We would need either an ADC sampling rate in the order of megabits per second or for a +reconstruction through interpolated readings an impractically high ADC resolution. + +Detail on the inner workings of commercial phasor measurement units is scarce but given their essential role to SCADA +systems there is a large amount of academic research on such algorithms\cite{narduzzi01,derviskadic01,belega01}. A +popular approach to these systems is to perform a Short-Time Fourier Transform (STFT) on ADC data sampled at high +sampling rate (e.g. \SI{10}{\kilo\hertz}) and then perform analysis on the frequency-domain data to precisely locate the +peak at \SI{50}{\hertz}. A key observation here is that FFT bin size is going to be much larger than required frequency +resolution. This fundamental limitation follows from the Nyquist criterion\cite{shannon01} +and if we had to process an \emph{arbitrary} signal this would severely limit our practical measurement accuracy +\footnote{ + Some software packages providing FFT or STFT primitives such as scipy\cite{virtanen01} allow the user to + super-sample FFT output by specifying an FFT width larger than input data length, padding the input data with zeros + on both sides. Note that in line with the Nyquist theorem this \emph{does not} actually provide finer output + resolution but instead just amounts to an interpolation between output bins. Depending on the downstream analysis + algorithm it may still be sensible to use this property of the DFT for interpolation, but in general it will be + computationally expensive compared to other interpolation methods and in any case it will not yield any better + frequency resolution aside from a potential numerical advantage\cite{gasior02}. +}. +For this reason all approaches to grid frequency estimation are based on a model of the voltage waveform. Nominally +this waveform is a perfect sine at $f=\SI{50}{\hertz}$. In practice it is a sine at $f\approx\SI{50}{\hertz}$ +superimposed with some aperiodic noise (e.g. irregular spikes from inductive loads being energized) as well as harmonic +distortion that is caused by topologically nearby devices with power factor $\cos \theta \neq 1.0$. Under a continuous +fourier transform over a long period the frequency spectrum of a signal distorted like this will be a low noise floor +depending mainly on aperiodic noise on which a comb of harmonics as well as some sub-harmonics of $f \approx +f_\text{nom} = \SI{50}{\hertz}$ is riding. The main peak at $f \approx f_\text{nom}$ will be very strong with the +harmonics being approximately an order of magnitude weaker in energy and the noise floor being at least another order of +magnitude weaker. See Figure \ref{mains_voltage_spectrum} for a measured spectrum. This domain knowledge about the +expected frequency spectrum of the signal can be employed in a number of interpolation techniques to reconstruct the +precise frequency of the spectrum's main component despite distortions and the comparatively coarse STFT resolution. + +Published grid frequency estimation algorithms such as \cite{narduzzi01,derviskadic01} are rather sophisticated and use +a combination of techniques to reduce numerical errors in FFT calculation and peak fitting. Given that we do not need +reference standard-grade accuracy for our application we chose to start with a very basic algorithm instead. We chose to +use a general approach to estimate the precise fundamental frequency of an arbitrary signal that was published by +experimental physicists Gasior and Gonzalez at CERN\cite{gasior01}. This approach assumes a general sinusoidal signal +superimposed with harmonics and broadband noise. Applicable to a wide spectrum of practical signal analysis tasks it is +a reasonable first-degree approximation of the much more sophisticated estimation algorithms developed specifically for +power systems. Some algorithms use components such as kalman filters\cite{narduzzi01} that require a physical model. +As a general algorithm \cite{gasior01} does not require this kind of application-specific tuning, eliminating one source +of error. + +The Gasior and Gonzalez algorithm\cite{gasior01} passes the windowed input signal through a DFT, then interpolates the +signal's fundamental frequency by fitting a wavelet such as a Gaussian to the largest peak in the DFT results. The bias +parameter of this curve fit is an accurate estimation of the signal's fundamental frequency. This algorithm is similar +to the simpler interpolated DFT algorithm used as a reference in much of the synchrophasor estimation +literature\cite{borkowski01}. The three-term variant of the maximum side lobe decay window often used there is a +Blackman window with parameter $\alpha = \frac{1}{4}$. Analysis has shown\cite{belega01} that the interpolated DFT +algorithm is worse than algorithms involving more complex models under some conditions but that there is \emph{no free +lunch} meaning that more complex perform worse when the input signal deviates from their models. + +\subsection{Frequency sensor hardware design} + +\label{sec-fsensor} +Our safety reset controller will have to measure mains frequency to later demodulate a reset signal transmitted through +it. Since we have decided to do our own frequency measurement system here we can reüse this frequency measurement setup +as a prototype for the frequency measurement component of the demodulation system we will develop later. Since we do +not plan to do a large-scale field deployment of our measurement setup we can keep the hardware implementation simple by +moving most of the signal processing to a regular computer and concentrating our hardware efforts on raw signal capture. + +\begin{figure} + \begin{center} + \begin{tikzpicture}[start chain = going below, node distance = 12mm and 50mm, every join/.style = {norm}] + \tikzset{ + base/.style = {draw, on chain, on grid, align=center, minimum height = 4ex, font=\footnotesize}, + text/.style = {base}, + component/.style = {base, rectangle, text width=40mm}, + coord/.style = {coordinate, on chain, on grid, node distance=6mm and 25mm} + } + \node[text centered] (input) {Single phase mains input}; + \node[component] (safety) [below = of input] {Input protection}; + \node[coord] (safety-anchor) [below = of safety] {}; + \node[component] (analog) [below = of safety-anchor] {Analog signal processing}; + \node[component] (powersupply) [left = of analog] {Power supply}; + \node[component] (adc) [below = of analog] {ADC}; + \node[component] (micro) [below = of adc] {Microcontroller}; + \node[component] (isol) [below = of micro] {Galvanic digital isolation}; + \node[coord] (isol-left) [left = 6cm of isol.west] {}; + \node[coord] (isol-right) [right = 1cm of isol.east] {}; + \node[component] (usb) [below = of isol] {USB interface}; + + \draw[->] (input.south) -- (safety.north); + \draw[-] (safety.south) -- (safety-anchor); + \draw[->] (safety-anchor) -| (powersupply.north); + \draw[->] (safety-anchor) -| (analog.north); + \draw[->] (powersupply.south) |- (adc.west); + \draw[->] (powersupply.south) |- (micro.west); + \draw[->] (analog.south) -- (adc.north); + \draw[->] (adc.south) -- (micro.north); + \draw[->] (micro.south) -- (isol.north); + \draw[->] (isol.south) -- (usb.north); + + \draw[dashed] (isol.west) -- (isol-left.east); + \draw[dashed] (isol.east) -- (isol-right.west); + \end{tikzpicture} + \end{center} + \caption{Frequency sensor hardware block diagram.} + \label{fmeas-sens-diag} +\end{figure} + +An overall block diagram of our system is shown in Figure \ref{fmeas-sens-diag}. The microcontroller we chose is an +\texttt{STM32F030F4P6} ARM Cortex M0 microcontroller made by ST Microelectronics. The ADC in Figure +\ref{fmeas-sens-diag} in our implementation is the integrated 12-bit ADC of this microcontroller, which is sufficient +for our purposes. The USB interface is a simple USB to serial converter IC (\texttt{CH340G}) and the galvanic digital +isolation is accomplished with a pair of high speed optocouplers on its \texttt{RX} and \texttt{TX} lines. The analog +signal processing is a simple voltage divider using high power resistors to get the required creepage along with some +high frequency filter capacitors and an op-amp buffer. The power supply is an off-the-shelf mains-input power module. +The system is implemented on a single two-layer PCB that is housed in an off-the-shelf industrial plastic case fitted +with a printed label and a few status lights on its front. The schematics of our system can be found in Appendix +\ref{sec-app-freq-sens-schematics}. + +\subsection{Clock accuracy considerations} + +Our measurement hardware will sample line voltage at some sampling rate $f_S$, e.g.\ \SI{1}{\kilo\hertz}. All downstream +processing is limited in accuracy by the accuracy of $f_S$\footnote{ +We are not considering the effect of clock jitter. We are highly oversampling the signal and the FFT done in our +downstream processing will average out small jitter effects leaving only frequency stability to worry about. }. We +generate our sampling clock in hardware by clocking the ADC from one of the microcontroller's timer blocks clocked from +the microcontroller's system clock. This means our ADC's sampling window will be synchronized cycle-accurate to the +microcontroller's system clock. + +Our downstream estimation of mains frequency by nature is relative to our sampling frequency $f_S$. In the setup +described above this means we have to make sure our system clock is stable. A frequency deviation of \SI{1}{ppm} in our +system clock causes a proportional grid frequency measurement error of $\Delta f = f_\text{nom} \cdot 10^{-6} = +\SI{50}{\micro\hertz}$. In a worst-case scenario where our system is clocked from a particularly bad crystal that +exhibits \SI{100}{ppm} of instabilities over our measurement period we end up with an error of \SI{5}{\milli\hertz}. +This is well within our target measurement range, so we need a more stable clock source. Ideally we want to avoid +writing our own clock conditioning code where we try to change an oscillators operating frequency to match some +reference. Clock conditioning algorithms are complex\cite{ti01} and in our case post processing of measurement data and +simply adding an offset is simpler and less error-prone. + +Our solution to these problems is to use a crystal oven\footnote{ + A crystal oven is a crystal oscillator closely thermally coupled to a heater and temperature sensor and enclosed in + a thermally isolated case. The heater is controlled to hold the crystal oscillator at a near constant temperature + some tens of degrees Celsius above ambient temperature. Ambient temperature variations will be absorbed by the + temperature control. This yields a crystal frequency that is almost completely unaffected by ambient temperature + variations below the oven temperature and whose main remaining instability is aging. +}as our main system clock source. Crystal ovens are expensive compared to ordinary crystal oscillators. Since any +crystal oven will be much more accurate than a standard room-temperature crystal we chose to reduce cost by using one +recycled from old telecommunications equipment. + +To verify clock accuracy we routed an externally accessible SMA connector to a microcontroller pin that is routed to one +of the microcontroller's timer inputs. By connecting a GPS 1pps signal to this pin and measuring its period we can +calculate our system's Allan variance\footnote{ + Allan variance is a measure of frequency stability between two clocks. +}, thereby measuring both clock stability and clock accuracy. +We ran a 4 hour test of our frequency sensor that generated the histogram shown in Figure \ref{ocxo_freq_stability}. +These results show that while we get a systematic error of about \SI{10}{ppm} due to manufacturing tolerances the +random error at less than \SI{10}{ppb} is smaller than that of a room-temperature crystal oscillator by 3-4 orders of +magnitude. Since we are interested in grid frequency variations over time but not in the absolute value of grid +frequency the systematic error is of no consequence to us. The random error at \SI{3.66}{ppb} corresponds to a +frequency measurement error of about \SI{0.2}{\micro\hertz}, well below what we can achieve at reasonable sampling rates +and ADC resolution. + +\begin{figure} + \centering + \includegraphics{../lab-windows/fig_out/ocxo_freq_stability} + \caption{OCXO Frequency derivation from its nominal \SI{19.440}{\mega\hertz} frequency measured against a GPS + receiver's 1pps reference output.} + \label{ocxo_freq_stability} +\end{figure} + +\subsection{Firmware implementation} + +The firmware uses one of the microcontroller's timers clocked from an external crystal oscillator to produce an +\SI{1}{\milli\second} tick that the internal ADC is triggered from for a sample rate of \SI{1}{\kilo sps}. Higher sample +rates would be possible but reliable data transmission over the opto-isolated serial interface might prove challenging +and \SI{1}{\kilo sps} already corresponds to $20$ samples per cycle at $f_\text{nominal}$. This figure exceeds the +Nyquist criterion by a factor of ten and is plenty for accurate measurements. + +The ADC measurements are read using DMA and written into a circular buffer. Using DMA controller features this +circular buffer is split in back and front halves with one being written to and the other being read at the same time. +Buffer contents are moved from the ADC DMA buffer into a packet-based reliable UART interface as they come in. The UART +packet interface keeps two ring buffers: One byte-based ring buffer for transmission data and one ring buffer pointer +structure that keeps track of ADC data packet boundaries in the byte-based ring buffer. Every time a chunk of data is +available from the ADC the data is framed into the byte-based ring buffer and the packet boundaries are logged in the +packet pointer ring buffer. If the UART transmitter is idle at this time a DMA-backed transmission of the oldest packet +in the packet ring buffer is triggered at this point. Data is framed using Consistent Overhead Byte Stuffing +(COBS)\footnote{ +COBS is a framing technique that allows encoding $n$ bytes of arbitrary data into exactly $n+1$ bytes with no embedded +$0$ bytes that can then be delimited using $0$ bytes. COBS is simple to implement and allows both one pass decoding and +encoding. The encoder either needs to be able to read up to \SI{256}{\byte} ahead or needs a buffer of \SI{256}{\byte}. +COBS is very robust in that it allows self-synchronization. At any point a receiver can reliably synchronize itself +against a COBS data stream by waiting for the next $0$ byte. The constant overhead allows precise bandwidth and buffer +planning and provides constant, good efficiency close to the theoretical maximum.}\cite{cheshire01} along with a +CRC-32 checksum for error checking. When the host receives a new packet with a valid checksum it returns an +acknowledgement packet to the sensor. When the sensor receives the acknowledgement, the acknowledged packet is dropped +from the transmission packet ring buffer. When the host detects an incorrect checksum it simply stays quiet and waits for +the sensor to resume with retransmission when the next ADC buffer has been received. + +The serial interface logic presents most of the complexity of the sensor firmware. This complexity is necessary since +we need reliable, error-checked transmission to the host. Though rare, bit errors on a serial interface do happen and +data corruption is unacceptable. The packet layer queueing on the sensor is necessary since the host is not a realtime +system and unpredictable latency spikes of several hundred milliseconds are possible. + +The host in our recording setup is a Raspberry Pi 3 model B running a Python script. The Python script handles serial +communication and logs data and errors into an SQLite database file. SQLite has been chosen for its simple yet flexible +interface and its good tolerance of system resets due to unexpected power loss. Overall our setup performed adequately +with IO contention on the Raspberry PI/Linux side causing only 16 skipped sample packets over a 68 hour recording span. + +\subsection{Frequency sensor measurement results} + +\begin{figure} + \centering + \begin{minipage}[c]{0.48\textwidth} + \includegraphics{resources/grid_meas_device_front.jpg} + \end{minipage} + \begin{minipage}[c]{0.48\textwidth} + \includegraphics{resources/grid_meas_device_open.jpg} + \end{minipage} + \vspace*{3mm} + \caption{ + The finished grid frequency sensor device. The large yellow part on the bottom left is the crystal oven. The + large black part is the power supply module. The microcontroller is on the bottom right of the device and the + measurement circuit is in its middle. The device connects to the data recording computer via galvanically + isolated USB on the bottom and to a regular wall socket through the IEC connector on the top of the device. + } + \label{pic_freq_sensor} +\end{figure} + +Our completed frequency sensor can be seen in Figure \ref{pic_freq_sensor}. The raw voltage waveform data we captured +with it has been processed in the Jupyter Lab environment\cite{kluyver01} and grid frequency estimates are extracted as +described in Section \ref{frequency_estimation} using the Gasior and Gonzalez\cite{gasior01} technique. The Jupyter +notebook we used for frequency measurement is included with the supplementary materials to this thesis. In Figure +\ref{freq_meas_feedback} we fed back to the frequency estimator its own output giving us an indication of its numerical +performance. The result was \SI{1.3}{\milli\hertz} of RMS noise over a \SI{3600}{\second} simulation time. This +indicates performance is good enough for our purposes. In addition to this we validated our algorithm's performance by +applying it to the test waveforms from \cite{wright01}. In this test we got errors of \SI{4.4}{\milli\hertz} for the +\emph{noise} test waveform, \SI{0.027}{\milli\hertz} for the \emph{interharmonics} test waveform and +\SI{46}{\milli\hertz} for the \emph{amplitude and phase step} test waveform. Full results can be found in Figure +\ref{freq_meas_rocof_reference}. + +Figures \ref{freq_meas_trace} and \ref{freq_meas_trace_mag} show our measurement results over a 24-hour and a 2-hour +window respectively. + +\begin{figure} + \centering + \includegraphics[width=\textwidth]{../lab-windows/fig_out/freq_meas_feedback} + \caption{ + The frequency estimation algorithm applied to a synthetic noise-less mains waveform generated from its own + output. This feedback simulation gives an indication of numerical errors in our estimation algorithm. The top + four graphs show a comparison of the original trace (blue) and the re-calculated trace (orange). The bottom + trace shows the difference between the two. As we can tell both traces agree very well with an overall RMS + deviation of about \SI{1.3}{\milli\hertz}. The bottom trace shows deviation growing over time. This is an effect + of numerical errors in our ad hoc waveform generator. + } + \label{freq_meas_feedback} +\end{figure} + +\begin{figure} + \centering + \includegraphics[width=\textwidth]{../lab-windows/fig_out/freq_meas_rocof_reference} + \caption{ + Performance of our frequency estimation algorithm under the test suite specified in \cite{wright01}. Shown are + standard deviation and variance measurements as well as time-domain traces of absolute differences. + } + \label{freq_meas_rocof_reference} +\end{figure} + +\begin{figure} + \centering + \includegraphics[width=\textwidth]{../lab-windows/fig_out/freq_meas_trace_24h} + \caption{Trace of grid frequency over a 24 hour time span. One clearly visible feature are large positive and negative + transients at full hours. Times shown are UTC. Note that the European continental synchronous area that this + sensor is placed in covers several time zones which may result in images of daily load peaks appearing in 1 hour + intervals. Figure \ref{freq_meas_trace_mag} contains two magnified intervals from this plot.} + \label{freq_meas_trace} +\end{figure} + +\begin{figure} + \begin{subfigure}{\textwidth} + \centering + \includegraphics[width=\textwidth]{../lab-windows/fig_out/freq_meas_trace_2h_1} + \caption{A 2 hour window centered on 00:00 UTC.} + \end{subfigure} + \begin{subfigure}{\textwidth} + \centering + \includegraphics[width=\textwidth]{../lab-windows/fig_out/freq_meas_trace_2h_2} + \caption{A 2 hour window centered on 18:30 UTC.} + \end{subfigure} + \caption{Two magnified 2 hour windows of the trace from Figure \ref{freq_meas_trace}.} + \label{freq_meas_trace_mag} +\end{figure} + +\begin{figure} + \centering + \includegraphics[width=\textwidth]{../lab-windows/fig_out/mains_voltage_spectrum} + \caption{Power spectral density of the mains voltage trace in Figure \ref{freq_meas_trace}. Data was captured using + our frequency measurement sensor (\ref{sec-fsensor}) and FFT-processed after applying a Blackman window. The + vertical lines indicate \SI{50}{\hertz} and odd harmonics. We can see the expected peak at \SI{50}{\hertz} along + with smaller peaks at odd harmonics. We can also see a number of spurious tones both between harmonics and at low + frequencies. We can also see bands containing high noise energy around \SI{0.1}{\hertz}. This graph shows a high + signal-to-noise ratio that is not very demanding on our frequency estimation algorithm. + } + \label{mains_voltage_spectrum} +\end{figure} + +\section{Channel simulation and parameter validation} +\label{sec-ch-sim} + +To validate all layers of our communication stack from modulation scheme to cryptography we built a prototype +implementation in Python. Implementing all components in a high level language builds up familiarity with the concepts +while taking away much of the implementation complexity. For our demonstrator we will not be able to use Python since +our target platform is an inexpensive low-end microcontroller. Our demonstrator firmware will have to be written in a +low-level language such as C or Rust. For prototyping these languages lack flexibility compared to Python. + +To validate our modulation scheme we first performed a series of simulations on our Python demodulator prototype +implementation. To simulate a modulated grid frequency signal we added noise to a synthetic modulation signal. For most +simulations we used measured frequency data gathered with our frequency sensor. We only have a limited amount of capture +data. Re-using segments of this data as background noise in multiple simulation runs could lead to our simulation +results depending on individual features of this particular capture that would be common between all runs. To estimate +the impact of this problem we re-ran some of our simulations with artificial random noise synthesized with a power +spectral density matching that of our capture. To do this, we first measured our capture's PSD, then fitted a +low-resolution spline to the PSD curve in log-log coördinates. We then generated white noise, multiplied the resampled +spline with the DFT of the synthetic noise and performed an iDFT on the result. The resulting time-domain signal is our +synthetic grid frequency data. Figure \ref{freq_meas_spectrum} shows the PSD of our measured grid frequency signal. The +red line indicates the low-resolution log-log spline interpolation used for shaping our artificial noise. Figure +\ref{simulated_noise_spectrum} shows the PSD of our simulated signal overlaid with the same spline as a red line and +shows time-domain traces of both simulated (blue) and reference signals (orange) at various time scales. Visually both +signals look very similar, suggesting that we have found a good synthetic approximation of our measurements. + +\begin{figure} + \centering + \hspace*{-1.2cm}\includegraphics[width=1.2\textwidth]{../lab-windows/fig_out/freq_meas_spectrum} + \caption{Power spectral density of the 24 hour grid frequency trace in Figure \ref{freq_meas_trace} with some notable + peaks annotated with the corresponding period in seconds. The $\frac{1}{f}$ line indicates a pink noise spectrum. + Around a period of \SI{20}{\second} the PSD starts to fall off at about $\frac{1}{f^3}$ until we can make out some + bumps at periods around $2$ and \SI{3}{\second}. Starting at at around \SI{1}{Hz} we can see a white noise floor in + the order of \si{\micro\hertz^2\per\hertz}. + % TODO: where does this noise floor come from? Is it a fundamental property of the grid? Is it due to limitations of + % our measurement setup (such as ocxo stability/phase noise) ??? + } + \label{freq_meas_spectrum} +\end{figure} + +\begin{figure} + \centering + \hspace*{-1.2cm} + \includegraphics[width=1.2\textwidth]{../lab-windows/fig_out/simulated_noise_spectrum} + \caption{Synthetic grid frequency in comparison with measured data. The topmost graph shows the synthetic spectrum + compared to the spline approximation of the measured spectrum (red line). The other graphs show time-domain + synthetic data (blue) in comparison with measured data (orange). + } + \label{simulated_noise_spectrum} +\end{figure} + +In our simulations, we manipulated four main variables of our modulation scheme and demodulation algorithm and observed +their impact on symbol error rate (SER): + +\begin{description} + \item[Modulation amplitude.] Higher amplitude corresponds to a lower SER. + \item[Modulation bit count.] Higher bit count $n$ means longer transmissions but yields higher theoretical decoding + gain, and should increase demodulator sensitivity. Ultimately, we want to find a sweet spot of manageable + transmission length at good demodulator sensitivity. + \item[Decimation or DSSS chip duration.] The chip time determines where in the grid frequency spectrum (Figure + \ref{freq_meas_spectrum}) our modulated signal is located. Given our noise spectrum (Figure + \ref{freq_meas_spectrum}) lower chip durations (shifting our signal upwards in the spectrum) should yield lower + in-band background noise which should correspond to lower symbol error rates. + \item[Demodulation correlator peak threshold factor.] The first step of our prototype demodulation algorithm is to + calculate the correlation between all $2^n+1$ Gold sequences and our signal and to identify peaks corresponding + to the input data containing a correctly aligned Gold sequence. The threshold factor determines peaks of which + magnitude compared to baseline noise levels are considered in the following maximum likelihood estimation (MLE) + decoding (cf.\ Figure \ref{fig_demo_sig_schema}). +\end{description} + +Our results indicate that symbol error rate is a good proxy of demodulation performance. With decreasing signal-to-noise +ratio, margins in various parts of the demodulator decrease which statistically leads to an increased symbol error rate. +Our simulations yield smooth, reproducible SER curves with adequately low error bounds. This shows SER is related +monotonically to the signal-to-noise margins inside our demodulator prototype. + +\subsection{Sensitivity as a function of sequence length} + +A basic parameter of our DSSS modulation is the length of the Gold codes used. The length of a Gold code is exponential +in the code's bit count. Figure \ref{dsss_gold_nbits_overview} shows a plot of the symbol error rate of our demodulator +prototype depending on amplitude for each of five, six, seven and eight bit Gold sequences. In regions where symbol +error rate is neither clipping at $0$ nor at $1$ we can see the expected dependency that a $n+1$ bit Gold sequence at +roughly twice the length yields roughly one half the SER. We can also observe a saturation effect: At low amplitudes, +increasing the correlation length does not yield much benefit in SER anymore. In particular at a signal amplitude of +\SI{2.5}{\milli\hertz} even with asymptotically infinite sequence length our demodulator would still not be able to +produce a good demodulation. This is likely due to numerical errors in our demodulator. Since Gold codes of more than 7 +bit would yield unacceptably long transmission times this does not pose a problem in practice. + +Figure \ref{dsss_gold_nbits_sensitivity} for each bit count shows the minimum signal amplitude at which our demodulator +crossed below $\text{SER}=0.5$. If we have sufficient transmitter power to allocate selecting either a 5 bit or a 6 bit +Gold code yields sufficient performance at manageable data rates. + +\begin{figure} + \centering + \includegraphics[width=0.6\textwidth]{../lab-windows/fig_out/dsss_gold_nbits_overview} + \caption{ + Symbol Error Rate (SER) as a function of transmission amplitude. The line represents the mean of several + measurements for each parameter set. The shaded areas indicate one standard deviation from the mean. Background + noise for each trial is a random segment of measured grid frequency. Background noise amplitude is the same for + all trials. Shown are four traces for four different DSSS sequence lengths. Using a 5-bit gold code, one DSSS + symbol measures 31 chips. 6 bit per symbol are 63 chips, 7 bit are 127 chips and 8 bit 255 chips. This + simulation uses a decimation of 10, which corresponds to an $1 \text{s}$ chip length at our $10 \text{Hz}$ grid + frequency sampling rate. At 5 bit per symbol, one symbol takes $31 \text{s}$ and one bit takes $6.2 \text{s}$ + amortized. At 8 bit one symbol takes $255 \text{s} = 4 \text{min} 15 \text{s}$ and one bit takes $31.9 \text{s}$ + amortized. Here, slower transmission speed buys coding gain. All else being equal this allows for a decrease + in transmission power. + } + \label{dsss_gold_nbits_overview} +\end{figure} + +\begin{figure} + \centering + \begin{minipage}[c]{0.5\textwidth} + \hspace*{-1cm}\includegraphics[width=1.1\textwidth]{../lab-windows/fig_out/dsss_gold_nbits_sensitivity} + \end{minipage}\begin{minipage}[c]{0.45\textwidth} + \caption{ + Amplitude at an SER of 0.5\ in mHz depending on symbol length. Here we can observe an increase of sensitivity + with increasing symbol length, but we can clearly see diminishing returns above 6 bit (63 chips). Considering + that each bit roughly doubles overall transmission time for a given data length it seems lower bit counts are + preferrable if the required transmitter power can be realized. + } + \label{dsss_gold_nbits_sensitivity} + \end{minipage} +\end{figure} + +\subsection{Sensitivity versus peak detection threshold factor} + +One of the high level parameters of our demodulation algorithm is the \emph{threshold factor}. This parameter is +an implementation detail specific to our algorithm and not general to all possible DSSS demodulation algorithms. After +correlating the input signal against the template Gold sequences our algorithm runs a single channel discrete wavelet +transform (DWT) on the correlator output to better discriminate peaks from background noise. The output of this DWT is +then normalized against a running average and then fed into a simple threshold detector. The threshold of this detector +is our threshold factor. This threshold is the ratio that a correlation peak after DWT has to stand out from long-term +average background noise to be considered a peak. + +The threshold factor is an empirically determined unitless parameter. Low threshold factors yield many false positives +that in the extreme ultimately overload our MLE estimator's capacity to discard them. Moderate numbers of false +positives do not pose much of a challenge to our MLE since these spurious peaks have a random time distribution and are +easily discarded by our MLE's detection of sequences of equally-spaced symbols. High threshold factors lead the +algorithm to completely ignore some valid peaks. To some degree this can be compensated by our later interpolation step +for missing peaks but in the extreme will also break demodulation. In our simulations good values lie in the range from +$4.0$ to $5.5$. + +Figure \ref{dsss_thf_amplitude_5678} contains plots of demodulator sensitivity like the one in Figure +\ref{dsss_gold_nbits_overview}. This time there is one color-coded trace for each threshold factor between $1.5$ and +$10.0$ in steps of $0.5$. We can see a clear dependency of demodulation performance from threshold factor with both very +low and very high values breaking the demodulator. The runaway traces that we can see at low threshold factors are +artifacts of an implementation issue with our prototype code. We later fixed this issue in the demonstrator firmware +in Section \ref{sec-demo-fw-impl}. For comparison purposes this issue do not matter. + +\begin{figure} + \centering + \hspace*{-1cm}\includegraphics[width=1.2\textwidth]{../lab-windows/fig_out/dsss_thf_amplitude_5678} + \caption{ + SER vs.\ amplitude graph similar to Figure \ref{dsss_gold_nbits_overview} with one color-coded traces for + threshold factors between $1.5$ and $10.0$. Each graph shows traces for a single DSSS symbol length. + } + \label{dsss_thf_amplitude_5678} +\end{figure} + +If we again look at the intercept points where the amplitude traces cross $\text{SER}=0.5$ in these graphs we get the +plots in Figure \ref{dsss_thf_sensitivity_all_bits}. From this we can conclude that the range between $4.0$ and $5.0$ will +yield adequate threshold factors for our use case. + +\begin{figure} + \centering + \hspace*{-1cm}\includegraphics[width=1.1\textwidth]{../lab-windows/fig_out/dsss_thf_sensitivity_5678} + \caption{ + Graphs of amplitude at $SER=0.5$ for each symbol length as well as asymptotic SER for large amplitudes. Areas + shaded red indicate that $SER=0.5$ was not reached for any amplitude in the simulated range. The bumps in the 7 + bit and 8 bit graphs are due to the convergence problem we identified above and do not exist in our demonstrator + implementation. We see that smaller symbol lengths favor lower threshold factors, and that optimal threshold + factors for all symbol lengths are between $4.0$ and $5.0$. + } + \label{dsss_thf_sensitivity_all_bits} +\end{figure} + +\subsection{Chip duration and bandwidth} + +A parameter of any DSSS system is the frequency band used for transmission. Instead of specifying absolute frequencies +in our simulations we expressed DSSS bandwidth through chip duration and Gold sequence length. In our prototype, chip +duration is specified in grid frequency sampling periods to ease implementation without loss of generalization. + +Figure \ref{chip_duration_sensitivity} shows the dependence of symbol error rate at a fixed good threshold factor from +chip duration. The color bars indicate both chip duration translated to seconds real-time and the resulting symbol +duration at the given Gold code length. In the lower graphs we show the trace of amplitude at $\text{SER}=0.5$ over chip +duration like we did in Figure \ref{dsss_thf_sensitivity_all_bits} for threshold factor. In both graphs we can see a +faint optimum for very short chips with a decrease of sensitivity for long chips. This effect is due to longer chips +moving the signal band into noisier spectral regions (cf.\ Figure \ref{freq_meas_spectrum}). + +\begin{FPfigure} + \begin{subfigure}{\textwidth} + \centering + \hspace*{-1cm}\includegraphics[width=1.2\textwidth]{../lab-windows/fig_out/chip_duration_sensitivity_5} + \vspace*{-1cm} + \label{chip_duration_sensitivity_5} + \caption{ + 5 bit Gold code. + } + \end{subfigure} +%\end{figure} +%\begin{figure} +% \ContinuedFloat + \begin{subfigure}{\textwidth} + \centering + \hspace*{-1cm}\includegraphics[width=1.2\textwidth]{../lab-windows/fig_out/chip_duration_sensitivity_6} + \vspace*{-1cm} + \label{chip_duration_sensitivity_6} + \caption{ + 6 bit Gold code. + } + \end{subfigure} + \caption{ + Dependence of demodulator sensitivity on DSSS chip duration. Due to computational constraints this simulation is + limited to 5 bit and 6 bit DSSS sequences. There is a clearly visible sensitivity maximum at short chip + lengths around $0.2 \text{s}$. Short chip durations shift the entire transmission band up in frequency. In + Figure \ref{freq_meas_spectrum} we can see that noise energy is mostly concentrated at lower frequencies, so + shifting our signal up in frequency will reduce the amount of noise the decoder sees behind the correlator by + shifting the band of interest into a lower-noise spectral region. For a practical implementation chip duration + is limited by physical factors such as the maximum modulation slew rate ($\frac{\text{d}P}{\text{d}t}$) that can + be technically realized and the maximum Rate-Of-Change-Of-Frequency (ROCOF, $\frac{\text{d}f}{\text{d}t}$) that + the grid can tolerate. + } + \label{chip_duration_sensitivity} +\end{FPfigure} + +In the previous graphs we have used random clips of measured grid frequency noise as noise in our simulations. Comparing +between a simulation using measured noise and synthetic noise generated as we outlined in the beginning of Section +\ref{sec-ch-sim} we get the plots in Figure \ref{chip_duration_sensitivity_cmp}. We can see that while not perfect our +simulated noise is an adequate approximation of reality: Our prototype demodulator shows no significant difference in +behavior between measured and simulated noise. Simulated noise causes slightly worse performance for long chips. Overall +the results for both are very close in absolute value. + +\begin{FPfigure} + \begin{subfigure}{\textwidth} + \centering + \hspace*{-1cm}\includegraphics[width=1.2\textwidth]{../lab-windows/fig_out/chip_duration_sensitivity_cmp_meas_6} + \vspace*{-1cm} + \label{chip_duration_sensitivity_cmp_meas_6} + \caption{ + Simulation using baseline frequency data from actual measurements. + } + \end{subfigure} +%\end{figure} +%\begin{figure} +% \ContinuedFloat + \begin{subfigure}{\textwidth} + \centering + \hspace*{-1cm}\includegraphics[width=1.2\textwidth]{../lab-windows/fig_out/chip_duration_sensitivity_cmp_synth_6} + \vspace*{-1cm} + \label{chip_duration_sensitivity_cmp_synth_6} + \caption{ + Simulation using synthetic frequency data. + } + \end{subfigure} + \caption{ + Chip duration/sensitivity simulation results like in Figure \ref{chip_duration_sensitivity} compared between a + simulation using measured frequency data like in the previous graphs and one using artificially generated noise. + There is little visible difference indicating that we have found a good model of reality in our noise + synthesizer, but also that real grid frequency behaves like a frequency-shaped Gaussian noise process. + } + \label{chip_duration_sensitivity_cmp} +\end{FPfigure} + +\section{Implementation of a demonstrator unit} +\label{sec-prototype} + +To demonstrate the viability of our reset architecture we decided to implement a demonstrator system. In this +demonstrator we use JTAG to reset part of a commodity smart meter from an externally-connected reset controller. The +reset controller receives its commands over the grid frequency modulation system we outlined in this thesis. To keep +implementation cost low the reset controller is fed a simulation of a modulated grid frequency signal through a standard +\SI{3.5}{\milli\meter} audio jack\footnote{ + By generously cutting two PCB traces the meter we chose to use can be easily modified to provide galvanic separation + between grid and main application microcontroller. With this modification we have to supply power to its main + application MCU externally along with the JTAG interface but now the modified meter is electrically safe. +}. Measurement of actual grid frequency instead would simply require a voltage divider and depending on the setup an +analog optoisolator. + +\subsection{Selecting a smart meter for demonstration purposes} +\label{sec-easymeter} + +\begin{figure}[h!] + \centering + \begin{subfigure}{\textwidth} + \centering + \includegraphics[width=0.6\textwidth]{resources/easymeter_board_composite.jpg} + \label{easymeter_display_board_composite} + \caption{ + \footnotesize + Optical composite image of the display and data logging board in the top of the case. The six pins at the + top are the SPI chip-on-glass segment LCD. Of the eight pads on the left six are unused and two carry the + auxiliary power supply from the measurement board below. The bottom right section contains the + \si{\kilo\watt\hour} impulse LED and the angled IR communication LED. The flying wires + connect to the 14-pin JTAG and serial debug header. + } + \end{subfigure} + \begin{subfigure}{\textwidth} + \vspace{1cm} + \centering + \includegraphics[width=0.8\textwidth]{resources/easymeter_baseboard_composite.jpg} + \label{easymeter_measurement_board_composite} + \caption{ + \footnotesize + Composite microfocus x-ray image of the potted measurement module in the bottom of the case. The ovals on + the top left and right are power supply and data jumper connections for external modules such as SMGW + interfaces. The bright parts at the bottom are the massive screw terminals with integrated current shunts. + The circuitry right of the three independent measurement channels is the power supply circuit for the + display board. + } + \end{subfigure} + + \caption{ + Composite images of the circuit boards inside the EasyMeter Q3DA1002 smart electricity meter used in our + demonstration. + } + \label{easymeter_composites} +\end{figure} + +\begin{figure}[h!] + \centering + \begin{subfigure}{0.45\textwidth} + \centering + \includegraphics[width=\textwidth]{resources/easymeter_baseboard_channel.jpg} + \label{easymeter_channel_xray} + \caption{Microfocus x-ray of one channel's data acquisition circuit.} + \end{subfigure}\hspace*{5mm} + \begin{subfigure}{0.45\textwidth} + \centering + \includegraphics[width=\textwidth]{resources/easymeter_baseboard_powersupply.jpg} + \label{easymeter_powersupply_xray} + \caption{Microfocus x-ray of the auxiliary power supply.} + \end{subfigure} + + \caption{ + Microfocus x-rays of major sections of the EasyMeter Q3DA1002 measurement board. + } + \label{easymeter_detail_xrays} +\end{figure} + +For our demonstrator to make sense we wanted to select a realistic reset target. In Germany where this thesis was +written a standards-compliant setup would consist of a comparatively feature-limited smart meter and a smart meter +gateway (SMGW) containing all of the complex bidirectional protocol logic such as wireless or landline IP connectivity. +The realistic target for a setup in this architecture would be the components of an SMGW such as its communication modem +or main application processor. In the German architecture the smart meter does not even have to have a bi-directional +data link to the SMGW effectively mitigating any attack vector for remote compromise. + +Despite these considerations we still chose to reset the application MCU inside smart meter for two reasons. One is that +SMGWs are much rarer on the second-hand market. The other is that SMGWs are a particular feature of the German +standardization landscape and in many other countries functions of an SMGW such as wireless protocol handling are +integrated into the meter itself (see e.g.\ \cite{honeywell01}). + +In the end we settled on a Q3DA1002 three phase 60A meter made by German manufacturer EasyMeter. This meter is typical +of what would be found in an average German household and can be acquired very inexpensively as new old stock on online +marketplaces. + +The meter consists of a plastic enclosure with a transparent polycarbonate top part and a gray ABS bottom part that are +ultrasonically welded together. In the bottom part of the case a PCB we call the \emph{measurement} board is potted in +epoxide resin (see Figure \ref{easymeter_composites}). This PCB contains three separate energy measurement ASICs for the +three phases (see Figure \ref{easymeter_detail_xrays}). It also contains a capacitive dropper power supply for the meter +circuitry and external modules such as a SMGW. The measurement board through three infrared links (one per phase) +communicates with a smaller unpotted PCB we call the \emph{display} board in the top of the case. This PCB handles +measurement logging and aggregation, controls a small segment LCD displaying totals and handles the externally +accessible \si{\kilo\watt\hour} impulse LED and serial IR links. + +The measurement board does not contain any logging or outside communication interfaces. All of that is handled on the +display board by a Texas Instruments \texttt{MSP430F2350} application MCU. This is a 16-bit RISC MCU with +\SI{16}{\kilo\byte} flash and \SI{2}{\kilo\byte} SRAM\footnote{ + At first glance the microcontroller might seem overkill for such a simple application, but most of its + \SI{16}{\kilo\byte} program flash is in fact used. A casual glance with Ghidra shows that a large part of program + flash is expended on keeping multiple redundant copies of energy consumption aggregates including error recovery in + case of data corruption and some effort has even been made to guard against data corruption using simple + non-cryptographic checksums. Another large part of the MCU's firmware handles data transmission over the meter's + externally accessible IR link through Smart Message Language\cite{bsi-tr-03109-1-IVb}. +}. There is an I2C EEPROM that is used in conjunction with the microcontroller's internal \SI{256}{\byte} data flash to +keep redundant copies of energy consumption aggregates. On the side of the display board there is a 14-pin header +containing both a standard TI MSP430 JTAG pinout and a UART serial interface for debugging. Conveniently, the JTAG port +was left enabled by fuse in our particular production unit. + +We chose to use this \texttt{MSP430} series application MCU as our reset target. Though in this particular unit remote +compromise is impossible due to a lack of bidirectional communication links some of its sister models do contain +bidirectional communication links\cite{easymeter01} making compromise through communication interfaces an at least +theoretical possibility. In other countries, meters with a similar architecture to the Q3DA1002 include complex protocol +logic as part of the meter itself or have bidirectional links to it\cite{honeywell01,ifixit01,bigclive01,eevblog01}. As +an example, the Honeywell REX2 uses a Maxim Integrated \texttt{71M6541} main application microcontroller along with a +Texas Instruments \texttt{CC1000} series radio transceiver and is advertised to support both over-the-air firmware +upgrade and a remotely accessible disconnect switch. + +\subsection{Firmware implementation} +\label{sec-demo-fw-impl} + +We based our safety reset demonstrator firmware on the grid frequency sensor firmware we developed in Section +\ref{sec-fsensor}. We implemented DSSS demodulation by translating the Python prototype code we developed in Section +\ref{sec-ch-sim} to embedded C code. After validating the C translation in extensive simulations we integrated our code +with a Reed-Solomon implementation and a libsodium-based implementation of the cryptographic protocol we designed in +Section \ref{sec-crypto}. To reprogram the target \texttt{MSP430} microcontroller we ported the low-level bitbang JTAG +driver of \texttt{mspdebug}\footnote{\url{https://github.com/dlbeer/mspdebug}}. See Figure \ref{fig_demo_sig_schema} for +a schematic overview of signal processing in our demonstrator. + +For all computation-heavy high level modules of our firmware such as the DSSS demodulator or the grid frequency +estimator we wrote test fixtures that allow the same code that runs on the microcontroller to be executed on the host +for testing. These test fixtures are very simple C programs that load input data from a file or the command line, run +the algorithm and print results on standard output. To enable automatic testing of a large parameter set we run these +test fixtures repeatedly from a set of Python scripts sweeping parameters. + +\begin{figure} + \centering + \includegraphics[width=\textwidth]{resources/prototype_schema} + \caption{The signal processing chain of our demonstrator.} + \label{fig_demo_sig_schema} +\end{figure} + +\section{Grid frequency modulation emulation} + +To emulate a modulated grid frequency signal we superimposed a DSSS-modulated signal at the proper amplitude with +synthetic grid frequency noise generated according to the measurements we took in Section \ref{sec-fsensor}. In this +primitive simulation we do not simulate the precise impulse response of the grid to a DSSS-modulated stimulus signal. +Our results still serve to illustrate the possibility of data transmission in this manner this impulse response can be +compensated for at the transmitter by selecting appropriate modulation parameters (e.g. chip rate and amplitude) and at +the receiver by equalization with a matched filter. + +\section{Experimental results} + +\begin{figure} + \centering + \includegraphics[width=0.6\textwidth]{resources/prototype.jpg} + \caption{The completed prototype setup. The board on the left is the safety reset microcontroller. It is connected + to the smart meter in the middle through an adapter board. The top left contains a USB hub with debug interfaces to + the reset microcontroller. The cables on the bottom left are the debug USB cable and the \SI{3.5}{\milli\meter} + audio cable for the simulated mains voltage input.} + \label{fig_proto_pic} +\end{figure} + +After extensive simulations and testing of the individual modules of our solution we proceeded to conduct a real-world +experiment. We tried the demonstrator setup in Figure \ref{fig_proto_pic} using an emulated noisy DSSS signal in +real-time. Our experiment went without any issues and the firmware implementation correctly reset the demonstrator's +meter. We were happy to see that our extensive testing paid off: The demonstrator setup worked on its first try. + +Our experiment consisted of the demonstrator prototype with the meter flashed with its factory firmware connected to a +microcontroller development board acting as the safety reset controller. The safety reset controller is connected to a +laptop's audio output through an adapter board. The laptop plays back an emulated grid voltage waveform that the safety +reset microcontroller measures and analyzes as it would when directly connected to the mains. When the microcontroller +receives a reset sequence that is a valid signature using a development key incorporated into its firmware through JTAG +it re-programs the smart meter with a modified firmware image that displays a success message on the meter's LCD. + +We used a signature truncated at 120 bit in our experiment. We chose a 5 bit DSSS sequence. Taking the sign bit into +account the length of the encoded signature is 20 DSSS symbols. On top of this we used Reed-Solomon error correction at +a 2:1 ratio inflating total message length to 30 DSSS symbols. At the \SI{1}{\second} chip rate we used in other +simulations as well this equates to an overall transmission duration of approximately \SI{15}{\minute}. To give the +demodulator some time to settle and to produce more realistic conditions of signal reception we padded the modulated +signal unmodulated noise on both ends. + +\section{Lessons learned} + +Before settling on the commercial smart meter we first tried to use an \texttt{EVM430-F6779} smart meter evaluation kit +made by Texas Instruments. This evaluation kit did not turn out well for two main reasons. One, it shipped with half the +case missing and no cover for the terminal blocks. Because of this some work was required to get it electrically safe. +Even after mounting it in an electrically safe manner the safety reset controller prototype would also have to be +galvanically isolated to not pose an electrical safety risk since the main MCU is not isolated from the grid and the +JTAG port is also galvanically coupled. The second issue we ran into was that the \texttt{EVM430-F6779} is based around +an \texttt{MSP430F6779} microcontroller. This microcontroller is a rather large part within the \texttt{MSP430} series +and uses a new revision of the CPU core and associated JTAG peripheral that are incompatible with all \texttt{MSP430} +programmers we tried to use on it. \texttt{mspdebug} does not have support for it and porting TI's own JTAG programmer +reference sources did not yield any results either. Finally we tried an USB-based programmer made by TI themselves that +turned out to either have broken firmware or a hardware defect, leading to it frequently reënumerating on the USB. + +Overall our initial assumption that a development kit would certainly be easier to program than a commercial meter did +not prove to be true. Contrary to our expectations the commercial meter had JTAG enabled allowing us to easily read out +its stock firmware without needing to reverse-engineer vendor firmware update files or circumventing code protection +measures. The fact that its firmware was only available in its compiled binary form was not much of a hindrance as it +proved not to be too complex and all we wanted to know could be found out with just a few hours of digging in Ghidra. + +In the firmware development phase our approach of testing every module individually (e.g. DSSS demodulator, Reed-Solomon +decoder, grid frequency estimation) proved to be very useful. In particular debugging benefited greatly from being able +to run several thousand tests within seconds. In case of our DSSS demodulator this modular testing and simulation +architecture allowed us to simulate thousands of runs of our implementation on test data and directly compare it to our +Jupyter/Python prototype (see Figure \ref{fw_proto_comparison}). Since we spent more time polishing our embedded C +implementation it turned out to perform better than our Python prototype. At the same time it shows fundamentally +similar response to its parameters. One significant bug we fixed in the embedded C version was the Python version's +tendency towards incorrect decodings at even very large amplitudes. + +\begin{figure} + \centering + \begin{subfigure}{\textwidth} + \centering + \hspace*{-1cm} + \includegraphics[trim={0 4cm 0 0},clip,width=1.2\textwidth]{../lab-windows/fig_out/dsss_thf_amplitude_56_jupyter_impl} + \caption{Python prototype.} + \end{subfigure} + \begin{subfigure}{\textwidth} + \centering + \hspace*{-1cm} + \includegraphics[trim={0 4cm 0 0},clip,width=1.2\textwidth]{../lab-windows/fig_out/dsss_thf_amplitude_56_fw_impl} + \caption{Embedded C implementation.} + \end{subfigure} + + \caption{ + Symbol error rate plots versus threshold factor for both our Python prototype (above) and our firmware + implementation of our demodulation algorithm. Note the slightly different threshold factor color scales. Cf.\ + Figure \ref{dsss_thf_amplitude_5678}. + } + \label{fw_proto_comparison} +\end{figure} + +In accordance with our initial estimations we did not run into any code space nor computation bottlenecks for chosing +floating point emulation instead of porting over our algorithms to fixed point calculations. The extremely slow sampling +rate of our systems makes even heavyweight processing such as FFT or our brute-force dynamic programming approach to +DSSS demodulation possible well within our performance constraints. + +Since we are only building a prototype we did not optimize firmware code size at all. The compiled code size of our +firmware implementation is slightly larger than we would like at around \SI{64}{\kilo\byte} for our firmware image +including everything except the target microcontroller firmware image. See appendix \ref{symbol_size_chart} for a graph +illustrating the contribution of various parts of the signal processing toolchain to this total. Overall the most +heavy-weight operations by far are the SHA512 implementation from libsodium and the FFT from ARM's CMSIS signal +processing library. Especially the SHA512 implementation has large potential for size optimization because it is highly +optimized for speed using extensive manual loop unrolling. + +\chapter{Future work} + +\section{Precise grid characterization} + +We based our simulations on a linear relationship between the generation/consumption power imbalance and grid frequency. +Our literature study suggests that this is an appropriate first order approximation\cite{crastan03}. We kept the +modulation bandwidth in our simulations inside a \SIrange{1000}{100}{\milli\hertz} frequency band that we reason is most +likely to exhibit this linear behavior in practice. At lower frequencies primary control kicks in. With the frequency +delta thresholds specified for primary control systems\cite{entsoe04} this would lead to significant non-linear +effects. At higher frequencies grid frequency estimation at the receiver becomes more complex since the margins of the +FFT transform shrink. Higher frequencies also come close to modes of mechanical oscillation in generators that usually +lie at \SI{5}{\hertz} and above\cite{crastan03}. + +An analysis of the above concerns can be performed using dynamic grid simulation models\cite{semerow01,entsoe05}. +Presumably out of security concerns these models are only available under non-disclosure agreements. Integrating +NDA-encumbered results stemming from such a model in an open-source publication such as this one poses a logistical +challenge which is why we decided to leave this topic for a separate future work. + +After detailed model simulation we ultimately aim to validate our results experimentally. Assuming linear grid behavior +even under very small disturbances a small-scale experiment is an option. Such a small-scale experiment would require +very long integration times: Given a frequency characteristic of \SI{30}{\giga\watt\per\hertz} a stimulus of +\SI{10}{\kilo\watt} yields $\Delta f = \SI{0.33}{\micro\hertz}$. At an estimated \SI{20}{\milli\hertz} of RMS noise over +a bandwidth of interest this results in an SNR slightly better than \SI{-50}{\decibel}. The correlation time necessary +to offset this with DSSS processing gain at a chip rate of \SI{1}{\baud} would be in the order of days. With such long +correlation times clock stability starts to become a problem as during correlation transmitter and receiver must +maintain close phase alignment with respect to one chip period. A phase difference requirement of less than +\SI{10}{\degree}over this period of time would translate into clock stability better than \SI{10}{ppm}. Though certainly +not impossible to achieve this does pose an engineering challenge. + +A way to reduce clock alignment might be to use grid frequency itself as a reference. Instead of keying the DSSS +modulator/demodulator on a local crystal oscillator, chip timings would be described in fractions of a mains voltage +cycle. This would track grid frequency variations synchronously at both ends and would maintain phase alignment even +over long periods of time at cost of a slight increase in system complexity. The receiver would then measure differences +between consecutive chips instead of their absolute values. + +\section{Technical standardization} + +The description of a safety reset system provided in this work could be translated into a formalized technical standard. +Our system is simple compared to e.g.\ a full smart meter communication standard and thus can conceivably be +described in a single, concise document. The complicated side of standardization would be the standardization of the +backend operation including key management, coördination and command authorization. + +\section{Regulatory adoption} +\label{sec-regulation} + +Since the proposed system adds significant cost and development overhead at no immediate benefit to either consumer or +utility company it is unlikely that it would be adopted voluntarily. Market forces limit what long-term planning utility +companies can do. An advanced mitigation such as this one might be out of their reach on their own and might require +regulatory intervention to be implemented. To regulatory authorities a system such as this one provides a primitive to +guard against attacks. Due to the low-level approach our system might allow a regulatory authority to restore meters to +a safe state without the need of fine-grained control of implementation details such as application network protocols. + +A regulatory authority might specify that all smart meters must use a standardized reset controller that on command +resets to a minimal firmware image that disables external communication, continues basic billing functions and enables +any disconnect switches. This system would enable the regulatory authority to directly preempt a large-scale attack +irrespective of implementation details of the various smart meter implementations. + +Cryptographic key management for the smart reset system is not much different to the management of highly privileged +signing keys as they are used in many other systems such as TLS already. If the safety reset system is implemented by a +regulatory authority they would likely be able to find a public entity that is already managing root keys for other +government systems to also manage safety reset keys. Availability and security requirements of safety reset keys do not +differ significantly from those for other types of root keys. + +\section{Zones of trust} + +In our design, we opted for a safety reset controller in form of a separate micocontroller entirely separate from +whatever application microcontroller the smart meter design is already using. This design nicely separates the meter +into an untrusted application on the core microcontroller and the trusted reset controller. Since the interface between +the two is simple and one-way, it can be validated to a high standard of security. + +Despite these security benefits, the cost of such a separate hardware device might prove high in a mass-market rollout. +In this case, one might attempt to integrate the reset controller into the core microcontroller in some way. Primarily, +there would be two ways to accomplish this. One is a solution that physically integrates an additional microcontroller +core into the main application microcontroller package either as a module on the same die or as a separate die in a +multi-chip module (MCM) with the main application microcontroller. A custom solution integrating both on a single die +might be a viable path for very large-scale deployments but will most likely be too expensive in tooling costs alone to +justify its use. More likely for a medium- to large-scale deployment of millions of meters would be a MCM integrating an +off-the-shelf smart metering microcontroller die with the reset controller running on another, much smaller +off-the-shelf microcontroller die. This solution might potentially save some cost compared to a solution using a +discrete microcontroller for the reset controller. + +The more likely approach to reducing cost overhead of the reset controller would be to employ virtualization +technologies such as ARM's TrustZone in order to incorporate the reset controller firmware into the application firmware +on the same processor core without compromising the reset controller's security or disturbing the application firmware's +operation. + +TrustZone is a virtualization technology that provides a hardware-assisted privileged execution domain. In traditional +virtualization setups a privileged hypervisor is managing several unprivileged applications that share resources between +them. Separation between applications in this setup is longitudinal between adjacent virtual machines. Two applications +would both be running in unprivileged mode sharing the same CPU and the hypervisor would merely schedule them, configure +hardware resource access and coördinate communication. This longitudinal virtualization simplifies application +development since from the application's perspective the virtual machine looks very similar to a physical one. In +addition, in general this setup can be used to reciprocally isolate two applications with neither one being able to gain +control over the other. + +In contrast to this, a TrustZone-like system in general does not provide several application virtual machines and +longitudinal separation. Instead, it provides lateral separation between two domains: The unprivileged application +firmware and a privileged hypervisor. Application firmware may communicate with the hypervisor through defined +interfaces but due to TrustZone's design it need not even be aware of the hypervisor's existence. This makes a perfect +fit for our reset controller. The reset controller firmware would be running in privileged mode and without exposing any +communication interfaces to application firmware. The application firmware would be running in unprivileged mode +without any modification. The main hurdles to the implementation to a system like this are the requirement for a +microcontroller providing this type of virtualization on the one hand and the complexity of correctly employing this +virtualization on the other hand. Virtualization systems such as TrustZone are still orders of magnitude more complex to +correctly configure than it is to simply use separate hardware and secure the interfaces in between. + +\chapter{Conclusion} + +In this thesis we have developed an end-to-end design of a reset system to restore smart meters to a safe operating +state during an ongoing large-scale cyberattack. We have laid out the fundamentals of smart metering infrastructure and +elaborated the need for an out of band method to reset a meter's firmware due to the large attack surface of this +complex firmware. To allow our system to be triggered even in the middle of a cyberattack we have developed a broadcast +data transmission system based on intentional modulation of the global grid frequency. We have developed the theoretical +foundations of the process based on an established model of inertial grid frequency response to load variations and +shown the viability of our end-to-end design through extensive simulations. To put these simulations on a solid +foundation we have developed a grid frequency measurement methodology comprising of a custom-designed hardware device +for electrically safe data capture and a set of software tools to archive and process captured data. Our simulations +show good behavior of our broadcast communication system and give an indication that coöperating with a large consumer +such as an aluminum smelter would be a feasible way to set up a transmitter with very low hardware overhead. Based on +our broadcast primitive we have developed a cryptographic protocol ready for embedded implementation in +resource-constrained systems that allows triggering all or a selected subset of devices within a quick response time of +less than 30 minutes. Finally, we have experimentally validated our system using simulated grid frequency data in a +demonstrator setup based on a commercial microcontroller as our safety reset controller and an off-the-shelf smart +meter. We have laid out a path for further research and standardization related to our system. Our code and electronics +designs are available at the public repository listed on the second page of this document. + +\newpage + +%\nocite{*} TODO: check unused references +\printbibliography[heading=bibintoc] +\newpage + +\appendix + +\chapter{Frequency sensor schematics} +\label{sec-app-freq-sens-schematics} +\fancyhead[C]{Frequency sensor schematics (1/3)} +\fancyfoot[C]{} +\fancyhead[R]{\thepage} +\includepdf[fitpaper,landscape,pagecommand={\thispagestyle{fancy}}]{resources/platform-export-pg1.pdf} +\fancyhead[C]{Frequency sensor schematics (2/3)} +\includepdf[fitpaper,pagecommand={\thispagestyle{fancy}}]{resources/platform-export-pg2.pdf} +\fancyhead[C]{Frequency sensor schematics (3/3)} +\includepdf[fitpaper,landscape,pagecommand={\thispagestyle{fancy}}]{resources/platform-export-pg3.pdf} +\fancyfoot[C]{\thepage} + +\chapter{Demonstrator firmware symbol size map} +\emph{Please find this appendix enclosed in the pouch on the inside of the back cover.} +\label{symbol_size_chart} +\includepdf[fitpaper]{resources/safetyreset-symbol-sizes.pdf} + +\ifdefined\includenotebooks +\chapter{Transcripts of Jupyter notebooks used in this thesis} + +\includenotebook{Grid frequency estimation}{grid_freq_estimation} +\includenotebook{Grid frequency estimation validation against ROCOF test suite}{freq_meas_validation_rocof_testsuite} +\includenotebook{Frequency sensor clock stability analysis}{gps_clock_jitter_analysis} +\includenotebook{DSSS modulation experiments}{dsss_experiments-ber} +\fi + +\ifdefined\includefirmwaresources +\chapter{Firmware source code excerpts} +\section{DMA-backed ADC capture (adc.c)} +\inputminted[fontsize=\footnotesize,linenos,firstline=18,lastline=115,breaklines]{C}{../gm_platform/fw/adc.c} + +\section{Frequency sensor packetized serial interface} +\subsection{serial.c} +\inputminted[fontsize=\footnotesize,linenos,breaklines]{C}{../gm_platform/fw/serial.c} +\subsection{packet\_interface.c} +\inputminted[fontsize=\footnotesize,linenos,breaklines]{C}{../gm_platform/fw/packet_interface.c} +\subsection{cobs.c} +\inputminted[fontsize=\footnotesize,linenos,breaklines]{C}{../gm_platform/fw/cobs.c} +\subsection{Host data logging utility (tw\_test.py)} +\inputminted[fontsize=\footnotesize,linenos,breaklines]{python}{../gm_platform/fw/tw_test.py} + +\section{Frequency estimation (freq\_meas.c)} +\inputminted[fontsize=\footnotesize,linenos,breaklines]{C}{../controller/fw/src/freq_meas.c} +\section{DSSS demodulation (dsss\_demod.c)} +\inputminted[fontsize=\footnotesize,linenos,breaklines]{C}{../controller/fw/src/dsss_demod.c} +\section{Cryptographic protocol handling} +\subsection{protocol.c} +\inputminted[fontsize=\footnotesize,linenos,breaklines]{C}{../controller/fw/src/protocol.c} +\subsection{crypto.c} +\inputminted[fontsize=\footnotesize,linenos,breaklines]{C}{../controller/fw/src/crypto.c} +\fi + + +% TODO +%\chapter{Economic viability of countermeasures} +%\section{Attack cost} +%\section{Countermeasure cost} +%\section{Conclusion} + +\end{document} |