authn_z
This commit is contained in:
@@ -0,0 +1,205 @@
|
||||
\section{Authentikáció}
|
||||
|
||||
\begin{frame}{Mi az authentikáció?}
|
||||
\begin{block}{Definíció}
|
||||
Folyamat, amely során a rendszer ellenőrzi egy felhasználó identitását.
|
||||
\end{block}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Kérdés:} Ki vagy?
|
||||
\item \textbf{Cél:} Felhasználó identitásának megállapítása
|
||||
\item \textbf{Eredmény:} Sikeres vagy sikertelen azonosítás
|
||||
\end{itemize}
|
||||
|
||||
\begin{alertblock}{Fontos!}
|
||||
Authentikáció $\neq$ Autorizáció!
|
||||
\end{alertblock}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Authentikáció vs. Autorizáció}
|
||||
\begin{columns}
|
||||
\begin{column}{0.48\textwidth}
|
||||
\begin{block}{Authentikáció}
|
||||
\begin{itemize}
|
||||
\item Ki vagy?
|
||||
\item Bejelentkezés
|
||||
\item Példa: Jelszó ellenőrzés
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{0.48\textwidth}
|
||||
\begin{block}{Autorizáció}
|
||||
\begin{itemize}
|
||||
\item Mit tehetsz?
|
||||
\item Jogosultságok
|
||||
\item Példa: Admin jogosultság
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
|
||||
\begin{center}
|
||||
\texttt{Authentikáció} $\rightarrow$ \texttt{Autorizáció}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Authentikációs módszerek}
|
||||
\begin{enumerate}
|
||||
\item \textbf{Tudás alapú}
|
||||
\begin{itemize}
|
||||
\item Példa: jelszó, PIN kód
|
||||
\end{itemize}
|
||||
|
||||
\item \textbf{Tulajdon alapú}
|
||||
\begin{itemize}
|
||||
\item Példa: okostelefon, hardver token
|
||||
\end{itemize}
|
||||
|
||||
\item \textbf{Inherencia alapú}
|
||||
\begin{itemize}
|
||||
\item Példa: ujjlenyomat, arcfelismerés
|
||||
\end{itemize}
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Többfaktoros authentikáció (MFA)}
|
||||
\begin{block}{Multi-Factor Authentication}
|
||||
Két vagy több független faktor kombinációja.
|
||||
\end{block}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{2FA példák:}
|
||||
\begin{itemize}
|
||||
\item Jelszó + SMS kód
|
||||
\item Jelszó + Authenticator app
|
||||
\item Jelszó + ujjlenyomat
|
||||
\end{itemize}
|
||||
|
||||
\item \textbf{Előnyök:}
|
||||
\begin{itemize}
|
||||
\item Magasabb biztonság
|
||||
\item Védelem jelszó kompromittálódás esetén
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]{Jelszó alapú authentikáció}
|
||||
\begin{block}{Leggyakoribb módszer}
|
||||
Felhasználónév + jelszó párossal történő azonosítás.
|
||||
\end{block}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Folyamat:}
|
||||
\begin{enumerate}
|
||||
\item Felhasználó megadja username + password
|
||||
\item Rendszer összehasonlítja a hash-sel
|
||||
\item Sikeres/sikertelen válasz
|
||||
\end{enumerate}
|
||||
|
||||
\item \textbf{Biztonság:}
|
||||
\begin{itemize}
|
||||
\item Soha ne tároljuk plain text-ben!
|
||||
\item Erős hash (bcrypt, Argon2)
|
||||
\item Salt minden jelszóhoz
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Token alapú authentikáció}
|
||||
\begin{block}{Modern megközelítés}
|
||||
Bejelentkezés után szerver tokent generál, kliens minden kéréshez csatolja.
|
||||
\end{block}
|
||||
|
||||
\begin{enumerate}
|
||||
\item Bejelentkezés (username + password)
|
||||
\item Szerver ellenőrzi
|
||||
\item Token generálás
|
||||
\item Kliens eltárolja (localStorage, cookie)
|
||||
\item Token csatolása minden kéréshez
|
||||
\item Szerver validálja
|
||||
\end{enumerate}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Típusok:} JWT, OAuth, API keys
|
||||
\item \textbf{Előnyök:} Stateless, skálázható
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Session alapú authentikáció}
|
||||
\begin{block}{Hagyományos megközelítés}
|
||||
Bejelentkezési információkat a szerver tárolja session-ökben.
|
||||
\end{block}
|
||||
|
||||
\begin{enumerate}
|
||||
\item Bejelentkezés
|
||||
\item Szerver session létrehozás
|
||||
\item Session ID küldése cookie-ban
|
||||
\item Kliens csatolja minden kéréshez
|
||||
\item Szerver azonosítja a felhasználót
|
||||
\end{enumerate}
|
||||
|
||||
\begin{columns}
|
||||
\begin{column}{0.48\textwidth}
|
||||
\textbf{Előnyök:}
|
||||
\begin{itemize}
|
||||
\item Biztonságosabb
|
||||
\item Könnyű visszavonás
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{0.48\textwidth}
|
||||
\textbf{Hátrányok:}
|
||||
\begin{itemize}
|
||||
\item Stateful
|
||||
\item Nehezebb skálázás
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{OAuth 2.0 / OpenID Connect}
|
||||
\begin{block}{Harmadik fél authentikáció}
|
||||
Bejelentkezés külső szolgáltatókkal (Google, Facebook, GitHub).
|
||||
\end{block}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{OAuth 2.0:} Autorizációs framework
|
||||
\item \textbf{OpenID Connect:} Authentikációs réteg
|
||||
|
||||
\item \textbf{Előnyök:}
|
||||
\begin{itemize}
|
||||
\item Nincs jelszó kezelés
|
||||
\item Jobb UX
|
||||
\item Biztonságos protokoll
|
||||
\end{itemize}
|
||||
|
||||
\item \textbf{Használat:}
|
||||
\begin{itemize}
|
||||
\item Social login
|
||||
\item SSO megoldások
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[shrink=5]{Biztonsági megfontolások}
|
||||
\begin{alertblock}{Gyakori sebezhetőségek}
|
||||
\begin{itemize}
|
||||
\item Gyenge jelszavak
|
||||
\item Nincs rate limiting
|
||||
\item Token kiszivárogtatás
|
||||
\item Man-in-the-middle (nincs HTTPS)
|
||||
\end{itemize}
|
||||
\end{alertblock}
|
||||
|
||||
\begin{block}{Best Practices}
|
||||
\begin{itemize}
|
||||
\item HTTPS mindig
|
||||
\item Erős jelszó policy
|
||||
\item Rate limiting
|
||||
\item MFA
|
||||
\item Token lejárati idő
|
||||
\item CSRF védelem
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{frame}
|
||||
Reference in New Issue
Block a user