🔐 Sécurité des appareils (défense en profondeur)
Au-delà du cloud, les caméras elles-mêmes seraient renforcées en trois couches complémentaires. Chaque couche protège contre une menace différente, et la couche matérielle protège les secrets utilisés par les deux autres — un attaquant devrait donc franchir les trois à la fois.
- Couche 1 — Jeton unique par caméra (niveau applicatif) : au lieu d'un secret partagé, chaque caméra dérive son propre jeton de son adresse MAC combinée à un secret côté serveur (HMAC-SHA256). Le serveur le recalcule et le vérifie à chaque requête. Un jeton volé ne fonctionne que pour une seule caméra, et n'importe quelle caméra peut être révoquée individuellement. Le coût est négligeable (~2 Ko de RAM, le SHA-256 est intégré à l'ESP32) et c'est entièrement réversible, ce qui en fait une première étape sans risque.
- Couche 2 — TLS mutuel avec certificats client signés (niveau connexion) : chaque caméra porterait un certificat X.509 unique signé par une autorité de certification privée (PKI). Le serveur rejetterait toute connexion ne présentant pas un certificat signé par cette autorité ; un ESP32 étranger ou contrefait ne peut donc tout simplement pas établir de session. C'est la solution classique du « certificat signé » ; son coût principal est la RAM pendant la poignée de main TLS (~40–50 Ko), que le WROVER absorbe grâce à ses 8 Mo de PSRAM. Le vrai effort est opérationnel : gérer une PKI, émettre un certificat par caméra et gérer la révocation.
- Couche 3 — Secure Boot + chiffrement de la flash (niveau matériel) : les eFuses matériels de l'ESP32 (bits programmables une seule fois, physiquement irréversibles) stockeraient des clés qui (a) font que la puce n'exécute que du firmware signé avec la clé privée du fabricant, refusant au démarrage toute version modifiée ou infectée, et (b) chiffrent la flash pour que le firmware — et les secrets des couches 1 et 2 — soient illisibles même en dessoudant la puce. C'est ce qui répond vraiment à « ne pas laisser entrer un appareil infecté », car cela garantit que seul le firmware authentique s'exécute et que ses secrets restent dans le silicium.
- Pourquoi les trois ensemble : la couche 3 protège les couches 1 et 2 — sans elle, le jeton par caméra et la clé privée du certificat pourraient être extraits du firmware ; avec elle, ils deviennent inextractibles. Un intrus aurait besoin d'un firmware signé par nous, d'un certificat signé par notre autorité et d'un jeton valide, tout en même temps. Elles se déploient dans l'ordre (jeton d'abord, TLS mutuel ensuite, scellement matériel en dernier) car le Secure Boot est irréversible et ne s'applique qu'une fois le firmware final — comme couler le béton des fondations une fois les plans figés.