You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

488 lines
19 KiB

8 years ago
8 years ago
  1. %% bare_conf.tex
  2. %% V1.3
  3. %% 2007/01/11
  4. %% by Michael Shell
  5. %% See:
  6. %% http://www.michaelshell.org/
  7. %% for current contact information.
  8. %%
  9. %% This is a skeleton file demonstrating the use of IEEEtran.cls
  10. %% (requires IEEEtran.cls version 1.7 or later) with an IEEE conference paper.
  11. %%
  12. %% Support sites:
  13. %% http://www.michaelshell.org/tex/ieeetran/
  14. %% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
  15. %% and
  16. %% http://www.ieee.org/
  17. %%*************************************************************************
  18. %% Legal Notice:
  19. %% This code is offered as-is without any warranty either expressed or
  20. %% implied; without even the implied warranty of MERCHANTABILITY or
  21. %% FITNESS FOR A PARTICULAR PURPOSE!
  22. %% User assumes all risk.
  23. %% In no event shall IEEE or any contributor to this code be liable for
  24. %% any damages or losses, including, but not limited to, incidental,
  25. %% consequential, or any other damages, resulting from the use or misuse
  26. %% of any information contained here.
  27. %%
  28. %% All comments are the opinions of their respective authors and are not
  29. %% necessarily endorsed by the IEEE.
  30. %%
  31. %% This work is distributed under the LaTeX Project Public License (LPPL)
  32. %% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
  33. %% distributed and modified. A copy of the LPPL, version 1.3, is included
  34. %% in the base LaTeX documentation of all distributions of LaTeX released
  35. %% 2003/12/01 or later.
  36. %% Retain all contribution notices and credits.
  37. %% ** Modified files should be clearly indicated as such, including **
  38. %% ** renaming them and changing author support contact information. **
  39. %%
  40. %% File list of work: IEEEtran.cls, IEEEtran_HOWTO.pdf, bare_adv.tex,
  41. %% bare_conf.tex, bare_jrnl.tex, bare_jrnl_compsoc.tex
  42. %%*************************************************************************
  43. % *** Authors should verify (and, if needed, correct) their LaTeX system ***
  44. % *** with the testflow diagnostic prior to trusting their LaTeX platform ***
  45. % *** with production work. IEEE's font choices can trigger bugs that do ***
  46. % *** not appear when using other class files. ***
  47. % The testflow support page is at:
  48. % http://www.michaelshell.org/tex/testflow/
  49. % Note that the a4paper option is mainly intended so that authors in
  50. % countries using A4 can easily print to A4 and see how their papers will
  51. % look in print - the typesetting of the document will not typically be
  52. % affected with changes in paper size (but the bottom and side margins will).
  53. % Use the testflow package mentioned above to verify correct handling of
  54. % both paper sizes by the user's LaTeX system.
  55. %
  56. % Also note that the "draftcls" or "draftclsnofoot", not "draft", option
  57. % should be used if it is desired that the figures are to be displayed in
  58. % draft mode.
  59. %
  60. \documentclass[10pt,conference,compsocconf]{IEEEtran}
  61. %\documentclass[10pt]{IEEEtran}
  62. \usepackage{times}
  63. \usepackage[hyphens]{url}
  64. \usepackage{caption}
  65. \captionsetup{font=footnotesize,justification=centering,labelsep=period}
  66. % Add the compsoc option for Computer Society conferences.
  67. %
  68. % If IEEEtran.cls has not been installed into the LaTeX system files,
  69. % manually specify the path to it like:
  70. % \documentclass[conference]{../sty/IEEEtran}
  71. \usepackage{multirow}
  72. % Some very useful LaTeX packages include:
  73. % (uncomment the ones you want to load)
  74. % *** MISC UTILITY PACKAGES ***
  75. %
  76. %\usepackage{ifpdf}
  77. % Heiko Oberdiek's ifpdf.sty is very useful if you need conditional
  78. % compilation based on whether the output is pdf or dvi.
  79. % usage:
  80. % \ifpdf
  81. % % pdf code
  82. % \else
  83. % % dvi code
  84. % \fi
  85. % The latest version of ifpdf.sty can be obtained from:
  86. % http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/
  87. % Also, note that IEEEtran.cls V1.7 and later provides a builtin
  88. % \ifCLASSINFOpdf conditional that works the same way.
  89. % When switching from latex to pdflatex and vice-versa, the compiler may
  90. % have to be run twice to clear warning/error messages.
  91. % *** CITATION PACKAGES ***
  92. %
  93. %\usepackage{cite}
  94. % cite.sty was written by Donald Arseneau
  95. % V1.6 and later of IEEEtran pre-defines the format of the cite.sty package
  96. % \cite{} output to follow that of IEEE. Loading the cite package will
  97. % result in citation numbers being automatically sorted and properly
  98. % "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using
  99. % cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's
  100. % \cite will automatically add leading space, if needed. Use cite.sty's
  101. % noadjust option (cite.sty V3.8 and later) if you want to turn this off.
  102. % cite.sty is already installed on most LaTeX systems. Be sure and use
  103. % version 4.0 (2003-05-27) and later if using hyperref.sty. cite.sty does
  104. % not currently provide for hyperlinked citations.
  105. % The latest version can be obtained at:
  106. % http://www.ctan.org/tex-archive/macros/latex/contrib/cite/
  107. % The documentation is contained in the cite.sty file itself.
  108. % *** GRAPHICS RELATED PACKAGES ***
  109. %
  110. \ifCLASSINFOpdf
  111. \usepackage[pdftex]{graphicx}
  112. % declare the path(s) where your graphic files are
  113. % \graphicspath{{../pdf/}{../jpeg/}}
  114. % and their extensions so you won't have to specify these with
  115. % every instance of \includegraphics
  116. % \DeclareGraphicsExtensions{.pdf,.jpeg,.png}
  117. \else
  118. % or other class option (dvipsone, dvipdf, if not using dvips). graphicx
  119. % will default to the driver specified in the system graphics.cfg if no
  120. % driver is specified.
  121. % \usepackage[dvips]{graphicx}
  122. % declare the path(s) where your graphic files are
  123. % \graphicspath{{../eps/}}
  124. % and their extensions so you won't have to specify these with
  125. % every instance of \includegraphics
  126. % \DeclareGraphicsExtensions{.eps}
  127. \fi
  128. % graphicx was written by David Carlisle and Sebastian Rahtz. It is
  129. % required if you want graphics, photos, etc. graphicx.sty is already
  130. % installed on most LaTeX systems. The latest version and documentation can
  131. % be obtained at:
  132. % http://www.ctan.org/tex-archive/macros/latex/required/graphics/
  133. % Another good source of documentation is "Using Imported Graphics in
  134. % LaTeX2e" by Keith Reckdahl which can be found as epslatex.ps or
  135. % epslatex.pdf at: http://www.ctan.org/tex-archive/info/
  136. %
  137. % latex, and pdflatex in dvi mode, support graphics in encapsulated
  138. % postscript (.eps) format. pdflatex in pdf mode supports graphics
  139. % in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure
  140. % that all non-photo figures use a vector format (.eps, .pdf, .mps) and
  141. % not a bitmapped formats (.jpeg, .png). IEEE frowns on bitmapped formats
  142. % which can result in "jaggedy"/blurry rendering of lines and letters as
  143. % well as large increases in file sizes.
  144. %
  145. % You can find documentation about the pdfTeX application at:
  146. % http://www.tug.org/applications/pdftex
  147. % *** MATH PACKAGES ***
  148. %
  149. %\usepackage[cmex10]{amsmath}
  150. % A popular package from the American Mathematical Society that provides
  151. % many useful and powerful commands for dealing with mathematics. If using
  152. % it, be sure to load this package with the cmex10 option to ensure that
  153. % only type 1 fonts will utilized at all point sizes. Without this option,
  154. % it is possible that some math symbols, particularly those within
  155. % footnotes, will be rendered in bitmap form which will result in a
  156. % document that can not be IEEE Xplore compliant!
  157. %
  158. % Also, note that the amsmath package sets \interdisplaylinepenalty to 10000
  159. % thus preventing page breaks from occurring within multiline equations. Use:
  160. %\interdisplaylinepenalty=2500
  161. % after loading amsmath to restore such page breaks as IEEEtran.cls normally
  162. % does. amsmath.sty is already installed on most LaTeX systems. The latest
  163. % version and documentation can be obtained at:
  164. % http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/
  165. % *** SPECIALIZED LIST PACKAGES ***
  166. %
  167. %\usepackage{algorithmic}
  168. % algorithmic.sty was written by Peter Williams and Rogerio Brito.
  169. % This package provides an algorithmic environment fo describing algorithms.
  170. % You can use the algorithmic environment in-text or within a figure
  171. % environment to provide for a floating algorithm. Do NOT use the algorithm
  172. % floating environment provided by algorithm.sty (by the same authors) or
  173. % algorithm2e.sty (by Christophe Fiorio) as IEEE does not use dedicated
  174. % algorithm float types and packages that provide these will not provide
  175. % correct IEEE style captions. The latest version and documentation of
  176. % algorithmic.sty can be obtained at:
  177. % http://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/
  178. % There is also a support site at:
  179. % http://algorithms.berlios.de/index.html
  180. % Also of interest may be the (relatively newer and more customizable)
  181. % algorithmicx.sty package by Szasz Janos:
  182. % http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/
  183. % *** ALIGNMENT PACKAGES ***
  184. %
  185. %\usepackage{array}
  186. % Frank Mittelbach's and David Carlisle's array.sty patches and improves
  187. % the standard LaTeX2e array and tabular environments to provide better
  188. % appearance and additional user controls. As the default LaTeX2e table
  189. % generation code is lacking to the point of almost being broken with
  190. % respect to the quality of the end results, all users are strongly
  191. % advised to use an enhanced (at the very least that provided by array.sty)
  192. % set of table tools. array.sty is already installed on most systems. The
  193. % latest version and documentation can be obtained at:
  194. % http://www.ctan.org/tex-archive/macros/latex/required/tools/
  195. %\usepackage{mdwmath}
  196. %\usepackage{mdwtab}
  197. % Also highly recommended is Mark Wooding's extremely powerful MDW tools,
  198. % especially mdwmath.sty and mdwtab.sty which are used to format equations
  199. % and tables, respectively. The MDWtools set is already installed on most
  200. % LaTeX systems. The lastest version and documentation is available at:
  201. % http://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/
  202. % IEEEtran contains the IEEEeqnarray family of commands that can be used to
  203. % generate multiline equations as well as matrices, tables, etc., of high
  204. % quality.
  205. %\usepackage{eqparbox}
  206. % Also of notable interest is Scott Pakin's eqparbox package for creating
  207. % (automatically sized) equal width boxes - aka "natural width parboxes".
  208. % Available at:
  209. % http://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/
  210. % *** SUBFIGURE PACKAGES ***
  211. %\usepackage[tight,footnotesize]{subfigure}
  212. % subfigure.sty was written by Steven Douglas Cochran. This package makes it
  213. % easy to put subfigures in your figures. e.g., "Figure 1a and 1b". For IEEE
  214. % work, it is a good idea to load it with the tight package option to reduce
  215. % the amount of white space around the subfigures. subfigure.sty is already
  216. % installed on most LaTeX systems. The latest version and documentation can
  217. % be obtained at:
  218. % http://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/
  219. % subfigure.sty has been superceeded by subfig.sty.
  220. %\usepackage[caption=false]{caption}
  221. %\usepackage[font=footnotesize]{subfig}
  222. % subfig.sty, also written by Steven Douglas Cochran, is the modern
  223. % replacement for subfigure.sty. However, subfig.sty requires and
  224. % automatically loads Axel Sommerfeldt's caption.sty which will override
  225. % IEEEtran.cls handling of captions and this will result in nonIEEE style
  226. % figure/table captions. To prevent this problem, be sure and preload
  227. % caption.sty with its "caption=false" package option. This is will preserve
  228. % IEEEtran.cls handing of captions. Version 1.3 (2005/06/28) and later
  229. % (recommended due to many improvements over 1.2) of subfig.sty supports
  230. % the caption=false option directly:
  231. %\usepackage[caption=false,font=footnotesize]{subfig}
  232. %
  233. % The latest version and documentation can be obtained at:
  234. % http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/
  235. % The latest version and documentation of caption.sty can be obtained at:
  236. % http://www.ctan.org/tex-archive/macros/latex/contrib/caption/
  237. % *** FLOAT PACKAGES ***
  238. %
  239. %\usepackage{fixltx2e}
  240. % fixltx2e, the successor to the earlier fix2col.sty, was written by
  241. % Frank Mittelbach and David Carlisle. This package corrects a few problems
  242. % in the LaTeX2e kernel, the most notable of which is that in current
  243. % LaTeX2e releases, the ordering of single and double column floats is not
  244. % guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a
  245. % single column figure to be placed prior to an earlier double column
  246. % figure. The latest version and documentation can be found at:
  247. % http://www.ctan.org/tex-archive/macros/latex/base/
  248. %\usepackage{stfloats}
  249. % stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e
  250. % the ability to do double column floats at the bottom of the page as well
  251. % as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in
  252. % LaTeX2e). It also provides a command:
  253. %\fnbelowfloat
  254. % to enable the placement of footnotes below bottom floats (the standard
  255. % LaTeX2e kernel puts them above bottom floats). This is an invasive package
  256. % which rewrites many portions of the LaTeX2e float routines. It may not work
  257. % with other packages that modify the LaTeX2e float routines. The latest
  258. % version and documentation can be obtained at:
  259. % http://www.ctan.org/tex-archive/macros/latex/contrib/sttools/
  260. % Documentation is contained in the stfloats.sty comments as well as in the
  261. % presfull.pdf file. Do not use the stfloats baselinefloat ability as IEEE
  262. % does not allow \baselineskip to stretch. Authors submitting work to the
  263. % IEEE should note that IEEE rarely uses double column equations and
  264. % that authors should try to avoid such use. Do not be tempted to use the
  265. % cuted.sty or midfloat.sty packages (also by Sigitas Tolusis) as IEEE does
  266. % not format its papers in such ways.
  267. % *** PDF, URL AND HYPERLINK PACKAGES ***
  268. %
  269. %\usepackage{url}
  270. % url.sty was written by Donald Arseneau. It provides better support for
  271. % handling and breaking URLs. url.sty is already installed on most LaTeX
  272. % systems. The latest version can be obtained at:
  273. % http://www.ctan.org/tex-archive/macros/latex/contrib/misc/
  274. % Read the url.sty source comments for usage information. Basically,
  275. % \url{my_url_here}.
  276. % *** Do not adjust lengths that control margins, column widths, etc. ***
  277. % *** Do not use packages that alter fonts (such as pslatex). ***
  278. % There should be no need to do such things with IEEEtran.cls V1.6 and later.
  279. % (Unless specifically asked to do so by the journal or conference you plan
  280. % to submit to, of course. )
  281. \usepackage{listings}
  282. \usepackage{color}
  283. \lstset{
  284. language=c++,
  285. columns=flexible,
  286. basicstyle={\small\ttfamily},
  287. frame=single,
  288. keepspaces=true,
  289. breaklines=true,
  290. breakatwhitespace=true,
  291. }
  292. \setlength{\belowcaptionskip}{-5pt}
  293. % correct bad hyphenation here
  294. \hyphenation{op-tical net-works semi-conduc-tor}
  295. %\parskip 6pt plus 2pt minus 1pt
  296. \parskip 2pt plus 1pt minus 1pt
  297. \pagestyle{empty}
  298. \begin{document}
  299. \pagenumbering{gobble}
  300. %
  301. % paper title
  302. % can use linebreaks \\ within to get better formatting as desired
  303. \title{\textbf{\Large An Over the Air Update Mechanism for ESP8266 Microcontrollers}\\[0.2ex]}
  304. % \\[-1.5ex]
  305. % author names and affiliations
  306. % use a multiple column layout for up to three different
  307. % affiliations
  308. %\author{\IEEEauthorblockN{~\\[-0.4ex]\large Ngoc Khanh Truong\\[0.3ex]\normalsize}
  309. %\IEEEauthorblockA{Department of Applied Computer Science\\
  310. %Fulda University of Applied Sciences\\
  311. %Fulda, Germany\\
  312. %Email: {\tt Ngoc.K.Truong@cs.hs-fulda.de}}
  313. %\and
  314. %\IEEEauthorblockN{~\\[-0.4ex]\large Christian Pape\\[0.3ex]\normalsize}
  315. %\IEEEauthorblockA{Department of Applied Computer Science\\
  316. %Fulda University of Applied Sciences\\
  317. %Fulda, Germany\\
  318. %Email: {\tt christian.pape@cs.hs-fulda.de}}
  319. %\and
  320. %\IEEEauthorblockN{~\\[-0.4ex]\large Sebastian Rieger\\[0.3ex]\normalsize}
  321. %\IEEEauthorblockA{Department of Applied Computer Science\\
  322. %Fulda University of Applied Sciences\\
  323. %Fulda, Germany\\
  324. %Email: {\tt sebastian.rieger@cs.hs-fulda.de}
  325. %}}
  326. % conference papers do not typically use \thanks and this command
  327. % is locked out in conference mode. If really needed, such as for
  328. % the acknowledgment of grants, issue a \IEEEoverridecommandlockouts
  329. % after \documentclass
  330. % for over three affiliations, or if they all won't fit within the width
  331. % of the page, use this alternative format:
  332. %
  333. \author{\IEEEauthorblockN{Dustin Frisch\IEEEauthorrefmark{1},
  334. Sven Rei{\ss}mann\IEEEauthorrefmark{2},
  335. Christian Pape\IEEEauthorrefmark{1}
  336. }
  337. \IEEEauthorblockA{\IEEEauthorrefmark{1}Department of Applied Computer Science\\
  338. Fulda University of Applied Sciences,
  339. Fulda, Germany\\ Email: \{dustin.frisch, christian.pape\}@cs.hs-fulda.de}
  340. \IEEEauthorblockA{\IEEEauthorrefmark{2}Datacenter\\
  341. Fulda University of Applied Sciences,
  342. Fulda, Germany\\ Email: sven.reissmann@rz.hs-fulda.de}
  343. }
  344. % PDF Metadata
  345. \pdfinfo{
  346. /Author (Dustin Frisch, Sven Reissmann, Christian Pape)
  347. /Title (An Over the Air Update Mechanism for ESP8266 Microcontrollers)
  348. /Keywords (IoT, Secure Updates, Over the Air, ESP8266.)
  349. }
  350. % use for special paper notices
  351. %\IEEEspecialpapernotice{(Invited Paper)}
  352. % make the title area
  353. \maketitle
  354. \begin{abstract}
  355. Over the last years, a rapidly growing number of IoT devices is found on the market, especially in the area of the so-called smart home.
  356. These devices, which are deployed in vast numbers, are frequently in use over many years.
  357. They pose a risk to the users privacy and to the internet as a whole if not provided regularly with security patches.
  358. Hence, a fully automated process for large-scale software updates of such embedded devices must be considered.
  359. In this article, we present an implementation of a durable and stable system for building and publishing cryptographically secure firmware updates for embedded devices based on \textit{ESP8266} microcontrollers.
  360. This includes mechanisms to build the updates from source and automatically sign, distribute and install them on the target devices.
  361. \end{abstract}
  362. % IEEEtran.cls defaults to using nonbold math in the Abstract.
  363. % This preserves the distinction between vectors and scalars. However,
  364. % if the conference you are submitting to favors bold math in the abstract,
  365. % then you can use LaTeX's standard command \boldmath at the very start
  366. % of the abstract to achieve this. Many IEEE journals/conferences frown on
  367. % math in the abstract anyway.
  368. % no keywords
  369. \begin{IEEEkeywords}
  370. IoT; Secure Updates; Over the Air; ESP8266.
  371. \end{IEEEkeywords}
  372. % For peer review papers, you can put extra information on the cover
  373. % page as needed:
  374. % \ifCLASSOPTIONpeerreview
  375. % \begin{center} \bfseries EDICS Category: 3-BBND \end{center}
  376. % \fi
  377. %
  378. % For peerreview papers, this IEEEtran command inserts a page break and
  379. % creates the second title. It will be ignored for other modes.
  380. \IEEEpeerreviewmaketitle
  381. \input{1-introduction}
  382. \input{2-related-work}
  383. \input{3-environment}
  384. \input{4-requirements}
  385. \input{5-concept}
  386. \input{6-implementation}
  387. \input{7-conclusion}
  388. % ************************************
  389. \bibliographystyle{IEEEtran}
  390. \bibliography{esper-ota}
  391. % that's all folks
  392. \end{document}