Privastead - système open source de caméra de sécurité domestique personnelle (avec chiffrement de bout en bout)
(github.com/privastead)- Secluso est un système personnel DIY de caméra de sécurité domestique basé sur Raspberry Pi, qui permet de consulter le direct, les notifications et les enregistrements sur son téléphone sans confier les vidéos à un fournisseur cloud
- L’accès à distance prend en charge le chiffrement de bout en bout et, dans le parcours standard, Secluso Deploy gère la construction de l’image, l’appairage et la configuration du relais avec un objectif d’installation en 5 minutes
- Le matériel pris en charge comprend le Raspberry Pi Zero 2W, le Raspberry Pi Camera Module V1/V2 ou des caméras basées sur les capteurs Sony OV5647 et IMX219, un Android ou un iPhone, ainsi qu’un compte de relais sur un VPS Linux ou un hébergement relais bêta gratuit pour les tests
- Le mode de déploiement injecte dans une image Secluso OS précompilée des identifiants uniques générés sur la machine de l’utilisateur, et fournit des builds reproductibles du binaire d’exécution, de l’outil de déploiement, de l’application Android et de Secluso OS
- Le modèle de sécurité inclut une conception de relais non fiable, la confidentialité persistante et la sécurité post-compromission, mais exige de vérifier les lois locales sur l’usage du chiffrement et implique la responsabilité de l’utilisateur
Ce que propose Secluso
- Secluso est un système personnel de caméra de sécurité domestique pour Raspberry Pi
- L’utilisateur peut effectuer les actions suivantes depuis son téléphone
- regarder le flux vidéo en direct
- recevoir des notifications
- ouvrir les vidéos enregistrées
- L’objectif est d’accéder à distance aux vidéos de sécurité du domicile sans les confier à un fournisseur cloud
- Le projet est développé par Secluso, Inc., avec Ardalan Amiri Sani et John Kaczman indiqués comme cofondateurs
Fonctionnalités principales
-
Accès à distance avec chiffrement de bout en bout
- permet d’accéder depuis le téléphone au direct, aux notifications et aux vidéos enregistrées
-
Configuration en 5 minutes
- dans le parcours de configuration habituel, Secluso Deploy gère la construction de l’image, l’appairage et la configuration du relais
-
Open source
- il est possible d’inspecter le code, d’auto-héberger la solution et d’y contribuer
-
Releases entièrement reproductibles
- il est possible de vérifier, à partir du code source public, les binaires d’exécution, l’outil de déploiement, l’application mobile Android et Secluso OS
Prérequis
-
Raspberry Pi
- Raspberry Pi Zero 2W
-
Caméra
- Raspberry Pi Camera Module V1 ou V2
- ou caméra basée sur les capteurs Sony OV5647 ou IMX219
-
Relais
- un accès de connexion à votre VPS Linux
- ou un e-mail pour demander l’hébergement relais bêta gratuit pendant la phase de test
-
Téléphone
- un Android ou un iPhone pour l’appairage, les notifications et la lecture
Flux de configuration rapide
- télécharger Secluso Deploy depuis la dernière release
- générer localement une image Secluso OS personnalisée et un QR code secret pour la caméra
- laisser Secluso Deploy provisionner votre relais en SSH, ou demander par e-mail un hébergement relais bêta gratuit pour les tests
- démarrer le Raspberry Pi et l’appairer dans l’application mobile
- si vous avez besoin d’aide pour choisir le matériel ou le VPS, le Build Your Own Guide propose des recommandations matérielles et un parcours de démarrage simplifié
Application mobile
- après la configuration, l’application mobile permet de vérifier à distance, de consulter les événements récents et d’ouvrir des clips chiffrés
- liens vers l’application mobile
Sécurité et builds reproductibles
- le modèle de sécurité inclut une conception de relais non fiable, la confidentialité persistante et la sécurité post-compromission
- la méthode de signalement des vulnérabilités est décrite dans SECURITY.md
- le projet distribue Secluso OS, une image Raspberry Pi précompilée
- Secluso Deploy génère des identifiants uniques sur la machine de l’utilisateur et les injecte dans l’image précompilée
- Secluso OS, l’outil de déploiement, les binaires d’exécution et l’application Android sont entièrement reproductibles
- les ressources de vérification se trouvent ici
- releases/README.md : vérificateur de reproductibilité des binaires et de l’outil de déploiement
- mobile_client/tool/repro/README.md : vérificateur de reproductibilité de l’application mobile Android
- os/README.md : vérificateur de reproductibilité de Secluso OS
- l’image doit être inspectée avant toute modification par l’outil de déploiement et doit être téléchargée directement depuis les releases
Contribution et points d’attention
- les questions et contributions sont les bienvenues, et toute contribution est soumise à la licence du projet
- le contact est secluso@proton.me
- ce projet utilise le chiffrement, il est donc nécessaire de vérifier les lois locales avant utilisation
- l’utilisateur l’utilise sous sa propre responsabilité, et les auteurs du projet ne fournissent aucune garantie en matière de protection de la vie privée ou de sécurité domestique
1 commentaires
Avis sur Hacker News
Projet vraiment excellent. Pour les raisons mentionnées plus haut, je n’avais pas installé de caméras de sécurité chez moi, mais ça me fait reconsidérer la question.
Combiné au firmware open source https://github.com/openmiko/openmiko, cela pourrait faire un duo puissant pour les personnes attachées à la confidentialité.
Cela éviterait d’avoir besoin d’une machine séparée pour jouer le rôle de hub, ce qui simplifierait beaucoup la configuration.
Si vous avez besoin d’une conception hardware + firmware open source pour une caméra avec capteur de détection de mouvement, en voici une :
https://github.com/maxlab-io/tokay-lite-pcb
Elle est aussi disponible à l’achat :
https://www.mouser.ca/ProductDetail/Maxlab/TOKAY-LITE-01?qs=...
Tous les produits fermés que j’ai vus règlent l’iris/l’exposition sur l’exposition moyenne de l’image, si bien que la plaque ressort comme un rectangle entièrement blanc.
Il faudrait faire en sorte de balayer des expositions claires et sombres lors de l’enregistrement nocturne.
En utilisant un KEM[1] pour construire une structure de type sealed_box[2], on peut préserver la confidentialité même si le matériel de la caméra est physiquement saisi.
On peut aussi offrir une résistance quantique en combinant ML-KEM, c’est-à-dire Kyber, avec McEliece-KEM, ECDH ou RSA-KEM.
Dans ce type de système, une approche classique par clé symétrique est aussi résistante au quantique en soi, mais le matériel de la caméra détient une clé symétrique de longue durée qui peut être extraite après saisie.
Un mécanisme de ratchet qui hache la clé à intervalles réguliers peut aider, mais il n’y a pas d’auto-récupération et il existe un risque de récupération d’anciennes clés depuis le stockage persistant.
[1] <https://en.wikipedia.org/wiki/Key_encapsulation_mechanism>
[2] <https://libsodium.gitbook.io/doc/public-key_cryptography/sea...>
Il y a quelques années, je voulais créer un système de sécurité domestique autosouverain pour des communautés entières et des HOA. J’avais discuté avec des ingénieurs d’IBM de la possibilité de scanner les vidéos avec des modèles de machine learning à proximité des appareils.
J’ai acheté des caméras utilisant RTMP et RTSP et je les ai envoyées à des développeurs ; ensuite, les streamer quelque part via WebRTC n’a pas été difficile. WebRTC dispose d’un chiffrement de bout en bout.
Mais mon cas d’usage consistait à conserver des vidéos chiffrées, avec une clé différente par minute et par caméra, et il fallait définir clairement le protocole de déchiffrement.
À mes yeux, le problème de sécurité ne se limite pas à une extrémité, c’est-à-dire enregistrer des crimes, mais inclut aussi l’autre extrémité : la surveillance de masse et « qui surveille les surveillants ».
Un texte plus long se trouve ici : https://community.qbix.com/t/balancing-privacy-and-accountab...
Si vous voulez monter avec moi une startup vendant cela aux propriétaires et aux gated communities, contactez greg sur le domaine qbix.com.
Avec du chiffrement de bout en bout, je comprendrais que cela signifie que le trafic entre la caméra et l’app est chiffré, mais en réalité ce n’est pas le cas.
Pour cela, l’application embarquée dans la caméra devrait prendre le système en charge, ce qui est toutefois possible sur beaucoup de caméras.
C’est d’autant plus vrai dans le contexte de serveurs et de services de notification non fiables.
Je place tous les appareils non fiables, y compris les caméras, dans un VLAN sans accès à Internet ; le VLAN principal peut y accéder, mais l’inverse est bloqué.
Sur le VLAN principal, je fais tourner Frigate et Home Assistant pour me connecter aux caméras. Depuis l’extérieur de la maison, je me connecte via WireGuard.
Je me demande quel est l’intérêt d’ajouter un composant « serveur » non fiable. Est-il censé tourner ailleurs que sur le « hub caméra » de confiance, par exemple sur un serveur cloud ?
C’est un point central de l’affirmation selon laquelle Privastead offrirait une meilleure confidentialité que d’autres solutions, mais il n’est pas expliqué.
Mon NVR [1] n’utilise qu’un serveur de confiance situé dans le même bâtiment que les caméras. Je recommande aussi d’empêcher les caméras d’accéder à Internet, car les logiciels fermés sont généralement un cauchemar absolu en matière de confidentialité et de sécurité.
[1] https://github.com/scottlamb/moonfire-nvr
Personnellement, j’utilise une VM DigitalOcean bon marché.
La partie « garantir que seuls le hub et l’application mobile peuvent accéder aux vidéos non chiffrées » est intéressante.
Avec l’implémentation Rust d’OpenMLS, le stockage sécurisé de bout en bout et les vecteurs TLS, une configuration DIY de caméras domestiques connectée à Internet via le hub Privastead n’aurait plus besoin de tunneling sécurisé.
On pourrait aussi y ajouter de la reconnaissance faciale et de la surveillance en temps réel.
Si vous avez déjà vu des eigenfaces, vous aurez peut-être l’impression qu’elles ressemblent aux premiers humains. Une méthode est l’analyse en composantes principales (PCA), qui sépare les principales caractéristiques d’un visage humain du bruit lié aux traits les plus essentiels du visage.
Comme l’accent est beaucoup mis sur la sécurité, il peut aussi être intéressant de noter qu’il existe des caméras prenant en charge le Secure Boot. À ma connaissance, Axis est l’un des fabricants qui se concentrent sur cette fonctionnalité.