You can also read the English version of this article.
Dentro de la industria de las carteras físicas, hay dos enfoques diferentes para el diseño de seguridad: confiar en un chip seguro (SC) como una caja negra, o utilizar firmware de código abierto en una unidad microcontrolador de propósito general (MCU). Con la BitBox02, encontramos una arquitectura de seguridad que nos permite combinar las ventajas de ambos enfoques.
¿Por qué usar un chip seguro es importante?
Las carteras físicas están diseñadas para mantener tus llaves privadas seguras. La mayoría hacen un buen trabajo contra atacantes remotos, protegiendo toda la información confidencial de tu ordenador regular. Esto dificulta que aplicaciones maliciosas, malware o ataques remotos dirigidos para robar tus monedas, cumplan con su cometido original. La seguridad física es aún más difícil. Con las herramientas adecuadas un atacante puede obtener acceso a la información hallada en el MCU, por ejemplo leyendo información directamente desde el interior de un chip. Algunas maneras de hacer esto incluyen descapsular el chip con un láser o usar ácido y luego leer todos los datos. Puede haber algún equipo caro involucrado, pero un atacante no requiere necesariamente un laboratorio: servicios como este están disponibles en línea, en países donde la ingeniería inversa es legal.
Los MCU generalmente están diseñados para centrarse en el rendimiento, la funcionalidad y el costo por encima de otros factores. No se construyen para soportar tales ataques físicos. Los chips seguros están diseñados primero y sobre todo con estos ataques en mente, y están hechos para resistir la decapsulación, inyección de fallas y bajas de voltaje, sobrecarga de sus capacidades o ataques de canal lateral.
Creemos que es seguro decir que proteger físicamente los datos en una cartera física sin usar un chip seguro es una causa perdida.
El inconveniente del código cerrado
Los chips seguros ni siquiera son tan caros, ¿por qué no todas las carteras físicas los usan? El principal inconveniente es que los chips seguros son de código cerrado, generalmente hablando. El firmware que se ejecuta en un chip seguro no puede ser publicado como código abierto debido a acuerdos de no divulgación forzados.
Cuando se trata de firmware que asegura tu bitcoin, crear semillas aleatorias y firmar transacciones, confiar en programas de código cerrado que no pueden ser auditados independientemente no es lo suficientemente bueno. En nuestra opinión, no debes tener que confiar en el fabricante de tu cartera física (y todos sus empleados individuales) para pertenecer a los "buenos chicos", buscando diligentemente sus propios errores sin opiniones independientes y luego arreglarlos.
Lo mejor de ambos mundos
No obstante, los MCUs de propósito general simplemente no están a la altura de la tarea de mantener un secreto digital. En el mejor de todos los mundos, podríamos ejecutar firmware de código abierto en un chip seguro de código abierto. Hay proyectos que tienen como objetivo crear tal chip, como TropicSquare, pero ningún chip de código abierto está disponible comercialmente hoy por hoy. La siguiente mejor opción es utilizar las ventajas del firmware de código abierto y chip seguro combinándolos de tal manera que:
- la cartera física sólo funciona con firmware de código abierto;
- el dispositivo se endurece contra ataques físicos usando un chip seguro; y
- la confianza en el chip seguro es removida, ya que no puede aprender ninguno de los secretos.
La arquitectura de seguridad de nuestra BitBox02 está diseñada para alcanzar estos objetivos. Usamos dos chips, un MCU de propósito general y un chip seguro en paralelo, ambos con sus fortalezas únicas. En lugar de ejecutar el firmware de Bitcoin directamente en el chip seguro, lo ejecutamos en el MCU, lo que significa que el código es totalmente código abierto y auditable por cualquiera. Los secretos también están guardados en el MCU, pero encriptados usando múltiples llaves, incluyendo una llave almacenada en el chip seguro a la que solo se puede acceder usando funciones de derivación de llave dedicadas (KDF).
En comparación con el uso exclusivo de un MCU, esta configuración proporciona características adicionales de seguridad:
- leer los datos cifrados directamente del MCU es inútil en sí mismo;
- proporciona un retraso durante cada desbloqueo para relentizar los ataques de fuerza bruta para crackear la palabra secreta;
- limitar el número máximo de intentos de desbloqueo en toda la vida útil;
- un verdadero generador de números aleatorios (RNG), sin la necesidad de confiar en él;
- almacenamiento seguro de una clave de certificación única para asegurar que sólo el firmware firmado oficialmente es el que se puede correr en el dispositivo.
De nuevo, no queremos confiar en el chip seguro. Por eso nuestra arquitectura de seguridad se asegura de que el chip seguro nunca pueda aprender secretos relacionados con la(s) criptomoneda(s). En el caso improbable de que el chip seguro esté comprometido, la seguridad general se degrada al nivel de seguridad de no utilizar un chip seguro en primer lugar, todavía asegurando tus secretos utilizando la contraseña del usuario y la llave alojada en el MCU.
¿Cómo funciona?
Asegurando la semilla
El secreto maestro, también conocido como la semilla de la cartera de la que se derivan todas las claves privadas, está encriptado y almacenado en la memoria flash del MCU. Para obtener acceso a la semilla, se necesitan tres secretos individuales, como se describe en la siguiente ilustración.
Por supuesto, si se permite a un atacante probar millones de contraseñas por minuto, tal arquitectura podría fácilmente ser vulnerada por fuerza bruta. Para limitar estos intentos de desbloqueo, se utilizan dos contadores:
- En el MCU, un contador limita el número de desbloqueos a 10 intentos consecutivos sin éxito antes de restablecer el dispositivo (dejarlo como viene de fábrica).
- Como segunda línea de defensa, el contador de vida en el chip seguro hace que el dispositivo sea inutilizable después de ~730.000 desbloqueos.
Para frenar los intentos de fuerza bruta, la llave para conseguir el secreto (K) del chip seguro necesita ser ejecutada 3 veces utilizando la ranura KDF, causando un retraso.
¿Qué significa eso para un ladrón potencial? Si utilizas una contraseña alfanumérica de 8 caracteres, el ladrón necesitaría en promedio más de 1000 años para forzar la contraseña, aunque el contador en el chip seguro rompería el dispositivo después de aproximadamente un día de intentarlo. Este escenario supone que el contador en el MCU podría ser evitado de tal manera que el dispositivo no fuese reajustado después de los primeros 10 intentos fallidos de desbloqueo.
Desbloqueando la semilla
La semilla se pone a disposición del firmware de código abierto una vez que el dispositivo se desbloquea con éxito. Si falta así sea uno de los tres secretos requeridos, la semilla cifrada permanece inaccesible.
No confíes en el chip seguro
En esta arquitectura, confiar en el chip seguro se puede evitar. El chip no es capaz de aprender ningún secreto relacionado con la criptomoneda o aleatoriedad puesta en uso para crear la semilla de la cartera.
Atestiguación del dispositivo seguro
Es importante que sepas que tu BitBox02 es un dispositivo genuino, y no un clon malicioso. Es por eso que el chip seguro crea una clave de certificación única que luego es firmada por Shift durante la configuración de fábrica BitBox02.
El chip seguro crea:
- una clave privada que no se puede exportar desde el chip seguro; y
- la clave pública correspondiente, firmada por una llave única manejada por Shift.
Cuando conectas la BitBox02 a tu computadora, la BitBoxApp envía un reto (número aleatorio) al dispositivo, que se firma y envía de vuelta, junto con la correspondiente llave pública firmada previamente por Shift.
La aplicación es capaz de verificar toda la ruta de certificación y muestra una advertencia si este chequeo falla.
Mediante el uso de esta arquitectura de seguridad, añadimos y utilizamos un chip seguro para mejorar significativamente la seguridad física sin comprometer nuestros valores de código abierto o potencialmente dañar la seguridad general, incluso teniendo en cuenta los peores escenarios.
¿Te encuentras interesado en mayor transparencia de seguridad respecto a la BitBox02? ¡Échale un vistazo a nuestros amplios modelos de amenaza!
¿Todavía no tienes una BitBox02?
La BitBox02 viene en dos ediciones: la edición Multi que soporta múltiples activos criptográficos y se puede utilizar como un autenticador de segundo paso. Y la edición sólo Bitcoin, que cuenta con un sistema radicalmente enfocado: menos código significa menor superficie de ataque que por consiguiente, mejora aún más tu seguridad cuando sólo almacenas Bitcoin.
Adquiere una a través de nuestro revendedor oficial en España u ordena por medio de nuestra tienda con envíos a cualquier parte del mundo.
Shift Crypto es una empresa privada con sede en Zurich, Suiza. Nuestro equipo internacional de especialistas en ingeniería, criptoseguridad y desarrollo básico de Bitcoin construyen los productos BitBox y proporcionan servicios de consultoría. La BitBox02, una cartera física de segunda generación, equipa a los individuos para almacenar, proteger y transar en criptomonedas fácilmente. Su compañera, la BitBoxApp, proporciona una solución todo-en-uno para gestionar con facilidad tus activos digitales.