1 points par GN⁺ 2023-10-09 | 1 commentaires | Partager sur WhatsApp
  • OpenIPC est un projet de firmware open source visant à remplacer les firmwares propriétaires ou abandonnés des caméras IP basées sur ARM et MIPS de plusieurs fabricants
  • Les utilisateurs finaux peuvent l’installer via un firmware binaire précompilé, et les développeurs peuvent accéder à l’ensemble du code source pour contribuer à son amélioration
  • Le code source est publié sous licence MIT, ce qui permet sa réutilisation même dans des logiciels propriétaires, mais le projet demande le retour des améliorations et de prendre contact en cas d’usage commercial
  • Le projet et ses composants comportent une restriction explicite d’interdiction d’usage à des fins militaires
  • Initialement limité aux SoC HiSilicon, le projet a depuis élargi la prise en charge des puces à Ambarella, Anyka, Fullhan, Goke, GrainMedia, Ingenic, MStar, Novatek, SigmaStar, XiongMai, etc.

Remplacer les firmwares fermés des caméras IP

  • OpenIPC est un système d’exploitation open source créé par une communauté ouverte
  • Il cible les caméras IP reposant sur des processeurs ARM et MIPS de nombreux fabricants
  • Son objectif est de remplacer le firmware préinstallé par le fournisseur
    • souvent fermé et difficile à inspecter en interne
    • souvent peu sûr ou abandonné
    • peut aussi servir d’alternative pour du matériel dont le support a pris fin

Installation et participation au développement

  • Des fichiers binaires précompilés sont fournis pour faciliter l’installation par les utilisateurs finaux
  • L’accès à l’ensemble des fichiers source est également ouvert pour permettre des développements et améliorations supplémentaires
  • Les développeurs souhaitant contribuer peuvent participer à l’amélioration du projet

Licence et restrictions d’usage

  • Le code source d’OpenIPC est publié sous licence MIT
  • Les utilisateurs reçoivent l’autorisation explicite de réutiliser le code à n’importe quelle fin
    • y compris comme partie d’un logiciel propriétaire
  • Le projet demande que les améliorations soient reversées
  • Il demande également de prendre contact en cas d’utilisation du projet à des fins commerciales
  • L’usage à des fins militaires n’est pas autorisé pour le projet OpenIPC et ses composants

Extension de la prise en charge des SoC

  • Historiquement, le firmware OpenIPC ne prenait en charge que les SoC HiSilicon
  • Au fil du développement, la liste des processeurs pris en charge s’est élargie
  • Les puces des fabricants suivants sont actuellement prises en charge
    • Ambarella
    • Anyka
    • Fullhan
    • Goke
    • GrainMedia
    • Ingenic
    • MStar
    • Novatek
    • SigmaStar
    • XiongMai
  • La liste des processeurs compatibles devrait encore s’allonger à l’avenir

Documentation et ressources

  • Davantage d’informations sur le projet sont disponibles sur le site web et le wiki d’OpenIPC

1 commentaires

 
GN⁺ 2023-10-09
Avis de Hacker News
  • J’avais regardé ça moi-même il y a quelque temps, mais dans l’ensemble le processus a été décevant. Acheter n’importe quelle caméra IP chinoise et la remplacer par un firmware ouvert, c’est séduisant en théorie, mais le vrai problème, c’est le processus quand on achète une caméra, ou dix, puis qu’on en rachète plus tard
    À un instant donné, il est difficile de savoir quel matériel se trouve à l’intérieur, par exemple quel est le SoC réel, et les fabricants chinois changent souvent le SoC interne pour améliorer leurs marges. Même si quelqu’un a signalé le même modèle, si vous achetez le même numéro de modèle 6 mois à 1 an plus tard, il est difficile de s’attendre au même matériel
    Les sites de vente ou les sites des fabricants indiquent rarement quel SoC est utilisé, et même si vous arrivez à trouver ou traduire des informations exploitables, rien ne garantit que l’entreprise portant ce nom existera encore quelques mois plus tard. Au final, à part tester des échantillons et les hacker soi-même au fur et à mesure, il n’existe pas de source d’approvisionnement reproductible
    J’aimerais que quelqu’un vende ou revende une gamme de caméras sur lesquelles OpenIPC ou un autre firmware ouvert est déjà installé. Il y a une opportunité commerciale inoccupée pour fournir aux particuliers et aux professionnels des caméras IP avec un firmware de sécurité garanti, et pour l’instant on n’a que de la camelote chinoise aléatoire

    • En cas de doute, je considère que toute caméra avec un firmware fermé contient un malware prêt à communiquer avec son serveur d’origine, à voler des vidéos ou de l’audio sensibles, ou à participer à un botnet. C’est déjà arrivé plusieurs fois, et la solution actuelle consiste à placer entre les deux un pare-feu qui bloque tout le trafic vers le LAN et vers l’extérieur, sauf pour les applications de confiance
      On peut recycler un mini-PC avec plusieurs ports Ethernet comme pare-feu, et séparer physiquement le sous-réseau de vidéosurveillance du reste du réseau. Toutes les caméras doivent être connectées à un switch, de préférence compatible PoE si possible. Pour des raisons évidentes, je ne considérerais pas le Wi-Fi
    • Je suis entièrement d’accord. J’ai connu exactement la même frustration en essayant de retrouver des caméras fonctionnelles à quelques mois ou années d’intervalle. Il faut ouvrir chaque produit et le hacker soi-même, et OpenIPC peut le prendre en charge ou non. De nos jours, il y a aussi des protections qui empêchent de flasher facilement le firmware, avec des obstacles comme de minuscules ports UART/de debug ou un chargeur U-Boot désactivé
      J’aimerais que quelqu’un propose une option permettant d’acheter une caméra à matériel/logiciel ouvert, pour ne pas avoir à ouvrir son réseau aux services cloud aléatoires exigés par les caméras bon marché
    • Pour ceux que cela intéresse, il existe un projet parallèle qui vise une caméra entièrement open source
      Matériel : https://github.com/maxlab-io/tokay-lite-pcb
      Firmware et couches logicielles : https://github.com/maxlab-io/tokay-lite-sdk
      Le lancement final est prévu sur Crowd Supply : https://www.crowdsupply.com/maxlab/tokay-lite
    • Les fabricants pourraient le faire eux-mêmes, mais la licence interdit l’usage commercial
    • J’ai déjà réfléchi à quelque chose comme ça. Quelqu’un serait partant pour travailler dessus ensemble ?
  • Par exemple, la plupart des pilotes de capteurs ressemblent à des blobs binaires
    Ambarella S3L : https://github.com/OpenIPC/firmware/tree/master/general/pack...
    Certains chipsets HiSilicon : https://github.com/OpenIPC/firmware/tree/master/general/pack...
    Modification : certains capteurs plus petits ont leur code ici
    https://github.com/OpenIPC/sensors

    • Exact. L’application en espace utilisateur qui gère le streaming proprement dit est aussi à source fermée : https://github.com/OpenIPC/majestic
      Ce dépôt Git sert uniquement aux rapports de bugs, il n’y a pas de code source
    • Ils utilisent aussi de très vieux kernels fournisseurs. Ça va de 3.x à 4.x et 5.x, ce qui va assez à l’encontre de l’objectif. Comme la plupart sont plutôt petits, il vaudrait peut-être mieux faire de la rétro-ingénierie
      Ça donne fortement une impression de firmware homebrew Android
  • https://openipc.org/support-open-source

    It's Open Source
    Price of the Firmware
    The right to use the OpenIPC firmware and its components is granted to all users free of charge and only for personal, non-commercial purposes. If you are interested in using OpenIPC for your business projects, please contact our team.

    • Je me demande s’ils veulent vraiment de l’open source, ou si c’est une tentative commerciale visant à faire réaliser gratuitement par la « communauté » la partie d’ingénierie difficile
      S’ils veulent vraiment de l’open source, le modèle OpenWrt me semblait plutôt bon, et la nature du travail d’ingénierie paraît similaire. Certains fabricants de matériel utilisent OpenWrt dans leur firmware, et grâce à cela, l’OpenWrt open source mainline semble aussi bien prendre en charge ce matériel
    • C’est confus. Les dépôts GitHub sont sous licence MIT. Peut-être qu’un code source secret auquel s’applique une clause non commerciale est ajouté uniquement aux binaires compilés ?
  • Pour ceux qui se demandent si leur appareil est pris en charge, la liste est ici
    https://github.com/OpenIPC/wiki/blob/master/en/guide-support...

    • Waouh. Parmi ces marques de caméras, je n’en ai entendu que deux
      Même parmi celles connues comme les milliers de rebrands/sous-marques de HikVision et Daihua, je n’en ai reconnu aucune. Les deux entreprises ont été impliquées dans la répression des Ouïghours en Chine et ont été interdites par la NDAA. Référence : https://ipvm.com/reports/ban-law
    • Enfin un moyen de décider quelle caméra IP acheter
  • Question complètement hors sujet, mais quelqu’un aurait-il une recommandation pour une caméra avec une bonne, voire très bonne qualité d’image, actuellement facile à trouver (Amazon, AliExpress, etc.) et compatible avec ça ?

    • Ça m’intéresse aussi. J’avais acheté un modèle que je pensais compatible, avant de découvrir que non. Ce serait bien de savoir si quelqu’un a réussi avec un matériel précis
  • Il y a longtemps, j’ai créé une activité autour de caméras IP du commerce. Ce domaine était rempli de firmwares buggés et d’énormes failles de sécurité, et le plus gros problème que j’aie trouvé était qu’on pouvait récupérer des photos sans aucune authentification. Ces firmwares étaient rarement mis à jour et, dès la sortie de la boîte, c’était du logiciel abandonné
    Ce projet ne semble pas totalement ouvert, mais tout mouvement dans cette direction fait l’effet d’une bouffée d’air frais

  • OpenIPC ne voulait pas du tout dire ce que je pensais
    J’étais sûr à 100 % que ce serait une abstraction ou un framework de communication inter-processus

    • Oui. Ici, IPC a déjà un sens beaucoup trop établi. Un nom comme OpenIPCam aurait sans doute été un peu plus sûr
  • Majestic, le composant « cœur » principal du streaming de la caméra, est propriétaire. Il gère RTSP, HLS, etc. Le reste est ouvert, à l’exception de quelques blobs de SDK tiers

  • Ce qui est intéressant dans ce projet, c’est qu’il réutilise du matériel de caméras IP bon marché pour en faire une sorte de système vidéo numérique à faible latence, plutôt correct pour les drones FPV
    https://m.youtube.com/watch?v=wZAHkWHfBF4
    C’est en grande partie dans la continuité du projet OpenHD, et ça semble assez prometteur

  • Dans le même registre, j’avais autrefois hacké une action cam Ambarella : https://github.com/petabyt/liemoth
    J’ai fini par abandonner parce que la qualité des action cams était vraiment trop faible. Il y avait des centaines de vendeurs proposant des caméras chinoises bas de gamme rebrandées, et le firmware était catastrophique. L’ensemble chauffait et la batterie ne tenait que quelques minutes