Hola comunidad de Arduino, la verdad me preguntaba cómo podía ponerle un cierto grado de seguridad a algún proyecto que necesite de una seguridad para proteger sus datos ya que con Fuse es muy inseguro. Estuve consultado y la verdad es escaso todo este tema. Logre ver que el DS2401 sirve para brindar un código de verificación único, pero la verdad no tendría idea de cómo implementarlo. Solo encontre su hoja de datos, y la verdad no me aporto mucho, ya que no hay nada relacionado a este.
Hola
que placa de arduino estas usando?
Ola,
Hola,
en realidad, el DS2401 es un dispositivo de 1Wire y tiene un número único (ROM).
Para poder ayudarte, necesitas explicar mejor tu proyecto.
La biblioteca onewire.h proporciona un medio para leer la ROM de chips de la familia 1Wire.
El quiere usar el DS2401 como un elemento único de encriptacion para ese dispositivo.
Estoy usando un Atmega328P-AU (Arduino Uno)
Si sirve para evitar o mitigar un poco que se roben el codigo esta muy bueno.
Lo que deseo es: Una vez creado el codigo de mi arduino. Usar este elemento DS2401 para brindarle una seguridad a mi arduino, con el numero unico creando un dispositivo unico.
Si se puediera encriptar el hex tendrias los que buscas pero lo mejor que puedes hacer es que tu código consulte el valor del DS2401 cada x tiempo, como medida de seguridad.
Cualquiera con conocimientos, puede copiar el hexa de tu arduino (usando averdude), luego poner otro DS2401 y editar tu hexa con los valores que le corresponda a este y ya te lo hackeo el sistema. De algun modo tienes que validar ese código, grabarlo en la EEPROM o algo. Esa validación te juega en contra.
Recuerdo a alguien que empezó un trabajo de encriptación pero luego lo abandonó (si mal recuerdo).
Tienes el problema que los arduinos tienen poca RAM asi que es poco lo que se puede desencriptar y ademas correr un programa.
Esa es mi visión. He leido que hay microcontroladores que tienen capacidades de encriptación.
STM por ejemplo tiene varios modelos.
Gracias por tu respuesta Surbyte por lo que la mejor opción será conseguir un microcontrolador que soporte algún tipo de encriptación SMT, y una causa la cual no sería viable es por la limitación de memoria RAM de un Arduino. Buscare en base a otros micros. ¡¡Muchas gracias!!
Entiendo que a muchos, a veces, nos preocupa que nos copien un código pero te cuento una anécdota.
Año 1983, en el trabajo había una máquina que debía leer una botonera (3 líneas de 64 pulsadores, 3 más con sendos interruptores) más otra botonera de 16 x 4 de los mismos componentes. En total 256 pulsadores y otros tantos interruptores.
Los pulsadores e interruptores activaban 256 relays que manejaban sendos contactores.
El tema es que las maniobras se guardaban en cinta (con un grabador de cinta abierta) para repetirlas a voluntad.
O sea, la máquina tenía 3 modos de trabajo, un modo "manual" que se manejaba "en vivo", un modo "programación" en que se grababa en cinta cada acción de los pulsadores e interruptores y un modo "automático" en el que se ejecutaban las maniobras grabadas en la cinta.
Sabíamos que la máquina había sido probada por el proveedor (una empresa extranjera) y que había sido el último que "la vio con vida".
Con un compañero nos propusimos ponerla en marcha.
Lo único que teníamos de la CPU era la placa a la que le faltaba todo lo que tenía zócalo y era todo menos 2 integrados porque estaban soldados y un manojo de componentes discretos.
No había micro, ROM, RAM, periféricos, nada, solo esos 2 integrados.
Uno era un Z80CRT y otro (no recuerdo ahora la denominación) que se usaba para manejar datos seriales por modulación FSK.
Eso era todo lo que teníamos pero sabíamos lo que debía hacer (como ya dije).
El Z80CRT nos indicó que el micro que faltaba era un Z80CPU de entre las pocas opciones de aquellos años.
Ya con ese supuesto pudimos ir "imaginando" el resto de los integrados que faltaban (ROM, RAMs, varios 8255, unas cuantas puertas TTL).
Cuando tuvimos armado en los papeles el circuito, empezamos a "armar" el soft (todo en puro y crudo assembler).
Reconozco que llevó muchísimo trabajo, muchas pruebas y errores, una tarea de varios meses pero la logramos poner en marcha.
Seguramente quien quitó los chips creyó que así inhabilitaba la máquina, y fue cierto hasta que alguien se propuso hacerla funcionar.
Si quieren y ponen empeño te lo "copian" igual, no importa que el código sea idéntico al tuyo, lo que importa es que haga el trabajo.
O sea, en el fondo, no hay protección que valga.
Saludos
PD: Y me faltó un detalle, toda la placa estaba armada con wire-rapid, imaginate lo que fue "levantar" (pasar al papel) ese circuito.
EDITO: Donde dice Z80CRT debería decir Z80CTC
Acá tienes las opciones de STM
https://wiki.st.com/stm32mcu/wiki/Security:Introduction_to_the_cryptographic_library_with_STM32
Para mi sorpresa mira esto
https://rweather.github.io/arduinolibs/crypto.html
Arduino cryptographic Library
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.