206 lines
5.4 KiB
TeX
206 lines
5.4 KiB
TeX
\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}
|