Chromium

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Chromium
Chromium Logo
Chromium in Manjaro Linux
Написано на C++ та Асемблер
Операційна система FreeBSD
Linux
Mac OS X (10.5 and later)
Windows (XP SP2 and later)
Розмір 20.0 MB (FreeBSD i386)
24.0 MB (Linux)
26.3 MB (Linux x64)
23.7 MB (Mac)
15.7 MB (Windows)
Тип Веб-оглядач
Ліцензія Ліцензія BSD, Ліцензія MIT, LGPL, MS-PL, MPL/GPL/LGPL tri-license
Сайт chromium.org dev.chromium.org

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. Він забезпечував необхідну швидкість рендеринга, маючи при цьому ряд інших переваг[1][2]. З рушієм обробки JavaScript все було трохи складніше. Усі наявні на момент 2008 року рушії не забезпечували необхідної продуктивності або розповсюджувалися за закритими ліцензіями. Тому інженери Google написали з нуля швидкісний, високопродуктивний[3][4][5][6] рушій V8, що дозволило Chromium стати на момент запуску веб-браузера одним з найшвидших браузерів в плані обробки JavaScript. В кінці 2009 року в тестових збірках Chromium почалися роботи по впровадженню апаратного прискорення(рос.)укр. при обробці динамічного вмісту. Результат роботи виявився в 7 версії Chromium, де вже можна було включити апаратне прискорення[7][8][9], забезпечуючи найвищу продуктивність при обробці динамічного 2D (Canvas) та 3D-контента (WebGL) за допомогою графічного процесора, показуючи високі результати в демонстраційних тестах від Microsoft та Google[10][11][12][13][14][15]. Для прискорення доступу до сторінок використовується технологія попереднього читання DNS[16] та попереднє промальовування сторінок (пререндерінг) [17][18]. 7 грудня 2010 року Google анонсувала новий виток розвитку V8, розробивши нову інфраструктуру компіляції коду. Нова технологія під назвою Crankshaft дозволила добитися величезного приросту в продуктивності (порядку 109 %), обійшовши всі конкуруючі рушії[19][20].

Безпека[ред.ред. код]

Згідно заявленим творцями Chromium прагненням створити найбезпечніший браузер, розробники приділяють велику увагу впровадженню нових функцій по захисту браузера. Для забезпечення безпеки в Chromium була обрана модель «пісочниці», що дозволяла обмежити простір для атаки користувальницького комп'ютера через використану уразливість[21]. Дослідники Google прийшли до висновку, що майже 70 % загроз «працюють» в рушії відображення, який взаємодіє з ненадійним вмістом. саме тому розробники перевели всю роботу рушія в пісочницю[~ 1][22][23]. На більшості операційних систем Linux цей режим в браузері включений, однак деякі неофіційні збірки Chromium дистрибутива Slackware відключають режим «пісочниці» примусово. Тим не менш, на офіційно підтримуваних Google Linux-системах, починаючи з версії 23, Chromium використовує можливості ядра для використання додаткових компонентів, таких, як фільтри seccomp-bpf, що дозволяють значно обмежити потенціал використання зловмисником специфічних викликів ядра[24]. У збірці 66022 розробники перенесли в «пісочницю» (зміна стосується систем під ОС Microsoft Windows) також виконання модуля, що підключається Adobe Flash Player[25][26], який достатньо часто стає об'єктом пильної уваги хакерів[27]. У Chromium немає дієвого захисту від XSS-атак, але, завдяки тому, що Chromium підтримує HTTP-Only cookies, небезпека міжсайтового скриптинга значно знижується[28]. Також активно тестується функція XSS Auditor, впроваджена в списку експериментальних функцій в 7 версії. Цей компонент значно збільшує захист від міжсайтового скриптинга. Вперше XSS Auditor був використаний в 4 версії Chromium[29], але у зв'язку з численними помилками та падінням продуктивності у версії 4.1 функція була відключена[30]. Проблему з продуктивністю та стабільністю розробникам вдалося вирішити, але функція досі є експериментальною, оскільки не всі сайти здатні з нею працювати[31]. Також в 7 версії Chromium в якості експерименту з'явилася можливість нагляду над модулями. Браузер отримав можливість пропонувати відключення тих плагінів, які мають незакриті вразливості до тих пір, поки не вийде оновлена ​​версія модуля з виправленням помилок[31][32][33], остаточно функція стала доступна в 10 версії браузера[34]. Для забезпечення криптографічного безпеки при роботі з конфіденційною інформацією користувачів Chromium надає можливість працювати із захищеним протоколом передачі даних (HTTPS), які можуть упаковуватися згідно з криптографічними протоколами SSL 3.0 та TLS 1.0. Для додаткового захисту Chromium може використовувати експериментальний відкритий протокол HSTS, що дозволяє встановлювати з сайтами у форсованому режимі захищене з'єднання [35][36]. Частина налаштувань безпеки користувач може регулювати сам. У Chromium вбудований компонент Безпечний перегляд, що забезпечує захист від фішингу та шкідливого ПЗ[37][38][39]. Chromium при першому запуску в протягом перших п'яти хвилин завантажує бази визначень шкідливих та шахрайських сайтів, які потім оновлює кожні 30 хвилин, при цьому ніяка особиста інформація в компанію Google не відправляється. Сам компонент може бути відключений в настройках браузера.[~ 2][40]. Додатково Chromium дозволяє проводити гнучку настройку змісту веб-сторінок: редагувати політику запуску модулів, що підключаються, використання JavaScript та cookies[~ 3], а також проводити очищення конфіденційних даних за певний період[~ 4][41]. Серед інших механізмів захисту можна виділити:

  • Специфікація HTML5 у вигляді Origin Header забезпечує захист від підробки міжсайтових запитів (CSRF) [36], блокуючи неправильні запити сайтів.
  • Chromium підтримує X-Frame-Options API[42], що захищає браузер від клікджекінга, а також X-Content-Type-Options API[43], що надає браузеру можливість захищатися від MIME-сніффінга[~ 5].
  • Chromium підтримує «режим інкогніто», при якому історія відвідувань та завантажень не записується в журнали, а файли cookies видаляються після закриття браузера[44].

При цьому Google закликає користувачів при знаходженні вразливостей в браузере повідомляти про них розробникам, натомість отримуючи грошові винагороди[45].

Надійність[ред.ред. код]

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

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

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

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

Веб-оглядачі засновані на Chromium[ред.ред. код]

Примітки[ред.ред. код]

  1. На деяких файлових системах, таких як FAT32, використання «пісочниці» неможливо.
  2. Параметри Chromium → Розширені → Конфіденційність → Увімкнути захист від фішингу та шкідливих програм.
  3. Параметри Chromium → Розширені → Конфіденційність → Налаштування вмісту.
  4. Параметри Chromium → Розширені → Конфіденційність → Видалити дані веб-перегляду.
  5. Wladimir Palant (2007-04-29). «The hazards of MIME sniffing» (англійською). Офіційний блог AdBlock+. Архів оригіналу за 2011-08-13. Процитовано 2010-12-05. 
  1. Darin Fisher (5 вересня 2008). «Chrome <3s WebKit» (англійською). Google Inc. Архів оригіналу за 2011-08-13. Процитовано 2011-01-29. 
  2. C'T (2009-09-03). «WebKit-невідома величина» (російською). Далекий Схід. Архів оригіналу за 2011-08-13. Процитовано 2011-01-29. 
  3. «V8 JavaScript Engine» (англійською). Google Inc. Архів оригіналу за 2011-08-13. Процитовано 2011-01-29. 
  4. Stephen Shankland (2 вересня 2008). «Speed test: Google Chrome beats Firefox, IE, Safari» (англійською). 2011 CBS Interactive (CNET). Архів оригіналу за 2011-08-13. Процитовано 2011-01-29. 
  5. Lars Bak (2 вересня 2008). «Google Chrome's Need for Speed» (uage=англійською). Google Inc. Процитовано 2011-01-29. 
  6. Rob Minto (2009-03-27). «The genius behind Google's browser» (англійською). FT Magazine. Архів оригіналу за 2011-04-06. Процитовано 2011-04-06. «With Lars Bak's V8 engine, Chrome is incredibly quick» 
  7. Vangelis Kokkevis (27 серпня 2010). «Chromium Graphics Overhaul» (uage=англійською). Google Inc. Процитовано 2011-01-29. 
  8. James Robinson (14 вересня 2010). «Unleashing GPU acceleration on the web» (uage=англійською). Google Inc. Процитовано 2011-01-29. 
  9. Lucian Parfeni (28 серпня 2010). «Google Chrome 7 Gets GPU Acceleration for 2D and 3D Content» (англійською). Архів оригіналу за 2011-08-13. Процитовано 2010-10-02. 
  10. Katherine Noyes. «Chrome 7 Will Get 60 Times Faster, Google Says» (англійською). PCWorld. Архів оригіналу за 2011-08-13. Процитовано 2011-04-09. 
  11. Ionut Ilascu (18 вересня 2010). «Browsers: From Zero to Double Rainbow Hardware Acceleration» (англійською). Softpedia. Архів оригіналу за 2011-08-13. Процитовано 2010-10-02. 
  12. Божинов, Анжел (29 серпня 2010 року). «Chromium 7 «вбиває» козирі IE 9» (російською). Habrahabr. Архів оригіналу за 2011-08-13. Процитовано 2010-10-02. «Підсумок простий до неможливості. Chromium, особливо не напружуючись, вийняв козир та побив усі домагання Internet Explorer 9, показавши феноменальну продуктивність в обробці динамічного вмісту та показавши високу готовність до стандартизації HTML5»  Вказано більш, ніж один |author= та |last= (довідка)
  13. Wolfgang Gruener (2010-08-22). «The Secret Of Chrome 7: Hardware Acceleration?» (англійською). ConceivablyTech. Процитовано 2010-10-02. 
  14. Pulkit Chandna (2010-09-16). «Hardware-Accelerated Chrome 7 60x Faster than Previous Versions» (англійською). Maximum PC. Архів оригіналу за 2011-08-13. Процитовано 2011-04-09. 
  15. Daniel Bailey (25 лютого 2011). «Chrome Is The Fastest WebGL Browser, Says Facebook» (англійською). ConceivablyTech. Архів оригіналу за 2011-08-13. Процитовано 2011-02-28. 
  16. Jim Roskind (17 вересня 2008). «DNS Prefetching (or Pre-Resolving)» (uage=англійською). Google Inc. Процитовано 2011-01-29. 
  17. Lucian Parfeni (November 5th, 2010). «Chrome 9 to Get 'Wicked Fast' Page Loads with Prerendering» (uage=англійською). Softpedia. Процитовано 2010-12-07. 
  18. John Migman (5 листопада 2010). «Chromium: новий експеримент з пререндерінгом сторінок» (uage=російською). My-Chrome. Процитовано 2010-12-07.  Проігноровано невідомий параметр |description= (довідка)
  19. Kevin Millikin; Florian Schneider (7 грудня 2010). «A New Crankshaft for V8» (англійською). Official Chromium Blog. Архів оригіналу за 2011-08-13. Процитовано 2010-12-07. 
  20. Wolfgang Gruener (7 грудня 2010). «Chrome 10 Posts Huge Performance Jump» (uage=англійською). ConceivablyTech. Процитовано 2010-12-07.  Проігноровано невідомий параметр |description= (довідка)
  21. Adam Barth; Collin Jackson and Charlie Reis (10 вересня 2008 року). «Security Architecture» (англійською). The Chromium Authors/Google. Архів оригіналу за 2011-08-13. Процитовано 2011-04-01. 
  22. Nicolas Sylvain (2 жовтня 2008). «A new approach to browser security: the Google Chrome Sandbox» (англійською). The Chromium Authors/Google Inc,. Архів оригіналу за 2011-08-13. Процитовано 2011-02-22. 
  23. Adam Barth; Collin Jackson, Charles Reis. «The Security Architecture of the Chromium Browser» (англійською). Стенфордський університет. Архів оригіналу за 2011-08-13. Процитовано 2011-02-22. 
  24. Julien Tinnes (2012-11-19). «A safer playground for your Linux and Chrome OS renderers» (англійською). Google Inc. Архів оригіналу за 2012-12-01. Процитовано 2012-11-30. 
  25. cpu@chromium.org (2010). «Revision 66022» (англійською). Chromium Authors. Архів оригіналу за 2011-08-13. Процитовано 2010-11-29. 
  26. Lee Mathews (2010). «Google Chrome sandboxes Flash for more secure browsing» (англійською). AOL Inc. Архів оригіналу за 2011-08-13. Процитовано 2010-11-29. 
  27. «Vulnerability Report: Adobe Flash Player 10.x» (англійською). Secunia. Процитовано 2010-11-29. 
  28. «Mitigating Cross-site Scripting With HTTP-only Cookies» (англійською). Мережа розробників Майкрософт. 2008 рік. Архів оригіналу за 2011-08-13. Процитовано 2011-04-01. 
  29. Anthony Laforge (25 січня 2010). «Stable Channel Update» (англійською). Google. Архів оригіналу за 2011-08-13. Процитовано 2010-10-06. 
  30. «вийшов Google Chrome 4.1» (uage=російською). SecurityLab.ru. 19 березня, 2010. Процитовано 2010-10-06. 
  31. а б Lucian Constantin (5 жовтня 2010). «Chrome Gets XSS Filter and Starts Disabling Outdated Plug-Ins» (uage=англійською). Softpedia. Процитовано 2010-10-06. 
  32. Lucian Constantin (2010-06-29). «Future Versions of Chrome to Automatically Disable Outdated Plug-Ins» (англійською). Softpedia. Архів оригіналу за 2011-08-13. Процитовано 2011-04-05. 
  33. Elinor Mills (2010-06-29). «Google to block outdated plug-ins in Chrome» (англійською). CNET. Архів оригіналу за 2011-08-13. Процитовано 2011-04-05. «The company did not provide a timeline for this feature, except to say it will be «medium-term, " in a post Monday on The Chromium Blog.» 
  34. Lucian Constantin (2011-03-08). «Google Chrome 10 Brings Major Security Improvements» (англійською). Softpedia. Архів оригіналу за 2011-08-13. Процитовано 2011-04-05. «The new Google Chrome 10.0.648.127 is the first version of the browser to automatically disable outdated plug-ins by default, a feature first announced in June last year.» 
  35. Jeff Hodges; Collin Jackson, Adam Barth (18 грудня 2009 року). «Strict Transport Security» (англійською). W3C. Архів оригіналу за 2011-08-13. Процитовано 2011-04-01. 
  36. а б Adam Barth (26 січня 2010 року). «Security in Depth: New Security Features» (англійською). The Chromium Authors. Архів оригіналу за 2011-08-13. Процитовано 2011-04-01. «We've been hard at work adding proactive security features to Google Chrome, and we're particularly excited about five new security features that make it easier for developers to build secure web sites.» 
  37. «Google Chrome and Privacy» (PDF) (англійською). Google. Архів оригіналу за 2011-08-13. Процитовано 2011-04-01. 
  38. Ian Fette (14 листопада 2008 року). «Understanding Phishing and Malware Protection in Google Chrome» (англійською). The Chromium Authors. Архів оригіналу за 2011-08-13. Процитовано 2011-04-02. 
  39. Lee Mathews (2011-04-05). «Google Chrome and Chromium add protection against malicious downloads» (англійською). DownloadSquad. Архів оригіналу за 2011-04-09. Процитовано 2011-04-09. «If a download link appears in the Safe Browsing blacklist, Chrome and Chromium will warn users against downloading--a save button is still presented, of course, in case you're convinced a file is perfectly safe to download.» 
  40. «Налаштування конфіденційності та безпеки: Налаштування зображень, JavaScript та іншого веб-вмісту» (російською). Google. Архів оригіналу за 2011-08-13. Процитовано 2011-04-02. 
  41. «Налаштування конфіденційності та безпеки: Видалення кешу і інших даних веб-перегляду» (російською). Google. Архів оригіналу за 2011-08-13. Процитовано 2011-04-02. 
  42. Eric Lawrence (27 січня 2009). «IE8 Security Part VII: ClickJacking Defenses» (англійською). MSDN. Архів оригіналу за 2011-08-13. Процитовано 2010-12-05. 
  43. Eric Lawrence (2 липня 2008). «IE8 Security Part V: Comprehensive Protection» (англійською). MSDN. Архів оригіналу за 2011-08-13. Процитовано 2010-12-05. 
  44. «Вкладки, вікна та сторінки: Режим інкогніто (прихований перегляд)» (російською). Google Inc. Архів оригіналу за 2011-08-13. Процитовано 2011-04-02. 
  45. Wolfgang Gruener (2010-07-21). «Mozilla And Google Take Security Bounties To The Battlefield» (англійською). ConceivablyTech. Архів оригіналу за 2011-04-04. Процитовано 2011-04-04.