Storing ECC private keys in the SpringCore's Secure Element

Devices in the SpringCore family feature on or more Secure Elements (SE) to store the security keys that are involved in your system. This covers both the keys used by the Smart Reader template engine or a PC/SC application for authenticating and validating the user credentials (contactless card or NFC pass) and the keys used for securing the communication between the device and the back-end system (MQTT over TLS to interact with a cloud system, secure BLE, secure UDP or TCP protocols, etc.).

Both Puck and SpringPark feature a Microchip ATECC chip (formerly an Atmel reference) to store ECC private keys (NIST P-256 curve a.k.a. secp256r1 and prime256v1). Such private keys are typically involved in three use cases:

  • To authenticate and decipher (decrypt) an Apple VAS NFC pass (Passkit),
  • To activate, authenticate and decipher (decrypt) a Google VAS NFC pass (Smart Tap),
  • To open a SSL/TLS secure communication channel with a server over a TCP/IP network, providing client-side authentication of the device.

This article shows how-to insert existing ECC private keys into the SpringCore's ATECC.

Read More