Exchange of Out-of-Band Data Between STM32WB Devices

Exchange of Out-of-Band Data Between STM32WB Devices
Slide Note
Embed
Share

In this exchange of out-of-band (OOB) data between two STM32WB devices without NFC, the central device generates OOB data to be sent to the peripheral device. The process involves setting OOB data through communication protocols, extracting OOB data, and ensuring secure pairing with specific configurations and capabilities. The OOB data includes random and confirm data for secure communication. Various commands and events are used to facilitate the OOB data exchange between the central and peripheral devices.

  • STM32WB
  • OOB data exchange
  • NFC
  • secure pairing
  • communication protocols

Uploaded on Mar 08, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Security Mode 1 Level 4 - OOB

  2. Following slides show the exchange of OOB data between two STM32WB without NFC device. 2 The central simulates the generation of OOB data that will be sent to the peripheral. The central address (PEER_ADDRESS) needs to be communicated to the peripheral. Aci_gap_set_oob_data: Used to input the OOB data arrived via OOB communication

  3. EXAMPLE LE security Mode 1 level 4 - OOB 1/7 Pairing with OOB_Data_Flag combination Peripheral= 0x01 3 Central=0x00 Peripheral (slave) Central (master) aci_gap_IO_capability (0x00- display only) aci_gap_IO_capability (0x00-display only) aci_gap_set_auth_requirement (0x00-no bonding, 0x00-no MITM, SC_Support=0x01, 0x00-fixed pin, 0x00000000-fixed pin value) aci_gap_set_auth_requirement (0x00-no bonding, 0x00-no MITM, SC_Support=0x01, 0x00-fixed pin, 0x00000000-fixed pin value)

  4. EXAMPLE LE security Mode 1 level 4 - OOB 2/7 Pairing with OOB_Data_Flag combination Peripheral= 0x01 4 Central=0x00 Peripheral (slave) Central (master) Central is the device where the OOB data shall be extracted Peripheral is the device where the OOB data shall be set OOB data from central set to peripheral Force the regeneration of the EDCH_public key on source device Set LE Event Mask to require the stack to produce the HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE_EVENT Hci_le_set_event_mask(0x000000000000019F) Hci_le_read_local_p256_public_key() Hci_le_read_local_p256_public_key_complete_event Generate OOB data on device data source Aci_gap_set_oob_data( device_type=0x00, Address_type=0x00, address=0x00, Oob_data_type=0, Oob_data_len=0, Oob_data=0)

  5. EXAMPLE LE security Mode 1 level 4 - OOB 3/7 Pairing with OOB_Data_Flag combination Peripheral= 0x01 5 Central=0x00 Peripheral (slave) Central (master) Get own OOB data from device data source Aci_gap_get_oob_data( Oob_data_type=0x01-random) Hci_command_complete_event( Address_type,address, Oob_data_type=0x01, Oob_data_len=0x10, Oob_data=RANDOM_DATA local pairing data intended to the remote device to be sent via OOB) RANDOM_DATA and CONFIRM_DATA generated by the stack correspond to data sent to remote device via OOB Aci_gap_get_oob_data( Oob_data_type=0x02-confirm) Hci_command_complete_event( Address_type,address, Oob_data_type=0x02, Oob_data_len=0x10, Oob_data=CONFIRM_DATA local pairing data intended to the remote device to be sent via OOB)

  6. EXAMPLE LE security Mode 1 level 4 - OOB 4/7 Pairing with OOB_Data_Flag combination Peripheral= 0x01 6 Central=0x00 Peripheral (slave) Central (master) Input the OOB data arrived via OOB communication (Set OOB data from device data source on device data dest) Aci_gap_set_oob_data( Device_type=0x01 peer device, address_type=0x00, address= PEER_ADDRESS, Oob_data_type=0x01 Oob_data=RANDOM_DATA) Aci_gap_set_oob_data( Device_type=0x01 peer device, address_type=0x00, address= PEER_ADDRESS, Oob_data_type=0x02 Oob_data=CONFIRM_DATA)

  7. EXAMPLE LE security Mode 1 level 4 - OOB 5/7 Pairing with OOB_Data_Flag combination Peripheral= 0x01 7 Central=0x00 Peripheral (slave) Central (master) aci_gap_set_discoverable ADV_IND . . aci_gap_create_connection (peripheral address) CONNECT_REQ Aci_gap_proc_complete_event Aci_gap_proc_complete_event

  8. EXAMPLE LE security Mode 1 level 4 - OOB 6/7 Pairing with OOB_Data_Flag combination Peripheral= 0x01 8 Central=0x00 Peripheral (slave) Central (master) aci_gap_send_pairing_req PAIRING REQUEST(OOB authentification data not present) PAIRING RESPONSE(OOB authentification data from remote device present) Pairing Public key Pairing Public key

  9. EXAMPLE LE security Mode 1 level 4 - OOB 7/7 Pairing with OOB_Data_Flag combination Peripheral= 0x01 9 Central=0x00 Central (master) Peripheral (slave) PAIRING RANDOM PAIRING RANDOM Pairing DHKey Check Pairing DHKey Check Encryption_change_event (Encryption enabled) Encryption_change_event (Encryption enabled) aci_gap_pairing_complete_event Encryption enabled aci_gap_pairing_complete_event Encryption enabled

Related


More Related Content