Tecnología y Stack
Listado de tecnologías, herramientas y componentes de software y hardware utilizados en tu Cuvex 1.0
Hemos recopilado información con todo lujo de detalle, ahondando en los principales aspectos que conforman este disruptivo dispositivo: características principales de los componentes, detalles sobre los flujos de software y apuntes importantes de la seguridad implantada.
​
En aras de ofrecer una total transparencia de la implementación de la solución, hemos incluido el identificador del fabricante de los componentes de hardware, esto te permitirá hacer tu propia investigación de cada uno de ellos.
​
En la siguiente imagen podemos observar el diagrama de alto nivel que conjunta los principales componentes de Hardware y Software, así como los componentes externos y actores que conforman el sistema.
![Component_diagram_cuvex.png](https://static.wixstatic.com/media/20363d_1c2dd19f77884e4f8c16e0d061fdcbf1~mv2.png/v1/crop/x_2,y_22,w_631,h_774/fill/w_339,h_416,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/Component_diagram_cuvex.png)
El corazón del sistema
Último modelo de la serie STM32 de STMicroelectronics, el STM32U585.
![micro.png](https://static.wixstatic.com/media/20363d_28fc59ebd3b4487291938f00bc3542da~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/micro.png)
Este microcontrolador está basado en la arquitectura ARM Cortex-M, con un diseño específico para cumplir con los mayores estándares de seguridad y enfocado en satisfacer las necesidades de las industrias de defensa y aeroespacial. Ofrece un rendimiento eficiente y un consumo de energía mínimo, entre sus principales características encontramos:
​
-
2 unidades de coprocesador AES.
-
Alta resistencia a técnicas de Análisis de Potencia Diferencial.
-
Acelerador de hardware HASH.
-
interfaces de entrada, salida y memoria aseguradas (Arm® TrustZone®).
-
Ruta de confianza gracias a la entrada de arranque única y al área de protección oculta segura (HDP).
-
Instalación segura de firmware (SFI) con los servicios seguros de raíz integrados (RSS).
-
Almacenamiento seguro de datos con clave única de hardware (HUK).
​
En resumen, este componente de uso militar se ha implantado a tu Cuvex para ofrecer las mayores capacidades del mercado en criptografia y seguridad informática. Esto dota a tu dispositivo de la capacidad de cifrado en frio y un manejo de datos altamente securizado.
Diseñado para no guardar datos en el dispositivo
Memoria protegida en su totalidad
![Memory_cuvex.png](https://static.wixstatic.com/media/20363d_69f3f76a5898433ea2cedfeafd7f2ab4~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Memory_cuvex.png)
Cuvex fue diseñado para nunca guardar datos en la memoria del dispositivo. Tu secreto más preciado únicamente pasa por el dispositivo temporalmente para ser procesado y convertido en un criptograma que luego será enviado a una tarjeta vía NFC. En cuanto termina de realizar cualquier proceso, la memoria se libera y de igual modo, al cortar la alimentación o al iniciar el dispositivo, se hace un reseteo de toda la memoria.
​
Con el modo TrustZone habilitado, basado en la seguridad de marcas de agua no volátiles, securización por control de acceso y ocultación de protección HDP, la memoria está protegida en su totalidad. Además, para la protección de lectura, se ha establecido el nivel RDP 2 definido por el propio fabricante.
​
Esto implica que las funciones de depuración, el arranque en RAM y la selección del gestor de arranque están deshabilitadas, esto es irreversible y hace que el dispositivo no se pueda desbloquear ni manipular, con esto el hardware no se puede volver a utilizar para otro fin y todo lo que hay en memoria es inaccesible para cualquier intruso.
En resumen, nunca se guarda datos en memoria no volátil, la memoria volátil está protegida, de modo que es imposible acceder a su contenido, que además se encuentra cifrado, y se libera cuando se completa cualquier flujo o se corta/inicia la alimentación. Añadido a esto, el dispositivo está bloqueado lo cual impide cualquier tipo de manipulación.
Incorporación de componentes seguros
Modelo de ST, el STM32WB5MMG
![bluetooth.png](https://static.wixstatic.com/media/20363d_f66d1a6d686e4b76bf2f64b4425818ec~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/bluetooth.png)
Siguiendo en la misma línea de incorporar los componentes más seguros disponibles del mercado, para el módulo de comunicaciones por Bluetooth, se ha elegido el modelo de ST, el STM32WB5MMG, entre sus características de seguridad destacadas encontramos:
​
-
Servicios de administración de claves/almacenamiento de claves del cliente, PKA, AES de 256 bits, TRNG, PCROP, CRC, UID de 96 bits.
-
Posibilidad de derivar 802.15.4 y Bluetooth® Low Energy de 48 bits UEI
-
Bluetooth® Low Energy 5.4, Zigbee® 3.0 con certificación OpenThread.
​
A nivel de operativa, este módulo únicamente se activa para el proceso de actualización de firmware de Cuvex, garantizando así que no está disponible en ningún otro proceso, de hecho, el propio dispositivo verifica antes de arrancar un proceso y de encontrarse con el módulo encendido, aborta la acción.
​
El cliente también puede verificar la actividad del módulo. Con una luz azul visible desde el frontal del CASE que simboliza cuando el Bluetooth se encuentra disponible, el usuario siempre está al tanto del estado del BL. Este LED es parte del módulo de Bluetooth y se enciende cuando se alimenta, lo cual hace que no se pueda alterar para dar falsos negativos.
​
En cuanto al emparejamiento, se ha definido un protocolo específico para las comunicaciones de paquetes con la App Cuvex y se utiliza el modo de conexión segura LE Secure rechazando Legacy Pairing por su potencial inseguridad.
Para el método de intercambio de clave de enlace, se rechaza la opción "Just Works" y se establece como requerimiento una protección MITM, basada en un PIN entrópico y forzando al borrado de las claves intercambiadas una vez finalizada la conexión.
​
En cuanto a la potencia de señal, se ha establecido en un rango inferior a un metro de distancia, esto mitiga cualquier intento de acceso a distancia al dispositivo. Por último, aunque este módulo ofrece un sistema seguro de instalación de Firmware (SFI), esta opción está deshabilitada de fábrica, bloqueando así la puerta a cualquier potencial riesgo de seguridad.
Módulo para procesos
"cifrar, descifrar y clonar"
Transductor RFID CR95HF
![Memoria_nfc.png](https://static.wixstatic.com/media/20363d_e4eca27b86f147688f9a2f107d571cf9~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Memoria_nfc.png)
Para la lectura y escritura de tarjetas NFC, se ha optado por el transductor RFID CR95HF (parte de la familia ST25), diseñado especialmente para soluciones contactless de la industria de medios de pago. Este componente gestiona la codificación y decodificación de frames para aplicaciones de comunicación de campo cercano (NFC), posibilitando la detección, lectura y escritura de etiquetas NFC Forum Tipo 1, 2, 3 y 4.
​
El módulo NFC únicamente se activa en la etapa final de los procesos de “Cifrar” y “Clonar”, una vez se encuentra el criptograma dentro del elemento seguro de la memoria preparado para ser escrito en una TAG NFC CUVEX, o al inicio del proceso “Descifrar” cuando se quiere leer el contenido de una TAG. Todo esto es gestionado por el propio microcontrolador y trabaja en consonancia con los elementos de seguridad de la memoria descritos anteriormente.
​
Cabe señalar que el contendido que viaja entre el controlador NFC y el microcontrolador (o viceversa) va siempre cifrado ya que se trata del criptograma generado en cualquiera de las funciones ofrecidas por el dispositivo Cuvex. De modo que no existe en ningún caso, riesgo de acceso a datos sensibles.
Dos versiones TAG-NFC
MIFARE DESFIRE EV1 8K y otra NTAG216 888 Bytes
![NFC_TAG.png](https://static.wixstatic.com/media/20363d_828ceb8c3e6c4055bbcf163e79ea3a29~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/NFC_TAG.png)
Las tarjetas Cuvex en las que almacenas tus criptogramas, llevan consigo dos versiones de TAG NFC, una es del tipo MIFARE DESFIRE EV1 8K y otra NTAG216 888 Bytes. Se trata de tarjetas NFC pasiva, por tanto, no posee una batería o fuente de alimentación interna, es el transductor RFID el que provee de la energía necesaria para activar la tarjeta. Esto ocurre a distancias muy cortas (en la escala de los milímetros), impidiendo que otros dispositivos fuera del rango de alcance sean capaces de interactuar con la TAG.
​
En la tarjeta se almacena una serie de metadatos necesarios para las comunicaciones con un dispositivo Cuvex, y por supuesto, el criptograma con tu secreto cifrado con AES 256, lo cual hace que los ataques criptográficos resulten inoperantes.
​
La durabilidad de las tarjetas Cuvex se ve fortalecida por varios factores: la resistencia física del material utilizado, la calidad de la impresión, la forma de almacenado y el maneja en el entorno real de uso. Todo esto nos brinda una vida útil entorno a los 10 años, o 15.000 ciclos, permitiendo así un tiempo considerablemente bueno para un elemento de respaldo vs su coste.
​
En cualquier caso, la App se encargará de recordarte el tiempo que queda a tu tarjeta, para que siguiendo las buenas prácticas vayas renovando las copias periódicamente.
​
Para favorecer la salud de los datos almacenados, es recomendable usar una Jaula de Faraday para el almacenado de las tarjetas NFC, esto previene interferencia electromagnética, inducción de corriente o perturbaciones de energía eléctrica, ya sea por fenómenos naturales como tormentas solares, o intentos maliciosos de terceros.
Interface principal
de comunicación
Controlador táctil capacitivo FT5446DQS
![Screen_es_cuvex.png](https://static.wixstatic.com/media/20363d_c31ce69aa0be499aa3776b118955ab2d~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Screen_es_cuvex.png)
La pantalla es la interfaz principal de comunicación con el cliente y por ello hemos elegido el controlador táctil capacitivo FT5446DQS. Se trata de un solo chip con unidad de microcontrolador (MCU) mejorada incorporada.
​
Proporciona los beneficios de la tecnología de escaneo de modo común a pantalla completa, tiempo de respuesta rápido y alto nivel de precisión.
​
La pantalla posee un tamaño de 4 pulgadas para brindar comodidad al cliente, una UIX intuitiva, basada en pantallas de fácil manejo y un teclado alfanumérico con una distribución popular en dispositivos móviles, permitiendo así que el cliente se sienta familiarizado con la interfaz desde el primer momento.
​
En nuestra primera versión del Firmware, la captura de datos está abierta a texto plano o a semillas bajo el estándar BIP39, de modo que el autorellenado y validación del diccionario favorecen a la tranquilidad del cliente al momento de introducir sus palabras. En muy poco tiempo serán publicadas actualizaciones de diccionarios para Monero y Shamir.
Al igual que ocurre con cualquier otro componente del sistema, al momento de cortar la alimentación, la pantalla se apaga y todo lo que hay en la memoria se resetea con el fin de que no puede ser recuperado por intrusos.
Código 100% verificable.
Actualización del Firmware, mediante la App móvil Cuvex
![Firmware.png](https://static.wixstatic.com/media/20363d_cb575b4fdb4c4ba588bf9dc0dd95eb14~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Firmware.png)
Se trata del maestro de ceremonias, el que orquesta las funcionalidades expuestas para los clientes. Desde el manejo de tarjetas hasta los procesos de cifrar, descifrar y clonar, todos estos flujos se definen y realizan a partir de las líneas de código del Firmware que dan las instrucciones adecuadas a cada uno de los componentes antes descritos.
​
No te preocupes, aquí no está definido el algoritmo que cifra tu secreto, como ya hemos dicho, esto se hace en frío y basado en hardware. Lo que hace el firmware, es utilizar las API’s del microcontrolador para ejecutar las funciones de criptografía expuestas por el microcontrolador y seguir la secuencia de pasos lógicos para: coger el dato de entrada desde la pantalla, convertirlo en un criptograma (utilizando tu potente STM32U585) y enviarlo a tu tarjeta NFC vía el transductor NFC/RFID CR95HF.
​
Si con esta explicación te has quedado con hambre, eres un verdadero custodio. Para que verifiques por ti mismo lo que decimos, encontrarás en este enlace todo el código fuente del Firmware. Nuestro código es 100% verificable, visible, editable y lo puedes compilar tú mismo. También hemos añadido un poco más de información de este proceso en el apartado "Criptografía" de este documento.
​
La actualización del Firmware se hace mediante la App móvil Cuvex, utilizando el canal Bluetooth antes descrito. De ese modo, tú móvil hace de "Firewall", abstrayendo todo lo que tenga que ver con la descarga de la actualización desde internet. En síntesis, la App te notificará cuando haya una nueva actualización, esta se descargará en el elemento seguro de tu móvil, para que, una vez estés emparejado por Bluetooth, se envíe el binario de forma segura a tu Cuvex.
​
Cabe resaltar que previa escritura del Firmware en el dispositivo, se hace una validación de la integridad y autenticidad del software basados en una firma digital, esto permite asegurar que ningún otro software y/o alteración del mismo sea capaz de ejecutarse en tu Cuvex. En el momento que el dispositivo detecta la anomalía, este procede a reiniciarse y regresar al modo de fábrica, solicitando nuevamente la instalación de un binario válido.
El Rol Clave del Bootloader
Este actúa como guardian de acceso
![Bootloader_cuvex3.png](https://static.wixstatic.com/media/20363d_00e42afacc2c4866b9e1139e95ae71a9~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Bootloader_cuvex3.png)
Si el Firmware es el pianista, el Bootloader es el afinador del piano. Este Software se encarga de preparar los elementos básicos para que el Firmware pueda operar, asegurando la integridad del hardware y previniendo la instalación de cualquier tipo de software desconocido.
​
Una de sus principales características es que es el único capaz de manejar el controlador de Bluetooth. Con esto, ningún proceso de software fuera del Bootloader puede alimentar y/o utilizar el módulo Bluetooth.
​
Al sólo arrancar, verifica si existe una instancia del Firmware válida, de no haberla, borra completamente la partición de memoria destinada al Firmware App y activa el modo actualización, enciende el módulo Bluetooth y se queda en bucle a la espera de escritura de un nuevo Firmware en la memoria dedicada para ello.
​
De igual forma, si el usuario ejecuta la función actualizar, el Firmware instalado borra la firma verificada y esto provoca el borrado automático de toda la memoria donde se aloja la propia instancia del Firmware, forzando al dispositivo a operar nuevamente con el Bootloader.
​
Otra de sus funciones es la de validar la firma digital del software antes de proceder con su ejecución, esto lo hace mediante la función criptográfica RSA expuesta por el microcontrolador. Si ha sido alterado el contenido del software a instalar, y/o no ha sido firmado con la clave privada de Cuvex, el Bootloader borrará el binario y regresará al estado inicial de fábrica, a espera de una actualización de Firmware.
​
En resumen, podemos decir que el Bootloder hacer el papel de software de recuperación de fábrica que solo permite la actualización a un Firmware firmado por Cuvex y que aísla el acceso al canal de comunicación bluetooth.
![](https://static.wixstatic.com/media/20363d_adf38ca624b74338bbd06230c85f05ec~mv2.png/v1/crop/x_0,y_4,w_875,h_838/fill/w_116,h_111,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/20363d_adf38ca624b74338bbd06230c85f05ec~mv2.png)
Proceso de actualización del firmware - Diagrama de actividades
Política de
conocimiento 0
Totalmente desarrollada con código fuente nativo.
![app_cevex.png](https://static.wixstatic.com/media/20363d_b6bb75ea219e4581bde702890d3bd42d~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/app_cevex.png)
Construida bajo una política de conocimiento cero y diseñada bajo los mayores estándares de seguridad informática, la App de Cuvex brinda una serie de funciones complementarias para los propietarios de un dispositivo Cuvex y cualquier persona que esté buscando migrar a una verdadera auto custodia soberana.
​
Una de las principales funciones de esta aplicación es la de proveer al dispositivo Cuvex de las últimas actualizaciones del Firmware, intermediando entre los servicios de descarga y el dispositivo de cifrado en frio. Podemos decir que ejerce un papel de Firewall, asegurándose de hablar con los servicios oficiales de fábrica y enviando el archivo binario a través de un canal alternativo BL con un cifrado P2P. Esto hace que tu Cuvex jamás esté expuesto a internet y las conversaciones se hagan de forma segura con la aplicación oficial publicada en las tiendas de las plataformas.
​
Está totalmente desarrollada con código fuente nativo, apoyada en los frameworks de las plataformas iOS / Android y siguiendo las mejores prácticas de seguridad. Entre los controles implementados, tenemos la detección de las funciones de comunicación BL / WiFi o la existencia de una tarjeta SIM en el dispositivo. Estos controles se activan en procesos clave que bloquean el avance por incumpliendo de requerimientos.
​
Estas son sus otras funciones:
​
Creación de Wallet BTC: Te permite generar a ti mismo la entropía de tu semilla mediante el proceso de Dados y Moneda para las primeras 23 palabras. Además, calcula la palabra 24 y generar las claves pública / privada. El resultado es un wallet que no ha sigo generado por un software de terceros y sin ningún tipo de dependencia (libertad real). No necesitas más, con esto tienes todo para empezar a holdear tus Satoshis. No te olvides de cifrar tu semilla y claves con tu Cuvex.
​
Verificación saldo de Wallets: Se trata de un servicio disruptivo que te enviará notificaciones en tiempo real de cualquier cambio en la blockchain relacionado con tus billeteras, un verdadero guardián de tus criptoactivos. Lo mejor de todo es que sólo necesitas registrar la clave pública (Xpub) de tu Wallet. Además, siguiendo con la política de conocimiento cero, resulta imposible establecer una conexión de los usuarios y las claves públicas (en realidad no tenemos ningún dato de los usuarios de nuestra App jejeje).
​
Manejo de tarjetas Cuvex: Se trata de servicios de apoyo para la administración de las tarjetas en las que almacenas tus secretos. Con la App puedes asociar información de identificación en lugar de tener que etiquetar físicamente tus tarjetas, evitando así una mala práctica de seguridad. También ofrece tareas programadas de recordatorio para velar por la consistencia del criptograma y el tiempo de vida útil.
​
Comunicaciones TOR: La aplicación cuenta con su propio cliente de conexión a la red TOR para garantizar una privacidad integral en las llamadas expuestas al exterior. Esto fortalece procesos como la verificación de saldo y el servicio de Alertas de Saldo.
La robustez de AES256
Reconocimiento a nivel mundial, adoptado por entidades militares y gubernamentales.
![AES256_cuvex.png](https://static.wixstatic.com/media/20363d_3eab6999da62457282f7622c33032622~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/AES256_cuvex.png)
Los flujos de cifrado y descifrado expuestos a los usuarios hacen uso del algoritmo de criptografía simétrica AES 256 GCM, el estándar de cifrado con mayor reconocimiento a nivel mundial, adoptado por la amplia mayoría de entidades militares y gubernamentales. AES ha sido sometido a un amplio escrutinio y análisis criptográfico desde su adopción como estándar en el año 2001, y desde entonces se ha revalidado constantemente la consistencia y robustez que ofrece. De hecho, ni siquiera con los futuros ordenadores cuánticos se alcanzaría la deseada ventaja cuántica para romper su seguridad mediante cálculos de fuerza bruta.
​
En tu Cuvex, este algoritmo está implementado en el propio hardware. Para ello, el microcontrolador posee unidades de potencia específicas de AES, lo cual no sólo brinda un procesamiento acelerado de los cálculos, sino que abstrae al software de participar en dichos cálculos.
![](https://static.wixstatic.com/media/20363d_c28474749d3b4a0b9f919189aa8d16c8~mv2.png/v1/crop/x_0,y_0,w_701,h_816/fill/w_97,h_112,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/20363d_c28474749d3b4a0b9f919189aa8d16c8~mv2.png)
Proceso de Criptografía
Diagrama de actividades
En cuanto a la firma digital del Firmware, se ha optado por el algoritmo asimétrico RSA. Nuevamente la implementación está hecha en Hardware, capaz de manejar el par de claves para la validación de la firma Digital y funciones de CRC y HASH para huella digital. Con la Clave Privada, los servicios de Cuvex firman el binario que se instala en el dispositivo. Con la clave pública, el propio dispositivo es capaz de verificar la autoría del software. Además, mediante SHA256, se comprueba la integridad del software.
​
No está de más comentarte que somos consiente que el RSA, al igual que cualquier otro estándar de cifrado asimétrico, tienen los años contados, con la llegada la computación cuántica se ha demostrado que el trabajo por fuerza bruta se reduce de forma exponencial al intentar encontrar la clave privada a partir de la pública. Como sabemos que el YTQ está a menos de 10 años vista, en nuestro bakclog ya se encuentra incluida la implementación del algoritmo Crystal Dilithium, diseñado para la era post-cuantica.
​
Otra característica interesante de resaltar es la capacidad de generar datos aleatorios. El microcontrolador posee su propio generador denominado RNG (True Random Number Generator) que provee outputs totalmente entrópicos a partir de una fuente analógica, está en cumplimento con el NIST SP 800-90B como fuente válida de entropía y por tanto puede ser utilizado como generador no determinístico de bits aleatorios.
​
Esto tiene especial relevancia para procesos como el del emparejamiento Bluetooth, donde el proceso PassKey entry se basa en la generación de un PIN desde el dispositivo Cuvex que al ser verdaderamente entrópico, imposibilita ataques basados en diccionarios y/o fuerza bruta.