{"id":1304,"date":"2026-11-08T17:30:00","date_gmt":"2026-11-08T16:30:00","guid":{"rendered":"https:\/\/remivernier.com\/?p=1304"},"modified":"2026-11-08T17:30:00","modified_gmt":"2026-11-08T16:30:00","slug":"kerberos-fast-as-req-armoring","status":"publish","type":"post","link":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/","title":{"rendered":"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring"},"content":{"rendered":"<p>Un attaquant qui \u00e9coute le r\u00e9seau entre un poste et un contr\u00f4leur de domaine peut-il casser hors ligne le mot de passe d&rsquo;un utilisateur \u00e0 partir de sa demande de TGT? Sans protection, oui: l&rsquo;AS-REQ et l&rsquo;AS-REP portent tous deux des donn\u00e9es chiffr\u00e9es avec une cl\u00e9 d\u00e9riv\u00e9e du mot de passe. Kerberos FAST (Flexible Authentication Secure Tunneling, RFC 6113), que Microsoft appelle \u00ab Kerberos armoring \u00bb, place ce dialogue dans un tunnel chiffr\u00e9 par une cl\u00e9 qui ne d\u00e9pend plus du mot de passe de l&rsquo;utilisateur.<\/p>\n<p>Dans cet article nous allons voir comment ce tunnel est construit, ce qui change dans un AS-REQ une fois FAST activ\u00e9, et jusqu&rsquo;o\u00f9 va r\u00e9ellement la protection.<\/p>\n<h2>Pourquoi blinder la pr\u00e9-authentification?<\/h2>\n<p>Comme nous l&rsquo;avions vu dans l&rsquo;article <a href=\"https:\/\/remivernier.com\/index.php\/2026\/10\/27\/kerberos-lire-ticket-service-klist-wireshark-tgs-req-pac\/\">Kerberos: lire un ticket de service avec klist et Wireshark<\/a>, la premi\u00e8re \u00e9tape d&rsquo;une ouverture de session est un \u00e9change KRB_AS_REQ \/ KRB_AS_REP avec le KDC. En pr\u00e9-authentification classique, le client chiffre un horodatage (PA-ENC-TIMESTAMP, type 2) avec sa cl\u00e9 longue dur\u00e9e, calcul\u00e9e depuis son mot de passe. Le KDC d\u00e9chiffre, v\u00e9rifie que l&rsquo;horodatage est r\u00e9cent et r\u00e9pond avec un AS-REP dont la partie enc-part est elle aussi chiffr\u00e9e avec la cl\u00e9 de l&rsquo;utilisateur.<\/p>\n<p>Ces deux blocs ont la m\u00eame faiblesse: ils sont chiffr\u00e9s avec une cl\u00e9 d\u00e9riv\u00e9e d&rsquo;un mot de passe choisi par un humain, et le contenu clair est en partie pr\u00e9visible (un horodatage, une structure ASN.1 connue). Celui qui les capture peut donc tester des mots de passe hors ligne, sans aucune interaction avec le contr\u00f4leur de domaine, et donc sans laisser la moindre trace d&rsquo;\u00e9chec d&rsquo;authentification. Nous sommes dans la technique MITRE ATT&amp;CK T1110.002 (Password Cracking), aliment\u00e9e par une \u00e9coute r\u00e9seau (T1040) ou par une position d&rsquo;homme du milieu (T1557). L&#8217;empoisonnement LLMNR \/ NBT-NS d\u00e9crit dans <a href=\"https:\/\/remivernier.com\/index.php\/2018\/08\/26\/protocoles-nbt-ns-llmnr-et-exploitation-des-failles\/\">cet ancien article<\/a> est un moyen classique d&rsquo;obtenir cette position.<\/p>\n<p>Le cas extr\u00eame est celui des comptes pour lesquels la pr\u00e9-authentification est d\u00e9sactiv\u00e9e (drapeau DONT_REQ_PREAUTH dans userAccountControl): n&rsquo;importe qui peut alors demander un AS-REP pour ce compte et casser la partie chiffr\u00e9e tranquillement. C&rsquo;est l&rsquo;AS-REP roasting, technique T1558.004.<\/p>\n<p>FAST r\u00e9pond au premier probl\u00e8me en ajoutant une cl\u00e9 forte et al\u00e9atoire dans le calcul. Nous verrons plus loin que la r\u00e9ponse au second est plus nuanc\u00e9e.<\/p>\n<h2>Description d\u00e9taill\u00e9e du fonctionnement<\/h2>\n<p>Le principe de FAST tient en une id\u00e9e: pour prot\u00e9ger la pr\u00e9-authentification d&rsquo;un utilisateur, nous utilisons un ticket d\u00e9j\u00e0 obtenu par ailleurs, le TGT d&rsquo;armure. Sous Windows, c&rsquo;est le TGT du compte machine. Le mot de passe d&rsquo;un compte machine est long et al\u00e9atoire, ce qui rend son propre \u00e9change AS (forc\u00e9ment non blind\u00e9, puisqu&rsquo;aucun TGT n&rsquo;existe encore pour le prot\u00e9ger) peu int\u00e9ressant \u00e0 casser.<\/p>\n<figure class=\"wp-block-image\">\n<svg viewBox=\"0 0 720 380\" width=\"100%\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" font-family=\"sans-serif\" font-size=\"13\">\n<defs><marker id=\"fl\" markerWidth=\"10\" markerHeight=\"10\" refX=\"9\" refY=\"3\" orient=\"auto\"><path d=\"M0,0 L9,3 L0,6 z\" fill=\"#333\"\/><\/marker><\/defs>\n<rect x=\"20\" y=\"20\" width=\"170\" height=\"50\" fill=\"#e8f0fe\" stroke=\"#333\"\/>\n<text x=\"105\" y=\"42\" text-anchor=\"middle\" font-size=\"14\">Poste win11<\/text>\n<text x=\"105\" y=\"60\" text-anchor=\"middle\">(test.local)<\/text>\n<rect x=\"530\" y=\"20\" width=\"170\" height=\"50\" fill=\"#e6f4ea\" stroke=\"#333\"\/>\n<text x=\"615\" y=\"42\" text-anchor=\"middle\" font-size=\"14\">KDC dc01<\/text>\n<text x=\"615\" y=\"60\" text-anchor=\"middle\">(test.local)<\/text>\n<line x1=\"105\" y1=\"70\" x2=\"105\" y2=\"370\" stroke=\"#333\" stroke-dasharray=\"4,4\"\/>\n<line x1=\"615\" y1=\"70\" x2=\"615\" y2=\"370\" stroke=\"#333\" stroke-dasharray=\"4,4\"\/>\n<line x1=\"110\" y1=\"105\" x2=\"608\" y2=\"105\" stroke=\"#333\" marker-end=\"url(#fl)\"\/>\n<text x=\"360\" y=\"98\" text-anchor=\"middle\">1. AS-REQ du compte win11$ (PA-ENC-TIMESTAMP, sans armure)<\/text>\n<line x1=\"610\" y1=\"140\" x2=\"112\" y2=\"140\" stroke=\"#333\" marker-end=\"url(#fl)\"\/>\n<text x=\"360\" y=\"133\" text-anchor=\"middle\">2. AS-REP: TGT machine = ticket d&rsquo;armure + cl\u00e9 de session<\/text>\n<rect x=\"130\" y=\"160\" width=\"460\" height=\"100\" fill=\"#fdf3e1\" stroke=\"#333\"\/>\n<text x=\"360\" y=\"180\" text-anchor=\"middle\" font-size=\"14\">3. AS-REQ de l&rsquo;utilisateur, padata PA-FX-FAST (136)<\/text>\n<text x=\"145\" y=\"202\">armor: AP-REQ portant le TGT machine (armor-type 1)<\/text>\n<text x=\"145\" y=\"222\">req-checksum: signature du req-body ext\u00e9rieur<\/text>\n<text x=\"145\" y=\"242\">enc-fast-req (cl\u00e9 d&rsquo;armure): PA-ENCRYPTED-CHALLENGE (138)<\/text>\n<line x1=\"110\" y1=\"270\" x2=\"608\" y2=\"270\" stroke=\"#333\" marker-end=\"url(#fl)\"\/>\n<line x1=\"610\" y1=\"320\" x2=\"112\" y2=\"320\" stroke=\"#333\" marker-end=\"url(#fl)\"\/>\n<text x=\"360\" y=\"300\" text-anchor=\"middle\">4. AS-REP: PA-FX-FAST (r\u00e9ponse chiffr\u00e9e avec la cl\u00e9 d&rsquo;armure)<\/text>\n<text x=\"360\" y=\"314\" text-anchor=\"middle\">+ TGT de l&rsquo;utilisateur<\/text>\n<\/svg><figcaption>Le TGT machine sert d&rsquo;armure \u00e0 la demande de TGT de l&rsquo;utilisateur<\/figcaption><\/figure>\n<p>L&rsquo;\u00e9change se d\u00e9roule ainsi:<\/p>\n<ol>\n<li>Au d\u00e9marrage, le poste obtient le TGT de son compte machine (win11$) par un \u00e9change AS ordinaire.<\/li>\n<li>Quand l&rsquo;utilisateur ouvre sa session, le client construit un AP-REQ contenant ce TGT machine et un authentificateur porteur d&rsquo;une sous-cl\u00e9 al\u00e9atoire. La cl\u00e9 d&rsquo;armure est calcul\u00e9e par la fonction KRB-FX-CF2 \u00e0 partir de cette sous-cl\u00e9 et de la cl\u00e9 de session du TGT machine. Ni l&rsquo;une ni l&rsquo;autre ne d\u00e9rive du mot de passe de l&rsquo;utilisateur.<\/li>\n<li>Le client envoie un AS-REQ dont le padata contient un seul \u00e9l\u00e9ment int\u00e9ressant, PA-FX-FAST (type 136). Il porte une structure KrbFastArmoredReq: le champ armor (l&rsquo;AP-REQ de l&rsquo;\u00e9tape pr\u00e9c\u00e9dente, armor-type 1, FX_FAST_ARMOR_AP_REQUEST), un req-checksum qui lie le tunnel au corps de la requ\u00eate, et enc-fast-req, chiffr\u00e9 avec la cl\u00e9 d&rsquo;armure. Ce dernier contient la vraie requ\u00eate: les options FAST, le req-body int\u00e9rieur et la pr\u00e9-authentification.<\/li>\n<li>Dans le tunnel, l&rsquo;horodatage classique est remplac\u00e9 par PA-ENCRYPTED-CHALLENGE (type 138). Le client y chiffre son horodatage avec une cl\u00e9 qui combine, toujours via KRB-FX-CF2, la cl\u00e9 d&rsquo;armure et sa cl\u00e9 longue dur\u00e9e. Pour tester un mot de passe, il faudrait donc aussi conna\u00eetre la cl\u00e9 d&rsquo;armure.<\/li>\n<li>Le KDC d\u00e9chiffre le TGT machine avec la cl\u00e9 du compte krbtgt, retrouve la cl\u00e9 de session, recalcule la cl\u00e9 d&rsquo;armure et traite la requ\u00eate int\u00e9rieure. Sa r\u00e9ponse revient elle aussi dans un PA-FX-FAST, et les erreurs passent dans un PA-FX-ERROR (137) prot\u00e9g\u00e9 au lieu d&rsquo;un KRB-ERROR en clair.<\/li>\n<\/ol>\n<p>La RFC pr\u00e9voit en plus un champ strengthen-key dans la r\u00e9ponse FAST: le KDC peut fournir une cl\u00e9 al\u00e9atoire qui est combin\u00e9e \u00e0 la cl\u00e9 de r\u00e9ponse, ce qui prot\u00e8ge aussi l&rsquo;enc-part de l&rsquo;AS-REP contre une attaque hors ligne. Attention, la pr\u00e9sence de ce champ ne se voit pas sans d\u00e9chiffrer le tunnel, et je pr\u00e9f\u00e8re ne pas affirmer ce que fait le KDC Windows sans l&rsquo;avoir lu dans [MS-KILE].<\/p>\n<p>FAST ne cherche pas \u00e0 cacher l&rsquo;identit\u00e9: le req-body ext\u00e9rieur continue de porter le nom du compte et le SPN krbtgt\/TEST.LOCAL, ce qui laisse lisible qui s&rsquo;authentifie et aupr\u00e8s de quel domaine.<\/p>\n<h2>Activer FAST et le voir dans Wireshark<\/h2>\n<p>Notre maquette reste minimale:<\/p>\n<p>Nom du domaine: test.local (TESTLOCAL), niveau fonctionnel 2016<\/p>\n<p>Contr\u00f4leur de domaine: dc01.test.local (Windows Server 2022)<\/p>\n<p>Client: win11.test.local (Windows 11), utilisateur alice@test.local<\/p>\n<p>FAST se pilote par deux param\u00e8tres de strat\u00e9gie de groupe, apparus avec Windows Server 2012 et Windows 8 en m\u00eame temps que les revendications (claims) et l&rsquo;authentification compos\u00e9e:<\/p>\n<pre class=\"wp-block-code\"><code>C\u00f4t\u00e9 KDC (GPO li\u00e9e \u00e0 l'OU Domain Controllers):\nConfiguration ordinateur \\ Strat\u00e9gies \\ Mod\u00e8les d'administration \\ Syst\u00e8me \\ KDC\n  \u00ab Prise en charge du contr\u00f4leur de domaine Kerberos pour les revendications,\n    l'authentification compos\u00e9e et le blindage Kerberos \u00bb\n  (KDC support for claims, compound authentication and Kerberos armoring)\n  Options: Non pris en charge | Pris en charge | Toujours fournir des revendications\n           | \u00c9chec des demandes d'authentification non blind\u00e9es\n\nC\u00f4t\u00e9 client (GPO li\u00e9e aux postes):\nConfiguration ordinateur \\ Strat\u00e9gies \\ Mod\u00e8les d'administration \\ Syst\u00e8me \\ Kerberos\n  \u00ab Prise en charge des revendications, de l'authentification compos\u00e9e\n    et du blindage Kerberos par le client Kerberos \u00bb\n  (Kerberos client support for claims, compound authentication and Kerberos armoring)<\/code><\/pre>\n<p>Nous commen\u00e7ons par une capture de r\u00e9f\u00e9rence, les deux param\u00e8tres non configur\u00e9s. Lan\u00e7ons Wireshark sur le poste avec le filtre \u00ab kerberos \u00bb, puis ouvrons une session alice. L&rsquo;AS-REQ qui suit l&rsquo;erreur KDC_ERR_PREAUTH_REQUIRED a la forme bien connue:<\/p>\n<pre class=\"wp-block-code\"><code>Kerberos\n    as-req\n        pvno: 5\n        msg-type: krb-as-req (10)\n        padata: 2 items\n            PA-DATA pA-ENC-TIMESTAMP\n                padata-type: pA-ENC-TIMESTAMP (2)\n                    padata-value\n                        etype: eTYPE-AES256-CTS-HMAC-SHA1-96 (18)\n                        cipher: 6f1c0e\u2026\n            PA-DATA pA-PAC-REQUEST\n        req-body\n            cname: alice\n            realm: TEST.LOCAL\n            sname: krbtgt\/TEST.LOCAL<\/code><\/pre>\n<p>-> Le champ cipher est l&rsquo;horodatage chiffr\u00e9 avec la cl\u00e9 d&rsquo;alice: c&rsquo;est le bloc qu&rsquo;un attaquant en \u00e9coute r\u00e9cup\u00e9rerait.<\/p>\n<p>Nous activons ensuite le param\u00e8tre KDC sur \u00ab Pris en charge \u00bb et le param\u00e8tre client sur \u00ab Activ\u00e9 \u00bb, puis lan\u00e7ons un gpupdate \/force sur dc01 et un red\u00e9marrage de win11, pour que le compte machine obtienne un nouveau TGT. Sur la maquette, la m\u00eame ouverture de session donne cette fois:<\/p>\n<pre class=\"wp-block-code\"><code>Kerberos\n    as-req\n        msg-type: krb-as-req (10)\n        padata: 1 item\n            PA-DATA pA-FX-FAST\n                padata-type: pA-FX-FAST (136)\n                    padata-value: armored-data\n                        armor\n                            armor-type: 1\n                            armor-value\n                                ap-req\n                                    ticket\n                                        realm: TEST.LOCAL\n                                        sname: krbtgt\/TEST.LOCAL\n                                        enc-part: etype 18, kvno 2, cipher \u2026\n                        req-checksum\n                            cksumtype: cKSUMTYPE-HMAC-SHA1-96-AES256 (16)\n                        enc-fast-req\n                            etype: eTYPE-AES256-CTS-HMAC-SHA1-96 (18)\n                            cipher: a40b97\u2026\n        req-body\n            cname: alice\n            realm: TEST.LOCAL\n            sname: krbtgt\/TEST.LOCAL<\/code><\/pre>\n<p>-> pA-ENC-TIMESTAMP a disparu, il n&rsquo;y a plus d&rsquo;\u00e9l\u00e9ment chiffr\u00e9 avec la seule cl\u00e9 d&rsquo;alice dans la trame.<\/p>\n<p>-> L&rsquo;armor-value transporte le TGT de win11$, que l&rsquo;on retrouve sur le poste dans le cache de la session SYSTEM.<\/p>\n<p>Pour isoler ces trames dans une capture plus large, le filtre \u00ab kerberos.padata_type == 136 \u00bb suffit. Pour v\u00e9rifier depuis le poste que le TGT de l&rsquo;utilisateur a bien \u00e9t\u00e9 obtenu par un \u00e9change blind\u00e9, klist affiche un drapeau de cache d\u00e9di\u00e9:<\/p>\n<pre class=\"wp-block-code\"><code>C:\\&gt; klist -li 0x3e7\n#0&gt;  Client: win11$ @ TEST.LOCAL\n     Server: krbtgt\/TEST.LOCAL @ TEST.LOCAL\n     ...\n\nC:\\&gt; klist\n#0&gt;  Client: alice @ TEST.LOCAL\n     Server: krbtgt\/TEST.LOCAL @ TEST.LOCAL\n     KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96\n     Cache Flags: 0x41 -&gt; PRIMARY FAST\n     Kdc Called: dc01.test.local<\/code><\/pre>\n<p>C\u00f4t\u00e9 contr\u00f4leur de domaine, l&rsquo;\u00e9v\u00e9nement 4768 (demande de TGT) du journal S\u00e9curit\u00e9 indique le type de pr\u00e9-authentification utilis\u00e9. La valeur 2 correspond \u00e0 l&rsquo;horodatage classique, 138 au challenge chiffr\u00e9 de FAST, 0 \u00e0 une demande sans pr\u00e9-authentification:<\/p>\n<pre class=\"wp-block-code\"><code>Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4768} -MaxEvents 200 |\n  ForEach-Object {\n    $x = [xml]$_.ToXml()\n    $d = @{}; $x.Event.EventData.Data | ForEach-Object { $d[$_.Name] = $_.'#text' }\n    [pscustomobject]@{\n      Heure   = $_.TimeCreated\n      Compte  = $d.TargetUserName\n      Client  = $d.IpAddress\n      PreAuth = $d.PreAuthType\n    }\n  } | Group-Object PreAuth, Client | Sort-Object Count -Descending<\/code><\/pre>\n<p>Cette requ\u00eate est la base de l&rsquo;inventaire avant d&rsquo;aller plus loin: tous les clients qui remontent encore en type 2 sont ceux qui ne blindent pas.<\/p>\n<p>Pour aller jusqu&rsquo;au contenu de enc-fast-req, il faut reconstituer la cl\u00e9 d&rsquo;armure, donc d\u00e9chiffrer le TGT machine avec la cl\u00e9 du compte krbtgt. Attention: c&rsquo;est une manipulation de maquette, un keytab contenant la cl\u00e9 krbtgt d&rsquo;un domaine de production est l&rsquo;\u00e9quivalent d&rsquo;un acc\u00e8s complet au domaine.<\/p>\n<h2>Ce que FAST change pour un attaquant<\/h2>\n<p>Reprenons le sc\u00e9nario de d\u00e9part. Un attaquant obtient une position d&rsquo;\u00e9coute, par empoisonnement LLMNR, par un \u00e9quipement r\u00e9seau compromis ou sur un segment Wi-Fi mal isol\u00e9, et capture les ouvertures de session du matin. Sans FAST, chaque AS-REQ est un candidat au cassage hors ligne, et un mot de passe faible tombe sans qu&rsquo;aucun 4771 n&rsquo;apparaisse sur un contr\u00f4leur de domaine. Le secret obtenu est le mot de passe lui-m\u00eame, r\u00e9utilisable en Kerberos comme en NTLM, sur le VPN, dans Entra ID si les hashs sont synchronis\u00e9s, jusqu&rsquo;\u00e0 son prochain changement. Avec FAST, la m\u00eame capture ne contient plus que des blocs chiffr\u00e9s avec une cl\u00e9 d&rsquo;armure al\u00e9atoire: l&rsquo;\u00e9coute passive ne suffit plus.<\/p>\n<p>La protection s&rsquo;arr\u00eate l\u00e0, et il faut conna\u00eetre ses bords.<\/p>\n<p>En mode \u00ab Pris en charge \u00bb, le KDC accepte toujours les requ\u00eates non blind\u00e9es. Un outil offensif qui forge lui-m\u00eame son AS-REQ ne blinde rien, et le KDC lui r\u00e9pond comme avant. Pour l&rsquo;AS-REP roasting, cela veut dire que rien ne change: un compte avec DONT_REQ_PREAUTH reste expos\u00e9. Seul le mode \u00ab \u00c9chec des demandes d&rsquo;authentification non blind\u00e9es \u00bb oblige \u00e0 pr\u00e9senter une armure, et il demande un niveau fonctionnel de domaine 2012 au minimum.<\/p>\n<p>M\u00eame en mode strict, la barri\u00e8re tient \u00e0 la possession d&rsquo;un TGT. Un attaquant qui a d\u00e9j\u00e0 compromis un poste du domaine, ou qui conna\u00eet le mot de passe de n&rsquo;importe quel compte, peut obtenir un ticket et blinder ses propres requ\u00eates. FAST \u00e9l\u00e8ve le niveau requis (passer d&rsquo;un acc\u00e8s au r\u00e9seau \u00e0 une identit\u00e9 dans le domaine), il ne remplace pas le m\u00e9nage. La vraie parade contre l&rsquo;AS-REP roasting reste de supprimer DONT_REQ_PREAUTH partout o\u00f9 c&rsquo;est possible, ce que l&rsquo;on peut suivre en continu:<\/p>\n<pre class=\"wp-block-code\"><code>Get-ADUser -LDAPFilter '(userAccountControl:1.2.840.113556.1.4.803:=4194304)' `\n  -Properties userAccountControl, pwdLastSet |\n  Select-Object SamAccountName, Enabled, pwdLastSet<\/code><\/pre>\n<p>Dans le journal, ces comptes se trahissent aussi par des 4768 avec un type de pr\u00e9-authentification \u00e0 0, \u00e0 surveiller de pr\u00e8s quand ils viennent d&rsquo;une adresse inhabituelle.<\/p>\n<p>FAST ne prot\u00e8ge que l&rsquo;\u00e9change AS. Le Kerberoasting (T1558.003) cible le TGS-REP, chiffr\u00e9 avec la cl\u00e9 du compte de service, et n&rsquo;est pas concern\u00e9: la parade reste des mots de passe longs ou des comptes gMSA et AES uniquement. NTLM ne l&rsquo;est pas davantage, et un poste qui retombe en NTLM continue d&rsquo;exposer ses r\u00e9ponses challenge\/r\u00e9ponse, comme nous l&rsquo;avions vu dans <a href=\"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/kerberos-retombe-ntlm-diagnostic-maquette\/\">Pourquoi Kerberos retombe en NTLM<\/a>.<\/p>\n<p>Reste la compatibilit\u00e9, qui d\u00e9cide en pratique du mode retenu. En mode strict, tout ce qui ne sait pas pr\u00e9senter un TGT d&rsquo;armure \u00e9choue: postes ant\u00e9rieurs \u00e0 Windows 8, machines non jointes au domaine (elles n&rsquo;ont pas de TGT machine), clients Linux MIT ou Heimdal non configur\u00e9s pour l&rsquo;armure, appliances, scanners et vieux serveurs applicatifs qui font leur propre kinit. L&rsquo;erreur arrive \u00e0 l&rsquo;ouverture de session et ressemble \u00e0 un mauvais mot de passe pour l&rsquo;utilisateur, ce qui rend le diagnostic p\u00e9nible. L&rsquo;ordre que je recommande: client activ\u00e9 partout, KDC en \u00ab Pris en charge \u00bb, quelques semaines d&rsquo;inventaire avec l&rsquo;\u00e9v\u00e9nement 4768, correction ou isolement des clients en type 2, puis seulement le mode strict.<\/p>\n<p>Quand le mode strict est impossible \u00e0 l&rsquo;\u00e9chelle du domaine, les strat\u00e9gies d&rsquo;authentification (authentication policies et silos, niveau fonctionnel 2012 R2) permettent d&rsquo;exiger l&rsquo;armure pour une population cibl\u00e9e, comptes d&rsquo;administration en t\u00eate, puisqu&rsquo;elles reposent sur le m\u00eame blindage pour appliquer leurs conditions. Pour ces comptes, l&rsquo;association avec le groupe Protected Users et une ouverture de session restreinte aux postes d&rsquo;administration donne un r\u00e9sultat bien plus solide que FAST seul.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comment le TGT machine blinde la pr\u00e9-authentification Kerberos (RFC 6113), ce que l&rsquo;on voit dans Wireshark et ce que FAST ne prot\u00e8ge pas.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,4,37],"tags":[131,133,96,130,134,5,132,49],"class_list":["post-1304","post","type-post","status-publish","format-standard","hentry","category-active-directory","category-kerberos","category-securite","tag-armoring","tag-as-rep-roasting","tag-as-req","tag-fast","tag-gpo","tag-kerberos","tag-rfc-6113","tag-wireshark"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring - R\u00e9mi VERNIER<\/title>\n<meta name=\"description\" content=\"Comment le TGT machine blinde la pr\u00e9-authentification Kerberos (RFC 6113), ce que l&#039;on voit dans Wireshark et ce que FAST ne prot\u00e8ge pas.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring - R\u00e9mi VERNIER\" \/>\n<meta property=\"og:description\" content=\"Comment le TGT machine blinde la pr\u00e9-authentification Kerberos (RFC 6113), ce que l&#039;on voit dans Wireshark et ce que FAST ne prot\u00e8ge pas.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/\" \/>\n<meta property=\"og:site_name\" content=\"R\u00e9mi VERNIER\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-08T16:30:00+00:00\" \/>\n<meta name=\"author\" content=\"R\u00e9mi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"R\u00e9mi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/11\\\/08\\\/kerberos-fast-as-req-armoring\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/11\\\/08\\\/kerberos-fast-as-req-armoring\\\/\"},\"author\":{\"name\":\"R\u00e9mi\",\"@id\":\"https:\\\/\\\/remivernier.com\\\/#\\\/schema\\\/person\\\/a4c76c63a5a3d94454484845e42fc906\"},\"headline\":\"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring\",\"datePublished\":\"2026-11-08T16:30:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/11\\\/08\\\/kerberos-fast-as-req-armoring\\\/\"},\"wordCount\":2016,\"commentCount\":0,\"keywords\":[\"armoring\",\"as-rep roasting\",\"as-req\",\"fast\",\"gpo\",\"kerberos\",\"rfc 6113\",\"wireshark\"],\"articleSection\":[\"Active Directory\",\"Kerberos\",\"S\u00e9curit\u00e9\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/11\\\/08\\\/kerberos-fast-as-req-armoring\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/11\\\/08\\\/kerberos-fast-as-req-armoring\\\/\",\"url\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/11\\\/08\\\/kerberos-fast-as-req-armoring\\\/\",\"name\":\"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring - R\u00e9mi VERNIER\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/#website\"},\"datePublished\":\"2026-11-08T16:30:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/#\\\/schema\\\/person\\\/a4c76c63a5a3d94454484845e42fc906\"},\"description\":\"Comment le TGT machine blinde la pr\u00e9-authentification Kerberos (RFC 6113), ce que l'on voit dans Wireshark et ce que FAST ne prot\u00e8ge pas.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/11\\\/08\\\/kerberos-fast-as-req-armoring\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/11\\\/08\\\/kerberos-fast-as-req-armoring\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/11\\\/08\\\/kerberos-fast-as-req-armoring\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/remivernier.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/remivernier.com\\\/#website\",\"url\":\"https:\\\/\\\/remivernier.com\\\/\",\"name\":\"R\u00e9mi VERNIER\",\"description\":\"Identit\u00e9, s\u00e9curit\u00e9, SAP et IA : Active Directory, Azure &amp; co...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/remivernier.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/remivernier.com\\\/#\\\/schema\\\/person\\\/a4c76c63a5a3d94454484845e42fc906\",\"name\":\"R\u00e9mi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g\",\"caption\":\"R\u00e9mi\"},\"sameAs\":[\"http:\\\/\\\/www.linkedin.com\\\/in\\\/remi-vernier\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring - R\u00e9mi VERNIER","description":"Comment le TGT machine blinde la pr\u00e9-authentification Kerberos (RFC 6113), ce que l'on voit dans Wireshark et ce que FAST ne prot\u00e8ge pas.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/","og_locale":"fr_FR","og_type":"article","og_title":"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring - R\u00e9mi VERNIER","og_description":"Comment le TGT machine blinde la pr\u00e9-authentification Kerberos (RFC 6113), ce que l'on voit dans Wireshark et ce que FAST ne prot\u00e8ge pas.","og_url":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/","og_site_name":"R\u00e9mi VERNIER","article_published_time":"2026-11-08T16:30:00+00:00","author":"R\u00e9mi","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"R\u00e9mi","Dur\u00e9e de lecture estim\u00e9e":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/#article","isPartOf":{"@id":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/"},"author":{"name":"R\u00e9mi","@id":"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906"},"headline":"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring","datePublished":"2026-11-08T16:30:00+00:00","mainEntityOfPage":{"@id":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/"},"wordCount":2016,"commentCount":0,"keywords":["armoring","as-rep roasting","as-req","fast","gpo","kerberos","rfc 6113","wireshark"],"articleSection":["Active Directory","Kerberos","S\u00e9curit\u00e9"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/","url":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/","name":"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring - R\u00e9mi VERNIER","isPartOf":{"@id":"https:\/\/remivernier.com\/#website"},"datePublished":"2026-11-08T16:30:00+00:00","author":{"@id":"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906"},"description":"Comment le TGT machine blinde la pr\u00e9-authentification Kerberos (RFC 6113), ce que l'on voit dans Wireshark et ce que FAST ne prot\u00e8ge pas.","breadcrumb":{"@id":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/remivernier.com\/index.php\/2026\/11\/08\/kerberos-fast-as-req-armoring\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/remivernier.com\/"},{"@type":"ListItem","position":2,"name":"Kerberos FAST: lire un AS-REQ prot\u00e9g\u00e9 par armoring"}]},{"@type":"WebSite","@id":"https:\/\/remivernier.com\/#website","url":"https:\/\/remivernier.com\/","name":"R\u00e9mi VERNIER","description":"Identit\u00e9, s\u00e9curit\u00e9, SAP et IA : Active Directory, Azure &amp; co...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/remivernier.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906","name":"R\u00e9mi","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g","caption":"R\u00e9mi"},"sameAs":["http:\/\/www.linkedin.com\/in\/remi-vernier"]}]}},"_links":{"self":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/1304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/comments?post=1304"}],"version-history":[{"count":1,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/1304\/revisions"}],"predecessor-version":[{"id":1306,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/1304\/revisions\/1306"}],"wp:attachment":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/media?parent=1304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/categories?post=1304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/tags?post=1304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}