Skip to content
Snippets Groups Projects
Commit f8d28a8e authored by Frederic Aust's avatar Frederic Aust
Browse files

X3DH grob fertiggestellt aber muss noch angepasst werden

parent ead37924
No related branches found
No related tags found
1 merge request!6Added a documentation
...@@ -28,11 +28,42 @@ Mit digitalen Signaturen wird sichergestellt, dass die Absender jene sind, für ...@@ -28,11 +28,42 @@ Mit digitalen Signaturen wird sichergestellt, dass die Absender jene sind, für
\subsection{X3DH} \subsection{X3DH}
\label{sec:einleitung_Signal_X3DH} \label{sec:einleitung_Signal_X3DH}
Extended Triple Diffie-Hellmann \ac{X3DH} steht für die dreifache Ausführung des Diffi-Hellmann Algorithmus mit verschiedenen Schlüsselkombinationen, um schlussendlich ein Shared Secret zu berechnen. Für alle verwendeten Schlüsselpaare werden entweder die Funktionen X25519 oder X448 verwendet, welche beide auf eliptischen Kurven basieren. Für die Signierung von Bytesequenzen werden die Privaten Schlüssel und die in \ref{sec:einleitung_Signal_XEdDSA_VXEdDSA} beschriebenen Verfahren verwendet. Für die verständlichere Erklärung des Ablaufs und welche Schlüssel verwendet werden, wird beispielhaft von zwei Gesprächsteilnehmern Alice und Bob ausgegangen.\\
drei \ac{KDF}-Ketten.
- Schlüssel bauen vorwärts auf einander auf
- Mit Teile des verschlüsselten Textes werden als Grundlage für die weitere Verschlüsselung genommen
Damit eine Kommunikation aufgebaut werden kann, sollte Bob offline sein, hinterlegt Bob bei der Registrierung auf dem Signal Server seinen Identitätsschlüssel, einen signierten und mehrere Einmalschlüssel. Sollten die Einmalschlüssel nahezu aufgebraucht sein wird Bob aufgefordert neue Einmalschlüssel auf dem Server zu hinterlegen.
\subsubsection{Erster Gesprächsaufbau}
\label{sec:einleitung_Signal_X3DH_ErsterGesprächsaufbau}
Bei dem \ac{X3DH} werden die folgenden Schlüssel beim ersten Gesprächsaufbau von Alice mit Bob eingesetzt:
\begin{itemize}
\item IK\textsubscript{A} (Alice Identitätsschlüssel)
\item EK\textsubscript{A} (Alice Einmalschlüssel)
\item IK\textsubscript{B} (Bob's Identitätsschlüssel)
\item SPK\textsubscript{B} (Bob's hinterlegter, signierter Schlüssel)
\item OPK\textsubscript{B} (Bob's hinterlegter Einmalschlüssel)
\end{itemize}
Die drei Diffi-Hellman Ausführungen sind:
\begin{enumerate}
\item IK\textsubscript{A} und SPK\textsubscript{B}
\item EK\textsubscript{A} und IK\textsubscript{B}
\item EK\textsubscript{A} und SPK\textsubscript{B}
\end{enumerate}
Die drei Ergebnisse werden aneinander gehangen und einer \ac{KDF} übergeben. Das Ergebnis ist der geheime Schlüssel mit dem die Nachricht schlussendlich verschlüsselt wird. \\
Sollte optional ein Einmalschlüssel von Bob in dem Keyset enthalten sein wird zusätzlich noch eine vierte Berechnung mit dem EL\textsubscript{A} und OPK\textsubscript{B} durchgeführt und zusammen mit den anderen der \ac{KDF} übergeben.\\
Nach der Berechnung löscht Alice ihren privaten Einmalschlüssel und berechnet eine Bytesequenz AD aus dem IK\textsubscript{A} und IK\textsubscript{B}, welche optional mit weiteren Informationen wie den Nutzernamen ergänzt wird. Anschließend kann Alice die erste Nachricht an Bob senden und damit das Gespräch beginnen. \\
Diese Nachricht enthält:
\begin{itemize}
\item IK\textsubscript{A}
\item EK\textsubscript{A}
\item welcher EK\textsubscript{B} verwendet wurde
\item die mit dem SK verschlüsselte Nachricht und dem AD als Anhang
\end{itemize}
Abhängig von den Sicherheitseinstellungen nutzt Alice den SK oder davon abgeleitete Schlüssel um Nachrichten an Bob zu senden.
\subsubsection{Empfang der ersten Nachricht}
\label{sec:einleitung_Signal_X3DH_EmpfangDerEstenNachricht}
Analog zu den BErechnungen die Alice für den SK gemacht hat verwendet Bob die ensprechenden privaten Schlüssel und Alice öffentliche Schlüssel. Durch den Zusammenhang des Public-Private-Key verfahrens erhält Bob den gleichen SK und kann damit die empfangene Nachricht entschlüsseln.
\subsection{Double Ratchet} \subsection{Double Ratchet}
\label{sec:einleitung_Signal_Double_Ratchet} \label{sec:einleitung_Signal_Double_Ratchet}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment