Este artículo te guiará a través del proceso de verificación de que el firmware instalado en tu billetera de hardware OneKey Pro coincide con el firmware de código abierto publicado en el repositorio oficial de GitHub de OneKey. Al comparar la Suma de verificación SHA-256, puedes asegurarte de que el firmware proviene de una fuente confiable y garantizar la seguridad de tu dispositivo.
¿Qué es una Suma de Verificación?
Una suma de verificación es un método para verificar la integridad de los datos. Calcula una secuencia alfanumérica de longitud fija a partir de un archivo, que luego se puede usar para confirmar si el archivo ha sido alterado.
⚠️ Notas Importantes
El chip del elemento seguro dentro de cada billetera de hardware OneKey viene precargado de fábrica con verificación oficial de multi-firma.
Si el dispositivo se flashea con firmware no oficial, se mostrará "Firmware no oficial" al inicio.
Este artículo proporciona pasos adicionales para confirmar si el firmware actual coincide exactamente con la versión publicada en GitHub.
Proceso de Verificación
Paso 1: Descargar e instalar el último firmware oficial
Conecta tu billetera de hardware OneKey a tu computadora usando un cable USB.
El sitio web detectará automáticamente la información de tu dispositivo. Luego podrás seleccionar e instalar el último firmware.
Sigue las instrucciones en pantalla y confirma la instalación en tu billetera de hardware.
Paso 2: Obtener la Suma de Verificación del Firmware del Dispositivo
En tu billetera de hardware, navega a Configuración del Sistema → Acerca del Dispositivo.
En la sección de información del firmware, verás la versión del firmware y su Suma de Verificación.
Ejemplo:
4.9.0[fccbac8-5ff2c88]fccbac8→ ID de la versión del firmware5ff2c88→ Los primeros siete caracteres de la Suma de Verificación del firmware
Paso 3: Calcular la Suma de Verificación del Firmware desde GitHub
Localiza la versión del firmware que coincide con tu dispositivo y descarga el archivo
.binen Assets.
⚠️ Nota: El archivo .bin contiene varias partes:
MCU (firmware del controlador principal)
Uno o más firmwares del Elemento Seguro (SE)
Información de firma
Para la verificación, solo necesitas extraer el firmware del MCU.
Extracción del Firmware
Guarda el siguiente script como split_firmware.sh (para macOS/Linux):
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Uso: $0 "exit 1fiINPUT_FILE="$1"TOTAL_FILE_SIZE=$(stat -f %z "$INPUT_FILE")MAGIC=$(dd if="$INPUT_FILE" bs=1 count=4 2>/dev/null)calculate_total_size() {local offset=$1local size_bytes=$(dd if="$INPUT_FILE" bs=1 skip="$offset" count=4 2>/dev/null | od -An -tu4)echo $((size_bytes + 1024))}if [[ "$MAGIC" == "TRZF" ]]; thenTOTAL_SIZE=$(calculate_total_size 12)elif [[ "$MAGIC" == "OKTV" ]]; thenHEAD1_SIZE=$(dd if="$INPUT_FILE" bs=1 skip=4 count=4 2>/dev/null | od -An -tu4)HEAD1_SIZE=$(echo $HEAD1_SIZE)FILE_SIZE_BYTES=$(dd if="$INPUT_FILE" bs=1 skip=$((HEAD1_SIZE + 12)) count=4 2>/dev/null | od -An -tu4)TOTAL_SIZE=$((HEAD1_SIZE + 1024 + FILE_SIZE_BYTES))elseecho "Formato de archivo desconocido"exit 1fidd if="$INPUT_FILE" bs=1 count="$TOTAL_SIZE" of=firmware.bin 2>/dev/nullREMAINING_SIZE=$((TOTAL_FILE_SIZE - TOTAL_SIZE))if [ $REMAINING_SIZE -gt 0 ]; thenSECOND_HEADER=$(dd if="$INPUT_FILE" bs=1 skip="$TOTAL_SIZE" count=4 2>/dev/null)if [[ "$SECOND_HEADER" == "TF89" ]]; thendd if="$INPUT_FILE" bs=1 skip="$TOTAL_SIZE" of=se.bin 2>/dev/nullecho "División exitosa: se extrajeron firmware.bin y se.bin."elseecho "Existen datos adicionales pero la segunda cabecera del archivo no es 'TF89'. Solo se extrajo firmware.bin."fielseecho "No hay datos adicionales, solo se extrajo firmware.bin."fi
Ejecuta el script:
chmod +x split_firmware.sh ./split_firmware.sh onekey-firmware.bin
Después de la ejecución, obtendrás firmware.bin (el cuerpo del firmware del MCU).
Calcular la Suma de Verificación
Ejecuta el siguiente comando en tu terminal:
tail -c +2561 firmware.bin | shasum -a 256 -b
Esto generará un largo hash SHA-256, por ejemplo:
abcdef1234567890-
Toma los primeros siete caracteres, por ejemplo, abcdef1.
Paso 4: Comparar los Resultados
Compara los primeros siete caracteres de la Suma de Verificación calculada con la Suma de Verificación que se muestra en tu dispositivo.
Si coinciden, significa que tu firmware es idéntico al código de fuente abierta publicado en GitHub.
✅ Por Qué Esto Importa
Puedes estar seguro de que tu dispositivo está ejecutando un firmware creado directamente desde el repositorio oficial de código abierto de OneKey.
Junto con la verificación de multi-firma incorporada del elemento seguro, esto garantiza la integridad y seguridad del firmware de tu billetera de hardware.
