Snowflake en acción

Operación de proxies snowflake con la versión standalone en números

Bits diarios de entropía del protocolo de valor aleatorio compartido de la red Tor. Código desarrollado por Alexander Færøy

Los puentes o proxies Snowflake permiten conectarse a la red Tor cuando está bloqueada. Este tipo de puente se suma a las alternativas y esfuerzos anticensura de los Transportes Intercambiables o Pluggable Transports (PTs) como obfs4 y meek-azure.

Los proxies Snowflake son operados por voluntarias y voluntarios alrededor del mundo, como pasa con los otros tipos de nodos de la red Tor.

Hay tres métodos con los que se puede participar de la operación de los proxies snowflake: extensión en navegador, en un navegador donde WebRTC está habilitado y por medio de la versión standalone.

La versión standalone o versión independiente permite la instalación de servidores que funcionen como proxies snowflake.

A continuación se da cuenta de los datos estadísticos relativos al consumo de uso de recursos de hardware y ancho de banda, para cuatro proxies snowflake.

Características de hardware y software

Para la operación de los proxies snowflake se instalaron 4 máquinas virtuales con paravirtualización Xen y con el sistema operativo Debian 10. El despliegue fue realizado con el ansible role de snowflake.

NombreHardware
snow1Memoria ram: 3072 MiB
Procesador: 2 núcleos
Disco duro: 10 GiB
snow2Memoria ram: 1024 MiB
Procesador: 1 núcleo
Disco duro: 10 GiB
snow3Memoria ram: 512 MiB
Nucleo: 1 núcleo
Disco duro: 10 GiB
snow4Memoria ram: 512 MiB
Nucleo: 1 núcleo
Disco duro: 10 GiB

Resultados en ancho de banda

Como resultado del cálculo y registro con vnstat tuvimos los siguientes resultados, para el mes de mayo y junio.

NombreMensualTotalVelocidad promedio
snow1Mayo – 23.61 GiB
Junio – 13.92 GiB
48.84 GiBMayo – 75.73 kbit/s
Junio – 72.90 kbit/s
snow2Mayo – 22.19 GiB
Junio – 10.51 GiB
36.73 GiBMayo – 71.15 kbit/s
Junio – 55.06 kbit/s
snow3Mayo – 20.49 GiB
Junio – 6.48 GiB
31.21 GiBMayo – 65.71 kbit/s
Junio – 33.96 kbit/s
snow4Mayo – 15.52 GiB
Junio – 8.44 GiB
28.00 GiBMayo – 49.76 kbit/s
Junio – 44.21 kbit/s

Como se puede identificar en las características de hardware hay diferencias en cuanto a núcleos de procesamiento y memoria ram. Ya que se tenía la intensión de estudiar el desempeño y rendimiento de acuerdo a diferentes escenarios. Para con ello documentar cuál hardware puede ser más útil para la operación de los proxies y caracterizar el funcionamiento del software sobre su desempeño y rendimiento.

Para obtener pistas sobre el desempeño del software snowflake y su relación con los 4 escenarios, snow 1, 2, 3 y 4, incorporamos al análisis los detalles de uso de CPU y carga del sistema durante 12 horas de operación continua.

Carga del sistema

snow 1 – load
snow 2 – load
snow 3 – load
snow 4 – load

Uso de CPU

snow 1 – cpu
snow 2 – cpu
snow 3 – cpu
snow 4 – cpu

Uso de Memoria ram

snow 1 – memoria ram
snow 2 – memoria ram
snow 3 – memoria ram
snow 4 – memoria ram

Resultados

Encontramos que snow2 es la máquina virtual que más utiliza los recursos disponibles de hardware y se encuentra en el segundo lugar de consumo de ancho de banda con 36.73 GiB, después de snow1 con 48.84 GiB.

Si bien hay diferencias considerables de la configuración de hardware entre snow 1 y 2, ya que snow1 tiene 3G de ram y 2 cores frente a 1G y 1 core de snow2, destaca la relación de consumo de CPU. El primero se encuentra a un 20% contra el segundo que se encuentra a 70%.

Uso promedio de CPU

  • snow1 utiliza en promedio el 20% de CPU
  • snow2 utiliza en promedio el 70% de CPU
  • snow3 utiliza en promedio el 20% de CPU
  • snow4 utiliza en promedio el 20% de CPU

Uso promedio de memoria ram

  • El uso de memoria ram de snow1 es de 538 MiB, en cache 1.3GiB y disponible 1.1 GiB
  • El uso de memoria ram de snow2 es de 473 MiB, en cache 242MiB y disponible 276 MiB
  • El uso de memoria ram de snow3 es de 364 MiB, en cache 95MiB y disponible 28MiB
  • El uso de memoria ram de snow4 es de 423 MiB, en cache 39MiB y disponible 16MiB

Preliminarmente se identifica que la configuración de hardware de snow 2 es la que mejores resultados tiene con relación a su desempeño y rendimiento. Entrega la mayor cantidad de ancho de banda en el menor hardware (Núcleos de procesamiento y memoria ram)

Por lo que el escenario de hardware de snow2 resulta buen candidato para realizar análisis adicionales futuros, con escenarios intermediarios entre snow 2 y 1. Para identificar que características de hardware son más ideales de acuerdo a su desempeño y rendimiento. Así como también una comprensión y caracterización de la carga de trabajo del software snowflake.

Los resultados estadísticos se compartieron con el equipo anti-censura del proyecto Tor, el grupo de personas que se enfoca en hacer que Tor sea accesible en cualquier parte del mundo, quienes desarrollan el software snowflake. Al interior del equipo el desarrollador meskio destacó como un aspecto relevante de análisis la memoria ram de snow2.

Referencias

Hashvis, A Rust application for deterministic generation of images

Snowflake in action, raw metrics