Privaxy, un proxy de bloqueo de anuncios
Hoy en día una de las principales preocupaciones de los usuarios en la red es el tema relacionado con la privacidad de su información y ante ello existen una gran cantidad de soluciones que van desde las implementadas por los propios navegadores web, hasta opciones como usar aplicaciones de terceros entre otras cosas.
El día de hoy hablaremos sobre Privaxy el cual es un proxy de bloqueo de anuncios y un código de seguimiento entre sitios.
Privaxy recientemente se actualizo a su versión 0.5 y puedo mencionar que es un proxy MITM HTTP(s) que se encuentra entre las aplicaciones de conversación HTTP(s), como un navegador web y los servidores HTTP, como los sitios web de servicio. Al establecer un túnel bidireccional entre ambos extremos, Privaxy puede bloquear solicitudes de red basadas en patrones de URL e inyectar scripts y estilos en documentos HTML.
Operando a un nivel más bajo, Privaxy es más eficiente y más optimizado que los bloqueadores basados en complementos del navegador. Una sola instancia de Privaxy en una pequeña máquina virtual, servidor o incluso, en la misma computadora desde la que se origina el tráfico, puede filtrar miles de solicitudes por segundo y requiere una cantidad muy pequeña de memoria.
La implementación del bloqueador es en forma de un servidor proxy separado que permite usarlo como una solución universal que le permite al usuario filtrar solicitudes no solo de los navegadores web. El proxy también es independiente de las restricciones del navegador, como las impuestas por la tercera versión del manifiesto de Chrome, y proporciona un mejor rendimiento y menores requisitos de recursos.
Por ejemplo, al cargar 320 mil filtros, el consumo de memoria es de 50 MB y es posible filtrar miles de solicitudes por segundo.
La forma en que funciona Privaxy es implementar un filtro intermedio entre el usuario y los sitios, utilizando la suplantación de identidad del certificado TLS para interceptar el contenido de las sesiones HTTPS cifradas y ocultar la advertencia MITM.
Privaxy genera su propio certificado, que el usuario instala en el almacén de certificados de su sistema (/usr/local/share/ca-certificates/) y prescribe el funcionamiento de las aplicaciones a través del proxy localhost:8100. Se proporcionan dos opciones de compilación: una utilidad de consola y una interfaz gráfica que le permite administrar la configuración, realizar un seguimiento visual de la actividad actual y ver las estadísticas de bloqueo.
Cuando se recibe una solicitud HTTPS de un usuario, Privaxy establece una conexión TLS con el servidor de destino en su propio nombre y obtiene su certificado, después de lo cual utiliza el nombre de host del certificado real recibido del servidor y crea un certificado ficticio vinculado por un cadena de confianza al certificado raíz generado para el usuario.
Usando un certificado ficticio, el proxy se hace pasar por el servidor solicitado cuando se comunica con el cliente, mientras continúa usando la conexión TLS establecida con el servidor de destino para recibir datos. Para hosts y dominios seleccionados, es posible deshabilitar el reenvío utilizando la técnica MITM.
Además de eliminar los anuncios en función de las máscaras de URL, Privaxy también ofrece la posibilidad de insertar código JavaScript y estilos CSS en documentos HTML renderizados.
Se admiten filtros compatibles con Adblock Plus, como Easylist . La sustitución de contenido admite la sintaxis de uBlock Origin para secuencias de comandos, controladores y redireccionamientos, así como su propia sintaxis para configurar filtros personalizados arbitrarios. Las listas externas conectadas con filtros se actualizan automáticamente.
De las características que se destacan de Privaxy:
- Soporte para filtros Adblock Plus, como easylist
- Interfaz gráfica de usuario web con una pantalla de estadísticas, así como un explorador de solicitudes en vivo.
- Soporte para la sintaxis de origen de uBlock js.
- Soporte para la sintaxis de origen de uBlock redirect.
- Soporte para scriptlets de uBlock origin.
- Independiente del navegador y del cliente HTTP.
- Soporte para filtros personalizados.
- Compatibilidad con la exclusión de hosts de la canalización de MITM.
- Compatibilidad con actualizaciones de protocolo, como con websockets.
- Actualizaciones automáticas de listas de filtros.
- Muy bajo consumo de recursos.
- Alrededor de 50 MB de memoria con aproximadamente 320 000 filtros habilitados.
- Capaz de filtrar miles de solicitudes por segundo en una máquina pequeña.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
El código del proyecto está escrito en Rust y se distribuye bajo la licencia AGPLv3 y se brindan compilaciones preparadas para Linux (AppImage, deb), Windows y macOS.