Cuando escribo datos en una característica BLE (FFE1) para enviar datos a través de bluetooth, ¿están los datos cifrados?

2

Tengo un circuito muy simple que incluye un HM-10 que expone un dispositivo Bluetooth CC2541.

simular este circuito : esquema creado usando CircuitLab

Básicamente, solo está conectado para apagarlo del Arduino Nano y luego tengo un divisor de voltaje en el HM-10 Rx ya que es de 3.3V. No hay problemas allí. Funciona y puedo enviar datos y recibir datos.

Estoy ejecutando un código de iOS que no se une al dispositivo, sino que permite al usuario pulsar un botón y enviar datos a través de la característica FFE1.

Los datos se envían utilizando la CoreBluetooth writeValue function de la clase CBPeriperhal. Se envía como un flujo de bytes.

Preguntas

  1. ¿los datos (enviados desde el dispositivo iOS a Arduino a través de Bluetooth) se cifran automáticamente a través de BLE?
  2. ¿Puede ofrecer alguna forma de probar una manera u otra si los datos son cifrado? ¿Algún tipo de software de rastreo para probar?
  3. ¿Hay alguna propiedad que deba establecer en el cifrado CBP para cifrar los datos?
  4. ¿Los datos solo se cifran automáticamente después de vincular el dispositivos?

Extras

Aquí está el código Arduino muy básico que funciona muy bien y muestra los bytes enviados a través de Bluetooth (desde mi iPad que ejecuta mi código iOS).

#include <SoftwareSerial.h>

SoftwareSerial BT_Serial(8,9); // RX, TX

bool bytesWereRead = false;
void setup() {
  Serial.begin(9600);
  Serial.println("Enter AT commands:");
  BT_Serial.begin(9600);
}

void loop()
{
  if (BT_Serial.available()) {
    bytesWereRead = true;
    int bytesRead = Serial.write(BT_Serial.read());
  }

  if (Serial.available()) {
    BT_Serial.write(Serial.read());
  }
}
    
pregunta raddevus

1 respuesta

2

Encontré una oración como parte de otra respuesta que parece indicar que escribir datos en una característica antes de vincularse significa que los datos no están encriptados .

  

"No tendrá las características cifradas de lectura / escritura sin   vinculación. "*

  • de esta respuesta en stackoverflow enlace

Sin embargo, eso no fue del todo definitivo.

Luego finalmente encontré lo siguiente (en enlace ):

  

En el Bluetooth clásico (v2.0, v2.1, v3.0), debes emparejar con un   dispositivo antes de que pueda conectarse con él, y luego tiene que conectarse   con ella antes de que puedas comunicarte con ella. Durante el emparejamiento, enlace   Las claves de seguridad se generan y almacenan en cada módulo para que puedan   Comunicarse de nuevo en el futuro si así lo desea, sin   Necesito emparejar de nuevo.

     

Con Bluetooth Smart [aka BLE], sin embargo, es bastante común conectar y   Comunicarse sin maridarse. Incluso puedes enviar una pequeña cantidad de usuario.   Datos definibles para cualquier dispositivo de escucha sin ninguna conexión.   A través de paquetes de publicidad, algo así como una costumbre súper cargada   Respuesta a la consulta. Sin embargo, si te conectas sin emparejar, entonces el   La conexión no es segura, porque no hay claves de seguridad de enlace que   se puede utilizar para cifrar la conexión.

Esa es una muy buena información, ya que compara todo con Bluetooth 2, 2.1., 3, ya que sé que te obligan a vincularse y luego todos los datos transmitidos están encriptados y me preguntaba acerca de la comparación con BLE.

También encontré la documentación para el cc2541 a través de TI (Texas Instruments) que contiene lo siguiente Tabla y pasos para asegurar la seguridad (mis aspectos más destacados):

Todoestopareceadmitirelhechodequelosdatossolosecifrandespuésdelemparejamiento.

Enmicaso/pregunta,preguntabasilosdatosestáncifrados,aunquenoestoyemparejando,asíquecreoqueestoayudaacrearunarespuestadefinitivadequelosdatosqueestoyenviandodeesamaneranoestáncifradosatravésdeBLE.

Tambiénlospasosadicionalesquedefinenel"proceso general para establecer la seguridad" me llevan a la misma conclusión: que el cifrado solo se realiza cuando los dispositivos están emparejados.

    
respondido por el raddevus

Lea otras preguntas en las etiquetas