Вопреки заявлениям Google, открытый Chromium тоже следит за вами

Google обладает большим количеством великолепных сервисов, качество которых воистину впечатляюще. Однако его мания слежки за всем и вся зачастую переходит границы. Шуточно, но очень доходчиво об этом рассказывает ролик Google Toilet, которые, наверняка, многие здесь уже видели. Да и все, наверное, помнят историю со сбором открытого Wi-Fi трафика. В этой небольшой статье речь пойдет о браузере Chromium.

Итак, многим из нас нравится браузер Chrome. Но далеко не всем его политика конфиденциальности, которая позволяет использовать практически любые сведения о просматриваемых вами сайтов «в целях улучшения качества сервисов Google». Но у нас же есть Chromium! Он Open Source, а значит шпионского кода там быть не должно. Эта догадка подтверждается английской википедией, говорящей что разница между Chrome и Chromium в отсутствии гугль-брендирования, автообновления и, ура, отсутствии отправки «шпионских» данных в Google!

Давайте посмотрим, так ли это на самом деле!

Итак, запускаем сниффер, запускаем браузер, и…. Вы уже догадались, не правда ли? Перво-наперво браузер лезет на Google получить идентификационную куку (заметьте, я не произвожу никаких действий в интерфейсе):

HEAD / HTTP/1.1
Host: www.google.com
Connection: keep-alive
Content-Length: 0
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
AppleWebKit/534.6 (KHTML, like Gecko) Chrome/6.0.489.0 Safari/534.6
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3

HTTP/1.1 302 Found
Location: www.google.ru/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie:
PREF=ID=632128af861ebb83:TM=1281420591:LM=1281420591:S=ELyyEhjZ2JNSeGMV;
expires=Thu, 09-Aug-2012 06:09:51 GMT; path=/; domain=.google.com
Set-Cookie: NID=37=r81qA-
WGJc3SVSCovGM80YSzQb0LXRe39SHMzqClX_9reL_jYI7q3Y3UKfXAdVtkv8m5fZl1W6XR-
of4k10wGAw4LQYK5LTatCv3BOGwcmOc5V_1yhWjo9Hj6qbX2acc; expires=Wed, 09-
Feb-2011 06:09:51 GMT; path=/; domain=.google.com; HttpOnly
Date: Tue, 10 Aug 2010 06:09:51 GMT
Server: gws
Content-Length: 218
X-XSS-Protection: 1; mode=block
И, затем начинает пинговать гугловый сервис финансовой аналитики:
GET /tools/pso/ping?
as=chrome&brand=&pid=&hl=en&rep=2&rlz=I7:1I7GGLL_ru,W1:1W1GGLL_ru,T4:1T4GGL­L_ru,C1:1C1_____enRU392RU392,C2:1C2_____enRU392,R7:1R7GGLL_ru&dcc=T
HTTP/1.1
Accept: text/*
User-Agent: Mozilla/4.0 (compatible; Win32)
Host: clients1.google.com

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Date: Tue, 10 Aug 2010 06:10:07 GMT
Expires: Tue, 10 Aug 2010 06:10:07 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Server: GSE
Transfer-Encoding: chunked

rlzT4: 1T4GGLL_ru
rlzR7: 1R7GGLL_ru
rlzW1: 1W1GGLL_ru
rlzC1: 1C1_____enRU392RU392
rlzC2: 1C2_____enRU392
rlzI7: 1I7GGLL_ru
dcc: T
set_dcc:
T4:1T4GGLL_ru,R7:1R7GGLL_ru,W1:1W1GGLL_ru,C1:1C1_____enRU392RU392,C2:1C2_____enRU392,I7:1I7GGLL_ru
events:
stateful-events:
crc32: 7c33310f
В том, что это финансовый сервер, а не какой-нибудь супер-мега-шибко закодированный полезный сервис можно очень легко убедиться, заглянув в исходники библиотеки RLZ, любезно опубливанной самим Google. Ниже я привожу наиболее интересный нам кусок кода:

//
// Ping information.
//

// rep=2: includes the new stateful events.
const char kProtocolCgiArgument[] = «rep=2″;

const char kEventsCgiVariable[] = «events»;
const char kStatefulEventsCgiVariable[] = «stateful-events»;
const char kEventsCgiSeparator = ‘,';

const char kRlzCgiVariable[] = «rlz»;
const char kRlzCgiSeparator[] = «,»;
const char kRlzCgiIndicator[] = «:»;

const char kProductSignatureCgiVariable[] = «as»;
const char kProductBrandCgiVariable[] = «brand»;
const char kProductLanguageCgiVariable[] = «hl»;
const char kProductIdCgiVariable[] = «pid»;

const char kDccCgiVariable[] = «dcc»;
const char kRlsCgiVariable[] = «rls»;
const char kMachineIdCgiVariable[] = «id»;
const char kSetDccResponseVariable[] = «set_dcc»;

//
// Financial server information.
//

const char kFinancialPingPath[] = «/tools/pso/ping»;
const char kFinancialServer[] = «clients1.google.com»;
const char kFinancialPingType[] = «GET»;

const int kFinancialPort = 80;

// Ping times in 100-nanosecond intervals.
const int64 kEventsPingInterval = 24LL * 3600LL * 10000000LL; // 1 day
const int64 kNoEventsPingInterval = kEventsPingInterval * 7LL; // 1 week

const char kFinancialPingUserAgent[] = «Mozilla/4.0 (compatible; Win32)»;
const char* kFinancialPingResponseObjects[] = { «text/*», NULL };
Причем, напомню, что сам гугль утверждает, что данный код используется ТОЛЬКО для маркировки брендированных скачек и его нету даже в Chrome, скачанном с оффсайта, не говоря уж о «в склянь свободном», белом и пушистом Chromium.

Обсуждение данной проблемы я поднял в официальной гуглогруппе Chromium-discuss, где получено подтверждение аномальности данного поведения. Интересно, гугл снова «по ошибке» решил подсобрать по-больше данных о пользователях?

Статьи по теме:

  • Заправка картриджей во Фрязино. Исток-принт
.