Os desenvolvedores da biblioteca fingerprintjs, que xera identificadores de navegadores de forma pasiva baseándose en características indirectas como a resolución da pantalla, as funcionalidades de WebGL e as listas de complementos e fontes instalados, presentaron un novo método de identificación baseado nunha avaliación das aplicacións instaladas polo usuario e na comprobación da compatibilidade do navegador con xestores de protocolos adicionais. O script que implementa o método está publicado baixo a licenza MIT.
A comprobación baséase nunha análise das vinculacións de xestores a 32 aplicacións populares. Por exemplo, ao detectar a presenza de xestores para os esquemas de URL telegram://, slack:// e skype:// nun navegador, pódese inferir a presenza de aplicacións Telegram, Slack e Skype no sistema e usar esta información como indicador ao xerar un identificador do sistema. Dado que a lista de xestores é a mesma para todos os navegadores do sistema, o identificador non cambia ao cambiar de navegador e pódese usar en Chrome, Firefox, Safari, Brave, Yandex Browser, Edge e mesmo Tor Browser.
Este método xera identificadores de 32 bits, o que significa que non consegue unha alta precisión por si só, pero pódese usar como unha característica adicional en combinación con outros parámetros. Un inconveniente significativo deste método é a visibilidade do usuario do intento de identificación: ao xerar un identificador na páxina de demostración proporcionada, ábrese unha xanela pequena pero claramente visible na esquina inferior dereita, onde os xestores percorren o proceso durante un tempo considerable. Este inconveniente non se produce no navegador Tor, onde o identificador pódese calcular sen ser detectado.
Para determinar a presenza dunha aplicación, o script tenta abrir unha ligazón asociada a un xestor externo nunha xanela emerxente. O navegador mostra entón unha caixa de diálogo que lle solicita ao usuario que abra o contido na aplicación asociada se a aplicación que se está a comprobar está presente, ou mostra unha páxina de erro se a aplicación non está presente. Ao probar secuencialmente xestores externos típicos e analizar o erro devolto, é posible determinar se os programas que se están a comprobar están presentes no sistema.
En Chrome 90 para Linux O método non funcionou e o navegador mostrou un diálogo estándar para confirmar a operación (en Chrome para todos os intentos de comprobar o controlador) Windows и macOS o método funciona). En Firefox 88 para LinuxTanto no modo normal como no de incógnito, o script identificou a presenza de aplicacións adicionais instaladas na lista, cunha precisión de identificación do 99.87 % (35 coincidencias de 26 000 probas). Ao executar o navegador Tor no mesmo sistema, xerou un identificador que coincidía coa proba de Firefox.
Curiosamente, a protección adicional no navegador Tor tivo un efecto contraproducente, o que permitiu a identificación sen o coñecemento do usuario. Ao desactivar os diálogos de confirmación para os xestores externos no navegador Tor, as solicitudes de verificación podíanse abrir nun iframe en lugar dunha xanela emerxente (as regras da mesma orixe bloquean o acceso ás páxinas de erro e permiten o acceso ás páxinas about:blank para distinguir entre a presenza e a ausencia de xestores). Debido á protección contra inundacións, a verificación no navegador Tor leva moito máis tempo (10 segundos por aplicación).
Fonte: opennet.ru
