Chromium

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Сторінка налаштувань

Chromium— це самостійний веб-оглядач з відкритим вихідним кодом, поширюваним на основі ліцензій |BSD. На основі цього відкритого коду компанія Google створила свій браузер Chrome під власною ліцензією EULA. Chromium включає рушій для відображення html-сторінок WebKit. Одна з найважливіших можливостей— це розширення на зразок розширень браузера Firefox.

Історія створення

Розробка веб-браузера почалася 25 липня 2008. 1 вересня 2008 на офіційному блозі Google Сандарам Пічаї (Sundar Pichai) і Лінус Апсон (Linus Upson) анонсували браузер Google Chrome. На наступний день відбувся випуск першої публічної бета-версії браузера від Google, а також була опублікована велика частина коду браузера, ліцензованого переважно під опціональною BSD-ліцензією, а також низкою інших. Проект отримав назву Chromium, натякаючи на те, що Google Chrome виготовлений з хрому. Розробники Google пояснили створення відкритого і вільного проекту Chromium прагненням допомогти Mozilla і WebKit розвивати Інтернет і веб-технології, надати розробникам зручну платформу для створення і розвитку власних проектів, а також можливістю протестувати свої власні продукти силами спільноти. Для взаємодії зі співтовариством Google створив ряд сервісів: дискусійні групи, довідкові форуми, офіційний блог проекту, баг-трекер. Також розробники Chromium гарантували, що будуть всіляко прагнути з'єднувати власні розробки та виправлення до основної гілки розробки WebKit.

Особливості

Швидкість

Поставивши своєю метою розробити швидкий браузер, розробники вирішили використовувати відкриті компоненти. Рушієм відображення веб-сторінок був обраний вільний WebKit. Він забезпечував необхідну швидкість рендеринга, маючи при цьому ряд інших переваг. З рушієм обробки JavaScript все було трохи складніше. Усі наявні на момент 2008 року рушії не забезпечували необхідної продуктивності або розповсюджувалися по закритим ліцензіям. Тому інженери Google написали з нуля швидкісний, високопродуктивний рушій V8, що дозволило Chromium стати на момент запуску веб-браузера одним з найшвидших браузерів в плані обробки JavaScript. В кінці 2009 року в тестових збірках Chromium почалися роботи по впровадженню апаратного прискорення при обробці динамічного вмісту. Результат роботи виявився в 7 версії Chromium, де вже можна було включити апаратне прискорення, забезпечуючи найвищу продуктивність(рос.)укр. при обробці динамічного 2D (Canvas) та 3D-контента (WebGL) за допомогою графічного процесора, показуючи високі результати в демонстраційних тестах від Microsoft та Google. Для прискорення доступу до сторінок використовується технологія попереднього читання DNS та попереднє промальовування сторінок (пререндерінг). 7 грудня 2010 року Google анонсувала новий виток розвитку V8, розробивши нову інфраструктуру компіляції коду. Нова технологія під назвою Crankshaft дозволила добитися величезного приросту в продуктивності (порядку 109 %), обійшовши всі конкуруючі рушії.

Безпека

Згідно заявленим творцями Chromium прагненням створити найбезпечніший браузер, розробники приділяють велику увагу впровадженню нових функцій по захисту браузера. Для забезпечення безпеки в Chromium була обрана модель «пісочниці», що дозволяла обмежити простір для атаки користувальницького комп'ютера через використану уразливість. Дослідники Google прийшли до висновку, що майже 70 % загроз «працюють» в рушії відображення, який взаємодіє з ненадійним вмістом. саме тому розробники перевели всю роботу рушія в пісочницю. На більшості операційних систем Linux цей режим в браузері включений, однак деякі неофіційні збірки Chromium дистрибутива Slackware відключають режим «пісочниці» примусово. Тим не менш, на офіційно підтримуваних Google Linux-системах, починаючи з версії 23, Chromium використовує можливості ядра для використання додаткових компонентів, таких, як фільтри seccomp-bpf, що дозволяють значно обмежити потенціал використання зловмисником специфічних викликів ядра. У збірці 66022 розробники перенесли в «пісочницю» (зміна стосується систем під ОС Microsoft Windows) також виконання модуля, що підключається Adobe Flash Player, який достатньо часто стає об'єктом пильної уваги хакерів. У Chromium немає дієвого захисту від XSS-атак, але, завдяки тому, що Chromium підтримує HTTP-Only cookies, небезпека міжсайтового скриптинга значно знижується. Також активно тестується функція XSS Auditor, впроваджена в списку експериментальних функцій в 7 версії. Цей компонент значно збільшує захист від міжсайтового скриптинга. Вперше XSS Auditor був використаний в 4 версії Chromium, але у зв'язку з численними помилками та падінням продуктивності у версії 4.1 функція була відключена. Проблему з продуктивністю та стабільністю розробникам вдалося вирішити, але функція досі є експериментальною, оскільки не всі сайти здатні з нею працювати. Також в 7 версії Chromium в якості експерименту з'явилася можливість нагляду над модулями. Браузер отримав можливість пропонувати відключення тих плагінів, які мають незакриті вразливості до тих пір, поки не вийде оновлена ??версія модуля з виправленням помилок, остаточно функція стала доступна в 10 версії браузера. Для забезпечення криптографічного безпеки при роботі з конфіденційною інформацією користувачів Chromium надає можливість працювати із захищеним протоколом передачі даних (HTTPS), які можуть упаковуватися у відповідності з криптографічними протоколами SSL 3.0 та TLS 1.0. Для додаткового захисту Chromium може використовувати експериментальний відкритий протокол HSTS, що дозволяє встановлювати з сайтами у форсованому режимі захищене з'єднання. Частина налаштувань безпеки користувач може регулювати сам. У Chromium вбудований компонент Безпечний перегляд, що забезпечує захист від фішингу та шкідливого ПЗ. Chromium при першому запуску в протягом перших п'яти хвилин завантажує бази визначень шкідливих та шахрайських сайтів, які потім оновлює кожні 30 хвилин, при цьому ніяка особиста інформація в компанію Google не відправляється. Сам компонент може бути відключений в настройках браузера. Додатково Chromium дозволяє проводити гнучку настройку змісту веб-сторінок: редагувати політику запуску модулів, що підключаються, використання JavaScript та cookies, а також проводити очищення конфіденційних даних за певний період. Серед інших механізмів захисту можна виділити: Специфікація HTML5 у вигляді Origin Header забезпечує захист від підробки міжсайтових запитів (CSRF), блокуючи неправильні запити сайтів. Chromium підтримує X-Frame-Options API, що захищає браузер від клікджекінга, а також X-Content-Type-Options API, що надає браузеру можливість захищатися від MIME-сніффінга. Chromium підтримує «режим інкогніто», при якому історія відвідувань та завантажень не записується в журнали, а файли cookies видаляються після закриття браузера. При цьому Google закликає користувачів при знаходженні вразливостей в браузері повідомляти про них розробникам, натомість отримуючи грошові винагороди.

Надійність

Для підвищення стабільності для Chromium була обрана мультипроцесна архітектура. Браузер, рушій рендерингу, розширення, компоненти Plug-in працюють в окремих процесах. Таким чином, при порушенні роботи, наприклад, розширення браузер продовжить роботу в звичайному режимі, видавши пропозицію про перезапуск розширення.

У мультипроцессорної архітектури є ще низка переваг, крім стабільності:

  • Можливість миттєвого звільнення пам'яті при закритті одного з компонентів. Зокрема, при закритті вкладки споживана нею пам'ять звільниться відразу, на відміну від браузерів, що використовують однопроцесну архітектуру, де очищення пам'яті при закритті вкладки йде трохи довше.
  • Активна взаємодія з операційною системою. При використанні великої кількості вкладок багато вкладок можуть простоювати в бездіяльності, попри те, що вони необхідні користувачу. Chromium, взаємодіючи з ОС, зменшує споживання пам'яті, примушуючи систему вважати невживану вкладку згорнутим додатком.
  • Можливість розуміння, які ресурси і в якій кількості виділяються кожному запущеному компоненту. Для того, щоб користувач міг точно розібратися в кожному процесі, в Chromium встановлений власний диспетчер завдань та інструмент статистики about:memory.

Але при цьому подібна архітектура має істотний недолік — більше загальне споживання пам'яті.

Посилання