Aujourd'hui est allé sur par beaucoup de Médiasque certaines applications et certains composants du tout récent Windows 11 ne fonctionnent plus depuis le 01.11.2021 et que la cause en est un certificat qui a expiré le 31.10.2021. Entre-temps, Microsoft a dans un billet de blog et aussi un correctif pour certains composants concernés publié.
Leider gab es aber in keiner der verfügbaren Quellen detaillierte Informationen darüber, was genau das Problem war. Gehen wir der Sache somit selbst auf den Grund.
Symptômes
L'erreur se manifeste par le fait que, dans le cas de l'outil Snipping, le message d'erreur suivant apparaît lorsque l'on clique sur "Nouveau" (pour effectuer une capture d'écran) :
Ein Problem mit Windows verhindert das Öffnen von „Bildschirmausschnitte“. Durch das Auffrischen des PCs wird dieses Problem vielleicht behoben.

C'est exactement la même chose qui se produit lorsque l'on utilise la "nouvelle" application Snip & Sketch, qui est censée hériter de l'outil Snipping.

Il en va de même pour l'application "Premiers pas"...

Cause
Si l'on retrace la bibliothèque système appelée par les apps et que l'on regarde la signature du paquet, on remarque que son certificat de signature a certes expiré le 31.10.2021, mais qu'une Contre-signature (angl. Timestamp, selon RFC 3161) est disponible.


En fait, une contre-signature doit précisément empêcher que les signatures de code soient considérées comme non valables après l'expiration du certificat de signature. Pourquoi cela n'a-t-il pas fonctionné dans ce cas ?
Si l'on examine de plus près les caractéristiques du certificat de signature de code, on constate qu'il dispose de la "signature à vie" (en anglais Lifetime Signing) Utilisation étendue des clés avec identificateur d'objet 1.3.6.1.4.1.311.10.3.13.

Cet Extended Key Usage - lorsqu'il est présent dans un certificat de signature de code - provoque exactement le comportement observé : Malgré la contre-signature, le code signé n'est plus reconnu comme valide à l'expiration du certificat.
Limite la période de validité d'une signature à la période de validité du certificat. Cette restriction est généralement utilisée avec la valeur OID XCN_OID_PKIX_KP_CODE_SIGNING pour indiquer que de nouvelles sémantiques d'horodatage doivent être utilisées.
Microsoft, IX509ExtensionEnhancedKeyUsage interface (certenroll.h)
Solution
La solution consiste donc - comme Microsoft le fait maintenant - à distribuer un nouveau paquet qui a été signé à nouveau avec un certificat de signature de code encore valable.
Du point de vue de l'organisation, la question se pose de savoir si la bibliothèque système concernée a été signée avec le certificat correct. Normalement, il est utile d'inclure le Lifetime Signing EKU dans un certificat, afin que le code expire explicitement après l'expiration du certificat. Il est donc probable que le mauvais certificat de signature ait été utilisé ici.
Cet incident montre une fois de plus combien il est important de contrôler ses propres processus PKI et, en particulier dans ce cas, de signature de code, et que des erreurs grossières peuvent être commises même par les meilleurs des meilleurs.
Mais pourquoi... ?
On pourrait être tenté de se poser la question de l'utilité d'un Lifetime Signing Extended Key Usage. Pourquoi ne pas simplement omettre la contre-signature si l'on souhaite que le code expire en même temps que le certificat de signature.
En fait, il y a une raison d'utiliser quand même une contre-signature : La possibilité de Blocage du certificat. La révocation d'un certificat peut être effectuée à l'aide des codes de base suivants :
| Code | Désignation | Description |
|---|---|---|
| 0 | Non spécifié | Il s'agit du paramètre par défaut, qui indique qu'il n'y a pas de raison particulière pour la révocation. |
| 1 | Compromis clé | La clé privée d'un certificat a été dérobée ou connue d'une autre manière par des tiers non autorisés. |
| 2 | CA Compromise | La clé privée de l'autorité de certification a été dérobée ou connue d'une autre manière par des tiers non autorisés. |
| 3 | Affiliation Changed | Si le contenu du certificat a changé (par ex. le nom de l'utilisateur), un nouveau certificat doit être émis. |
| 4 | Superseded | Le certificat révoqué a été remplacé par un nouveau certificat. |
| 5 | Cessation d'activité | L'exploitation du service faisant partie du certificat a été interrompue, par exemple parce qu'il existe un nouveau service sous un autre nom. |
| 6 | Certificate Hold | Le certificat est révoqué temporairement. Ce type de révocation est le seul qui permette d'annuler la révocation ultérieurement. |
| 8 | Remove from CRL | Si un certificat a été révoqué avec le motif "Certificate Hold" et que des listes de blocage delta sont utilisées, le certificat révoqué avec ce code est maintenu dans la liste de blocage delta jusqu'à ce que l'entrée dans la liste de blocage principale soit supprimée. |
| -1 | Unrevoke | Si un certificat a été révoqué avec le motif "Certificate Hold", ce code permet de le débloquer par ligne de commande. De même, le code d'auditÉvénement 4870 l'annulation de la révocation d'un certificat est signalée par ce code. |
Lorsqu'un certificat de signature de code est révoqué, l'état de confiance du code signé est déterminé par l'existence ou non d'une contre-signature et par la raison pour laquelle le certificat a été révoqué :
| Contre-signature disponible | Code de base de blocage | Conséquences |
|---|---|---|
| non | tous | Toute signature effectuée avec le certificat sera considérée comme non valide, quelle que soit la date à laquelle la signature a été effectuée. |
| oui | Non spécifié Cessation d'activité Affiliation Changed Superseded Certificate Hold | Les signatures qui à partir de la date de blocage sont considérés comme nuls. Les signatures qui avant la date de blocage sont toujours considérées comme valables. |
| oui | Compromis clé CA Compromise | Toute signature effectuée avec le certificat sera considérée comme non valide, quelle que soit la date à laquelle la signature a été effectuée. |
Liens complémentaires :
- Utilisations étendues des clés (Extended Key Usages) et politiques d'émission (Issuance Policies) fréquemment utilisées
- Révocation d'un certificat délivré
Sources externes
- Des fonctionnalités inutilisables : Microsoft doit déjà réparer Windows 11 (SPIEGEL Online)
- L'outil de snipping ne fonctionne pas sous Windows 11 ? Un certificat expiré est à blâmer (Ars Technica)
- Snipping Tool et certaines applications intégrées peuvent ne pas s'ouvrir ou fonctionner comme prévu (Microsoft)