# Proceso de autenticación en Kerberos

Se estudiará en esta sección como se desarrolla el proceso de autenticación según el protocolo Kerberos, partiendo de un usuario que no posee ningún ticket, hasta que el mismo se autentica contra un servicio deseado.

### <mark style="color:red;">**KRB\_AS\_REQ**</mark>

Por tanto, lo primero que un usuario debe conseguir es un TGT del KDC, para ello se envía un mensaje *KRB\_AS\_REQ*:

<figure><img src="https://www.tarlogic.com/wp-content/uploads/2019/03/KRB_AS_REQ.png" alt=""><figcaption></figcaption></figure>

Esquema del mensaje KRB\_AS\_REQ

En *KRB\_AS\_REQ* se encuentran, entre otros, los siguientes campos:

* Un **timestamp** cifrado con la clave del cliente, para autenticar al usuario y prevenir ataques de replay
* El **nombre del usuario** que se está autenticando
* El **SPN** del servicio asociado a la cuenta **krbtgt**
* Un **nonce** generado por el usuario

> Nota: el timestamp cifrado solo es necesario si el usuario requiere preautenticación, lo cual se da en la mayoría de los casos, salvo que el usuario tenga activado el flag [*DONT\_REQ\_PREAUTH*](https://support.microsoft.com/en-us/help/305144/how-to-use-the-useraccountcontrol-flags-to-manipulate-user-account-pro).

### <mark style="color:red;">**KRB\_AS\_REP**</mark>

Al recibir el mensaje el KDC verifica la identidad del usuario descifrando el timestamp. Si el mensaje recibido es correcto entonces responde con un *KRB\_AS\_REP*:

<figure><img src="https://www.tarlogic.com/wp-content/uploads/2019/02/KRB_AS_REP.png" alt=""><figcaption></figcaption></figure>

Esquema mensaje KRB\_AS\_REP

En *KRB\_AS\_REP* se envía la siguiente información:

* **Nombre de usuario**
* El **TGT**, que incluye:
  * **Nombre de usuario**
  * **Clave de sesión**
  * **Fecha de expiración** del TGT
  * **PAC** con los privilegios del usuario, firmado por el KDC
* Una serie de **datos cifrados** con la clave del usuario, que incluyen:
  * **Clave de sesión**
  * **Fecha de expiración** del TGT
  * **Nonce** del cliente, para evitar ataques de replay

Una vez terminado este proceso el usuario ya posee un TGT que podrá ser usado para solicitar los TGS, y acceder a los servicios del dominio ligados a Kerberos.

### <mark style="color:red;">**KRB\_TGS\_REQ**</mark>

Para solicitar un TGS se debe enviar al KDC un mensaje *KRB\_TGS\_REQ*:

<figure><img src="https://www.tarlogic.com/wp-content/uploads/2019/02/KRB_TGS_REQ-1.png" alt=""><figcaption></figcaption></figure>

Esquema mensaje kerberos KRB\_TGS\_REQ

En *KRB\_TGS\_REQ* se pueden apreciar estos apartados, entre otros:

* **Datos cifrados** con la clave de sesión:
  * **Nombre de usuario**
  * **Timestamp**
* **TGT**
* **SPN** del servicio solicitado
* **Nonce** generado por el usuario

### <mark style="color:red;">**KRB\_TGS\_REP**</mark>

Cuando el KDC recibe este mensaje devuelve un TGS en el mensaje *KRB\_TGS\_REP*:

<figure><img src="https://www.tarlogic.com/wp-content/uploads/2019/02/KRB_TGS_REP-1.png" alt=""><figcaption></figcaption></figure>

Esquema mensaje kerberos KRB\_TGS\_REP

*KRB\_TGS\_REP* incluye, entre otras, las siguientes partes:

* **Nombre de usuario**
* **TGS**, que contiene:
  * **Clave de sesión de servicio**
  * **Nombre de usuario**
  * **Fecha de expiración** del TGS
  * **PAC** con los privilegios del usuario, firmado por el KDC
* **Datos cifrados** con la clave de sesión:
  * **Clave de sesión de servicio**
  * **Fecha de expiración** del TGS
  * **Nonce** del cliente, para evitar ataques de replay

### <mark style="color:red;">**KRB\_AP\_REQ**</mark>

Y si todo ha salido bien, el usuario ya tiene el TGS que le permite acceder al servicio deseado. Para utilizarlo debe enviar al AP un mensaje *KRB\_AP\_REQ*:

<figure><img src="https://www.tarlogic.com/wp-content/uploads/2019/02/KRB_AP_REQ.png" alt=""><figcaption></figcaption></figure>

Esquema mensaje kerberos KRB\_AP\_REQ

En *KRB\_AP\_REQ* se especifica:

* **TGS**
* **Datos cifrados** con la clave de sesión del servicio:
  * **Nombre de usuario**
  * **Timestamp**, para evitar ataques de replay

Tras esto, si los permisos del usuario son correctos, este ya puede acceder al servicio. Para esto, si está configurado, el AP verificará contra el KDC el PAC. Y en caso de requerir autenticación mutua, responderá con un mensaje *KRB\_AP\_REP* al usuario.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cpad/introduccion-a-directorio-activo-ad/proceso-de-autenticacion-en-kerberos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
