L'ENREGISTREUR WITNESS ANGEL

Présentation

Witness Angel Recorder est notre logiciel d'enregistrement multi-plateforme de référence.

Il est capable de servir de "Network Video Recorder" (NVR), en captant le flux vidéo d'une caméra réseau, par exemple pour un Vidéotémoignage de copropriété. Mais il sait aussi se connecter à la caméra et au microphone locaux d'un mini-ordinateur Raspberry Pi, pour servir d'ange-témoin "Sac à main" ou "Dashcam".

Conformément à notre concept d'ange-témoin, l'enregistrement se fait en "écriture seule" : les données captées sont immédiatement chiffrées de façon puissante, et seul l'accord d'un nombre suffisant de tiers de confiance (appelés Gardiens de Clés) permettra de déchiffrer certains enregistrements si nécessaire (en cas de cambriolage, d'agression etc.).

Ce logiciel intègre d'ailleurs une petite Station de Révélation, qui va permettre de lister les conteneurs chiffrées, et de solliciter l'accord des gardiens de clés pour une telle opération de déchiffrement des données.

Installation

Vous pouvez obtenir le logiciel Recorder à partir de la page des versions publiées sur Github.

Dans l'onglet "Assets" se trouvent des versions du logiciel pour ordinateurs normaux, sous Windows, Mac ou Linux.

Vous trouverez aussi sur cette page une image-disque préinstallée pour mini-ordinateur Raspberry Pi.

Cette image-disque doit être décompressée (ex. avec 7-Zip sous Windows), puis gravée sur une carte mémoire MicroSD de 16 Go au moins. Beaucoup de logiciels gratuits sont capables de faire cela : Win32DiskImager, BalenaEtcher, RaspberryPiImager… Attention à télécharger ces logiciels depuis des sites officiels, sans "pourriciels" dedans. L'opération de gravure effacera au passage tout ce qui se trouve sur la carte mémoire ciblée, donc ne pas se tromper de périphérique destination.

 

Visite guidée du logiciel W.A Recorder

1 - Contrôleur d'enregistrement

Voici la page d’accueil du logiciel, qui permet de lancer et d'arrêter l'enregistrement.

Cette application est une interface (ou frontend) qui communique avec une autre application - lancée en tâche de fond - le service (ou backend) ; c'est ce "service" persistant va gérer l'enregistrement proprement dit, et continuer à tourner même quand l'interface est fermée.

Nous voyons dans la section principale l’état des paramètres importants de notre système : capteurs activés, récapitulatif des gardiens de clé sélectionnés, options d'enregistrement et d'archivage…

Si l'un de ces paramètres est invalide ("KO"), alors le lancement de l'enregistrement est impossible tant que le problème n'est pas résolu.

En bas de l'écran se trouve une vignette de prévisualisation : une image en basse qualité extraite du dernier clip vidéo entamé.

Enfin, dans la barre du haut, les icônes permettent respectivement de :

  • Relancer la vérification de l'état du système
  • Réinitialiser le service d'enregistrement (en cas de bug)
  • Changer la langue de l'interface
  • Accéder aux paramètres du programme

2 - Paramètres du programme

Les paramètres disponibles dans cette page varient en fonction du système où tourne le logiciel, ainsi les mini-ordinateurs Raspberry Pi supportent bien plus de capteurs que les ordinateurs normaux. Pour configurer un enregistreur réseau ("NVR"), par exemple, il vous faudra régler l'adresse de la caméra réseau (ou plus précisément, de son flux vidéo RTSP).

 Dans tous les cas, il vous faudra choisir combien de gardiens de clés devront donner leur autorisation avant qu'un déchiffrement ne soit possible.

Attention aux aspects juridiques : par exemple, la durée maximale de conservation des enregistrements des parties communes d'un immeuble est typiquement contrainte par la loi !

3 - Gestion des Gardiens de Clés

Afin de chiffrer les enregistrements, nous avons besoin des clés publiques de plusieurs "authentifieurs", ceux-ci étant les identités numériques des Gardiens de Clés. 

Cette page vous permet d'importer ces authentifieurs dans le logiciel, puis de sélectionner ceux à utiliser pour les futurs enregistrements.

Les authentifieurs peuvent être chargés automatiquement à partir des clés USB branchées ; dans ce cas, on peut choisir d'importer en même temps les clés privées (protégées par une phrase secrète), qui serviront uniquement en cas de procédure de déchiffrement.

On peut aussi importer un authentifieur public depuis la passerelle web WitnessAngel, en rentrant son identifiant unique. Lors de cette opération davantage sécurisée, seules les clés publiques seront importées, et la procédure de déchiffrement aura besoin d'un échange d'autorisations par Internet.

Notez qu'il est possible de compléter, après coup, un import de clés publiques avec les clés privées du même Gardien de Clés.

4 - Gestion des conteneurs chiffrés

Une fois un clip vidéo enregistré et chiffré, il est stocké dans un conteneur sécurisé ; l'ensemble de ces conteneurs est récapitulé ici.

Vous pouvez alors, plus tard, sélectionner un ou plusieurs conteneurs pour lancer une procédure de déchiffrement

5 - Procédure de déchiffrement

L'opération de déchiffrement est de loin la plus complexe de toutes, car elle nécessite de rassembler les conteneurs ciblés, l'ensemble des Gardiens de Clés référencés par ces conteneurs, et de déterminer les clés publiques de chaque Gardien qui ont été effectivement utilisées pour le chiffrement. Ce sont les clés privées correspondant à ces clés publiques qui serviront au déchiffrement.

Si certaines de ces clés privées ont été importées localement, leur propriétaire peut y donner accès en entrant sa phrase secrète dans l'interface. Sinon, il faut passer par le système d'autorisation à distance, qui va permettre à chaque Gardien de Clés, via son application "Authenticator", de donner accès aux clés désirées.

L'objectif, pour le demandeur, est donc d'obtenir un nombre suffisant d'autorisations pour que le déchiffrement réussisse.

Si un déchiffrement a déjà été tenté (sur n'importe lequel des conteneurs), son rapport peut être consulté à nouveau à partir d'ici.

6 - Soumission d'une requête d'autorisation

Cette page permet d'envoyer des "demandes d'autorisation" à des Gardiens de Clés sélectionnés, afin qu'ils autorisent sélectivement l'accès à certains conteneurs.

Ce processus doit bien sûr être complété par une communication externe avec les Gardiens de Clés, pour qu'ils comprennent et acceptent la nécessité d'une opération de déchiffrement.

7 - Listage des requêtes d'autorisation

Cette page récapitule, pour chaque conteneur, les demandes d'autorisation soumises à chaque Gardien de Clés, ainsi que leur statut.

Une fois qu'une demande a été acceptée ou rejetée, son statut ne peut plus changer ; mais il est toujours possible d'émettre de nouvelles demandes pour les mêmes conteneurs et Gardiens de Clés.

8 - Rapport de déchiffrement

Cette page résume, pour chaque conteneur, les erreurs ou avertissements potentiels émis lors de cette (complexe) opération.

Il peut arriver que certains Gardiens de Clés, ou certaines clés, soient introuvables ; ou que des phrases secrètes aient été perdues. Mais cela n'empêche pas nécessairement le déchiffrement, car grâce au système de "secret partagé" des conteneurs, il suffit qu'un nombre suffisant de clés privées (le "seuil" qui était présent dans les paramètres de l'application durant l'enregistrement) soient accessibles pour que le conteneur soit révélé.

Si l'opération est réussie, le ou les clips vidéo déchiffrés sont exportés dans le dossier mentionné. Si des erreurs ou des avertissements sont apparus, ils sont également exportés, au format texte, dans ce dossier.