1 puntos por GN⁺ 2023-10-09 | 1 comentarios | Compartir por WhatsApp
  • OpenIPC es un proyecto de firmware de código abierto que busca reemplazar el firmware propietario o abandonado de cámaras IP basadas en ARM y MIPS de varios fabricantes
  • Los usuarios finales pueden instalarlo con firmware binario precompilado, y los desarrolladores pueden acceder al código fuente completo para participar en su mejora
  • El código fuente se publica bajo la MIT License, por lo que también puede reutilizarse como parte de software propietario, aunque se solicita devolver las mejoras y contactar en caso de uso comercial
  • El proyecto y sus componentes incluyen una restricción explícita de prohibición de uso con fines militares
  • Al principio solo era compatible con SoC de HiSilicon, pero ahora el rango de chips compatibles se ha ampliado a Ambarella, Anyka, Fullhan, Goke, GrainMedia, Ingenic, MStar, Novatek, SigmaStar, XiongMai y más

Reemplazo de firmware cerrado para cámaras IP

  • OpenIPC es un sistema operativo de código abierto creado por una comunidad abierta
  • Está dirigido a cámaras IP basadas en procesadores ARM y MIPS de varios fabricantes
  • Su objetivo es reemplazar el firmware preinstalado por el proveedor
    • Suele ser cerrado y difícil de inspeccionar internamente
    • A menudo es inseguro o queda abandonado
    • También puede servir como alternativa para equipos cuyo soporte fue descontinuado

Instalación y participación en el desarrollo

  • Proporciona archivos binarios precompilados para que los usuarios finales puedan instalarlo fácilmente
  • También ofrece acceso a los archivos fuente completos para desarrollo y mejoras adicionales
  • Los desarrolladores interesados en contribuir pueden participar en la mejora del proyecto

Licencia y restricciones de uso

  • El código fuente de OpenIPC se publica bajo la MIT License
  • Los usuarios reciben permiso explícito para reutilizar el código con cualquier propósito
    • También se permite usarlo como parte de software propietario
  • El proyecto solicita que las mejoras se devuelvan a la comunidad
  • También pide que se pongan en contacto si van a usar el proyecto con fines comerciales
  • No se permite el uso con fines militares del proyecto OpenIPC ni de sus componentes

Ampliación del soporte de SoC

  • Históricamente, el firmware de OpenIPC solo era compatible con SoC de HiSilicon
  • A medida que continuó el desarrollo, se amplió la lista de procesadores compatibles
  • Actualmente incluye chips de los siguientes fabricantes
    • Ambarella
    • Anyka
    • Fullhan
    • Goke
    • GrainMedia
    • Ingenic
    • MStar
    • Novatek
    • SigmaStar
    • XiongMai
  • Se espera que la lista de procesadores compatibles siga creciendo

Documentación y referencias

  • Se puede encontrar más información sobre el proyecto en el sitio web y la wiki de OpenIPC

1 comentarios

 
GN⁺ 2023-10-09
Opiniones en Hacker News
  • Lo investigué por mi cuenta hace un tiempo, pero en su mayoría fue un proceso decepcionante. En teoría suena bien comprar cualquier cámara IP china y cambiarle el firmware por uno abierto, pero el problema real es comprar una cámara, o 10, y luego comprar más con el paso del tiempo.
    Es difícil saber qué hardware interno tiene en un momento determinado, por ejemplo cuál es el SoC real, y los fabricantes chinos cambian con frecuencia el SoC interno para mejorar márgenes. Aunque alguien haya reportado un mismo modelo, si compras el mismo número de modelo 6 meses o 1 año después, es difícil esperar que tenga el mismo hardware.
    En los sitios de venta o de los fabricantes casi nunca se indica qué SoC usan, e incluso si puedes encontrar o traducir información útil, no está claro que la empresa con ese nombre siga existiendo unos meses después. Al final, no hay una fuente repetible salvo probar muestras y usarlas hackeándolas uno mismo.
    Ojalá alguien vendiera o revendiera una línea de hardware de cámaras con OpenIPC u otro firmware abierto ya instalado. Hay una oportunidad de negocio vacante para ofrecer a usuarios domésticos y de oficina cámaras IP con firmware de seguridad garantizado, y ahora mismo solo hay cachivaches chinos aleatorios.

    • Si tengo dudas, asumo que toda cámara con firmware cerrado trae malware esperando para comunicarse con su casa, robar video/audio sensible o participar en una botnet. Eso ya pasó varias veces, y la solución actual es poner en medio un firewall que bloquee todo el tráfico hacia la LAN y hacia el exterior salvo el de las aplicaciones en las que confías.
      Se puede reutilizar como firewall una mini PC con varios puertos Ethernet y separar físicamente la subred de videovigilancia del resto de la red. Todas las cámaras van conectadas a un switch, y si se puede, conviene usar uno con soporte PoE. Por razones obvias, ni consideraría Wi-Fi.
    • Totalmente de acuerdo. Pasé por la misma frustración intentando conseguir cámaras que funcionaran con meses/años de diferencia. Hay que abrir cada producto y hackearlo uno mismo, y OpenIPC puede soportarlo o no. Hoy en día también vienen protegidas para que no sea fácil cargarles firmware, con barreras como pequeños puertos UART/de depuración y cargadores U-Boot deshabilitados.
      Ojalá alguien ofreciera una opción para comprar una cámara con hardware/software abierto, para no tener que abrir la red a servicios cloud aleatorios que exigen las cámaras baratas.
    • Para quien lo necesite, hay un proyecto paralelo que apunta a una cámara completamente open source.
      Hardware: https://github.com/maxlab-io/tokay-lite-pcb
      Firmware y capa de software: https://github.com/maxlab-io/tokay-lite-sdk
      La idea es lanzarla finalmente en Crowd Supply: https://www.crowdsupply.com/maxlab/tokay-lite
    • Los fabricantes podrían hacerlo directamente, pero la licencia prohíbe el uso comercial.
    • He pensado en algo así. ¿Hay alguien que quiera trabajar en esto conmigo?
  • Por ejemplo, la mayoría de los drivers de sensores parecen blobs binarios.
    Ambarella S3L: https://github.com/OpenIPC/firmware/tree/master/general/pack...
    Algunos chipsets HiSilicon: https://github.com/OpenIPC/firmware/tree/master/general/pack...
    Edición: algunos sensores más pequeños sí tienen código aquí:
    https://github.com/OpenIPC/sensors

    • Correcto. La aplicación de espacio de usuario que se encarga del streaming real también es de código cerrado: https://github.com/OpenIPC/majestic
      Ese repositorio de Git es solo para reportar bugs; no hay código fuente.
    • También usan kernels de proveedor muy antiguos. Van desde 3.x hasta 4.x y 5.x, lo que en cierta medida desvirtúa el propósito. La mayoría son bastante pequeños, así que parece mejor hacer ingeniería inversa.
      Da una fuerte sensación de firmware casero de 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.

    • Me pregunto si realmente quieren open source o si es un intento comercial de dejarle gratis a la “comunidad” la parte difícil de ingeniería.
      Si quisieran open source de verdad, el modelo de OpenWrt me parecía bastante bueno, y la naturaleza del trabajo de ingeniería también parece similar. Algunos fabricantes de hardware usan OpenWrt en su firmware, y gracias a eso parece que el OpenWrt open source mainline también termina soportando bien ese hardware.
    • Es confuso. El repositorio de GitHub tiene licencia MIT. ¿Quizás se agrega algún código fuente secreto con una cláusula no comercial que solo aplica a los binarios compilados?
  • Para quienes tengan curiosidad por saber si su dispositivo es compatible, aquí hay una lista:
    https://github.com/OpenIPC/wiki/blob/master/en/guide-support...

    • Vaya. De esas marcas de cámaras, solo he oído hablar de dos.
      No reconocí ninguna entre las miles de marcas rebautizadas/submarcas conocidas de HikVision y Daihua. Ambas compañías han estado implicadas en la represión de los uigures en China y fueron prohibidas por la NDAA. Referencia: https://ipvm.com/reports/ban-law
    • Por fin hay una forma de decidir qué cámara IP comprar.
  • Pregunta totalmente al margen, pero ¿alguien recomienda una cámara con buena o muy buena calidad de imagen que hoy sea fácil de conseguir (Amazon, AliExpress, etc.) y que sea compatible con esto?

    • A mí también me interesa. Hace tiempo compré un producto que creí que era compatible y luego descubrí que no. Sería bueno saber si alguien tuvo éxito con algún hardware específico.
  • Hace mucho tiempo armé un negocio con cámaras IP comerciales. Ese campo estaba lleno de firmware con bugs y enormes agujeros de seguridad, y el problema más grande que encontré era que se podían obtener fotos sin autenticación. Ese firmware casi nunca se actualizaba y, apenas sacado de la caja, era software abandonado.
    No parece que este proyecto sea completamente abierto, pero cualquier movimiento en esa dirección se siente como una bocanada de aire fresco.

  • OpenIPC no significaba para nada lo que yo pensaba.
    Estaba 100% seguro de que sería alguna abstracción o framework de comunicación entre procesos.

    • Exacto. Aquí IPC ya tiene un significado demasiado establecido. Un nombre como OpenIPCam habría sido un poco más seguro.
  • Majestic, el componente “core” principal de streaming de la cámara, es de código cerrado. Maneja RTSP, HLS, etc. El resto está abierto, salvo algunos blobs de SDK de terceros.

  • Lo interesante de este proyecto es que están reutilizando hardware barato de cámaras IP para usarlo en drones FPV como un sistema de video digital de latencia baja bastante decente.
    https://m.youtube.com/watch?v=wZAHkWHfBF4
    En su mayoría es una extensión del proyecto OpenHD, y se ve bastante prometedor.

  • Relacionado con esto, hace tiempo hackeé cámaras de acción Ambarella: https://github.com/petabyt/liemoth
    Al final lo dejé porque la calidad de las cámaras de acción era demasiado baja. Había cientos de proveedores vendiendo cámaras chinas baratas rebautizadas, y el firmware también era pésimo. Todo se calentaba y la batería duraba apenas unos minutos.