- How to Adjust X and Y Axis Scale in Arduino Serial Plotter (No Extra Software Needed)Posted 2 months ago
- Elettronici Entusiasti: Inspiring Makers at Maker Faire Rome 2024Posted 2 months ago
- makeITcircular 2024 content launched – Part of Maker Faire Rome 2024Posted 5 months ago
- Application For Maker Faire Rome 2024: Deadline June 20thPosted 6 months ago
- Building a 3D Digital Clock with ArduinoPosted 11 months ago
- Creating a controller for Minecraft with realistic body movements using ArduinoPosted 12 months ago
- Snowflake with ArduinoPosted 12 months ago
- Holographic Christmas TreePosted 1 year ago
- Segstick: Build Your Own Self-Balancing Vehicle in Just 2 Days with ArduinoPosted 1 year ago
- ZSWatch: An Open-Source Smartwatch Project Based on the Zephyr Operating SystemPosted 1 year ago
Secure DIY Garage Door Opener
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:
- User presses button on remote to engage cycle.
- Remote sends a “request for token”.
- Base generates a new random token (32-bytes).
- Base sends token to remote.
- Remote creates ECC signature on token (using its unique private key).
- Remote sends ECC signature to base.
- Base verifies signature using remote’s public key.
- 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.