Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

Resolvable Private Address Generation Cycle

The Central device is using Resolvable Private Addresses.

Even though private_addr_cycle_s is set to BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S (15 minutes),

When observed with a BLE sniffer, the Resolvable Private Address changes with each BLE connection.

I thought the address would change according to the set cycle regardless of BLE connections. Is that correct?

We're using a fixed IRK without bonding. Could that be causing this?

We are developing in the following environment:

  • SDK: nRF5 SDK 17.1.0
  • SoftDevice: S140 v7.2.0
Parents
  • Hi, 

    I thought the address would change according to the set cycle regardless of BLE connections. Is that correct?

    Correct. See this post

    Regards,
    Amanda H.

  • thank you for your reply.

    In terms of specifications, I understand that Resolvable Private Address (RPA) is updated at a set interval.

    I am calling the following function with a fixed IRK (m_irk).

    ble_gap_privacy_params_t privacy_params;
    memset(&privacy_params, 0, sizeof(privacy_params));
    privacy_params.privacy_mode         = BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY;
    privacy_params.private_addr_cycle_s = BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S;
    privacy_params.private_addr_type    = BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE;
    privacy_params.p_device_irk         = &m_irk;
    
    err_code = sd_ble_gap_privacy_set(&privacy_params);
    APP_ERROR_CHECK(err_code);


    Do you know why PRA is updated so often?

  • Hi Amanda,

    Thank you for the prompt confirmation and response.

    > But the thing is that the scanner/initiator regenerates a new address each time softdevice starts a new scanning.

    Can this behavior be considered a bug in the Softdevice?
    The initiator continuing to use the same address for 15 minutes is the correct behavior, right?

    Thank you.

  • The scanner/advertiser regenerates a new address when it starts a new scanning/advertisement.

    Only if the scanning/advertisement is continuously running, the address will be changed every 15 minutes or as configured. 

  •  

    Hi, Amanda.
    Thank you for your response.

    > The scanner/advertiser regenerates a new address when it starts a new scanning/advertisement.

    Would it be appropriate to consider this behavior to correspond to the following description in the Bluetooth SIG Specification?

    > If the Link Layer is reset, a new private address shall be generated and the timer started with any value in the allowed range.

    Thank you.

  • Genyu said:
    Would it be appropriate to consider this behavior to correspond to the following description in the Bluetooth SIG Specification?

    From the developer:

    Resolvable Private Address (RPA) is more used to protect an advertising device from being tracked by malicious peers. In the Bluetooth SIG Specification, "If the Link Layer is reset, a new resolvable private address shall be generated and the timer started with any value in the allowed range." Here "Link layer reset" means HCI reset, softdevice regenerates a new address not only on HCI reset and "when the timer expired", but also when starting a new advertising/scanning. 

    However, the spec does not prevent us from generating a new address more often. Therefore, the softdevice follows the privacy requirement in the spec.

    -Amanda H.

  •  

    Hi, Amanda

    > However, the spec does not prevent us from generating a new address more often. Therefore, the softdevice follows the privacy requirement in the spec.

    Thank you, my question has been cleared up!

Reply Children
No Data
Related