Kerberos = Network Authentication Protocol used by AD environments
Provides authentication by issuing tickets to authenticate users and allow them access to the services
Tickets are distibuted by KDC (Key Distribution Center), which is typically a Domain Controller (DC)
During initial authentication, a TGT (Ticket Granting Ticket) is a ticket asigned to a user by KDC.
TGT is later used to authenticate the user to the KDC in order to request a service ticket from TGS (Ticket Granting Service). Service tickets are granted for authentication against services.
List of steps / negotiations for Kerberos authentication (of the user with the service):
- The user requests (AS-REQ) a TGT from the KDC and the KDC verifies and validates the credentials and user information. This request if often done automatically at login.
- After authenticating the user, the KDC sends an encrypted TGT back to the requester (AS-REP).
- The user presents the TGT to the DC and requests a TGS (TGS-REQ).
- The TGS is encrypted and sent back to the requesting user (TGS-REP).
- The user connects to the server hosting the service requested and presents the TGS (AP-REQ) in order to access the service.
- The application server sends an (AP-REP) to the client.
A principal can be a user, such as "joe" or a service such as "nfs" or "telnet"
Principal name is divided into three components = primary, instance and realm
A typical Kerberos principal would be joe/admin@ENG.EXAMPLE.COM.
1. joe = Primary. The primary can be a username as shown here or a service such as nfs. The primary can also be the word host, which signifies that this principal is a service principal that is set up to provide various network services, ftp, rcp, rlogin
2. admin is the instance. An instance is optional in the case of user principals, but it is required for service principals. For Eg. if the user joe sometimes acts as a system administrator, he can use joe/admin to distinguish himself from his usual user identity. Likewise, if joe has accounts on two different hosts, he can use two principal names with different instances, for eg, joe/denver.example.com and joe/boston.example.com. Notice that the Kerberos service treats joe and joe/admin as two completely different principals.
In case of a service principal, the instance is the FQ hostname bigmachine.eng.example.com. The primary/instance for this example might be ftp/bigmachine.eng.example.com or host/bigmachine.eng.example.com
3. ENG.EXAMPLE.COM is the Kerberos realm. Realms are discussed in Kerberos Realms.
Kerberos Realms
A realm is a logical network, similar to a domain, that defines a group of systems under the same master KDC. Some realms are hierarchical, where one realm is a superset of the other realm. Otherwise, the realms are nonhierarchical and the mapping between the two realms must be defined. A feature of the Kerberos service is that it permits authentication across realms. Each realm only needs to have a principal entry for the other realm in its KDC. This Kerberos feature is called cross-realm authentication.
Kerberos Servers
Each realm must include a server that maintains the master copy of the principal database. This server is called the master KDC server. Additionally, each realm should contain at least one slave KDC server, which contains duplicate copies of the principal database. Both the mater KDC server and the slave KDC server creates tickets that are used to establish authentication.
Comments
Post a Comment