Secure DIY Garage Door Opener

By on February 24, 2020
Pin It


We are going to use digital signatures to add security to our system. If you want to learn more about how to use the Cryptographic Co-processor, check out this tutorial and video. These will show you the fundamental ideas behind digital signatures, walk you through how to setup each co-processor.

For the secure garage door opener example shown here, we are going to do something very similar to Example 6 in the Arduino Library. A complete cycle will follow these steps:

  1. User presses button on remote to engage cycle.
  2. Remote sends a “request for token”.
  3. Base generates a new random token (32-bytes).
  4. Base sends token to remote.
  5. Remote creates ECC signature on token (using its unique private key).
  6. Remote sends ECC signature to base.
  7. Base verifies signature using remote’s public key.
  8. If verified, base opens garage.

What makes this so secure is the fact that the only place in the world that can create a valid signature is inside the remote’s co-processor. This is because the private key was generated randomly during configuration and will never leave the IC. If you don’t have that actual piece of hardware (the remote co-processor), you will never be able to create a signature.

Also, the fact that the base creates a new random token for each cycle, allows us to prevent against man-in-the-middle and roll-jam attacks.

More info


About Emanuele Signoretta

Studying electronics and communication engineering at Politecnico di Torino. Electronics, IT and Open Source enthusiast.

Leave a Reply

Your email address will not be published. Required fields are marked *