{"id":1284,"date":"2026-10-31T09:59:58","date_gmt":"2026-10-31T08:59:58","guid":{"rendered":"https:\/\/remivernier.com\/?p=1284"},"modified":"2026-10-31T09:59:58","modified_gmt":"2026-10-31T08:59:58","slug":"pkinit-as-req-kerberos-certificat","status":"publish","type":"post","link":"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/","title":{"rendered":"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat"},"content":{"rendered":"<p>Depuis la mise \u00e0 jour du 14 octobre 2025, la cl\u00e9 de registre <code>AllowNtAuthPolicyBypass<\/code> n&rsquo;est plus prise en charge par les contr\u00f4leurs de domaine: un certificat d&rsquo;ouverture de session doit maintenant venir d&rsquo;une autorit\u00e9 pr\u00e9sente dans le magasin NTAuth, comme l&rsquo;indique Microsoft dans le <a href=\"https:\/\/support.microsoft.com\/en-us\/topic\/protections-for-cve-2025-26647-kerberos-authentication-5f5d753b-4023-4dd3-b7b7-c8b104933d53\">KB5057784<\/a> (CVE-2025-26647). Un mois plus t\u00f4t, la mise \u00e0 jour du 9 septembre 2025 avait retir\u00e9 le dernier moyen de revenir au mode de compatibilit\u00e9 pour le mappage des certificats (<a href=\"https:\/\/support.microsoft.com\/en-us\/topic\/kb5014754-certificate-based-authentication-changes-on-windows-domain-controllers-ad2c23b0-15d8-4340-a468-4d4f3b188f16\">KB5014754<\/a>).<\/p>\n<p>Ces deux changements portent sur la m\u00eame brique: PKINIT, l&rsquo;extension de Kerberos qui permet d&rsquo;obtenir un TGT avec un certificat plut\u00f4t qu&rsquo;avec un mot de passe, et que l&rsquo;on retrouve aussi bien derri\u00e8re une ouverture de session par carte \u00e0 puce que derri\u00e8re Certipy ou Rubeus. Dans cet article nous allons suivre un KRB_AS_REQ PKINIT depuis le client jusqu&rsquo;au KDC, sur une maquette, pour comprendre comment un TGT peut \u00eatre d\u00e9livr\u00e9 sans que le mot de passe n&rsquo;intervienne \u00e0 aucun moment.<\/p>\n<p>La maquette reste simple: un contr\u00f4leur de domaine dc01.test.local, une autorit\u00e9 de certification d&rsquo;entreprise TEST-SRV-AC-CA install\u00e9e sur srv-ac, et un client win11 sur lequel l&rsquo;utilisateur jdupont@test.local ouvre sa session avec une carte \u00e0 puce virtuelle.<\/p>\n<h2>Ce que contient un AS-REQ PKINIT<\/h2>\n<p>Dans un \u00e9change classique, 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>, le client prouve sa connaissance du mot de passe en chiffrant un horodatage (PA-ENC-TIMESTAMP, type 2) avec sa cl\u00e9 Kc, d\u00e9riv\u00e9e du mot de passe. Le KDC d\u00e9chiffre avec la m\u00eame cl\u00e9 tir\u00e9e de l&rsquo;annuaire, et c&rsquo;est encore cette cl\u00e9 qui chiffre la partie de l&rsquo;AS-REP destin\u00e9e au client.<\/p>\n<p>PKINIT, d\u00e9crit dans la <a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc4556.html\">RFC 4556<\/a>, remplace ce padata par un PA-PK-AS-REQ (type 16). Sa valeur est une structure CMS SignedData dont le contenu, de type id-pkinit-authData (1.3.6.1.5.2.3.1), est un AuthPack:<\/p>\n<ul>\n<li>pkAuthenticator: cusec, ctime, un nonce identique \u00e0 celui du req-body, et paChecksum, une empreinte SHA-1 du KDC-REQ-BODY,<\/li>\n<li>clientPublicValue: les param\u00e8tres Diffie-Hellman et la cl\u00e9 publique \u00e9ph\u00e9m\u00e8re du client,<\/li>\n<li>supportedCMSTypes et clientDHNonce, optionnels.<\/li>\n<\/ul>\n<p>L&rsquo;ensemble est sign\u00e9 avec la cl\u00e9 priv\u00e9e du certificat de l&rsquo;utilisateur, et le certificat lui-m\u00eame (avec si besoin la cha\u00eene) voyage dans le champ certificates du SignedData. La signature remplace la preuve par le mot de passe; le paChecksum lie cette signature \u00e0 la requ\u00eate, ce qui emp\u00eache de recoller un AuthPack valide sur un autre req-body.<\/p>\n<p>Lan\u00e7ons Wireshark sur win11 avec le filtre <code>kerberos.padata_type == 16<\/code>, puis verrouillons et d\u00e9verrouillons la session. Voici l&rsquo;arborescence simplifi\u00e9e de l&rsquo;AS-REQ:<\/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-PK-AS-REQ\n                padata-type: pA-PK-AS-REQ (16)\n                    signedAuthPack\n                        ContentType: id-signedData (1.2.840.113549.1.7.2)\n                        eContentType: id-pkinit-authData (1.3.6.1.5.2.3.1)\n                        AuthPack\n                            pkAuthenticator\n                                cusec: 412\n                                ctime: 2026-10-30 09:14:27 (UTC)\n                                nonce: 1838212097\n                                paChecksum: 3b9f0c\u2026\n                            clientPublicValue\n                                algorithm: dhpublicnumber (1.2.840.10046.2.1)\n                        certificates: 2 items\n                        signerInfos: 1 item\n            PA-DATA pA-PAC-REQUEST\n                include-pac: True\n        req-body\n            cname: jdupont\n            realm: TEST.LOCAL\n            sname: krbtgt\/TEST.LOCAL\n            nonce: 1838212097<\/code><\/pre>\n<p>Tout est en clair: le certificat de l&rsquo;utilisateur, son \u00e9metteur, son num\u00e9ro de s\u00e9rie. Rien de secret ne circule, seule la cl\u00e9 priv\u00e9e (dans la puce ou le TPM) a servi \u00e0 signer.<\/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=\"8\" refX=\"9\" refY=\"4\" orient=\"auto\"><path d=\"M0,0 L10,4 L0,8 z\" fill=\"#333\"\/><\/marker><\/defs>\n<rect x=\"20\" y=\"20\" width=\"170\" height=\"340\" fill=\"#e8f0fe\" stroke=\"#333\"\/>\n<text x=\"105\" y=\"45\" text-anchor=\"middle\" font-size=\"15\">Client win11<\/text>\n<text x=\"105\" y=\"65\" text-anchor=\"middle\">cl\u00e9 priv\u00e9e (carte\/TPM)<\/text>\n<rect x=\"530\" y=\"20\" width=\"170\" height=\"340\" fill=\"#e6f4ea\" stroke=\"#333\"\/>\n<text x=\"615\" y=\"45\" text-anchor=\"middle\" font-size=\"15\">KDC dc01<\/text>\n<text x=\"615\" y=\"65\" text-anchor=\"middle\">certificat KDC<\/text>\n<line x1=\"190\" y1=\"100\" x2=\"528\" y2=\"100\" stroke=\"#333\" marker-end=\"url(#fl)\"\/>\n<rect x=\"210\" y=\"110\" width=\"300\" height=\"80\" fill=\"#fdf3e1\" stroke=\"#333\"\/>\n<text x=\"220\" y=\"130\">KRB_AS_REQ + PA-PK-AS-REQ (16)<\/text>\n<text x=\"220\" y=\"150\">AuthPack sign\u00e9: nonce, ctime, paChecksum<\/text>\n<text x=\"220\" y=\"168\">cl\u00e9 publique DH du client<\/text>\n<text x=\"220\" y=\"184\">certificat de jdupont<\/text>\n<rect x=\"545\" y=\"110\" width=\"140\" height=\"95\" fill=\"#ffffff\" stroke=\"#333\"\/>\n<text x=\"555\" y=\"130\">signature, cha\u00eene,<\/text>\n<text x=\"555\" y=\"148\">NTAuth, EKU,<\/text>\n<text x=\"555\" y=\"166\">r\u00e9vocation,<\/text>\n<text x=\"555\" y=\"184\">mappage au compte<\/text>\n<line x1=\"528\" y1=\"240\" x2=\"192\" y2=\"240\" stroke=\"#333\" marker-end=\"url(#fl)\"\/>\n<rect x=\"210\" y=\"250\" width=\"300\" height=\"95\" fill=\"#fdf3e1\" stroke=\"#333\"\/>\n<text x=\"220\" y=\"270\">KRB_AS_REP + PA-PK-AS-REP (17)<\/text>\n<text x=\"220\" y=\"290\">cl\u00e9 publique DH du KDC, sign\u00e9e par le KDC<\/text>\n<text x=\"220\" y=\"308\">enc-part chiffr\u00e9e par la cl\u00e9 issue de DH<\/text>\n<text x=\"220\" y=\"326\">TGT: PAC + PAC_CREDENTIAL_INFO<\/text>\n<\/svg><figcaption>\u00c9change AS PKINIT en mode Diffie-Hellman<\/figcaption><\/figure>\n<h2>Le KDC, son certificat et la cl\u00e9 de r\u00e9ponse<\/h2>\n<p>\u00c0 r\u00e9ception, le KDC v\u00e9rifie la signature du SignedData, construit la cha\u00eene du certificat client jusqu&rsquo;\u00e0 une racine de confiance, contr\u00f4le la r\u00e9vocation, la fra\u00eecheur de ctime (la tol\u00e9rance d&rsquo;horloge Kerberos, 5 minutes par d\u00e9faut) et la correspondance entre paChecksum et le req-body. Depuis le KB5057784, il exige aussi que l&rsquo;AC \u00e9mettrice soit publi\u00e9e dans l&rsquo;objet NTAuthCertificates de la partition de configuration. Nous pouvons le v\u00e9rifier depuis n&rsquo;importe quel poste du domaine:<\/p>\n<pre class=\"wp-block-code\"><code>certutil -viewstore -enterprise NTAuth<\/code><\/pre>\n<p>C\u00f4t\u00e9 EKU, le certificat de l&rsquo;utilisateur doit porter Smart Card Logon (1.3.6.1.4.1.311.20.2.2) ou l&rsquo;EKU client PKINIT de la RFC (1.3.6.1.5.2.3.4). Le mod\u00e8le \u00ab Ouverture de session par carte \u00e0 puce \u00bb ou un duplicata de \u00ab Utilisateur de carte \u00e0 puce \u00bb fait l&rsquo;affaire; pour une carte \u00e0 puce virtuelle ou Windows Hello for Business en mode certificat, nous dupliquons ce mod\u00e8le et ajustons le fournisseur de cl\u00e9s.<\/p>\n<p>Le KDC a lui aussi besoin d&rsquo;un certificat, ce que l&rsquo;on oublie souvent. Le client le v\u00e9rifie dans la r\u00e9ponse: il doit contenir l&rsquo;EKU KDC Authentication (1.3.6.1.5.2.3.5) et, dans le SAN, le nom DNS du domaine et le FQDN du contr\u00f4leur. Le mod\u00e8le \u00ab Authentification Kerberos \u00bb d&rsquo;AD CS remplit ces conditions. Sans certificat KDC valide, le contr\u00f4leur ne peut pas r\u00e9pondre en PKINIT et l&rsquo;ouverture de session par carte \u00e9choue.<\/p>\n<p>Reste la question de d\u00e9part: avec quelle cl\u00e9 le KDC chiffre-t-il l&rsquo;enc-part de l&rsquo;AS-REP, puisqu&rsquo;il n&rsquo;utilise plus Kc? Les clients Windows proposent l&rsquo;\u00e9change Diffie-Hellman. Le KDC g\u00e9n\u00e8re sa propre paire \u00e9ph\u00e9m\u00e8re, place sa cl\u00e9 publique dans un KDCDHKeyInfo qu&rsquo;il signe avec la cl\u00e9 priv\u00e9e de son certificat, et renvoie le tout dans un PA-PK-AS-REP (type 17). Chaque c\u00f4t\u00e9 calcule alors le m\u00eame secret partag\u00e9, d&rsquo;o\u00f9 la RFC 4556 d\u00e9rive la cl\u00e9 de r\u00e9ponse (fonction octetstring2key, en y m\u00ealant les nonces DH s&rsquo;ils sont pr\u00e9sents). L&rsquo;autre mode, dit de chiffrement RSA, fait g\u00e9n\u00e9rer la cl\u00e9 de r\u00e9ponse par le KDC, qui la chiffre avec la cl\u00e9 publique du client.<\/p>\n<p>-> Cons\u00e9quence pratique pour l&rsquo;analyse de trame: un keytab contenant les cl\u00e9s de jdupont ne permet pas de d\u00e9chiffrer l&rsquo;AS-REP d&rsquo;un \u00e9change PKINIT, la cl\u00e9 de r\u00e9ponse n&rsquo;ayant aucun lien avec le mot de passe.<\/p>\n<h2>Mappage du certificat au compte<\/h2>\n<p>Une signature valide prouve que le client d\u00e9tient une cl\u00e9 priv\u00e9e, pas qu&rsquo;il est jdupont. Le KDC doit relier le certificat \u00e0 un compte de l&rsquo;annuaire, et c&rsquo;est l\u00e0 que se trouvaient les failles corrig\u00e9es par le KB5014754 (Certifried, CVE-2022-26923). Historiquement, le mappage implicite par l&rsquo;UPN du SAN suffisait: n&rsquo;importe quel certificat d&rsquo;une AC de confiance portant <code>jdupont@test.local<\/code> en UPN ouvrait la session de jdupont.<\/p>\n<p>En mode d&rsquo;application compl\u00e8te, seuls les mappages forts sont accept\u00e9s:<\/p>\n<ol>\n<li>L&rsquo;extension SID (szOID_NTDS_CA_SECURITY_EXT, 1.3.6.1.4.1.311.25.2), ajout\u00e9e par une AC d&rsquo;entreprise \u00e0 jour pour les mod\u00e8les en ligne, qui contient le SID du compte demandeur,<\/li>\n<li>Ou un mappage explicite dans l&rsquo;attribut altSecurityIdentities sous une forme forte: X509IssuerSerialNumber, X509SKI ou X509SHA1PublicKey.<\/li>\n<\/ol>\n<p>Les formes X509IssuerSubject, X509SubjectOnly ou X509RFC822 sont consid\u00e9r\u00e9es comme faibles. Pour contr\u00f4ler un certificat, <code>certutil -dump jdupont.cer<\/code> affiche les extensions; l&rsquo;OID 1.3.6.1.4.1.311.25.2 doit y appara\u00eetre avec le SID de jdupont. Attention: les certificats \u00e9mis avant la mise \u00e0 jour de l&rsquo;AC, ou issus de mod\u00e8les hors ligne o\u00f9 le demandeur fournit le sujet, n&rsquo;ont pas cette extension et doivent \u00eatre r\u00e9\u00e9mis ou mapp\u00e9s explicitement. Les refus se lisent dans le journal Syst\u00e8me du contr\u00f4leur, \u00e9v\u00e9nements 39, 40 et 41 de la source Kdcsvc.<\/p>\n<p>C\u00f4t\u00e9 journal S\u00e9curit\u00e9, l&rsquo;\u00e9v\u00e9nement 4768 trace la demande de TGT. Le champ Pre-Authentication Type vaut 2 pour un mot de passe et 16 pour PKINIT, et la section Certificate Information se remplit:<\/p>\n<pre class=\"wp-block-code\"><code>A Kerberos authentication ticket (TGT) was requested.\nAccount Information:\n    Account Name:               jdupont\n    Supplied Realm Name:        TEST.LOCAL\nAdditional Information:\n    Result Code:                0x0\n    Ticket Encryption Type:     0x12\n    Pre-Authentication Type:    16\nCertificate Information:\n    Certificate Issuer Name:    TEST-SRV-AC-CA\n    Certificate Serial Number:  6100000004A1B2C3D4E5F600000000000004\n    Certificate Thumbprint:     8F2A\u2026<\/code><\/pre>\n<p>Pour isoler ces \u00e9v\u00e9nements sur dc01:<\/p>\n<pre class=\"wp-block-code\"><code>Get-WinEvent -LogName Security -FilterXPath \"*[System[EventID=4768] and EventData[Data[@Name='PreAuthType']='16']]\" -MaxEvents 20<\/code><\/pre>\n<h2>Et le hash NTLM?<\/h2>\n<p>Le TGT obtenu suffit pour tout ce qui parle Kerberos. Mais un poste Windows doit encore savoir s&rsquo;authentifier en NTLM, vers un serveur joint par son adresse IP ou une application qui ne n\u00e9gocie rien d&rsquo;autre. Sans mot de passe, le client n&rsquo;a pas de hash NT.<\/p>\n<p>Le KDC le lui fournit dans le PAC. Comme d\u00e9crit dans [MS-PAC], lorsqu&rsquo;un TGT est \u00e9mis via PKINIT, le PAC contient un buffer suppl\u00e9mentaire de type 0x00000002, PAC_CREDENTIAL_INFO. Son contenu, un PAC_CREDENTIAL_DATA avec une entr\u00e9e \u00ab NTLM \u00bb de type NTLM_SUPPLEMENTAL_CREDENTIAL (hash LM et NT), est chiffr\u00e9 avec la cl\u00e9 de r\u00e9ponse de l&rsquo;AS, celle que seul le client a pu calculer avec le KDC. Nous retrouvons ici la structure du PAC que nous avions d\u00e9chiffr\u00e9e dans l&rsquo;article <a href=\"https:\/\/remivernier.com\/index.php\/2018\/07\/07\/kerberos-exploration\/\">Exploration du protocole KERBEROS \u2013 D\u00e9chiffrer le PAC<\/a>, avec un buffer de plus.<\/p>\n<p>Le PAC du TGT \u00e9tant chiffr\u00e9 avec la cl\u00e9 de krbtgt, le client ne peut pas le lire directement. La m\u00e9thode utilis\u00e9e par les outils publics consiste \u00e0 demander un ticket de service user-to-user \u00e0 destination de soi-m\u00eame: le ticket est alors chiffr\u00e9 avec la cl\u00e9 de session du TGT, que le client conna\u00eet, et contient une copie du PAC. Le client en extrait PAC_CREDENTIAL_INFO puis le d\u00e9chiffre avec sa cl\u00e9 de r\u00e9ponse AS. C&rsquo;est ce que font <code>Rubeus asktgt \/certificate:\u2026 \/getcredentials<\/code> ou <code>certipy auth<\/code>, technique connue sous le nom d&rsquo;UnPAC-the-hash.<\/p>\n<p>Ce point est tr\u00e8s important pour la s\u00e9curit\u00e9: qui d\u00e9tient le certificat et sa cl\u00e9 priv\u00e9e obtient le hash NT du compte, et l&rsquo;obtient \u00e0 nouveau apr\u00e8s chaque changement de mot de passe, tant que le certificat est valide et non r\u00e9voqu\u00e9. Un certificat d&rsquo;ouverture de session vol\u00e9 vaut donc un identifiant persistant, souvent valable un ou deux ans. Pour les comptes \u00e0 carte \u00e0 puce obligatoire, l&rsquo;attribut <code>msDS-ExpirePasswordsOnSmartCardOnlyAccounts<\/code> (niveau fonctionnel 2016) fait au moins tourner ce secret automatiquement. Pour le reste, je recommande des cl\u00e9s priv\u00e9es non exportables (carte, TPM, comme pour <a href=\"https:\/\/remivernier.com\/index.php\/2026\/10\/29\/windows-hello-for-business-etat-ngc-dsregcmd\/\">Windows Hello for Business<\/a>), des dur\u00e9es de validit\u00e9 courtes sur les mod\u00e8les d&rsquo;ouverture de session, une r\u00e9vocation r\u00e9ellement publi\u00e9e, et une surveillance des 4768 de type 16 dont l&rsquo;\u00e9metteur n&rsquo;est pas l&rsquo;AC attendue.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comment PKINIT remplace la cl\u00e9 d\u00e9riv\u00e9e du mot de passe par une signature de certificat dans le KRB_AS_REQ, et pourquoi le PAC transporte encore le hash NTLM.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,4,37],"tags":[98,96,97,5,99,15,95,49],"class_list":["post-1284","post","type-post","status-publish","format-standard","hentry","category-certificate-services","category-kerberos","category-securite","tag-ad-cs","tag-as-req","tag-carte-a-puce","tag-kerberos","tag-mappage-de-certificat","tag-pac","tag-pkinit","tag-wireshark"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat - R\u00e9mi VERNIER<\/title>\n<meta name=\"description\" content=\"Comment PKINIT remplace la cl\u00e9 d\u00e9riv\u00e9e du mot de passe par une signature de certificat dans le KRB_AS_REQ, et pourquoi le PAC transporte encore le hash NTLM.\" \/>\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\/10\/31\/pkinit-as-req-kerberos-certificat\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat - R\u00e9mi VERNIER\" \/>\n<meta property=\"og:description\" content=\"Comment PKINIT remplace la cl\u00e9 d\u00e9riv\u00e9e du mot de passe par une signature de certificat dans le KRB_AS_REQ, et pourquoi le PAC transporte encore le hash NTLM.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/\" \/>\n<meta property=\"og:site_name\" content=\"R\u00e9mi VERNIER\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-31T08:59:58+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=\"8 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\\\/10\\\/31\\\/pkinit-as-req-kerberos-certificat\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/10\\\/31\\\/pkinit-as-req-kerberos-certificat\\\/\"},\"author\":{\"name\":\"R\u00e9mi\",\"@id\":\"https:\\\/\\\/remivernier.com\\\/#\\\/schema\\\/person\\\/a4c76c63a5a3d94454484845e42fc906\"},\"headline\":\"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat\",\"datePublished\":\"2026-10-31T08:59:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/10\\\/31\\\/pkinit-as-req-kerberos-certificat\\\/\"},\"wordCount\":1635,\"commentCount\":0,\"keywords\":[\"ad cs\",\"as-req\",\"carte \u00e0 puce\",\"kerberos\",\"mappage de certificat\",\"pac\",\"pkinit\",\"wireshark\"],\"articleSection\":[\"Certificate Services\",\"Kerberos\",\"S\u00e9curit\u00e9\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/10\\\/31\\\/pkinit-as-req-kerberos-certificat\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/10\\\/31\\\/pkinit-as-req-kerberos-certificat\\\/\",\"url\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/10\\\/31\\\/pkinit-as-req-kerberos-certificat\\\/\",\"name\":\"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat - R\u00e9mi VERNIER\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/#website\"},\"datePublished\":\"2026-10-31T08:59:58+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/#\\\/schema\\\/person\\\/a4c76c63a5a3d94454484845e42fc906\"},\"description\":\"Comment PKINIT remplace la cl\u00e9 d\u00e9riv\u00e9e du mot de passe par une signature de certificat dans le KRB_AS_REQ, et pourquoi le PAC transporte encore le hash NTLM.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/10\\\/31\\\/pkinit-as-req-kerberos-certificat\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/10\\\/31\\\/pkinit-as-req-kerberos-certificat\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/remivernier.com\\\/index.php\\\/2026\\\/10\\\/31\\\/pkinit-as-req-kerberos-certificat\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/remivernier.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat\"}]},{\"@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":"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat - R\u00e9mi VERNIER","description":"Comment PKINIT remplace la cl\u00e9 d\u00e9riv\u00e9e du mot de passe par une signature de certificat dans le KRB_AS_REQ, et pourquoi le PAC transporte encore le hash NTLM.","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\/10\/31\/pkinit-as-req-kerberos-certificat\/","og_locale":"fr_FR","og_type":"article","og_title":"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat - R\u00e9mi VERNIER","og_description":"Comment PKINIT remplace la cl\u00e9 d\u00e9riv\u00e9e du mot de passe par une signature de certificat dans le KRB_AS_REQ, et pourquoi le PAC transporte encore le hash NTLM.","og_url":"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/","og_site_name":"R\u00e9mi VERNIER","article_published_time":"2026-10-31T08:59:58+00:00","author":"R\u00e9mi","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"R\u00e9mi","Dur\u00e9e de lecture estim\u00e9e":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/#article","isPartOf":{"@id":"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/"},"author":{"name":"R\u00e9mi","@id":"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906"},"headline":"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat","datePublished":"2026-10-31T08:59:58+00:00","mainEntityOfPage":{"@id":"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/"},"wordCount":1635,"commentCount":0,"keywords":["ad cs","as-req","carte \u00e0 puce","kerberos","mappage de certificat","pac","pkinit","wireshark"],"articleSection":["Certificate Services","Kerberos","S\u00e9curit\u00e9"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/","url":"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/","name":"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat - R\u00e9mi VERNIER","isPartOf":{"@id":"https:\/\/remivernier.com\/#website"},"datePublished":"2026-10-31T08:59:58+00:00","author":{"@id":"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906"},"description":"Comment PKINIT remplace la cl\u00e9 d\u00e9riv\u00e9e du mot de passe par une signature de certificat dans le KRB_AS_REQ, et pourquoi le PAC transporte encore le hash NTLM.","breadcrumb":{"@id":"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/remivernier.com\/index.php\/2026\/10\/31\/pkinit-as-req-kerberos-certificat\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/remivernier.com\/"},{"@type":"ListItem","position":2,"name":"PKINIT: lire un AS-REQ Kerberos sign\u00e9 par certificat"}]},{"@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\/1284","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=1284"}],"version-history":[{"count":1,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/1284\/revisions"}],"predecessor-version":[{"id":1286,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/1284\/revisions\/1286"}],"wp:attachment":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/media?parent=1284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/categories?post=1284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/tags?post=1284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}