-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tex
176 lines (149 loc) · 8.65 KB
/
main.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Created By: Jacob White
% Email: [email protected]
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage[fontsize=12pt]{scrextend} % specify 12pt font
\usepackage[margin=1in, letterpaper]{geometry} % specify 1in margins
% Usage:
% \iflong
% content if long version (includes comments etc. for internal reference)
% \else
% content if short version (excludes comments and other things we don't want to reveal to other teams)
% \fi
\newif\iflong
%\longtrue
\longfalse
% TODO: CHANGE ^ TO \longfalse BEFORE SUBMISSION TO ORGANIZERS
%%% Common template packages (must come before macros.tex)
\input{imports.tex}
%%% Macros, environments, and other constructions
\input{macros.tex}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DEFINE AUTHOR COMMENTS HERE (xcolor names allowed) -- replace color and signature
%-------------------------------------------------------------------
\newcommand{\jw}[1]{\iflong\textcolor{Purple}{#1 ---Jacob}\fi}
\newcommand{\jimmy}[1] {\iflong\textcolor{blue!10!black!25!green} {\textbf{Jimmy}: #1}\fi} % I got dibs on this
\newcommand{\jaxson}[1] {\iflong\textcolor{TealBlue} {\textbf{Jaxson}: #1}\fi}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\newcommand{\TODO}[1]{\par \noindent \textbf{\underline{TODO:}}\vspace#1}
%\newcommand{\NOTE}[1]{\par \noindent \textbf{NOTE:}\space#1}
\title{MITRE eCTF 2024:\\ \Large Medical Infrastructure Supply Chain (MISC)\\Design Documentation}
\author{\large Jacob White}
\author{\large Jihun Hwang (Jimmy)}
\author{\large Jack Roscoe}
\author{\large Jaxson Pahukula}
% INSERT NAME HERE
\affil{\normalsize Purdue University (\texttt{b01lers})}
\date{\small \today}
% Abbreviations etc. (see Appendix)
\newglossary{symbols}{sym}{sbl}{List of Symbols}
%================ACRONYMS=================%
\newacronym{eCTF}{eCTF}{Embedded Capture the Flag}
\newacronym{MISC}{MISC}{Medical Infrastructure Supply Chain}
%\newacronym{CS}{CS}{Computer Science}
%\newacronym{CE}{CE}{Computer Engineering}
%\newacronym{EE}{EE}{Electrical Engineering}
\newacronym{RNG}{RNG}{Random Number Generator}
\newacronym{TRNG}{TRNG}{True Random Number Generator}
\newacronym{CSPRNG}{CSPRNG}{Cryptographically-Secure Pseudo-Random Number Generator}
\newacronym{ASLR}{ASLR}{Address Space Layout Randomization}
%\newacronym{B}{B}{Bytes (unit)}
\newacronym{AP}{AP}{Application Processor}
\newacronym{UART}{UART}{Universal Asynchronous Receiver-Transmitter}
\newacronym{PIN}{PIN}{Personal Identification Number}
\newacronym{SR}{SR}{Security Requirement}
\newacronym{AS}{AS}{Attack Scenario (aka Attack Phase in eCTF rules)}
\newacronym{API}{API}{Application Programming Interface}
\newacronym{NIST}{NIST}{National Institute of Standards and Technology}
\newacronym{HMAC}{HMAC}{(Hash-based) Message Authentication Code}
\newacronym{SHA}{SHA}{Secure Hash Algorithms}
\newacronym{RFC}{RFC}{Request for Comments}
%\newacronym{MAC}{MAC}{Message Authentication Code}
\newacronym{AES}{AES}{Advanced Encryption Standard}
\newacronym{AE}{AE}{Authenticated Encryption}
%\newacronym{nonce}{nonce}{Number used ONCE}
\newacronym{Ed25519}{Ed25519}{Edwards-curve Digital Signature Algorithm over Curve25519}
%\newacronym{PC}{PC}{Personal Computer}
\newacronym{PKI}{PKI}{Public-Key Infrastructure}
\newacronym{I2C}{I2C}{Inter-Integrated Circuit}
\newacronym{CR}{CR}{Challenge-Response}
\newacronym{TLS}{TLS}{Transpoprt Layer Security}
\newacronym{SSL}{SSL}{Secure Socket Layer}
\newacronym{CC}{C\&C}{Command and Control}
\newacronym{NA}{N/A}{Not Applicable}
\newacronym{HW}{HW}{Hardware}
%================SYMBOLS=================%
\newglossaryentry{m}{type=symbols,name=\ensuremath{m,M},sort=m,description={Message or plaintext}}
%\newglossaryentry{HMACs}{type=symbols,name=\HMAC\!,sort=hmac,description={HMAC Tagging Algorithm}}
\newglossaryentry{k}{type=symbols,name=\ensuremath{k},sort=k,description={Cryptographic key}}
\newglossaryentry{:=}{type=symbols,name=\ensuremath{:=},sort={=:},description={Defined equal to}}
\newglossaryentry{!=}{type=symbols,name=\ensuremath{\neq},sort={=!},description={Compare not equal to}}
\newglossaryentry{H}{type=symbols,name=\ensuremath{H},sort=H,description={Cryptographic hash function}}
\newglossaryentry{||}{type=symbols,name=\ensuremath{\Vert},sort={||},description={(Byte)string concatenation}}
\newglossaryentry{xor}{type=symbols,name=\ensuremath{\oplus},sort=⊕,description={XOR}}
\newglossaryentry{tau}{type=symbols,name=\ensuremath{\tau},sort=tau,description={HMAC Tag}}
\newglossaryentry{nonces}{type=symbols,name=\nonce\!,sort=n,description={Number used once (``nonce'')}}
\newglossaryentry{c}{type=symbols,name=\ensuremath{c},sort=c,description={Ciphertext}}
\newglossaryentry{sigma}{type=symbols,name=\ensuremath{\sigma},sort=sigma,description={Signature}}
\newglossaryentry{<-}{type=symbols,name=\ensuremath{\gets},sort={<-},description={Assign equal to}}
\newglossaryentry{=}{type=symbols,name=\ensuremath{=},sort={=},description={Compare equal to}}
\newglossaryentry{sk}{type=symbols,name=\ensuremath{\mathsf{sk}},sort=sk,description={Secret/signing key}}
\newglossaryentry{pk}{type=symbols,name=\ensuremath{\mathsf{pk}},sort=pk,description={Public key}}
\newglossaryentry{in}{type=symbols,name=\ensuremath{\in},sort=∈,description={(Is contained) in}}
\newglossaryentry{notin}{type=symbols,name=\ensuremath{\not\in},sort={∈!},description={Not in}}
\newglossaryentry{set}{type=symbols,name=\ensuremath{\set{\ldots}},sort={\{\}},description={Set}}
\newglossaryentry{kleene}{type=symbols,name=\ensuremath{\set{\ldots}^*},sort={\{\}*},description={Kleene star ($\geq 0$ repetitions in set)}}
\newglossaryentry{prime}{type=symbols,name=\ensuremath{\circ'},sort=',description={Different or modified $\circ$}}
\newglossaryentry{apin}{type=symbols,name=\apin\!,sort=apin,description={Attestation PIN}}
\newglossaryentry{rtok}{type=symbols,name=\rtok\!,sort=rtok,description={Replace Token}}
\newglossaryentry{hsk}{type=symbols,name=\hsk\!,sort=hsk,description={HMAC Secret Key}}
\newglossaryentry{ask}{type=symbols,name=\ask\!,sort=ask,description={Attestation Secret Key}}
\newglossaryentry{msk}{type=symbols,name=\msk\!,sort=msk,description={Message Signing Key}}
\newglossaryentry{csk}{type=symbols,name=\csk\!,sort=csk,description={Challenge-response Secret Key}}
\newglossaryentry{mvk}{type=symbols,name=\mvk\!,sort=mvk,description={Message Verification Key}}
\newglossaryentry{cid}{type=symbols,name=\cid\!,sort=cid,description={Component IDentifier}}
\newglossaryentry{idx}{type=symbols,name=\buildid\!,sort=idx,description={Build Identifier (index to keylist)}}
\newglossaryentry{<-S}{type=symbols,name=\ensuremath{\sample},sort={<-S},description={Assign from random sample to}}
\newglossaryentry{overline}{type=symbols,name=\ensuremath{\overline{\circ}},sort=-,description={List of $\circ$}}
\newglossaryentry{r}{type=symbols,name=\ensuremath{r},sort=r,description={Random number}}
\newglossaryentry{len}{type=symbols,name=\ensuremath{\ell},sort=l,description={Length (in Bytes)}}
%\newacronym{hsk}{hsk}{HMAC Secret Key}
%\newacronym{ask}{ask}{Attestation Secret Key}
%\newacronym{msk}{msk}{Message Signing Key}
%\newacronym{mvk}{mvk}{Message Verification Key}
%\newacronym{csk}{csk}{Challenge-response Secret Key}
%\newacronym{CID}{CID}{Component IDentifier}
%\newacronym{idx}{idx}{Index}
%\newacronym{APIN}{APIN}{Attestation PIN}
%\newacronym{ADATA}{ADATA}{Attestation Data}
%\newacronym{RTok}{RTok}{Replace Authentication Token}
%\end{filecontents}
\makenoidxglossaries
\glsnoexpandfields
\begin{document}
\maketitle
% \jw{This is a comment. Ctrl+F \texttt{main.tex} to find how to define comments command yourself, replacing color and signature to what you want.}
% \jw{If you contribute to this design document, add your name to \texttt{\textbackslash author}!}
% \jw{In \texttt{main.tex}, uncomment \texttt{\textbackslash longtrue} to make it a private copy (with additional details and comments we don't share with other teams) or \texttt{\textbackslash longfalse} to make it a public copy (with comments removed)}
% \jw{For each section or LaTeX figure, use a new file to make collaboration less annoying. e.g. see \texttt{intro.tex} for introduction}
% \hl{This is also a comment. Delete all highlighted comments before sending to organizers!!!}
\input{intro.tex}
\input{hw_features.tex}
\input{threat_model.tex}
\input{primitives.tex}
\section{MISC Protocols}
\label{sec:MISC}
\input{build_gen.tex}
\input{list.tex}
\input{attest.tex}
\input{replace.tex}
\input{boot.tex}
\input{message.tex}
\newpage
\bibliographystyle{alpha}
\bibliography{cryptobib/abbrev3,cryptobib/crypto_crossref,other_sources}
\newpage
\input{appendix}
\end{document}