Proteccion de código Arduino - Consulta

Saludos a todos amigos y entusiastas del mundo arduino… :smiley:

::slight_smile: Este es mi primer Post en este foro y está relacionado con el tema de la protección y derechos de autores… Si así como dije y entiendo q arduino según e leído es de “Código abierto” pero también e leído q algunas librerías están siendo elaboradas por algunas personas y si mas no me equivoco hay q respetar los derechos de autores dichas librerías y no pueden ser modificadas o de hacerlo hay q compartir la modificación y es lo mas lógico.

Y se preguntaran porque esta pregunta… Pues ando elaborando un código en arduino para un proyecto personal con fines comerciales. No tengo problemas en compartir mis librerías pero el código en si del funcionamiento del equipo que estoy fabricando es lo que necesito proteger.

ahora mi pregunta; :grin:

//Puedo hacer un código en arduino y que este no pueda ser extraído del Chip ATMega328p y el ATMega2560? es decir q el chip quede bloqueado anti-Lectura para proteger mi código.

Muchas gracias espero alguien me ayude con esta gran duda que tengo

Hola, si es con motivos profesionales, no vas a compartir tu código, y encima quieres evitar que sea leído, me parece que debes contratar un profesional de seguridad electrónica que te asesore

Todos los chips ATMEGA tienen fusibles para diferentes configuraciones. Una de ellas es la que propones.
Pero una vez quemados los fusibles, no puedes cambiar el código, no puedes leerlo ni borrarlo.
Entonces tienes etapas de desarrollo. Cuando alcanzas la etapa de producción quemas los fusibles y eliges las opciones.
Para ello lo programas usando el ICSP y no por USB. Y transfieres el .hex, ajustas los fusibles y asunto terminado.

Si me preguntas hay formas de leerlo, pues si.. pero reservado para gente MUY MUY experta. Vale la pena?
Para mi lo que hay que proteger es una idea mas que el código, salvo que el código tenga un algoritmo de tu propiedad que tenga alguna novedad, y en ese caso piensa en patentarlo, pero es tan dificil el camino de la patente que aún con el equipo patentado (como me ocurrió a mi y a mi hermano) igual te roban con mínimos cambios. Carrera legal, compleja, muchos años, mucha gente corrupta y abogados que no conocees hasta donde te representan o no. En fin.. muy gris.

Te diré una solución muy simple que puedes usar.
Puedes guardar una llave en tu EEPROM y usarla de algun modo. la llave sera una clave de algún tipo.
Tu verás como usarla.
Puedes usar un dispositivo 1-WIRE como un DS18B20 (como conocido sensor de temperatura) o un simple DS2401 que tiene su MAC Address y la usas para identificar el equipo. Claro que tu código termina siendo único por cada equipo que vendas. Porque deberá tener esa MAC en algun sitiio para ser consultada.

Con estas herramientas yo creo que desalientas a la gran mayoría de los hackers.

Claro que me gustaría que alguien opine si estas IDEAS pueden ser suficientes.

Muchos fabricantes también borran la identificación del chip.

Jopapa, tuu hablas de la firma (signature), no es cierto?
Hay que borrar la identificación cerámica del componente pero yo he visto fotos de cómo con Rayos X leen mas cosas de lo que imaginas.
Tal vez era otra época (a principios del 2000 al 2005 digamos) y no se si a nivel de Arduino alguien hará eso o si valdrá la pena.
Bueno hay muchos controladores de vehículos con estos microcontroladores asi que claro que habra interesados siempre.

Hoy puedes sabiendo que hace un sistema pedirle a un programador que repita el funcionamiento de un equipo sin tener que hacer mas que la minima ingeniería inversa.

surbyte:
Todos los chips ATMEGA tienen fusibles para diferentes configuraciones. Una de ellas es la que propones.
Pero una vez quemados los fusibles, no puedes cambiar el código, no puedes leerlo ni borrarlo.
Entonces tienes etapas de desarrollo. Cuando alcanzas la etapa de producción quemas los fusibles y eliges las opciones.. .....

Esto si lo sabia para los PIC q es para la plataforma en la cual trabajaba... y como arduino era una plataforma nueva desconocía que se podía hacer así por igual... ya el proyecto que comencé a tomado gran forma y aun ando trabajando en el y es lo q hare.. gracias por aclarar esta duda.

surbyte:
Si me preguntas hay formas de leerlo, pues si.. pero reservado para gente MUY MUY experta. Vale la pena?
Para mi lo que hay que proteger es una idea mas que el código, salvo que el código tenga un algoritmo de tu propiedad que tenga alguna novedad, y en ese caso piensa en patentarlo, pero es tan dificil el camino de la patente que aún con el equipo patentado (como me ocurrió a mi y a mi hermano) igual te roban con mínimos cambios. Carrera legal, compleja, muchos años, mucha gente corrupta y abogados que no conocees hasta donde te representan o no. En fin.. muy gris......

sobre esto te cuento q ya me habían robado un proyecto en la industria petrolera de mi país Venezuela y por eso era mi pregunta y bueno es algo de lo q no quiero hablar(trauma jeje)... pero bueno sigo luchando para mi otro proyecto...

surbyte:
Te diré una solución muy simple que puedes usar.

Puedes guardar una llave en tu EEPROM y usarla de algun modo. la llave sera una clave de algún tipo.
Tu verás como usarla.
Puedes usar un dispositivo 1-WIRE como un DS18B20 (como conocido sensor de temperatura) o un simple DS2401 que tiene su MAC Address y la usas para identificar el equipo. Claro que tu código termina siendo único por cada equipo que vendas. Porque deberá tener esa MAC en algun sitiio para ser consultada.

Con estas herramientas yo creo que desalientas a la gran mayoría de los hackers.

Claro que me gustaría que alguien opine si estas IDEAS pueden ser suficientes.

sobre esto también lo pensé pero en donde lo planteaba no podía usar llaves de mantenimiento ya q era algo engorroso a la otra calibraciones por parte del personal de planta... pero bueno sin más q decir lo mejor es algo q se me ocurrió q es lo q estoy elaborando... encapsulando los chip ATMEGA borrando la cerámica y quemando los fusibles asi resultaria mas dificil que cualquier tramposo intente leer el codigo pues no sabria cuales son los pines y le desalentaria hacer cualquier cosa con mi proyecto... 3 ideas con un solo fin proteger mi diseño... el encapsulado lo estoy haciendo en resina de alta dureza y de este modo garantizo la producción de mi equipo y la compra de mis Chip encapsulados como repuestos.

y bueno sin mas q decir saludos y gracias por el aporte...

Jaio21:
Esto si lo sabia para los PIC q es para la plataforma en la cual trabajaba... y como arduino era una plataforma nueva desconocía que se podía hacer así por igual... ya el proyecto que comencé a tomado gran forma y aun ando trabajando en el y es lo q hare.. gracias por aclarar esta duda.

sobre esto te cuento q ya me habían robado un proyecto en la industria petrolera de mi país Venezuela y por eso era mi pregunta y bueno es algo de lo q no quiero hablar(trauma jeje)... pero bueno sigo luchando para mi otro proyecto...

sobre esto también lo pensé pero en donde lo planteaba no podía usar llaves de mantenimiento ya q era algo engorroso a la otra calibraciones por parte del personal de planta... pero bueno sin más q decir lo mejor es algo q se me ocurrió q es lo q estoy elaborando... encapsulando los chip ATMEGA borrando la cerámica y quemando los fusibles asi resultaria mas dificil que cualquier tramposo intente leer el codigo pues no sabria cuales son los pines y le desalentaria hacer cualquier cosa con mi proyecto... 3 ideas con un solo fin proteger mi diseño... el encapsulado lo estoy haciendo en resina de alta dureza y de este modo garantizo la producción de mi equipo y la compra de mis Chip encapsulados como repuestos.

y bueno sin mas q decir saludos y gracias por el aporte...

yo no tengo conocimientos como los de ustedes, pero siempre hay una forma, y si el metodo electronico no es suficiente, el metodo fisico si lo es, cubrir con resina como muchos fabricantes lo hacen (lo he visto), pero no nada mas el integrado, deberias cubrir toda la placa, seria casi imposible accesar a ella primero tendrias que romperla para poder accesar.

El topico terminó en 2015, luego un primer comentario fuera de lugar respondió en 2016 y ahora tu.
Mi pregunta es porque recibiendo un warning en letras rojas que decía que no comentes aún asi lo has hecho?

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

NO lo viste?
Bueno significa que no debes responder.
Significa que debes crear un hilo nuevo y dar tu opinión ahi. Entonces nadie te dirá nada.

Buenas amigo Jaio21, yo también soy de Venezuela y ando pensando en lo mismo que tu, de como colocarle una llave a mi código. Cualquier cosa puedes comunicarte conmigo mi numero es 0261-9968536.

Como podría hacer una llave para bloquear el código, tienes alguna idea?

El topico terminó en 2015, luego un primer comentario fuera de lugar respondió en 2016 y ahora tu.
Mi pregunta es porque recibiendo un warning en letras rojas que decía que no comentes aún asi lo has hecho?

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

NO lo viste?
Bueno significa que no debes responder.
Significa que debes crear un hilo nuevo y dar tu opinión ahi. Entonces nadie te dirá nada.

Leiste todo el hilo?
Parece que no!!

Crea un hilo nuevo por favor y no en Proyectos, hazlo en Software y no sin antes leer las normas del foro y cumplirlas.