What is Kerberos

- Kerberos is authentication protocol where ticket(TGT) is provided to authenticated users and services

How user is authenticated and accesses a Service?
                sequenceDiagram
                    participant u as User
                    participant c as Client
                    participant as as AuthenticationServer
                    participant tgs as TicketGrantingService
                    participant svc1 as Service1
                    participant db as Database
                  
                    u ->> c: enter username,pass
                    c ->> as: Auth request
                    as ->> db: Check user cred
                    db ->> as: Valid
                    note over as: Create TGT, Session key
TGT encrypted by user's secret key as ->> c: TGT note over c: Want to access Service1 c ->> tgs: Access to Service1+TGT note over tgs: verify TGT and extract Sessionkey
Valid tgs ->> c: Service Ticket(encrypted by session key) c ->> svc1: Service Ticket note over svc1: Decrypts service ticket and get session key
Communication b/w svc1 & client encrypted by session key

Terms

Keytab(key table)
File containing Pricipals and their keys. 1. Principals & 2. their keys
keys derived from a password