¡Hola comunidad!
tengo nuevamente otra pregunta. Se trata del cifrado del tráfico de datos a través de Bluetooth en un proyecto integrado.
El proyecto:
Hago un control para mi vecino para un box spring. Todo debería de funcionar también a través de una aplicación de Android.
Utilizo el módulo HC-05 para la conexión de Bluetooth. Es posible cambiar la clave de emparejamiento en el módulo, algo que quiero hacer en la aplicación. La clave estándar es 1234.
Dado que un PIN de cuatro dígitos es demasiado inseguro para mí, una vez pensé que usaría el algoritmo SHA-256 para la comunicación. Al menos ya lo he implementado con éxito en un proyecto anterior. He pensado a la ligera en cómo el protocolo hasheado debería de verse. A saber, en el hardware también quité la memoria de 1 Wire DS2430A. Ella tiene una ID única de 64 bits y un EEPROM de 256 bits.
El protocolo sin rodeos para un comando se vería así, por ejemplo:
BCGETTXVER\r\n -> Imprimir la versión de firmware, como ejemplo. Es decir, un comando que envía la aplicación.
De momento lo hashearia así:
SHA256(BCGETTXVER + [DS2430A_UniqueID] + [DS2430A_Password] + [Bluetooth_PIN])
Y envíar el valor hash.
Con respecto a DS2430A_Password:
Dado que el EEPROM del DS2430A es exactamente de 256 bits, también podría usar SHA256 para almacenar la contraseña como un hash.
Quería preguntar cómo harían eso... ¿Qué mejorarían?
Gracias y saludos