Final
This commit is contained in:
Binary file not shown.
+47
-16
@@ -17,9 +17,9 @@
|
||||
|
||||
% please enter your group number your names and matriculation numbers here
|
||||
%TODO
|
||||
\newcommand{\groupnumber}{Our group number}
|
||||
\newcommand{\name}{Our names}
|
||||
\newcommand{\matriculation}{Our matriculations, same order as the names}
|
||||
\newcommand{\groupnumber}{5}
|
||||
\newcommand{\name}{Tobias Eidelpes}
|
||||
\newcommand{\matriculation}{01527193}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% End of customization %
|
||||
@@ -31,7 +31,7 @@
|
||||
\setlength{\headsep}{20pt}
|
||||
\setlength{\textheight}{680pt}
|
||||
\pagestyle{fancy}
|
||||
\fancyhf{}
|
||||
\fancyhf{}
|
||||
\fancyhead[L]{Formal Methods for Security and Privacy \projnumber\ - minnieThor}
|
||||
\fancyhead[C]{}
|
||||
\fancyhead[R]{Group \groupnumber}
|
||||
@@ -43,7 +43,7 @@
|
||||
\thispagestyle{empty}
|
||||
\noindent\framebox[\linewidth]{%
|
||||
\begin{minipage}{\linewidth}%
|
||||
\hspace*{5pt} \textbf{Formal Methods for Security and Privacy (SS2020)} \hfill Prof.~Matteo Maffei \hspace*{5pt}\\
|
||||
\hspace*{5pt} \textbf{Formal Methods for Security and Privacy (SS2021)} \hfill Prof.~Matteo Maffei \hspace*{5pt}\\
|
||||
|
||||
\begin{center}
|
||||
{\bf\Large Project \projnumber~-- \Title}
|
||||
@@ -65,21 +65,52 @@ Our group consists of the following members:
|
||||
\end{center}
|
||||
|
||||
\section{Abstract Semantics}
|
||||
\emph{Nothing to fill in here, unless you feel that there is something about the implementation that we should consider when grading.}
|
||||
\emph{Nothing to fill in here, unless you feel that there is something about the
|
||||
implementation that we should consider when grading.}
|
||||
|
||||
\section{Fixing reentrancy}
|
||||
|
||||
\paragraph{Justification for the soundness of \texttt{alice.txt}:}
|
||||
\subsubsection*{Justification for the soundness of \texttt{alice.txt}:}
|
||||
|
||||
%TODO
|
||||
|
||||
\section{Soundness of the \texttt{CALL} rules}
|
||||
|
||||
\paragraph{Soundness classification of \texttt{CALL} rule sets:}
|
||||
|
||||
\paragraph{Intuition for the sound rule sets:}
|
||||
|
||||
\paragraph{Attack descriptions for the counter examples to the unsound rule sets:}
|
||||
By switching the order of line 5 and line 6 in \texttt{alice.txt}, the contract
|
||||
\texttt{bob.txt} has been fixed. This works because \texttt{sent} is set to 1
|
||||
\emph{before} the call instruction is executed and therefore reentering the
|
||||
function is possible but will not execute another call instruction because
|
||||
\texttt{sent} has already been set to 1. The contract now follows the
|
||||
\emph{Check-Effects-Interactions Pattern}, which requires that checks and state
|
||||
changes have to occur before calls to other contracts.
|
||||
|
||||
\section{Soundness of the \texttt{CALL} rules}
|
||||
|
||||
\subsubsection*{Soundness classification of \texttt{CALL} rule sets:}
|
||||
|
||||
\textbf{Call 1}: Unsound \\
|
||||
\textbf{Call 2}: Sound \\
|
||||
\textbf{Call 3}: Unsound \\
|
||||
\textbf{Call 4}: Unsound \\
|
||||
\textbf{Call 5}: Sound
|
||||
|
||||
\subsubsection*{Intuition for the sound rule sets:}
|
||||
|
||||
\paragraph{Call 2:}
|
||||
|
||||
The first two rules are the same rules as presented in the lecture. The third rule
|
||||
models the case where the contract resumes execution after a call with the same
|
||||
storage as before the call. This rule applies when the contract was not called
|
||||
and produced a successful halting state before the contract resumes the
|
||||
execution after the call.
|
||||
|
||||
The fourth rule, however, models the case where the contract resumes execution
|
||||
after it was left by another call from a contract that resulted in a halting
|
||||
state.
|
||||
|
||||
\paragraph{Call 5:}
|
||||
|
||||
As for Call 2, the first two rules are the same as presented in the lecture. The
|
||||
third rule is correct because in case of $sa[size - 4] = 1$, the local memory
|
||||
and the persistent storage are correctly over-approximated. The other case is
|
||||
where $sa[size - 4] = 0$. In this case the caller's memory may not be
|
||||
manipulated, as formalized by the small-step semantics.
|
||||
|
||||
\end{document}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user