5G Hotspots

*TPM 2.0 not required for non-Freedom Fi partners

Link to doc that Freedom Fi shares with partners prior to receiving hardware.

Security

  1. How is the private key loaded onto the device? (Is it generated on-device or is it imported externally?)
  2. Where is the device located when this happens? (Factory? A subsidiary? When booted by the end-customer?)
  3. What kind of non-volatile memory is used to store the private key?
  4. Is the private key encrypted when it is stored in this memory?
  5. If so, where is the key necessary to decrypt the encrypted private key stored?
  6. Again, if the key is encrypted, does each device possess its own unique storage key, or is it shared across all devices?
  7. Again, if the key is encrypted, is there also a verification check to ensure that the key has decrypted properly when it is loaded?
  8. How is the trusted code loaded?
  9. How is the code checked for authenticity when it is loaded?
  10. Who in your organization has access to the keys used for signing this code?
  11. Your implementation should have the ability to be updated. Please share the update method. **
  12. What specific signing, encryption, decryption, or verification operations can an external entity ask the code to perform? (External entity means code outside the secure element, such as, say, the Helium “miner” process).
  13. Considering the algorithms your implementation implements, are there certain operations/messages that you are aware of that the code must never perform lest it leads to an exposure of the private key?
  14. Does the code protect against these messages/operations?
  15. What side-channel attacks does your implementation work to avoid, if any? (As a reminder, side-channel attacks extract key information from variations in timing, power, temperature, electromagnetic fields, etc).
  16. What fault-injection attacks does your implementation work to avoid, if any? (As a reminder, fault-injection attacks include power-glitching, laser pulses, strong EM fields, etc).