Как обойти идентификацию через Canvas Fingerprinting?

Все вопросы касающиеся использования
программы можно задать здесь
bok2007
Сообщения: 32
Зарегистрирован: 22 июн 2010, 18:05

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bok2007 » 11 апр 2017, 13:19

Стоит версия 4.10.9 (настройки http://joxi.ru/Y2LpLPRF9blpY2). Захожу на https://browserleaks.com/canvas выдает 6640BD9D, потом выполняю код:


$browser->set_screen_resolution(2560,1440,24);
$browser->set_language("en-US");
$browser->set_canvas_toDataURL("data : ".$submitter->generate_random_text(10,1));
$browser->enable_fonts(false);
$browser->set_plugins_info("[{name:'Shockwave Flash', description : 'Shockwave Flash 24.0 r0', filename : 'Flash.ocx', version : '24.0.0.194' },{ name:'name2', description : 'desc2', filename : 'filename2' }]");

$browser->navigate("https://browserleaks.com/canvas");

Но Signature остается тем же 6640BD9D.

Под Фаерфокс есть плагин Canvas Defender который умеет рандомно менять этот параметр. На Хумане никак не могу добиться изменений... :(

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bigfozzy » 11 апр 2017, 17:23

В папке Test Samples есть пример :

Код: Выделить всё

<?php

// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
  $path="../../../Templates/xweb_human_emulator.php";
require($path);

// начало
echo "<hr><font color=blue>browser->".basename (__FILE__)."</font><hr>";

// 10 случаных canvas finger print
for ($i=0;$i<10;$i++)
{
	// 1 
	echo "1. Зададим информацию о экранном сенсоре : ";
	echo $browser->set_canvas_toDataURL("data : ".$submitter->generate_random_text(10,1))."<br>";;

	// 2 
	echo "2. Перейдем на страницу для детектирвоания браузера : ";
	echo $browser->navigate("panopticlick.eff.org/results?&t=111&dnt=111&a=111#fingerprintTable")."<br>";
	$anchor->click_by_name("showFingerprintLink2");
	sleep(1);
	$td->get_by_inner_text("Hash of canvas fingerprint",false)->focus();
	sleep(7);
	$browser->navigate("about:blank");
}

// 3
echo "3. Зададим информацию о экранном сенсоре по умолчанию: ";
echo $browser->set_canvas_toDataURL()."<br>";

// 4 
echo "4. Перейдем на страницу для детектирвоания браузера : ";
echo $browser->navigate("panopticlick.eff.org/results?&t=111&dnt=111&a=111#fingerprintTable")."<br>";
$anchor->click_by_name("showFingerprintLink2");
sleep(1);
$td->get_by_inner_text("Hash of canvas fingerprint",false)->focus();

// конец
echo "<hr><br>";

// Quit
$app->quit();
?>
По https://browserleaks.com/canvas посмотрим тоже

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bigfozzy » 11 апр 2017, 17:34

там по другому просто считается этот код - https://browserleaks.com/js/canvas.js- нужно переопределить соответсвующую функцию, сделаем в следующей версии

Аватара пользователя
sashawww
Сообщения: 54
Зарегистрирован: 15 дек 2009, 03:26

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение sashawww » 14 апр 2017, 14:56

И добавьте ещё функцию $browser->set_fonts();
Чтобы можно было вызвать $browser->set_fonts(['Arial','Tahoma','Verdana','Lucida Console','Courier New']);

Аватара пользователя
huligun
Сообщения: 92
Зарегистрирован: 01 окт 2010, 19:13

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение huligun » 11 май 2017, 21:54

$browser->enable_fonts();
https://browserleaks.com/fonts
true - один номер
false - второй номер
Но больше они не меняются, все шрифты читаются

$browser->enable_activex();
https://whoer.net/#extended
false/true в обоих случаях включен

$browser->set_time_zone();
https://whoer.net/#extended
Показывает реальное время системы

$browser->enable_directx();
$browser->enable_gpu_rendering();
https://browserleaks.com/webgl
false/true в обоих случаях значения одинаковые WebGL Report Hash и WebGL Image Hash

$browser->enable_sounds();
$browser->enable_video();
http://detectmybrowser.com/
false/true в обоих случаях показываются реальные форматы поигрываемые для видео аудио

$browser->clear_cash();
$browser->clear_cookies("",true);
$browser->clear_history();
$browser->clear_address_bar_history();
$browser->flash_cookies_delete();
http://samy.pl/evercookie/ не трет их
http://ip-check.info тоже самое, ставит сигнатуру и не трет

$browser->set_plugins_info("[
{name:'Shockwave Flash', description : 'Shockwave Flash 24.0 r0', filename : 'NPSWF32_25_0_0_171.dll', version : 'WIN 25.0.0.171' },
{ name:'Silverlight', description : 'Silverlight 5.1.41212.0', filename : 'SilverLight.ocx' }
]");
http://www.pinlady.net/PluginDetect/All/
Как показывало все плагины так и показывает даже версии не меняет.
Последний раз редактировалось huligun 11 май 2017, 23:36, всего редактировалось 1 раз.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bigfozzy » 11 май 2017, 22:43

По
$browser->enable_activex();
https://whoer.net/#extended
false/true в обоих случаях включен
whoer - Неверно показывает информацию о том что активикс включен.
Проверьте пример :

Код: Выделить всё

<?phpобъект для управления эмулятором, если еще не подключен
if (!isset($path))
  $path="../../../Templates/xweb_human_emulator.php";
require($path);

// начало
echo "<hr><font color=blue>browser->".basename (__FILE__)."</font><hr>";

// 1 
echo "1. Разрешим ActiveX : ";
echo $browser->enable_activex(true)." ";
echo $browser->is_enable_activex()."\n";

// 2 
echo "2. Перейдем на страницу с активиксами : ";
echo $browser->navigate("http://www.youtube.com")."<br>";

// 3 
echo "3. Запретим ActiveX : ";
echo $browser->enable_activex(false)." ";
echo $browser->is_enable_activex()."\n";

// 4 
echo "4. Перейдем на страницу с активиксами : ";
echo $browser->navigate("http://www.anidub.com")."<br>";

// конец
echo "<hr><br>";

// Quit
$app->quit();
?>
работа самих активикс блокируется корректно.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bigfozzy » 11 май 2017, 22:46

$browser->enable_sounds();
$browser->enable_video();
http://detectmybrowser.com/
false/true в обоих случаях показываются реальные форматы поигрываемые для видео аудио
звуки и видео команды отключают, а за информацию о доступных форматах отвечают функции HTML5 - их можно поменять через set_init_java_script

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bigfozzy » 11 май 2017, 22:48

$browser->set_time_zone();
https://whoer.net/#extended
Показывает реальное время системы
функция меняет только информацуию о часовом поясе - время она не трогает

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bigfozzy » 11 май 2017, 22:49

$browser->enable_directx();
$browser->enable_gpu_rendering();
https://browserleaks.com/webgl
false/true в обоих случаях значения одинаковые WebGL Report Hash и WebGL Image Hash
Можно решить так :

// 1
echo "1. Включить слежение за http : ";
echo $raw->enable_all_streams(true)."<br>";

// 2
echo "2. Очистим массивы запрещенных урлов : ";
echo $raw->clear_disabled_response_urls_array()."\n";

// 3
echo "3. Добавим запрет на отгрузку : ";
echo $raw->add_disabled_response_url("canvas.js")."\n";

// 4
echo "4. Перейдем на проверку canvas finger print : ";
echo $browser->navigate("https://browserleaks.com/canvas")."\n";

После этого механизм определения будет совсем заблокирован

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bigfozzy » 11 май 2017, 22:52

$browser->enable_fonts();
https://browserleaks.com/fonts
true - один номер
false - второй номер
Но больше они не меняются, все шрифты читаются
эта функция просто отключает шрифты и включает - при отключении у всех будет одинаковый ай-ди и на отпечаток это уже не тянет, хотя будем еще в направлении шрифтов работать и вообще в направлениии отпечатков

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bigfozzy » 11 май 2017, 22:54

$browser->clear_cash();
$browser->clear_cookies("",true);
$browser->clear_history();
$browser->clear_address_bar_history();
$browser->flash_cookies_delete();
http://samy.pl/evercookie/ не трет их
http://ip-check.info тоже самое, ставит сигнатуру и не трет
Это проверим и вообще все другое что было в последнем посте от вас и создадим если нужно новые возможности.
Спасибо.

Пока рекомендуем использовать set_init_java_script и raw.

Аватара пользователя
huligun
Сообщения: 92
Зарегистрирован: 01 окт 2010, 19:13

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение huligun » 11 май 2017, 23:39

Добавил в первый пост, но ма ло ли не заметите, так продублирую
$browser->set_plugins_info("[
{name:'Shockwave Flash', description : 'Shockwave Flash 24.0 r0', filename : 'NPSWF32_25_0_0_171.dll', version : 'WIN 25.0.0.171' },
{ name:'Silverlight', description : 'Silverlight 5.1.41212.0', filename : 'SilverLight.ocx' }
]");
http://www.pinlady.net/PluginDetect/All/
Как показывало все плагины так и показывает даже версии не меняет.

Аватара пользователя
huligun
Сообщения: 92
Зарегистрирован: 01 окт 2010, 19:13

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение huligun » 11 май 2017, 23:45

bigfozzy писал(а):По
$browser->enable_activex();
https://whoer.net/#extended
false/true в обоих случаях включен
whoer - Неверно показывает информацию о том что активикс включен.
Проверьте пример :

Код: Выделить всё

<?phpобъект для управления эмулятором, если еще не подключен
if (!isset($path))
  $path="../../../Templates/xweb_human_emulator.php";
require($path);

// начало
echo "<hr><font color=blue>browser->".basename (__FILE__)."</font><hr>";

// 1 
echo "1. Разрешим ActiveX : ";
echo $browser->enable_activex(true)." ";
echo $browser->is_enable_activex()."\n";

// 2 
echo "2. Перейдем на страницу с активиксами : ";
echo $browser->navigate("http://www.youtube.com")."<br>";

// 3 
echo "3. Запретим ActiveX : ";
echo $browser->enable_activex(false)." ";
echo $browser->is_enable_activex()."\n";

// 4 
echo "4. Перейдем на страницу с активиксами : ";
echo $browser->navigate("http://www.anidub.com")."<br>";

// конец
echo "<hr><br>";

// Quit
$app->quit();
?>
работа самих активикс блокируется корректно.
А что там должно быть заблокировано, страница http://www.anidub.com работает как при true так и false
А по сути только одной этой проверкой можно забанить хуман и все танцы с юзерагентами уже не нужны

Аватара пользователя
huligun
Сообщения: 92
Зарегистрирован: 01 окт 2010, 19:13

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение huligun » 11 май 2017, 23:54

bigfozzy писал(а):
$browser->enable_directx();
$browser->enable_gpu_rendering();
https://browserleaks.com/webgl
false/true в обоих случаях значения одинаковые WebGL Report Hash и WebGL Image Hash
Можно решить так :

// 1
echo "1. Включить слежение за http : ";
echo $raw->enable_all_streams(true)."<br>";

// 2
echo "2. Очистим массивы запрещенных урлов : ";
echo $raw->clear_disabled_response_urls_array()."\n";

// 3
echo "3. Добавим запрет на отгрузку : ";
echo $raw->add_disabled_response_url("canvas.js")."\n";

// 4
echo "4. Перейдем на проверку canvas finger print : ";
echo $browser->navigate("https://browserleaks.com/canvas")."\n";

После этого механизм определения будет совсем заблокирован
Можно и javascript запретить, ))) задача же эмулировать среднестатистического УНИКАЛЬНОГО юзера у которого все эти функции открыты.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как обойти идентификацию через Canvas Fingerprinting?

Сообщение bigfozzy » 12 май 2017, 00:28

А что там должно быть заблокировано, страница http://www.anidub.com работает как при true так и false
А по сути только одной этой проверкой можно забанить хуман и все танцы с юзерагентами уже не нужны
По анидабу - плохой примео - там уже нет ActiveX - вот страничка - пощелкайте на картинках с включенной и выключенной опцией :

http://www.adobe.com/devnet/flash/artic ... flash.html

Ответить