You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Brief Overview of Security Features Added + Rationale
Implemented ChaCha20-Poly1305 encryption for both frames and subscription updates, ensuring confidentiality and authenticity.
Each encrypted frame (frame_packet_t) and subscription update (encrypted_subscription_update_packet_t) includes an authentication tag (TAG[16]), preventing tampering during transit.
Subscription state is integrity-protected using MD5 hashes stored in channel_status_t, preventing unauthorized modifications in memory. Subscriptions are only processed if they pass hash verification (verify_subscription_hash()).
Validate that timestamps always increase (verify_timestamp()), ensuring old messages cannot be replayed
Side-channel resistance: Introduced random execution delays (rand_delay()) in key security checks (timestamp verification, decryption, subscription validation) to mitigate timing attacks.
Adusted read_bytes() with modulo operation and proper error reporting to mitigate overflows.
Layout
decoder/ - Firmware for the television decoder.
project.mk - This file defines project specific variables included in the Makefile
Makefile - This makefile is invoked by the eCTF tools when creating a decoder.
Dockerfile - Describes the build environment used by eCTF build tools.
entry.sh - Entry point for Dockerfile.
inc/ - Directory with c header files
src/ - Directory with c source files
wolfssl/ - wolfSSL crypto library
deployment/ -
create_global_secrets.py - Creates the secrets.h file during the build process