Windows 8 : au cœur de l'OS controversé de Microsoft

Secure Boot

Dans Vista 64 bits, tous les fichiers systèmes sont signés par Microsoft et les pilotes doivent être signés par un certificat d’authentification reconnu par Microsoft avec l’utilisation d’un certificat croisé. Nous en avons déjà parlé dans le dossier sur Windows Vista, et cette fonctionnalité avait pour but de lutter contre les rootkits.

windows8 windows8

Dans Windows 8 le processus de démarrage est complètement sécurisé de bout en bout. Cette fonctionnalité nécessite une puce TPM (puce matérielle fournissant des fonctions de chiffrement et de stockage des clés) et un firmware UEFI. Il est imposé aux constructeurs pour les tablettes ARM mais est optionnel pour les PC et tablettes x86 et x64. La certification Microsoft oblige d’ailleurs les constructeurs de fournir une désactivation du « Secure Boot» sur ces machines.

Le mécanisme du boot sécurisé repose sur une chaine de vérification dans laquelle les composants logiciels inclus sont tous vérifiés pour contrôler qu’aucune altération n’a eu lieu. Il utilise la puce TPM pour générer les signatures de ces composants. Les signatures ne peuvent pas être effacées avant le prochain redémarrage de la machine et un log des signatures est disponible. Le firmware UEFI contient aussi les clés racines et est lui-même examiné par la puce TPM. Le mécanisme de flash du firmware est d’ailleurs protégé pour éviter tout contournement trop simple.

Une fois le firmware UEFI validé, on passe au bootloader Windows. Viennent alors les validations du noyau et des pilotes de démarrage critiques internes à Microsoft. À ce moment, avant de charger les pilotes tiers, Windows 8 appelle un pilote ELAM (Early Launch Anti Malware). C’est un pilote tiers développé par un éditeur antivirus membre de la MVI (Microsoft Virus Initiative). Il peut vérifier au niveau du boot si l’un des pilotes se trouve dans sa liste de virus. Il peut donc révoquer son chargement si besoin est. Une fois cette partie du processus achevée, les pilotes tiers sont chargés. Contrairement à Vista où seuls les pilotes 64 bits devaient être signés, le Secure Boot rend obligatoire la signature pour tous, y compris les versions 32 bits. Sur ARM, le Secure Boot est obligatoire et tous les pilotes doivent être obligatoirement signés eux aussi.

La phase finale est la vérification de tous les fichiers système. En environnement Bureau, les applications ne sont pas forcément signées. Mais avec WinRT, toutes les applications doivent l’être. Microsoft fait donc bien une vérification de bout en bout.

Il existe évidemment un gros avantage à ce mécanisme : il empêche le chargement d’un rootkit qui pourrait prendre le contrôle plus tôt dans le processus de démarrage et donc détourner toutes les protections du système. Il lui faudrait en théorie obtenir un certificat Microsoft. À l’opposé des systèmes formels, Secure Boot garantit la provenance du code mais ne garantit pas que le code est lui-même « safe ».

WDDM 1.2

Sur Windows Vista est apparu un nouveau modèle de pilotes graphique (WDDM, Windows Display Driver Model). Il représente en réalité la base système de DirectX. Dans la partie basse du sous-système graphique se trouve en effet un noyau graphique (DxgKrnl.sys) qui gère la mémoire vidéo et ordonnance les différentes requêtes vers le GPU. Ce noyau communique avec le composant noyau du pilote graphique qui lui-même communique avec le composant en espace utilisateur. Le GPU est devenu depuis Vista une ressource partagée.

windows8

Avec Windows 7, Microsoft a amélioré la gestion de la GDI (Graphics Device Interface) en réactivant une accélération pour la mémoire vidéo dans WDDM. Cela a entrainé une baisse significative de la consommation de mémoire vive par les applications de ce type.

windows8

Windows 8 débarque avec ses propres améliorations dans le domaine graphique. Ainsi, si les cartes graphiques actuelles ont généralement une mémoire vidéo largement suffisante, ce n’est pas le cas des cartes graphiques intégrés qui partagent la mémoire vidéo avec la mémoire vive centrale (Intel HD 3000, 4000, etc.). Un usage graphique intensif peut donc entrainer des ralentissements si la mémoire vive vient à manquer. Windows 8 introduit de nouvelles API qui permettent de réclamer et rendre de la mémoire vidéo. Si la mémoire vive vient à manquer, la mémoire graphique sera refusée pour permettre aux autres applications de pouvoir fonctionner correctement. À noter que sur ces machines, la mémoire vidéo ne sera pas écrite dans le fichier hiberfile.sys quand le système rentre en hibernation.

Avec WDDM 1.2, le multitâche GPU préemptif fait son apparition dans Windows 8. Les tampons DMA  étaient auparavant découpés en petits paquets afin que l’ordonnanceur GPU puisse faire son travail. L’exécution de la requête pouvait malheureusement parfois se montrer trop longue. WDDM 1.2 permet un ordonnancement plus fin et conduit globalement à une meilleure fluidité et réactivité de l’interface. Les cartes graphiques DirectX 11 permettent de le gérer au niveau du GPU. Dans Windows 8 toutes les applications Modern UI, Internet Explorer 10 et les applications Direct2D font d’ailleurs un usage intensif du GPU.

Le multitâche GPU préemptif améliore en outre un autre aspect de l’architecture graphique : la stabilité. Depuis  Windows Vista en effet, quand le GPU ne répond plus au bout d’un temps déterminé, lui et le pilote graphique sont réinitialisés, évitant ainsi un écran bleu.

Problème : certaines requêtes sur le GPU pouvaient être longues sans pour autant planter le processeur graphique. Dans ce cas-là, Windows 8 sera capable de donner la main à une autre demande vers le GPU sans réinitialiser ce dernier. De plus, la réinitialisation de la pile graphique en cas de timeout ne se fait plus par GPU mais par moteur, ce qui a pour conséquence de ne pas fermer l’ensemble des applications faisant appel au GPU. Enfin si une réinitialisation se produit plus de sept fois, elle entrainera le blocage de l’accès du processus au GPU.

La situation pour les machines plus anciennes évolue également. Ainsi, sur Vista il était possible de désactiver le moteur de composition graphique et donc Aero. Sur Windows 8, ce n’est plus possible et les anciens pilotes graphiques XPDDM sont obsolètes et ne sont donc plus compatibles. Sur les machines n’ayant pas les prérequis pour Aero (carte graphique DirectX 9 avec pixels shaders 2), un pilote Microsoft est utilisé par défaut. Son implémentation se base sur Warp, introduit sur Windows 7 et est donc entièrement logicielle. Elle utilise cependant DirectX 11 et exploite les derniers processeurs via des optimisations spécifiques. Ceci explique notamment pourquoi Aero reste activé quand vous installez Windows 8 dans une machine virtuelle.

Windows 8 propose un nouveau langage : C++ AMP, qui est une implémentation du C++ couplée à des ajouts pour le parallélisme et la programmation GPU. C++ AMP se base sur DirectX 11 et permet de créer des programmes de type mainframe exploitant le GPU. Microsoft a ouvert les spécifications aux éditeurs tiers via une Open Specification Promise pour qu’ils puissent aussi implémenter ce langage.

RemoteFX

windows8

Pour le contrôle à distance du bureau, la technologie RemoteFX a été mise à jour afin de gérer des codecs pour les différents formats de données : textes, images et vidéos d’animation. Ce découpage permet d’optimiser la bande passante utilisée et de faire un affichage progressif avec une priorité sur le texte. À noter que pour les applications Modern UI utilisant XAML ou un moteur HTML, le découpage des zones en est facilité.

windows8

Enfin, le système d’impression passe en version 4 sur Windows 8. La mouture précédente 3 a été utilisée de Windows 2000 à Windows 7. Microsoft a créé pour l’occasion une infrastructure de pilotes gérant des fonctionnalités présentes et mêmes futures. Flexible, elle permet de proposer un nombre restreint de pilotes plus génériques. On passe ainsi de 768 Mo de pilotes sur Vista à seulement 184 Mo sur Windows 8 pour une meilleure couverture du marché.

L’interface de configuration a pour sa part été complètement découplée du système de pilotes. Des expériences utilisateur de type bureau et Modern UI sont  proposés. Si l’éditeur ne fournit pas d’interface de configuration, Microsoft en propose une par défaut.

par Vincent Hermann et Jérôme Bosch Publiée le 27/11/2012 à 14:36