Chrome переходить з бібліотеки обробки шрифтів FreeType на проєкт Skrifa, створений мовою Rust
Google вирішили змінити спосіб обробки шрифтів у браузері Chrome, замінивши стару бібліотеку FreeType на нову — Skrifa, написану мовою Rust.
Проблеми FreeType і чому його замінили
Бібліотека FreeType та її залежності, такі як bzip2, libpng і zlib, неодноразово ставали джерелами вразливостей, а лише минулого тижня було виявлено баг, що дозволяв зловмисникам виконувати шкідливий код через переповнення буфера.
Додатковою проблемою є складність тестування, оскільки формати шрифтів дуже заплутані, і стандартні методи перевірки, зокрема fuzzing, не здатні виявити всі потенційні помилки.
Чим кращий Rust і Skrifa
Google не просто так обрали Rust. Він створений із чітким акцентом на безпеку роботи з пам’яттю. За статистикою Google та Microsoft, якраз таки значну частину критичних вразливостей у програмному забезпеченні спричиняють помилки в керуванні пам’яттю.
Skrifa — це бібліотека, яка виконує лише ті завдання, що дійсно потрібні Chrome. Вона не намагається повністю замінити FreeType, а лише робить необхідну роботу для рушія Skia, що відповідає за рендеринг графіки у браузері.
Перехід на Skrifa відбувається поступово:
- У Chrome 128 її додали як експеримент.
- Починаючи з Chrome 133, вона використовується для всіх веб-шрифтів на Linux, Android та ChromeOS.
- У Windows і macOS Skrifa поки що працює лише у випадках, коли система не підтримує певний формат шрифту.
Зазначимо, що популярність Rust, останнім часом сильно зросла. Не так давно в команді розробників Linux сталася запекла суперечка з приводу імплементації Rust в ядро, але Лінус Торвальдс дав Rust`у «зелене світло» і розставив всі крапки над «і». Тепер і Google починає віддавати перевагу більш безпечним мовам, таким як Rust, замість С++ та інших, проблемних мов.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів