Introduction

Le format TrueType est un standard vectoriel de police de caractères largement utilisé pour le rendu de texte dans les pages web, les PDF, les systèmes d'exploitation et les applications. Les polices familières comme Helvetica, Garamond et Monaco sont toutes basées sur les contours TrueType. Le format spécifie un interpréteur de hinting destiné à aider les contours à se rasteriser de manière fidèle sur les écrans à basse résolution.

Contexte Technique

Les analyseurs de polices traitent des données provenant de sources non fiables, ce qui rend l'interpréteur de hinting TrueType une surface d'attaque critique en termes de sécurité. Pour rendre le format plus résilient sur les plateformes Apple, nous avons réécrit son interpréteur de hinting de C à Swift pour les versions de l'automne 2025. En plus de la sécurité de la mémoire, nous avons également amélioré les performances : en moyenne, notre interpréteur Swift s'exécute 13 % plus rapidement que l'interpréteur C qu'il remplace.

Le format TrueType a été développé par Apple à la fin des années 1980 et publié avec le lancement de System 7 en 1991. TrueType était une avancée majeure pour l'époque : il offrait aux développeurs de polices un contrôle considérable sur la façon dont les glyphes sont affichés, avec un algorithme de mise en grille avancé et un moteur de hinting sophistiqué basé sur un interpréteur de bytecode spécialisé.

Analyse et Implications

L'interpréteur de hinting TrueType implique un flux de contrôle piloté par les entrées, des structures de données complexes et une gestion soigneuse de la mémoire - exactement le type de code qui est difficile à rendre parfait et où les erreurs de mémoire sont plus faciles à exploiter. Cette complexité inhérente rend la correction particulièrement importante.

Pour assurer la correction, nous avons développé deux jeux de tests. Le premier était un jeu de tests unitaires qui pouvait cibler les deux implémentations, offrant une couverture de code exhaustive (99,7 %) pour les deux. Ce jeu est inclus avec la publication en open source de l'interpréteur Swift.

Perspective

La migration de l'interpréteur de hinting TrueType vers Swift est un pas important pour améliorer la sécurité et les performances des polices sur les plateformes Apple. Nous avons partagé notre expérience pour aider les autres à effectuer des travaux similaires en Swift. Nous continuerons à surveiller les prochaines étapes et les limites de cette technologie pour garantir que les polices restent sécurisées et performantes.