Parte 1
Motivación:
Hace un tiempo vengo desarrollando algunos proyectos de ciberseguridad basados en dispositivos portátiles que gestionan tráfico WiFi. Para las primeras etapas o PoCs de cada proyecto utilicé máquinas virtuales y dongles USB WiFi. Pero luego de las pruebas en VMs quise probar los dispositivos en el mundo real.
Para construir los prototipos, pasé bastante tiempo buscando placas de desarrollo que puedan ser parecidas al dispositivo final y que puedan ser utilizadas en el mundo real. Como no pude encontrar ningún dispositivo 100% adecuado, decidí construir mi propio prototipo de hardware basado en componentes comerciales. Para esto, sabía que iba a tener que sumergirme en el hardware, quitando y agregando componentes. Después de muchos años de haber cambiado el soldador por el teclado, mi toque con la soldadura quedó perdido en el tiempo. Y como sabía que necesitaba bastante trabajo de este tipo, le pedí a mi sobrino Juan Carlos que me ayudara. Juan es un verdadero experto en soldadura de piezas tan minúsculas que es imposible verlas a simple vista. Aceptó, así que comenzamos este proyecto juntos.
Mi principal objetivo fue el de construir un prototipo portátil para probar mis propios proyectos. Fue tanto trabajo y los problemas que tuvimos que resolver, que decidimos publicar este tutorial por si alguno de ustedes quisieran utilizarlo en cualquier otra aplicación que requiera un hardware similar.
Es muy importante aclararles que la construcción del dispositivo es 100% casera. Esto tiene la ventaja de que los costos son muy bajos pero la desventaja de que puede ser inestable y que haya que retocar soldaduras cada tanto. Habiendo hecho esta advertencia, comenzamos con el tutorial.
El dispositivo completo debía incluir una motherboard capaz de ejecutar Linux, con una CPU, una RAM, varios adaptadores WiFi, una pantalla táctil, un sistema de batería con posibilidad de carga y un botón de encendido/apagado.
El diagrama de bloques del dispositivo proyectado se puede ver en la siguiente figura:
Fig 1 – Diagrama en bloques del proyecto.
Las características mínimas del dispositivo son las siguientes:
– CPU basada en ARM.
– Capacidad para manejar dispositivos USB.
– 3 dispositivos WiFi.
– Una pantalla touch screen.
– Batería y cargador.
En mi caso particular, no necesitaba ninguno de los siguientes dispositivos:
– Adaptador ethernet.
– Cámara.
– Audio.
– Otros dispositivos USB.
Idea:
Para cumplir con los requisitos del prototipo, seleccionamos y compramos los siguientes componentes:
– 1 Raspberry Pi 3 B (U$S 36.00) .
– 1 microSD card, clase 10, 32 GB (U$S 6.00).
– 1 800×480 HDMI 5” Capacitive Touch Screen Display (U$S 45.00).
– 1 Batería y cargador de baterías, Geek worm UPS Hat Module para Raspberry Pi 3.7V, 2500 mAh (U$S 15.00).
– 2 Dongles Tenda USB WiFi W311M (U$S 8.00).
– 2 Conectores para cable plano de 0.5mm de separación (U$S 3.00).
– 1 FPV FPC cable plano de 0.5mm de separación, de 20 pines y de 5 cm de largo para HDMI (U$S 1.00).
El costo total de los materiales es de aproximadamente U$S 114.00
Como todos saben, las Raspberry PI son una de las placas SBC más populares del mundo. Se utilizan para muchos proyectos como prototipos e incluso de producción. Se pueden encontrar muy fácilmente en muchos comercios de electrónica y en infinidad de sitios online. También existen online un gran número de complementos, proyectos y tutoriales, por lo que es muy fácil crear nuevos basados en los están publicados. Esa es la razón principal por la que decidimos elegir Raspberry Pi como hardware central para nuestro proyecto.
Primeros Pasos:
Nuestro primer paso fue el de unir todas las partes y hacerlas funcionar. El objetivo fue el de comprobar que todo funciona y que la selección de las partes fue la correcta. Los componentes necesarios para el prototipo se muestran en las siguientes imágenes:
Fig 2 – Raspberry Pi 3 B
Fig 3 – TFT Touch Screen Display
Fig 4 – Geek worm UPS RPi Hat
Fig 5 – Adaptador Tenda WiFI USB.
En la siguiente figura, se muestran todos los componentes conectados y funcionando:
Fig 6 – Primer intento por conectar todo y hacerlo funcionar.
Esta disposición es adecuada para realizar pruebas en el laboratorio, pero no es posible transportar el dispositivo para pruebas de campo.
El segundo intento fue diseñar y construir una caja capaz de contener todos los elementos. El resultado se muestra en las siguiente imagen:
Fig 7 – Segundo intento para instalar todo en una caja
Gonzalo, quien me llevó al mundo de las impresoras 3D, diseñó, imprimió y armó este proyecto de gabinete que pudiera alojar todos los elementos del prototipo. El tamaño mínimo que pudimos alcanzar fue de 165mm x 95mm x 50mm (6 ½” x 3¾” x 2”). Este no es precisamente un tamaño de bolsillo o que sea muy portátil que digamos…. Es por esto que iniciamos con Juan el proyecto de reducción del hardware.
En las siguientes partes del tutorial muestran todos los pasos que llevamos adelante para lograr la reducción y la construcción de un prototipo como el que necesitábamos, que fuera realmente portátil.
Nota por Carlos Benitez y Juan Carlos Ferro