Открыть список
Как стать автором
Обновить

Комментарии 167

Мне кажется, 32битные идентификаторы начнуть выдавать коллизии гораздо раньше, чем пойдут реальные дубликаты, точнее через 65к уников. Я бы взял хэш побольше (SipHash например)
2³² это 4294967296. Вероятно еще какие-то биты можно добавлять на сервере (ip адрес, наличие проксей).
Парадокс дней рождения говорит о том, что коллизии начнутся через 2^16, это как раз 65к
> Многие пользователи этим пользуются, даже не понимая, зачем

Один раз увидишь на один и тот же товар разные ценники в разных браузерах — сразу поймёшь зачем.
Это всё спамеров и чёрных сеошников напоминает. Человек использует режим инкогнито, использует DoNotTrack (на сколько я понимаю есть какой-то свод правил которые хорошо бы соблюдать), но вам плевать, вам нужна слежка, нужен контроль, вы готовы искать лазейки/способы.
Надеюсь найдутся люди которые напишут, как с такими бешеными скриптами бороться.
Так пишут потихоньку. Whonix, tor-browser и подобные технологии.
идея в том, чтобы выдавать либо рандомные «отпечатки» каждый раз либо одинаковые для большого кол-ва людей.
Что делать — понятно. Отдельный браузер или мощный плагин для существующих (как вивальди и опера), который будет сфокусирован на противодействии слежке.

Если достаточно чтения сайтов, то лучшее их вообще открывать в phantomjs, парсить и выдавать пользователю готовый результат.

Если требуется писать — то сложнее, надо запускать браузер в виртуалке и ходить через него как через прокси, управляя через selenium.

Если у тебя есть любимый сайт, на который ты ходишь каждый день, то лучше сделать для него собственный, открытый клиент. Пусть он будет плохеньким и некрасивым, зато без закладок. Если разработчик не предоставляет API или ограничивает его, или требует регистрации и одобрения клиента, то просто берёшь веб версию и работаешь с ней через selenium.

Можно ещё пойти по пути антивирусов — хранить базу сигнатур вредоносных джава скриптов и блокировать/подменять эти скрипты при загрузке.

Кто это будет делать и на какие деньги — большой вопрос. Слежку за пользователями окупают сами пользователи, которых дурят и заставляют платить больше. А на разницу нанимают программистов, которые пишут шпионский софт. Кто будет платить программистам за то, что они будут защищать пользователей от обмана?

Можно писать на энтузиазме, свободный софт существует и работает, и это доказано. Но этот путь хорош, когда нет спешки — ты постепенно шаг за шагом реализуешь все требуемые фичи. Но у этого пути возникают трудности, когда время давит и нужно соревноваться. Слежка за пользователями и защита от неё — это соревнование снаряда и брони. При этом на стороне слежки работают разработчики коммерческих браузеров, они постоянно вводят новые бесполезные фичи, которые увеличивают поверхность атаки.

Уж насколько велика потребность людей в антивирусах, большая база пользователей, а свободных опенсорсных антивирусов считай что нет, а те, что есть, свежие вирусы распознают очень плохо.

Можно попробовать толкать эту систему мобильным пользователям. Мобильный интернет — всегда дорогой, лимитированный и иногда ещё и медленный. Поэтому сервер может загружать и парсить сайты, удалять весь мусор и пересылать в сжатом виде мобильному клиенту. Желающие ставят себе на десктоп и роутят через домашний интернет, для тех кто хочет «вжух-и-работает» можно продавать аренду серверной части
I am careful in how I use the Internet.

I generally do not connect to web sites from my own machine, aside from a few sites I have some special relationship with. I usually fetch web pages from other sites by sending mail to a program (see git://git.gnu.org/womb/hacks.git) that fetches them, much like wget, and then mails them back to me. Then I look at them using a web browser, unless it is easy to see the text in the HTML page directly. I usually try lynx first, then a graphical browser if the page needs it (using konqueror, which won't fetch from other sites in such a situation).


https://stallman.org/stallman-computing.html
На сколько я понимаю, Tor browser (Tor project) предоставляет защиту от снятия отпечатка

И еще теперь понятно, почему современный веб такой тормозной. С одной стороны, засилье всяких node.js/react и прочих модных технологий, с другой стороны — при каждой загрузке страницы может выполняться такой вот фингерпринтинг, который загружает все возможные шрифты, рендерит и сериализует картинки, загружает все плагины.


А мы все голову ломаем: почему покупаешь новый компьютер, с более быстрым процессором, большим объемом RAM, SSD, а браузер как тормозил, так и тормозит…

Это как раз в том числе защита от спамеров и чёрных сеошников. Я в своё время немало времени потратил, реализуя аналогичную технологию на одном крупном чате с целью защиты от злостных спамеров и матершинников. Урода банишь, он регистрирует новый аккаунт и продолжает заниматься тем же самым. Но если раньше даже тривиальный бан по IP-адресу обойти было относительно сложно — надо было искать прокси-сервера, перебирать — то сейчас, благодаря борцам за приватность и неотслеживаемость, любой дебил, поставивший себе фригейт, может принести немало вреда.

И да, мне нафиг не нужно следить за пользователем. Но я хочу понимать, что юзер vasya и юзер petya на моём сайте — это одно и то же лицо.

Tor в этом плане более благороден. Да, он крайне усложняет отслеживание пользователя — но он не стесняется сказать, что это Tor, список выходных узлов опубликован и обновляется. Поэтому доступ через Tor можно вообще блокировать.
В описанных вами сценариях скрипт никак не поможет, он же выполняется на стороне клиента и злостные товарищи легко и весело ответят каждый раз новым рандомным хешем. На самом деле, скрипт именно про попытку пасти добропорядочных пользователей, включая явно запрещающих это делать.
Как раз для описанного случая скрипт подходит прекрасно — в сочетании с другими мерами он повышает стоимость таких атак, прекрасно отсеивает мамкиных спамеров и упрощает жизнь модераторам сообщества.
Интересно, а AddBlock и компанию нельзя использовать для той же цели, ведь правила фильтрации у пользователей могут отличаться?
Даже если на конкретный момент юзеру пофиг, оказался ли он в статистике какого-то магазина или нет, бороться всё равно нужно. Хотя бы даже по причине того, что технологии эти развиваются совершенно безумными темпами и непонятно, к чему это приведет через 5-10 лет. И вполне может оказаться, что то, что сегодня было пофиг, завтра всплывет в самом неожиданном месте и неожиданным образом. А обратно уже не вернешь.

Хорошо у меня Javascript по умолчанию отключен.

Вас можно трекнуть по HSTS, сначала показав 100 картинок с разных доменов, а потом проверив, отправит ли браузер запрос.

Отключен он мало у кого, значит по этому признаку тоже можно идентифицировать :D

Ну допустим можно узнать примерное количество людей с отключёнными скриптами по умолчанию по количеству пользователей дополнения NoScript: 2 172 292


В хроме можно отключить без дополнений и включать индивидуально для каждого сайта.
В мобильном хроме также можно отключить но добавлять сайты в список исключений очень не удобно.


Есть сайты которые вполне работают без скриптов а если их включить то начинается треш из потоков рекламы и кучи банеров.

Имеется в виду, что можно-то можно, но мало кто это делает.
Если взять те 2 млн человек и размазать по всему земному шару, да потом сопоставить с вашим айпишничком и провайдером (т.е. улица, дом) — то там уже спрятаться за малой выборкой будет сложнее.
Хочу спросить, пользуясь случаем, а как Вы пользуетесь сайтами, которые используют JS в виде jQuery, AJAX, да и те же соц. сети (предполагаю ответ «не пользуюсь», однако только на них свет клином не сошелся)? Мне кажется это вообще как интернет нулевых. А как же вебдваноль?)

Там где мне необходим доступ к поному функционалу я добавляю в исключения. А если я попал из поиска или по ссылке на сайт который без скриптов показывает пустое окно я его просто закрываю.


Сам стараюсь делать сайты которые работают и с отключенными скриптами.

А, ясно, благодарю. Но как-то не знаю, неужели стоит себя лишать всех прелестей современного интернета и постоянно натыкаться на неработающий функционал, если придерживаться банальных и очевидных правил поведения, таких как не кликать по ссылкам в письмах, полученных от неизвестных людей (да и от известных тоже, особенно если оно содержит слишком уж вызывающие призывы пройти по ссылке), пользоваться только Ебеями/Амазонами для покупок в сети, не переходить по сайтам, выданных по запросу «мокрые киски смотреть без регистрации и смс» и так далее? Да и вообще если вести себя честно, то чего и бояться? Если, конечно, только есть что скрывать… Или Вы типа просто как-бы не согласны с тем, что Ваши данные могут быть доступны кому-то еще? Однако последнее — это как не пользоваться услугами почты, только потому, что для получения отправлений там необходим паспорт. Но это уже она, родименькая, тут уже к доктору надо…

Когда я ищу какую либо информацию в интернете мне приходится посещать много различных сайтов разного уровня качества. Какой нибудь из этих сайтов мог запросто повесить браузер скриптами. Также со скриптами появлялась реклама со всех щелей которая перекрывала контент и браузер жрал кучу памяти и притормаживал.


Отслеживание мне также не нравиться. Причём я знаю уровень отслеживания пользователя так как сам пользуюсь метрикой и вижу каждое движение мышки и каждую напечатанную буковку посетителем в вебвизоре. Может скоро они пойдут дальше и будут записывать с вебки и микрофона реакцию посетителя на контент.


Меня напрягает рекламма которая предлагает товары и услуги в соответствии с недавней моей активностью.

Хм… Сам посещаю помойки еще те, плюс сам занимаюсь разработкой (тоже программер), от рекламы стоит банальный адблок, браузер летает, хотя комп по характеристикам только чтобы блокнот открыть. Вебвизором и сам пользуюсь, но опять же, смотря что вводить. Если я захожу на сайт в поисках детских товаров — определенно запросы на соответствующую тематику не могут заинтересовать кого-бы то ни было в принципе, ибо ищется все в рамках сайта, на котором я, собссно, и нахожусь. Другой вопрос, когда они касаются фото из каталогов детского нижнего белья — тут да…

Ну а благодаря такого рода рекламе я иногда нахожу весьма интересные товары. Но тема рекламы холиварна по своей сути, соглашусь, да, так что ладно…

P. S. Ни в коем случае не пытаюсь вывести Вас на чистую воду, это дело каждого, это больше даже мои мысли в слух, не более. По мне все-равно, это как в примере с почтой…
>Да и вообще если вести себя честно, то чего и бояться?

С этой фразой пойдете на толпишку гопников в темной подворотне?
Я к тому что сайты имеют обыкновение быть взломанными, любого уровня и любой сложности, интернет не песочница с розовыми понями, какающими бабочками.
Вы… Вы это мне говорите?) Сижу спокойно лет 15, имея только антивирусник (и то народ поговаривает, что в нем смысла особого нет). JS включен, деньги на карте до сих пор на месте, значит перехватчиков нет. Да и антивирусник (см. по рекурсии).

Говорю о честности в виде хранения/распространения определенного контента. Напоровшись на гопников в тюрьму не сядешь, чего нельзя сказать про интернеты.
Ошибка выжившего.
Я понимаю, просто хочется сохранять оптимизм даже в этих ситуациях. Особенно когда эти ситуации складываются так, как нужно.
Увы, это не поможет. Браузерные отпечатки часто используют именно крупные важные сайты (в статье даже есть несколько примеров), которые как раз могут диктовать свою волю пользователям в некоторой степени. Скажем, чисто гипотетически, заходите вы на Яндекс с ноускриптом, а поисковик без скриптов отказывается работать. Вы можете включить скрипты, но вы подозреваете, что тогда Яндекс будет вас отслеживать. И вы вместо этого идете к конкуренту — в Гугл. А там точно такая же ситуация. Еще раз повторюсь, эти компании я выбрал просто для примера и ни в чем конкретно их не обвиняю. Это так же могут быть крупные магазины или другие важные сервисы.
После этого вы идете в DuckDuckGo и радуетесь жизни. Я понимаю, что компании были выбраны просто для примера, я же лишний раз упомянул хороший сервис.
Если бы он ещё что-то искал, цены ему не было бы :)
Я заменил дефолтный поиск в браузере на DuckDuckGo, в принципе в 95% случаев его хватает, очень редко когда он не находит нужного и приходится дёргать гугл.
Не верю. Пользовался им эксперимента ради довольно долгое время — в ~2/3 случаев выдача неудовлетворительная, даже когда скармливаешь ему почти точные цитаты.
Возможно, зависит от того как искать. Я обычно ищу английский текст, и добавляю уточняющие слова. В таком духе: «rsyslog v8 doc filters».
Он в основном на англоязычный поиск ориентирован.
> А там точно такая же ситуация

вот за что люблю гугл-поиск, так это за то, что он работает без джаваскрипта. А если таких поисковиков не останется — буду пилить скрипт-костыль на phantomjs

Можно ведь повысить точность, если вначале использовать просто куки и другие методы — проверять, если не сработали, то запускать FingerprintJS. В 95% случаев пользователи не в инкогнито и куки не чистят. Итого имеем точность 90% от 5% FingerprintJS +95% = 99,5%.

Скорей всего их используют вместе. И если куки сотрут по отпечатку их установят заново.

Теперь самый главный вопрос, как это всё заблочить нафиг?

Надо, видимо, какой-то плагин, который на всё machine specific будет выдавать каждый раз рандомный мусор.
А тут много не надо. Достаточно попадать в один параметр, чтобы портить id. Скажем в режиме инкогнито я выдерну один монитор или разрешение сменю и всё.
Свежий профиль хрома спасает вроде бы.

Оно в профиле и хранится, кажется, да. В целом я с вами согласен, хочется плагин (а лучше более качественную поддержку incognito в браузерах), который будет знать о таких штуках и подставлять рандомный мусор, придумать бы только, как это сделать.

Надо бы даже не мусор, а что-то очень обычное, типа как у всех с некоторым распределением. Одноклассники, почта на мейлру, яндекс-бар, вот это всё :)
Вы уверены (в смысле сами проверяли)? Я в код расширения не лез, но вот здесь пишут как чистить историю hsts, а судя по этому топику — прямого доступа к chrome://net-internals/ chrome-extensions не имеют.
Это не говоря уже о том что в сафари так вообще надо ручками файлик удалять.

Также есть различия у разных браузеров по передаче hsts кук в приватный режим — здесь народ отмечает разницу между оперой, фоксом и вивальди. Старый топик, с тех пор наверно поменялось многое, надо проверять.
Это натуральная гонка вооружений. Между маркетологами, которые готовы удавиться ради сотой доли процента в каком-нибудь ARPDAU, и пользователями, которых заколебало, что нельзя уже и шагу ступить, чтобы тебя не «посчитали». Надеюсь, победят последние. Ибо вы зае…

// сам как-то внедрял, по требованию руководства, подобную систему в одно из приложений. Простите. Не хотел. Кстати, увеличить показатели не помогло, да.
Рандомный мусор, наверное, нехорошо, потому что он он будет выделяться в общей статистике.
Нужно либо просто пустоту (нишмагла определить), либо рандомный отклик из пула наиболее популярных.

Некоторое время назад тут кто-то рекламировал свое расширение для подмены UA. Довольно быстро выяснилось, что левый UA во-первых выделяется, а во-вторых некоторые сайты ломаются (например, Google Docs). Нужно брать 10-20 самых популярных версий браузеров (имеется в виду полные версии вплоть до билда) и швырять что-то из них. Аналогично с разрешениями экранов и прочим. Канвас лучше всего, вероятно, всё-таки пустота.
1. Это ужасно, потому что нарушает приватность пользователей.

Не стоит думать, что приватность нужна только преступникам или потребителям детского порно. Пользователь, вводящий в поисковой системе запрос «рак крови лучшие клиники отзывы», совершенно не ожидает, что эта информация попадёт к куче посторонних лиц, включая например его работодателя. Пользователь нетрадиционной сексуальной ориентации, живущий в нетерпимом к таким людям обществе, рискует своим благополучием и здоровьем, просто общаясь на тематических сайтах. Пользователь, покупающий платную мед. страховку, не должен обнаружить, что для него лично она стоит в 3 раза дороже, потому что у страховщика информация о его здоровье полнее, чем у врача в поликлинике. Пользователь, придерживающийся оппозиционных к текущей системе власти взглядов, не должен стать мишенью противодействия гос. машины. И так далее. Это даёт потенциально огромную власть над человеком организациям, которым этот человек никакой власти передавать не соглашался.

2. Это прекрасно, потому что разработка ведётся открыто, и можно требовать у производителей браузеров и ОС внедрять меры противодействия.

3. Если в комментариях ещё не упомянули Tails и Whonix, то буду первым. Сборки Linux для запуска в виртуалке и анонимной работы. Умеют противодействовать многим из перечисленных техник.
А потом мы удивляемся, почему простые на вид сайты дичайше тормозят.
Можно не просто удивляться, а посмотреть в профайлере чем именно нагружает конкретный сайт. Собирает ли он данные, майнит биткоины или просто какой-то рукожоп прикрутил очень красивую анимацию.
Благо профайлер есть в большинстве современных браузеров.
Ну и в черный список WebOfTrust такие сайты.
Черт, а хорошая же идея была.
Почему WebGl Fingerprint важен? Потому что IOS 8.1 поддерживает WebGL, а это помогает идентифицировать IOS девайсы, о проблеме идентификации которых я упоминал.
Вот это не понял. Если у пользователей разные айфоны, то их совсем легко различить по разрешению экрана и другим простым признакам. Перед этим в статье упомяналась сложность именно идентификации двоих людей на двух одинаковых айфонах. Как детальная информация о рендеринге поможет тут, если у телефонов 100% идентичная начинка и софт?
Да никак, в приватном режиме так даже между сессиями не различить пользователей одной модели айфона. А с тором тем более влажным мечтам автора не суждено сбыться, так как там намерено унифицируются и подчищаются все отслеживаемые параметры.
Другой вопрос, почему вдруг недостаточно 90%? Кажется, этого наоборот больше чем достаточно для маркетинговых целей, и даже можно было бы быть человеком и пожертвовать ещё 10% на уважение DoNotTrack. А пока автору «иронично» — и ему нет уважения.

Мне кажется, do not track потерял уважение в тот момент, когда некоторые браузеры (ie10, кажется) начали ставить его по умолчанию. Опять же, dnt, как мне кажется, слишком прост для сегодняшнего мира. Я, например, не хочу делиться информацией о визитах с третьими лицами, но совершенно не против, чтобы владелец сайта трекал меня вдоль и поперек с целью улучшения сайта (навигации, понятности, юзабилити и прочее).

А веса для каждого признака используются? Насколько я понимаю, более стабильным и в то же время дифференцирующим признакам можно добавить больший вес…
3D графика очень платформозависима, версия драйверов, версия видеокарты, стандарт OpenGL в системе, версия шейдерного языка, — все это будет влиять на то, как внутри будет нарисовано это изображение.

Если вы поставили Microsoft Office, вы добавляете в систему шрифты; если вы поставили какой-нибудь Quick office, который имеет собственные шрифты, вы опять же добавляете в систему шрифты. И поэтому у вас может быть два абсолютно одинаковых компьютера, но на одном установлен Office, а на другом — нет. Это значит, что на первом, где нет Office, будет 320 доступных шрифтов, а, где есть Office — 1700 шрифтов. И значит, что вы сможете получить все шрифты, которые есть на этом компьютере, опять же, для итогового отпечатка. Это будет два разных отпечатка, потому что шрифты разные.

Обновили драйвера, поменяли видеокарту, добавили/удалили шрифты — фингерпринт новый?
Да, но изменён чуть-чуть. В статье про это написано, называется фазихэширование. Изменение небольшого фрагмента немного меняет хеш, но он похож на старый.
Никаких чуть-чуть. В отпечатке canvas пол-пиксела влево-вправо или цвет чуть зеленее — это другая система, на это и расчёт, что чуть-чуть другое = другая машина.

А фаззи-хеши — это дальние планы автора. В разрабатываемой либе v2 их нет (специально скачал проект и прочитал весь код, благо там немного).
НЛО прилетело и опубликовало эту надпись здесь
Так-то Илья Кантор написал статью "Способы идентификации в интернете" еще в 2010. Не то чтобы это что-то новое. Но раз уж есть свежая статья, почему бы не обсудить проблему в очередной раз, тем более, что методики меняются.
Можно еще сделать плагин, который впихивает в страницу скрипт, позволяющий рандомизировать показания целевого скрипта. Но это лишь как заплатка годится, имхо.
Коллеги, хочу напомнить, что мы — профессионалы в первую очередь. Поэтому мы с вами должны изучать и знать разные технологии, даже те, которые не используются на благо общества.

Большинство приёмов, которые сейчас используются в разработке высоконагруженных систем, впервые были опробованы в разработке порносайтов. И что теперь? Балансировку не изучать?

То, что технология используется для нарушения приватности, не означает, что мы, как профессионалы, не должны знать о том, как она устроена.
>
То, что технология используется для нарушения приватности, не означает, что мы, как профессионалы, не должны знать о том, как она устроена.

Спасибо за то, что дали знать про эту технологию. Будем изучать, как ей противодействовать.
Ну почему бы и нет? Для этого тоже надо знать.

Более того, некоторым приходится это использовать против недобросовестных посетителей. Ограниченный по времени полный функционал (для полноценного тестирования) без подобных инструментов трекинга просто превращается в халяву для особенно "экономных".

Стоит ли так заморачиваться? Особо экономные все равно не заплатят за продукт.

Во-первых, если твой продукт будет очень нужен, то купят, пусть даже не за свои деньги. Во-вторых, они раструбят на всех форумах о твоем продукте: «Помогите взломать суперпуперпрограмму Васи Пупкина», «Дайте кряк к суперпуперпрограмме Васи Пупкина» и т.д. — это бесплатная реклама. В-третьих, если у тебя не будут воровать, ты сможешь снизить цену до приемлемого уровня и даже самые «экономные» могут решить, что это небольшие деньги за такую классную прогу.
В-третьих, если у тебя не будут воровать, ты сможешь снизить цену до приемлемого уровня

Это неверно, т.к. в цену программного продукта не закладывается стоимость спираченных версий.
и даже самые «экономные» могут решить, что это небольшие деньги за такую классную прогу.

Тоже неверно, т.к. между платой, пусть даже и в 1коп, и «халявой» всегда победит халява.
Единственный вариант — сделать доступ к халяве настолько сложным, что труд по доставанию халявы станет соразмерен цене покупки. Т.е. если вы заблокируете сайт с халявой в поисковой выдаче, то большинство неопытных пользователей не станут дальше копать, т.к. для них труд по доставанию пиратки станет слишком сложным. Но останутся профи, для которых найти ту же халяву в Tor или еще где-нибудь, без прямой ссылки из поисковика, дело несложное. Такие все равно не купят.
В цену продукта закладываются затраты на его производство и поддержку. Когда затраты окупаются, производитель имеет возможность снизить цену и увеличить тем самым круг пользователей и свою прибыль. Но если продукт просто крадут все кому не лень, то затраты не окупятся никогда.

Да и то, на сиюминутную наживу обычно рассчитывают только разработчики-одиночки, не сильно разбирающиеся в бизнесе. Серьезные производители просчитывают все риски и гарантия защищенности продукта дает им возможность захватить рынок за счет низкой цены — им важнее не мгновенную прибыль поиметь от продажи продукта, а захватить сегмент рынка и постепенно его раскручивать за счет ассортимента предоставляемых услуг.

В моей предыдущей компании мы вообще многие сервисы бесплатно предоставляли, несмотря на большие затраты на их производство, и тем самым выбили с рынка слабых конкурентов. Часть их клиентов досталась нам и мы заработали на них больше, чем могли бы заработать на этих сервисах, давая к ним доступ платно. И так как мы давали сервисы бесплатно, воровать у нас ничего не нужно было.
Сервисы и коробочные продукты, которые можно «скачать» и кряки к которым ищут — это сильно разные вещи.
Мы сделали сервисами то, что конкуренты продавали в коробках, и тем самым обеспечили доступ клиентам из любой точки земного шара, где есть инет. У нас полностью была исключена возможность того, что клиент попытается нас обмануть, потому мы не несли непредвиденных убытков. Если бы у нас воровали, нам бы пришлось компенсировать затраты за счет клиентов, чтобы не уйти в минус. Потому зависимость между ценой продукта и воровством очень даже имеется.

Если бы разработчик, выпуская продукт, мог точно рассчитывать, что продукт честно купит миллион человек, он бы мог поставить цену 1$ и заработать лимон зелени, что весьма приятно. Но из-за того, что продукт купит 10 человек, которые его крякнут и раздадут бесплатно всем остальным, разработчик вынужден просить за него 100$, чтобы поиметь хоть какой-то интерес. А среднестатистический хомячок такую сумму платить не готов, потому и ищет кряк.
такое может только большой жирный бизнес, который может инвестировать в будущее. а маленькой компании едва вставшей на ноги, большой наплыв халявщиков совсем не нужен
Маленькой компании наплыв халявщиков нужен для рекламы и раскрутки, иначе она будет оставаться маленькой еще очень долго или вообще загнется под натиском конкурирующего большого жирного бизнеса.

К примеру, бабушка вяжет дома носки и потом продает их на рынке — это маленький бизнес, рассчитанный только на входящего клиента (кто мимо проходил и увидел нужный ему товар). А вот если бабушка будет вязать носки прямо на рынке, параллельно давая мастер-классы и бесплатные консультации по вязанию и выбору нитей, это будет уже пиаркомпания, о которой очевидцы будут рассказывать своим знакомым. В данном случае, бабушка не несет дополнительных финансовых затрат на халявщиков, но недополучает прибыль из-за того, что тратит свой временной ресурс на бесплатные сервисы. Зато она получила бесплатную рекламу и заткнула за пояс не только прямых конкурентов, но и тех, кто проводит мастер-классы по вязанию за деньги. Такая инвестиция в будущее окупит себя очень быстро, потому что когда спрос превысит предложение, бабушка посадит на конвеер других бабушек, чтобы вязать больше товара, и ее доход стремительно вырастет.
Это все красиво в теории, но не на практике. Халявщики привлекают только таких же халявщиков. А чтобы зарабатывать, продавец должен формировать ценность продукта для покупателя. Ценность же у халявы близка к нулю. И пиарить и советовать будут только тот продукт, который принес пользу для покупателя и для которого он ценен. Так что бизнесу нужны не халявщики, а клиенты для которых продукт бизнеса будет представлять ценность. И вот уже только потом клиент будет думать, стоит ли продукт того что за него просят и насколько это соотносится с той пользой, которую он получит от покупки этого продукта.

За примерами далеко ходить не надо, посмотрите стоимость продуктов Microsoft. Уж их то пиратят направо и налево, но они, почему-то, не продают свои винды и офисы за копейки. Еще в качестве примера, лицензионные игры на PC, Xbox и Playstation они стоят одинаково (+- пара долларов). Хотя, на компе пиратят, на xbox — чуть-чуть, а на PS почти нет. По Вашей логике, игры на PS должны стоить дешевле, но нет.
На практике это тоже работает, если не лениться и не пытаться сразу нахрапом заработать на маленький остров в океане своим стартапом.

Я недавно открыл небольшую тренажерку и быстро набрал клиентуру за счет низкой цены, намного ниже конкурентов. Так вот, по основному источнику дохода (продажа абонементов) я немного в минусе, но за счет допуслуг и магазина для посетителей (обычная витрина на стенке возле входа) я уже получаю небольшой доход. Если бы я лупил такую же цену, как другие тренажерки, то ко мне никто не ходил бы, потому что условия у меня не столь комфортные — мало места, мало тренажеров, один душ, нет бассейна и т.п. Большинство стартапов выходит в ноль только спустя полгода (если доживают до этого времени) и только потом начинают зарабатывать, а я даже за первый месяц не ушел в минус, потому что не ленился каждый день переставлять тренажеры — днем помещение сдавалось в аренду под офис, а вечером тренажеры возвращались на места. А теперь фишка: я не потратил ни копейки на рекламу. Все за счет «халявщиков».

Мелкософт потому за копейки и не продает, что его пиратят и крадут его прибыль. Но он значительно снизил цену на свои продукты после того, как придумал сперва винды толкать принудительно с ноутбуками, а затем предоставлять облачные сервисы вместо коробок. Да и достойных конкурентов его продуктам до сих пор нет: линух до сих пор годится только для гиков и домохозяек, но практически непригоден для офисного планктона (малейшая проблема и человек простаивает до прихода специалиста). А ближайший бесплатный конкурент мелкоофиса — это вообще издевательство над живыми людьми, потому что как только человек сталкивается с нетривиальной задачей, которая в мелкоофисе решается в пару кликов, оказывается что надо скрипты пилить.

По играм ничего сказать не могу, потому как сам не играю и ситуацию на рынке не отслеживаю.
(Надо сразу оговорить, что рассматривать крайние случаи, типа с первого платежа купить остров — мы не рассматриваем.)
Ну так у вас просто клиентура менее платежеспособна, чем у модных раскрученых фитнес кружков. Тут как раз клиенты не халявщики, а просто те, кто не может себе позволить ходить в более дорогие места.
Мелкософт зарабатывает на корпоративных пользователях и на сервисах. Снижать цену для рядовых пользователей им просто смысла нет, т.к. срок жизни винды (до вин 8, когда мелкомягкие изменили релизный цикл) составлял более 3 лет. 100 долларов за операционку на несколько лет цена небольшая, при цене компьютера порядка 1000 долларов. А при покупке с компьютером цена винды вообще порядка 20-30 долларов. По цене мелкософт даже не пытается конкурировать с линуксом, о чем я и говорил.
Собственно, вы сами понимаете, что ценность предоставляемая виндой выше оной у линукса (для определенных категорий пользователей). Но сравнивать винду с линуксом, для рядовых пользователей, не совсем корректно. А если брать тот же корпоративный сектор, то в нем цены выравниваются. Цена поддержки сопоставима.
Услуга стоит чтобы ее купить и после начала трекинга и прикрытия «халявы» были реальные подключения таких клиентов. Включить режим инкогнито теперь могут все не задумываясь про куки, хранилища и т п. И очень многие пользуются в нечестных целях.
рестарт снапшота vmware с рандомным прокси.
Кстати надо самосборному firefox-у сигнатуру всех браузеров отдавать.
Порносайты не зло. Порносайты делают то, что хочет пользователь — а значит они добро. Вы же делаете то, что пользователь явно запретил. я бы назвал это мошенничеством
Ну положим, что я ничего не делаю. Это расшифровка доклада на нашей конференции.

Порносайты незаконны в некоторых странах. Давайте я усугублю фразу — многие highload-технологии были проверены на порносайтах с детской порнографией. Это ведь зло? Мы ведь не должны из-за этого игнорировать эти технологии.

Есть много способов мошенничества, то, что это мошенничество ничего не говорит о качестве ТЕХНОЛОГИИ. Технологию надо изучать с профессиональной точки зрения.
> Мы ведь не должны из-за этого игнорировать эти технологии.

Конечно. Мы должны разрабатывать адекватный ответ. И разумеется, ни в коем случае не должны такие поганые технологии разрабатывать и внедрять сами. Никакие деньги не стоят кармы. Сегодня вы злоупотребляете доверием не подкованных в IT пользователей, а завтра лечащий врач будет злоупотреблять вашим доверием и невежеством в медицине.
Не соглашусь. Тут то же самое, что с поиском уязвимостей: если этого не делают хорошие парни, этим всё равно будут заниматься плохие, но с гораздо худшим эффектом. Гораздо лучше, чтобы такие вещи разрабатывались открыто и у всех на виду, чем по-тихому в недрах спецслужб и корпораций. Вряд ли автор https://github.com/Valve/fingerprintjs2 сделал что-то, чего раньше никто никогда не использовал. Но он сделал это открыто, и теперь мы имеем возможность об этом узнать и подумать о мерах противодействия.
Вы слово «внедрять» пропустили. Делать proof of concept — это правильно. Делать готовые продукты — аморально.
Тут соглашусь, но для маленькой javascript-библиотеки разницы между proof of concept и готовым к внедрению продуктом почти нету.
Если при каждом посещении страницы с таким скриптом менять свой user-agent на случайную строку, то отпечаток будет свой для каждого посещения.
Будет, но из-за фаззи-хеширования это только снизит точность. И при этом некоторые сайты будут работать некорректно.
из-за фаззи-хеширования это только снизит точность.
Сейчас речь не идёт о технологии, устойчивой к смене N параметров из M возможных. Для этого сайту пришлось бы хранить все параметры и сравнивать новый вектор со всеми сохранёнными, а не как сейчас — оперировать одним хешем.

Для конкретного пользователя изменения параметра сейчас либо сработает, либо не сработает, потому что подобные скрипты выдают единственный ID, а не степень близости к другим посещениям. О «точности» говорят в статистическом смысле.

Фаззи-хеш юзер-агента это классификатор типа Firefox-stable против Chromium-beta и Chrome-Release, с откидыванием номера версии, либо с разбиением множества версий на кластеры, между которыми считаем, что пользователь не переходит.

Поэтому замена Chrome на Opera в User-Agent вполне себе решение. Если скрипт продолжает идентифицировать, значит, UA в построении идентификатора вообще не используется.
НЛО прилетело и опубликовало эту надпись здесь
Одно другого не отменяет. Браузерный отпечаток позволяет определить пользователя даже если он избавился от кук или использовал режим инкогнито. В статье упоминается, что библиотека не использует куки, но это просто потому, что идентификацию на куках можно сделать отдельно самостоятельно (и это делается почти всегда) или даже использовать evercookie, так что в этом нет необходимости.

P.S. Я к этому не имею отношения и даже осуждаю использование подобных средств идентификации.
Наверное можно еще ботов на различных форумов так вычленять.
Добрый день, может у кого есть информация как можно подменить в chrome:
userAgent navigator
userAgent plugins

Совсем по простому:
Object.defineProperty(window.navigator, 'userAgent', {get: function(){return 'Mozilla/5.0 some random data'}});
Object.defineProperty(window.navigator, 'plugins', {get: function(){return []}});

принимать до кода страницы плагинами для user script
Идея хороша, но только с одной стороны. Она так же будет выдавать абы что для не следящих скриптов. Думаю, что надо блокировать именно скрипты, которые собирают отпечаток. Вплоть до того, что определять код таких скриптов и блокировать их.
С подсовыванием ложных данных могут возникнуть проблемы уже на этапе определения наличия флеша, он не определится и пользователь не увидит видео.
Флеш уже много лет у меня выставлен в режим «не пущщать, если мной явно не указано обратное». Думаю, я не один такой. Серьёзно, 2017, HTML5 и все дела…
А есть еще куча технически неподкованных людей, или просто людей, которым флеш нужен. А еще есть куча других плагинов, помимо флеша, которые так же не будут детектироваться.
Firefox спрашивает — сайт пытается запустить flash, разрешить?

На youtube отвечаешь «да, запомнить». На сайтах Эльдорадо/М-Видео — «нет, запомнить». И проблема исчезает.

С другими плагинами аналогично.
Это не значит что их список нельзя вычитать. Это лишь говорит о том, что пользователю контент не активируется, но информацию о них страница все равно получит.
Сам по себе бит «есть flash» — это пустяки. Главное, не запустить апплет, чтобы он не вытащил из системы шрифты и прочие внутренности.
Они вытаскиваются не через флэш, а обычным запросом с помощью js. Не надо все сводить к одному лишь флешу. Будет флеш или не будет его, вся информация все равно будет вытащена.
То, с чем работает js, можно обмануть через userscript, или специальной сборкой браузера, или его настройками. А вот Flash — проблема — проприетарный блоб, в который не влезешь и ничего не подкрутишь.
А вы посмотрите исходник этого fingerprint2, там флеш это даже не 5% от всего. Так что не надо демонизировать его. Все остальное, что js выдергивает, перекрыть куда сложнее, ибо все эти вещи, так или иначе, нужны вполне честным скриптам.
вы посмотрите исходник этого fingerprint2
Смотрел. Тут два варианта. Либо автор менее уверенно пишет в AS, чем в js, и в этом конкретном проекте векторов атаки в js реализовано больше. Чтобы увидеть потенциал AS, нужно смотреть другой проект, специализирующийся на утечках через flash.

Либо второй вариант — автор понимает, что в 95% use-cases его скрипта апплет не запустится, поэтому развивать его не надо (сделаем, что попроще, и всё). Не запустится, потому что в последних версиях главных браузеров flash либо полностью отсутствует, либо требует действий пользователя для активации. Если основная польза от сайта сделана не на flash, как у twitch, к примеру, пользователь кнопку активации не нажмёт.
что js выдергивает, перекрыть куда сложнее
Сложнее ли? Для js можно подменить API, тупо выполнив userscript до скрипта страницы. Реализации API можно править в открытых исходниках браузера. А flash-скрипт, если уже запустил, никак не скорректируешь. Из AS же можно сделать http request без участия js, и всё — инфа утекла. Проще AS совсем не разрешать (что проблематично сделать с js)
И эти функции перестанут работать для безопасных и нужных скриптов. Это не вариант.
Очень даже вариант. Выключаем на всех доменах, включаем там, где действительно нужно. Полезных сайтов, которым нужен canvas, по пальцам пересчитать.
А как быть, если JS функционал нужен, а отпечаток нет? Я думаю, что нужен способ блокировать объекты, которые хотят сразу много от браузера. Это, конечно, сложнее, но, думаю, выявлять такие объекты можно.
Я не предлагаю выключить js. Я предлагаю урезать некоторые возможности, вроде canvas. Вы знаете примеры сайтов, где он нужен? В крайнем случае, можно в рендер текста добавить пару случайных пикселей и «до свидания, хеш».
Я посещаю много сайтов, где нужен canvas, плюс он мне для разработки нужен. Библиотеки для отрисовки графиков часто используют canvas.
В таком случае, идеальное решение, которое всех устроит — как с flash.

Браузер спрашивает: «сайт пытается использовать canvas, разрешить?» (и галочка специально для вас — «запомнить текущий выбор и автоматически применять его в будущем»).
Я вот сейчас реализовал блокировку canvas на чтение и заодно спрятал список шрифтов и… стал уникальным «неуловимым Джо». Идея закрывать все это хороша только при условии, что таких «закрывальщиков» станет много, иначе все равно хэш получается уникальным. Так что надо идти в сторону снижения уникальности хэша путем усреднения определяемых данных.
Те полтора сайта, которые активно используют все возможности js и полезны можно запускать в отдельных виртуалках/firejail-ах. Самое паршивое — это возможность читать канвас, а не писать канвас. Отключи чтение канваса — у тебя останется возможность рисовать графики, но не возможность идентифицировать компьютер.

Ну и из разряда фантастики — security domain, каждый скрипт подписан, пользователь раздаёт им разрешения на доступ индивидуально. Ни один флагман js не внедрит это в своё браузер, потому что как тогда бабки на рекламе стричь с пользователей?
Делать виртуалки для сайтов с канвой это ..., мягко говоря, перебор. А вот перегрузить апи для чтения канвы это хорошая идея. Надо попробовать.
Что вы кипишите? Это всего лишь технология. Как и множество других технологий, ее можно использовать как во благо, так и во вред. Используйте во благо — и будет вам счастье. Опять же, можете придумать технологию для противодействия этой — тоже благое дело (которое, кстати, тоже может быть использовано во вред:)
Выходом из ситуации может служить создание аддонов, которые динамически меняют большинство параметров по какому-нибудь непериодическому условию (нажатие кнопки, рестарт браузера).

По сути, аддоны анонимизации действуют крайне деанонимизирующе (например, меняют canvas fingerprint случайно каждый раз). Это даже хуже, чем не менять его вовсе.

Я поискал сейчас на сайте плагинов для ФурриФокса, кажется, такого нет. Обычно меняют на статистически распространённые параметры. Подкинуть им идею, что-ли.
Палка о двух концах: с одной стороны, как разработчику, мне интересна идентификация пользователя, но со стороны пользователя я бы хотел иметь возможность анонимизации по мере необходимости. Я уверен в том, что персональные данные моих пользователей будут использованы для защиты от злоупотребления ними и для аналитики. При этом я не уверен, что другие разработчики поступают с моими персональными данными так же корректно.

В любом случае, за статью спасибо — методики идентификации действительно оригинальны и любопытны.
Немного нарягает нытье. Если таких статей не будет, это не значит, что технология исчезнет. То, что автор не дает отрицательную эмоциональную характеристику технологии не значит, что подобные статьи не нужны.

Давайте лучше подумаем, что можно с этим сделать.
Отдельный браузер и виртуалки — не вариант. Понятно, что для просмотра нехороших (очень) видео этим можно заморочиться, но для повседневного серфинга это оверкил. Трекинг пользователей описанный выше как раз и применяется для отслеживания повседневной активности. Я не хочу запускать шифрованную виртуалку, чтобы прочитать фид вк. Нужно решение максимум уровня адблока.

> http cookie
Вайт лист сайтов, которым можно сохранять куки, либо сброс после закрытия браузера. Лично для меня второй вариант не особо подходит, ибо браузер я закрываю пару раз в месяц в лучшем случае.

> flash
Слишком большая дыра, чтобы ее пытаться закрыть. Да и использовать flash в 2017 это добровольный суицид, даже хром его по-моему отключает по умолчанию уже.

> silverlight
Думаю, все то же, что и с flash. Лично ни разу не пользовался. Неплохой повод перестать пользоваться легальными стриминговыми сервисами :3

> png cookie
Отчистка кеша при перезапуске браузера/по времени.

> html5 хранилища
Аналогично, хранение только на время сеанса.

> java
>The Chrome browser does not support NPAPI plug-ins and therefore will not run all Java content
В файрфоксе ручное подтверждение запуска любых java приложений.

> user agent
Лучше всего не трогать, одинаковый у достаточно большого количества пользователей.

> language
> timezone
Важный момент, по отдельности не страшны, но вместе вполне себе. Например, таймзона +0 и язык русский будет весьма уникальной комбинацией. Английский наиболее нейтральный в качестве языка. Таймзону ради анонимности мало кто согласиться менять, так что с ней придется смириться.
Таймзоны часто сверяются с локацией текущего айпи и если они не совпадают, то велика вероятность использования впн/других анонимизирующих технологий. Так что сидеть через впн, скроля алиэкспресс не стоит.

> размер экрана
> глубина цвета
Если только у вас не 4к мониторы, параметры дефолтные у большинства.

> html5
Поправьте если ошибаюсь, но на одинаковых версиях браузера, технологии будут одинаковые. Поэтому это чистое дублирование юзерагента.

> platform specific data
Ду нот трек лучше не включать, те, кто хотят, все равно трекать будут. Остальное критично только для необычных конфигураций.

> плагины
В хроме они вроде как стандартные сейчас.

> canvas fingeprint
Идей противодействию нет. Насколько часто канва используется в вебе?

> fuzzy hash
Вот тут начинается все плохое. Если раньше было достаточно сменить любой параметр и успокоиться, то теперь нужно набирать этих параметров на определенный процент.

> fonts
Весьма уязвимое место, особенно если вы любите поустанавливать шрифты. Например, при просмотре видео с субтитрами, в которые напихали каких-нибудь элитных спираченных шрифтов.
Решением может быть удаление/установка ±10% рандомных шрифтов при запуске системы.

> webgl
Аналогично канве не очень понятно, что можно сделать. Что-то мне подсказывает, что все эти эффекты и треугольники будут сильно тормозить сайт, но все же.

> webrtc
отключается

Как мы видим, основная проблема на самом деле фаззи хеши. Если наизменять достаточно параметров, это все еще можно обойти, но если авторы станут чуть умнее и будут учитывать только сложноизменяемые вещи, типа графики или шрифтов, станет реально плохо.

Радикальным решением может быть эвристика: анализ всех скриптов и попытка выявить подозрительную активность. Если сайт с рецептами пирогов создает невидимую канву и начинает потом считывать ее попиксельно, возможно стоит заблокировать соответсвующий код. Аналогично для js проверки шрифтов.
html5
Поправьте если ошибаюсь, но на одинаковых версиях браузера, технологии будут одинаковые. Поэтому это чистое дублирование юзерагента.

не совсем: с одной стороны технологии могут не различаться от версии к версии, с другой стороны юзер-агент различается на разных платформах (windows, linux итд). Таким образом, у нас есть более специфичный, но подделываемый юзер-агент, и более общий, но неподделываемый (труднее/реже) набор технологий.
canvas fingeprint
Идей противодействию нет.

Есть расширения для блокировки канваса, с правилами, исключениями.
Вайт лист сайтов, которым можно сохранять куки, либо сброс после закрытия браузера. Лично для меня второй вариант не особо подходит, ибо браузер я закрываю пару раз в месяц в лучшем случае.

Self-Destructing Cookies удаляет куки при закрытии вкладки, если мне не изменяет память.

webrtc
отключается

В Firefox достаточно просто настроить один параметр, убирающий утечку адресов.
> Решением может быть удаление/установка ±10% рандомных шрифтов при запуске системы.

Расширение к браузеру, рандомно включающее/выключающее самые малоиспользуемые шрифты, оставляя самые распространённые. Но движок хрома так сделать по-моему не даст, только если руками под капот лезть.
>>Все это препятствует трекингу и идентификации в Интернете.

И это правильно. Ибо нефиг. Пользователь сам должен решать, хочет он быть отслеживаемым или нет.
Именно поэтому преступники надевали чёрные маски.
Причём тут преступники? Речь о неприкосновенности частной жизни. За такое в приличном обществе и огребсти можно. В Европе даже за использование кук, нужно информировать пользователя, такое уж точно будет под запретом. Благо и средства блокировки от таких умников, тоже будут.
А где тут частная жизнь?

Взаимоотношения пользователя и сайта — это дело как пользователя, так и сайта.

Сайт не пытается лезть в частную жизнь пользователя, отслеживать его поведение на других сайтах (что делает, например, Google Analytics, но никто, почему-то, его тухлыми яйцами не закидывает), не пытается даже выяснить ФИО. Все данные, которые собираются сайтом — это данные, предоставляемые штатными средствами браузера и браузерных технологий.

Единственное, что пытается сделать сайт — идентифицировать собственного клиента под разными логинами, например (включая незалогиненный статус). Но факт посещения Вами любого сайта — это де-юре Ваши с ним взаимоотношения, которые касаются как его, так и Вас.

Вам нравится, я думаю, HTTPS и зелёненький сертификат, который позволяет Вам удостовериться, что посещаемый Вами сайт — это именно этот сайт, а не подделка фишеров. Тогда почему Вы отказываете сайту в праве удостовериться, что Вы — это Вы?

Почему Вас не беспокоит, что IRL банки, отели, авиакомпании, кто угодно ещё требуют предъявления паспорта? В паспорте содержится куда больше информации о Вас, чем в упомянутом отпечатке. Потому, что Вы осведомлены о факте идентификации? Ну так считайте, что Вас идентифицируют по умолчанию всегда и везде.
Не смущает ли Вас, что обычная московская карточка-проездной в метро и автобусе, «Тройка», также обладает уникальным номером, позволяющим отследить Ваши перемещения?
Не настораживает ли, что банк видит все ваши платежи, когда Вы расплачиваетесь картой? Включая сумму, место покупки, время и так далее?

А тут тривиальный отпечаток браузера вызвал столько шуму внезапно.
>>А где тут частная жизнь?

Повсюду.

>>Google Analytics, но никто, почему-то, его тухлыми яйцами не закидывает

Ещё как закидывают. У многих эта гадость заблокирована ещё со стороны роутера.

>>это данные, предоставляемые штатными средствами браузера и браузерных технологий.

Но как видим, можно использовать во благо, но кто-то пытается не во благо.

>>Тогда почему Вы отказываете сайту в праве удостовериться, что Вы — это Вы?

Когда пользователь этого хочет, он делает это. Но, когда он этого не хочет, а сайт лезет куда не надо. В лучшем случае, просто забить на такой сайт. В худшем, отбиваться всеми способами.

>>Ну так считайте, что Вас идентифицируют по умолчанию всегда и везде.

С чего это я должен так считать?! Ничего подобного.

>>«Тройка», также обладает уникальным номером, позволяющим отследить Ваши перемещения?

Не пользуюсь.

>>банк видит все ваши платежи, когда Вы расплачиваетесь картой?

Не расплачиваюсь картой, только наличка.

>>А тут тривиальный отпечаток браузера вызвал столько шуму внезапно.

Это вредит анонимности в сети. У пользователя должен быть выбор.
Банк делает мне предложение(оффер) — я пользуюсь его услугами, предоставляя информацию о себе, он со своей стороны подтверждает свою легитимность. В случае с любым сайтом, оффер — это логин. Если сайт не хочет, чтобы анонимные пользователи использовали доступную в интернете в открытом доступе информацию — она должна находится в личном разделе сайта, защищённом аутентификацией. Когда я пытаюсь попасть на эту страницу, сайт говорит мне — ты расскажи кто ты, мил человек, и тогда я тебя пущу, а иначе иди лесом. Это — оффер. А если сайт пускает меня к открытой информации, но при этом скрытно от меня проводит мою идентификацию — вне зависимости от целей — это не оффер, это слежка\шпионаж\мошенничество — называйте как хотите, но я должен быть поставлен в известность о том, что меня идентифицировали)
Пользователь тоже может мошенничать — регистрировать новую учётку для каждого посещения.

Вот вам список ситуаций, в которые может попасть совершенно законопослушный человек:


  • Импотенция для мужчины или фригидность для женщины
  • СПИД (совсем необязательно входить в группу риска, достаточно неудачного переливания крови)
  • Любая другая "позорная" болезнь: геморрой, простатит, недержание мочи
  • Жертва изнасилования
  • Нетрадиционная сексуальная ориентация
  • Психологические проблемы, требующие работы со специалистом
  • Серьёзный разлад в семье

Все эти люди обязаны ходить по улицам с приклеенным на груди плакатом, извещающем всех об их ситуации? Или всё-таки позводим им носить чёрные маски анонимности?

Уточните, пожалуйста, каким образом описанная в статье технология деанонимизирует перечисленные события?

Допустим, что некий гомосексуалист посещает тематический форум сексуальных меньшинств и общается там под никнеймом vasya1. Допустим, что движок этого форума использует описанную в статье библиотеку.

Что случится? Я вижу только одно: если этот человек зайдёт на этот же форум под никнеймом vasya2 — то администрация форума узнает, что это тот же человек, что и vasya1. Всё.

НИКАКОЙ дополнительной информации о пользователе, собрано не будет. Всё, что собирается — собирается штатными средствами, доступными и без технологии отпечатка.
НИКАКОЙ информации о том, какие ещё сайты посещает этот пользователь, собрано не будет.
НИКАКОГО дополнительного раскрытия информации также не произойдёт.

Зато я вижу целую кучу полезных применений. Например, борьба со спамерами, которые регистрируют сотнями поддельные аккаунты и с них спамят. То же самое с чёрными SEOшниками.
При этом: мне, как владельцу форума, не надо знать, как там этого спамера зовут и где он живёт. Мне достаточно, что он, будучи забанен под одним никнеймом, не сможет зайти и нагадить под другим.
Допустим, что некий гомосексуалист посещает тематический форум сексуальных меньшинств и общается там под никнеймом vasya1. Допустим, что движок этого форума использует описанную в статье библиотеку. Что случится?

На любом другом сайте можно будет встроить картинку с домена этого форума, чтобы однозначно привязать ничем не примечательного Василия Петровича к конкретному аккаунту на специфичном форуме.


Я не говорю, что все владельцы сайтов спят и видят как нагадить своим пользователям. Но если какая-то информация имеет ценность, то рано или поздно ей начнут торговать или обмениваться — разумеется, исключительно для улучшения точности таргетированной рекламы и с заботой о комфорте пользователя.


Да, эта технология может приносить и пользу тоже, но потенциальный вред так велик, что не идёт ни в какое сравнение. Это как например разрешить убивать людей, если они собираются более чем по двое во дворе вашего дома. Куча полезных применений: однозначно решит проблему с орущими посреди ночи пьяными компаниями.

На любом другом сайте можно будет встроить картинку с домена этого форума, чтобы однозначно привязать ничем не примечательного Василия Петровича к конкретному аккаунту на специфичном форуме.


Оп, а можно с этого места поподробнее? Возможно, я отстал от жизни и чего-то не понимаю в последних нововведениях.

Чем встраивание картинки владельцем сайта X с форума F (предположительно, это разные люди) будет отличаться в разрезе идентификации, если:
вариант 1: форум F использует технологию отпечатков браузера.
вариант 2: форум F не использует технологию отпечатков браузера.

Я невнимательно написал, извиняюсь. Всё сложнее конечно: форум F сможет отдавать сайту X идентификатор пользователя, как сейчас его могут отдавать например виджеты социальных сетей "авторизуйся у нас через фейсбук"(обычно с сголасия пользователя, но идея та же). То есть не пассивная картинка, а немного яваскрипта и обработчик со стороны форума F.


Кстати, если защита в форуме на продумана, то можно кстати и без ведома владельца форума вычислить: например, если ссылка на редактирование своего профиля фиксированная, не проверяет реферер, отдаётся через GET и не имеет защиты от CSRF, то можно её запросить и распарсить. Но это уже целевая атака на конкретный форум.

Ну хорошо, пусть даже форум дырявый и владельцу сайта X удалось вытащить идентификатор пользователя vasya1 и связать его с аккаунтом «Василий Петрович» на своём сайте. Это тривиальный cross-site scripting.

На следующий день Василий Петрович зашёл на форум под ником vasya2 и опять-таки владелец сайта X связал оба этих аккаунта. Таким образом, владелец сайта X может узнать о том, что vasya1@F и vasya2@F — это один и тот же человек.

Но причём тут браузерные отпечатки и тот факт, что где-то в базе юзеров форума F будет храниться информация о том, что vasya1 = vasya2? Если БД не утечёт — всё нормально; если утечёт — там, скорее всего, уже не до отпечатков будет.

Нет, на следующий день Василий Петрович закрыл окно с инкогнито режимом браузера, в котором открывал форум F, и из обычного браузера пошёл на другой совершенно сайт. А там скрипт рекламной сети, сотрудничающей с форумом F, распознал его профиль и предлагает ему купить всякие интересные игрушки для взрослых. И таким образом информация, которая по мнению Василия Петровича осталась в инкогнито режиме браузера, попала к третьим лицам.

Ответ принимаю, спасибо.
Правда, это уже торговля чужими ПД получается, причём явно без согласия владельца ПД. Но в целом — да, такое возможно.

Если профиль выглядит как { "name": "vasya1", "interests": ["homo_sex", "animal_sex", "submission_sex", "copro_sex"] } — то это по-моему даже персональными данными не будет считаться, пока не будет содержать однозначной привязки к конкретному человеку.


Уже сейчас практически любой сайт передает в Google Analytics и Яндекс.Метрику как минимум данные о том, в какое время с какого IP на какие страницы я заходил. Никаких проблем с ПД у них не возникает.


Но если сейчас я хотя бы могу разлогинится из своих аккаунтов, заблокировать их с помощью Ghostery и Disconnect.me, открыть инкогнито-режим наконец — то когда они внедрят(если уже не внедрили) такую технологию — у меня, как у простого пользователя, не остаётся возможности не делиться с ними своей историей посещения сайтов, интересами, местоположением, режимом дня.


Вобщем, на мой взгляд с приватностью всё очень печально и будет ещё хуже.

Можно пользоваться разными браузерами для разных целей. А один из них можно запускать из виртуалки.

fingerprintjs может увидеть браузеры с одного компьютера как один аккаунт. Все браузеры на виртуалках на том же компьютере скорее всего увидит как другой аккаунт. Пользы мало — удобство работы серьёзно снижается, надо постоянно дёргаться что откуда открывать, легко перепутать, а разбиение своего виртаульного профиля на 2 или 3 почти ничего не даёт — статистики накапливается достаточно в обоих кусках профиля.


Нет, должны предприниматься другие меры: ограниченный список шрифтов в браузере, кроме сайтов-исключений; запрет canvas, кроме опять же явных исключений; возможно ещё какие-то техники, причём всё это должно идти в браузерах из коробки

fingerprintjs может увидеть браузеры с одного компьютера как один аккаунт.
Конкретно fingerprintjs у меня выдаёт разный хеш на трёх браузерах (IE, Chrome, Firefox). И неудивительно, User-Agent же включен в хеш.
Для проверки взял только хеш от canvas, без каких-либо других параметров.
На одной машине в chrome, IE, firefox он различается.

В IE различается на разных машинах.
В Firefox одинаковый для одинаковой версии браузера для разных машин.
Chrome на второй машине не оказалось, чтобы проверить.

Там можно указывать, что именно включать в хэш. Но да, почти все входные данные являются параметрами броузера, та что непонятно как идентифицировать машину а не броузер.

fingerprintjs или fingerprintjs2? Про второй в статье вроде писали, что там фуззи-хеш и одним юзер агентом не обойдёшься. Ну и опять же, ну будет у пользователя не один сетевой профиль, а два. Невелика разница.

Спасибо за публикацию, разработка действительно интересная и полезная. И я бы не сказал, что она однозначно вредна. Как и с большинством вещей в этом мире, её можно употребить во зло, а можно на вполне адекватные цели.

Мне доводилось писать подобное, и вовсе не с целью слежки за пользователями. Слежка плоха, когда она касается посторонней деятельности пользователя (скажем, если я внедрю юзеру троян и буду следить, что он делает — это нехорошо), а вот если речь идёт об идентификации пользователя на моём сайте — я считаю, что я имею право знать, тот ли это Вася Пупкин, или не тот.
Опять же, никто не заглядывает Васе в карман, не считает деньги на его банковской карточке, не выясняет ФИО и место жительства. А идентифицировать юзера на собственном сайте, я считаю, владелец сайта имеет полное право. Кому не нравится — может идти на другие.
>>Кому не нравится

Кому не нравится, блокируют все эти следящие трекинги.
Мысль хорошая. Пожалуй, я закрою доступ на свои проекты людям с установленным флажком DoNotTrack. Как закрыл доступ с выходных нод Tor-а (ничего хорошего, как показала практика, оттуда не приходит).

Всё честно. Если человек придёт в банк и откажется предъявить паспорт — его вежливо попросят удалиться. Я расцениваю заявления Do not track примерно так же.
DoNotTrack не даёт никаких гарантий. Это просто, как высказать своё мнение. Многие сайты даже не в курсе о существовании DoNotTrack, а чтобы ещё и учитывали — единицы.

Блокировка происходит более действенными способами. Спец плагины в браузерах, со стороны системы, роутера и т.д. Чтобы наверняка.

Кстати, с таким подходом, что будете делать, когда всех забаните? ;)
> Как закрыл доступ с выходных нод Tor-а (ничего хорошего, как показала практика, оттуда не приходит).

Странная у вас практика. Некоторые сайты так вообще открывают своё представительство в Tor.
Зависит от специфики сайта. Для какой-нибудь платёжной сисемы соотношение попыток фрода через Тор к полезному трафику может быть так уныло, что проще закрыть.
А потом мы ещё удивляемся, почему это браузеры лагают и по ГБ ОЗУ кушают. Вот открываешь такой сайтик, а он начинает 1700 шрифтов тестировать (это же их нужно загружать с диска, рисовать и т.д.). Ну и остальное в том же духе. Ауж на телефонах то это как приятно или на ноутах. Я конечно понимаю желание трекинга, но честно, не нужно вести себя по скотски. Если человек уже специально ставит donottrack, то он явно намекает что своё нежелание быть отслеженным.
Использует ли эту разработку Яндекс и Google?
Гугл начал блокировать рекламу в Адвордс для сайтов, где используется fingerprint.
На скрине, modulestat вызывает все остальные скрипты, включая FP.
image

Вы уверены, что Google блокирует именно fingerprint? Вы уверены в том, что этот nicetraffic не подмешивает ничего лишнего в js который вы подключаете на своем сайте?
Меня например сильно смущает домен вида www.static.nicetraffic.ru и смущает то, что я не могу посмотреть содержимое подключаемых скриптов https://www.static.nicetraffic.ru/fingerprintjs2/fingerprintjs2.js

Nicetraffic.ru — это наш сервис статистики. Он на 100% нам подконтрольный.
На сайтах мы вставляли следующий код:
<script type="text/javascript" src="https://www.static.nicetraffic.ru/js/modulestat.min.js" async="async"></script>

Через modulestat.min.js (сейчас он переименован в modulestat2.min.js, чтобы разом «отключить» от всех сайтов, где установлен) подгружались остальные скрипты.
В Вашей ссылке присутствуют опечатки. Остальные скрипты в письме все доступны:
www.static.nicetraffic.ru/fingerprintjs2/fingerprint2.js
www.nicetraffic.ru/api/site-data
www.static.nicetraffic.ru/js/jquery.ck.js
Мы снимали отпечаток и передавали его на сервер, где он записывался в БД.
Других причин, кроме как борьба с отпечатками — я не вижу.
К тому же, видел, что отпечатки блокирует и Адблок: github.com/Valve/fingerprintjs2/issues/258

Спасибо за разъяснение. Мы пользуемся fingerprint и пока без проблем. Будем мониторить ситуацию.


Попробуйте минифицировать js и добавить его к другим скриптам таким как modulestat2.min.js и jquery.ck.js.

Самое забавное, что в Google Search Console добавлен nicetraffic, и там нет ни предупреждений безопасности, ни каких-то мер принятых вручную.
А отклонение последовало именно в Адвордс.
Интереса ради, создайте какое-нибудь объявление в Адвордс, направив его на страницу, где идет съем отпечатка. Будет ли объявление отклонено с формулировкой «Вредоносное ПО»?..

Мы не пользуемся Адвордс

После двухнедельной переписки с поддержкой Адворс, предоставлением скринов из Search Console об отсутствии санкций, репортов от Доктора Веба, Касперского и stopbadware.org (рекомендуемый Google Adwords в разделе справки), инженеры (не модераторы) Гугл Адвордс, признали, что скрипт не является вредоносным.
Алилуйя.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Информация

Дата основания
Местоположение
Россия
Сайт
www.ontico.ru
Численность
11–30 человек
Дата регистрации

Блог на Хабре