- Configuring an ESP8266 for Battery PowerPosted 16 hours ago
- Creating a Telegram Bot for ESP32Posted 2 days ago
- Mini Course on BlynkPosted 3 days ago
- Creating a Unique Electronic Musical Instrument: The Sound WallPosted 5 days ago
- Building a Laser MicroscopePosted 5 days ago
- Grand Piano Keys with ArduinoPosted 1 week ago
- Wireless Power TransferPosted 1 week ago
- Robot Punchers with ArduinoPosted 1 week ago
- A minimal 3D-printed scalePosted 2 weeks ago
- Expanding the pins of a microcontrollerPosted 2 weeks 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.