domingo, 28 de diciembre de 2014

Creación de la armería USB

En esta charla Andrea Barisani, de Inverse path, nos explica la creación de su proyecto llamado "USB armoury", que ya está disponible en preventa de crowdsupply (en la presentación del congreso todavía no había alcanzado el objetivo de 65k$).
El equipo es un dispositivo USB, de un tamaño parecido a una memoria USB (más bien como un modem USB), pero que contiene un procesador ARM, 512 MB de RAM y una ranura para micro SD.
Se seleccionó el chip freescale iMX53 porque tenía una CPU potente y estaba bien documentado sin necesidad de NDA, de modo que pueda ser un ejemplo de hardware abierto.
Parte del diseño era usar la funcionalidad "TrustZone" que permite separar el sistema operativo normal de la parte segura, de modo que un virus no pueda acceder a las claves secretas, el proyecto está pensado para aplicaciones de seguridad (y eso se refleja en un coste de $140).
El proyecto ha llevado más o menos un año, desde principios de 2014 en que tuvieron el esbozo del primer proyecto hasta finales de 2014 que han llegado al prototipo MK1, que será el dispositivo final que se venda en marzo.
Además de funcionar emulando dispositivos USB (p.e. puede emular ser una tarjeta Ethernet y detrás de la tarjeta aparecería el ordenador virtualmente), también puede funcionar en modo de Host, aunque requiere un adaptador especial que lo alimente.Dentro de los no pocos problemas que han tenido al diseñar el hardware, han señalado los dos más complejos de realizar:
  • El chipset es muy pequeño e intentaron hacer una placa a mano para la alfa, pero no fue posible porque las tolerancias no se podían cumplir en un proyecto realizado a mano.
  • Usaron KeyCAD para diseñar el chipset, aunque fue algo muy delicado que costó mucho trabajo, por ejemplo en conseguir que todas las pistas son de la misma longitud.
Cuando ya les llegó la versión alfa de la tarjeta, funcionó a la primera, por suerte. La versión alfa tenía además de todo el hardware objetivo, un conector Jtag para depurar en los puntos necesarios, si hiciese falta.
Han señalado dos lecciones aprendidas:
  1. Los inductores pequeños son frágiles. Se rompieron de sólo apoyarlos en la mesa, por lo que tuvieron que cambiar de modelo para la versión definitiva.
  2. Las trazas dejadas por el recubrimiento de oro del primer fabricante les causó un problema misterioso: un retardo de cinco segundos antes de arrancar. Resultó ser la protección estándar de USB cuando se detecta un voltaje bajo, causado porque había unos residuos de traza que hacían contacto primero pero no conducian bien antes de hacer contacto definitivo al meterlo y sacarlo. al final lo evitaron con un proceso que deja un pequeño agujero en la parte exterior de la pista, la que hace contacto más tarde.

No hay comentarios:

Publicar un comentario