# Real life security protocal ## SSH (Secure Shell) $certificate_A$ = Alice's certificate $certificate_B$ = Bob's certificate CP = crypto proposed CS = crypto selected $H = h(Alice, Bob, CP, CS, R_A, R_B, g^a\ mod\ p, g^b\ mod\ p, g^{ab}\ mod\ p)$ $S_B = [H]_{Bob}$ $K = g^{ab}\ mod\ p$ $S_A=[H, Alice, certificate_A]_{Alice}$ ![](https://i.imgur.com/teuXNyP.png) ![](https://i.imgur.com/6W0U0gn.png) ## SSL - Secure socket layer - On-sided authentication ![](https://i.imgur.com/HpVY6Ii.png) - Alice ***encrypts*** $E(h(msgs, CLNT, K), K)$ only for integrity check purposes. It adds no secrurity. - If you really want **Mutual authentication**, the server could send a certificate request ## IPSec - Lives on the network layer (part of the OS) - Encryption, integrity, authentication, etc. - Very complex ## Kerberos - TTP: Trusted Third Party - Authentication using public keys - N users => N key pairs - Authentication using symmetric keys - N users => $O(N^2)$ keys ### Scalibility - Symmetric key case **does not scale**! - Kerberos based on symmetric keys but only requires N keys for N users - SEcurity depends on TTP ### Key Distribution Center (KDC) acts as the TTP - KDC share symmetric key $K_A$ with Alice, key $K_B$ with Bob, etc. - Master key $K_{KDC}$ known ***only*** to KDC - KDC enables authentication, session keys - Session key for confidentiality and integrity ### Kerberos Tickets - KDC issue **tickets** containing info needed to access network resources - KDC also issues **Ticket-Granting Tickets*** or **TGTs** that are used to abotain tickets - Each TGT contains - Session key - User's ID - Expiration time - Every TGT is encrypted with $K_{KDC}$ - The tickets make the server stateless (server doesn't have to store user's information) ### Kerberized Login - Alice enters her password - Then Alice's computer - Derives $K_A$ from Alice's password - Uses $K_A$ to get TGT for Alice from KDC - Alice then uses her TGT(credentials) to securely access network resources - Plus: Security is transparent to Alice - Minus: KDC *must* be secure -- it's trusted! ![](https://i.imgur.com/44b0t4z.png) ![](https://i.imgur.com/IavCTPn.jpg)