Skip to content

feature request: require entropy from companion app to initialize the device #322

Description

@georgantas

This post outlines how the Jade generates its entropy:

User input
- CPU counters
- Battery state
- Ambient temperature
- Multiple images taken with camera during boot
- Built-in cryptographic-strength hardware number generator
- Entropy from the Blockstream companion app

The built-in hardware cryptographic random number generator (CRNG) derives entropy from various sources, one of which is the included radio (used for Bluetooth). If you [disable radio](https://help.blockstream.com/blockstream-jade/add-more-security-functionality/disable-bluetooth) with the optional “No-Radio” firmware, the CRNG loses that source and, therefore, has reduced entropy. To mitigate this, we use an ESP32 API call named “bootloader_random_enable()” to sample raw radio noise only during boot, which is then added to the entropy pool along with the sources mentioned above.

However, Entropy from the Blockstream companion app is optional. It would be nice to require that add_entropy be called at least once with at least 32 bytes before the entropy state is considered valid:

{
    "id": "925",
    "method": "add_entropy"
    "params": {
        "entropy": <bytes>
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions