diff options
Diffstat (limited to 'docs/chapters')
-rw-r--r-- | docs/chapters/conclusion.tex | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/docs/chapters/conclusion.tex b/docs/chapters/conclusion.tex new file mode 100644 index 0000000..7dda5d9 --- /dev/null +++ b/docs/chapters/conclusion.tex @@ -0,0 +1,23 @@ +In conclusione si può dire che questo attacco è riuscito perché ci siamo trovati sotto alcuni prerequisiti: +\begin{enumerate} + \item Abbiamo l'APK dell'applicazione per cui abbiamo potuto fare profiling direttamente da Android Studiio. + \item Il server non è su HTTPS. + \item L'API non prevede un JWK con sistemi di sicurezza come il JTI \cite{JTI}. + \item Non si controlla l'autenticazione, anzi, JWT viene usato simil-modo per far entrambi. + \item Il secret molto semplice. +\end{enumerate} + +Anche se si ignorasse il punto 1, questa analisi si potrebbe replicare sul browser. Anzi, in modo molto più semplice, si potrebbe vedere la successione di richieste al backend con annesse risposte. Ignorando quindi il punto 1, anche il punto 2 sarebbe facilmente aggirabile, dato che abbiamo proprio la richiesta con l'URL. + +Per la questione dei 3 e 4 si risolve semplicemente tenendo aggiornato il sistema oppure non inserendo dei dati come l'user\_id dentro il payload. + +L'ultimo punto si risolve usando un secret più robusto e non presente dentro un dizionario. + +In un articolo di Okta \cite{OKTA:1} si discute sul come usare JWT per fare autenticazione e il perché è utile usare i token di autorizzazione e usarli sempre insieme. + +Prendendo uno snippet dall'articolo "Authentication vs. Authorization"\cite{OKTA:2}: +\begin{displayquote} +In secure environments, authorization must always follow authentication. Users should first prove that their identities are genuine before an organization’s administrators grant them access to the requested resources. +\end{displayquote} + +
\ No newline at end of file |