- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 8 von 8

Thema: Wie kann ich (m)einen Arduino-Sketch schützen?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    163

    Wie kann ich (m)einen Arduino-Sketch schützen?

    Anzeige

    Powerstation Test
    Hallo,

    ich habe einen Sketch für eine Fernsteuerung auf Basis Arduino / ATmega 328. Da ich evt. diese Fernsteuerung mehrfach herstellen möchte und verkaufen möchte, kommt der Gedanke ins Spiel, dass ein Käufer diesen Sketch selbst verwendet und das Gerät nachbaut. Wie kann ich das verhindern? Gibt es einen Software-Schutz, den ich in den Sketch einbauen und z.B. mit (m)einem Passwort versehen kann, so dass niemand ausser ich Zugang zu diesem Sketch hat? Oder ist es sogar sinnvoll und möglich, vom ATmega 328 ein paar Beinchen abzuschneiden, um ein mögliches Auslesen des Sketches sozusagen "hardwareseitig" zu verhindern? Wenn "ja", welche Beinchen wären das? Rx? Tx?

    Andi

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.056
    Ich würde den Bootloader umgehen und das Programm per ISP o.Ä. übertragen. Dann kann man den Controller mit Lockbits schützen. Ob es anders funktionieren würde weiß ich nicht. Ich programmiere aber auch nicht mit Arduino.

    MfG Hannes

  3. #3
    shedepe
    Gast
    Lockbits beim Atmega können da helfen. Dann Hardwareseitig erschweren dass man dran kommt. Aber so wirklich schützen kann man sich nicht dafür wenn jemand wirklich dran kommen will.

    Ein Hinweis außerdem: Elektronik Deutschland zu verkaufen ist wirklich enorm aufwendig. Da ist nichts von wegen mal schnell in einen eigenen Online shop stellen. Da muss man sich um Elektronikentsorgung, CE, EMV, usw. kümmern.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Zitat Zitat von shedepe Beitrag anzeigen
    Elektronik Deutschland zu verkaufen ist wirklich enorm aufwendig. Da ist nichts von wegen mal schnell in einen eigenen Online shop stellen. Da muss man sich um Elektronikentsorgung, CE, EMV, usw. kümmern.
    Wenn man Elektronik als Bausatz verkauft, entfällt das weitestgehend. Die CE-Zertifizierung ist für Bausätze nicht notwendig (es sei denn dieses hat sich in den letzten 15 Jahren wieder geändert). Die CE-Zertifizierung beinhaltet - meines Wissens - elektromagnetische Abschirmung. Alsdann, wenn man sicher ist, dass ein Gerät den Anforderungen entspricht (Grenzwerte einhält), nimmt man bei einem fertigen Produkt eine Eigenzertifizierung vor. So zumindest, wenn man Geräte verkauft, die aus Baugruppen zusammengesetzt sind, wobei jede für sich die gängigen Normen erfüllt. Bei selbstgebauten Platinen könnte ein Muster in ein Prüflabor gegeben werden, wo man dann eine Bescheinigung dafür bekommt.

    MfG
    Moppi

  5. #5
    shedepe
    Gast
    Mein letzter Stand dazu war: So ganz eindeutig ist das bei Bausätzen auch nicht, die Grenze soll da fließend sein. Aber ich gebe dir Recht, dass man da einiges Umgehen kann in dem man Bausätze verkauft

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    .. Sketch für eine Fernsteuerung auf Basis ..mega 328 .. dass ein Käufer diesen Sketch selbst verwendet und das Gerät nachbaut. Wie kann ich das verhindern? ..
    Also das Gerät nachzubauen wird ziemlich einfach sein - arduinos gibts fast überall, original, als Clone etc. Und das Gerätchen wird vermutlich auch nicht in Stahlplatten eingeschweißt.

    Du meinst aber sicher dass Du den Softwareklau verhindern möchtest. Hast Du schon mal versucht den Code >>den Maschinencode<< aus einem mega328 auszulesen und zu entziffern? Sprich: aus dem Hexfile das ursprüngliche Programm rauszuarbeiten? Versuchs mal mit nem einfachen "Hello World". Erstens ist das Disassemblieren nicht sooo einfach. Dann hat man mal ein Listing in Assembler das hoffentlich die ganze Chose wiedergibt - es kommt ja vor, dass zwischen den Maschinencodestückchen auch mal ein paar Daten sind - und die könnte man auch als Code (der dann sicher idiotische Aktionen brächte) interpretieren. Also nicht ganz einfach. Denn: der Sketch liegt bei Dir auf dem Rechner, der Hexfile sieht doch gewaltig anders aus.

    Hat man den richtigen Assemblercode dann muss man rausfinden welche Peripherie wo im Code angesprochen wird. Auch ein sattes Stück Arbeit - wenn das überhaupt klappt!

    Insgesamt bin ich der Meinung, dass ein duchschnittlicher Konsument bestenfalls das Gerätchen akribisch nachbaut, die Software exakt auf einen eigenen Controller kopiert und dann nutzt. Sehr geübte Programmierer könnten so nen Klau machen - aber die werden sicher selbst etwas bauen, hard- und softwaremässig. Das dürfte ganz erheblich leichter sein, als "dass ein Käufer diesen Sketch selbst verwendet". Wie erwähnt - der Quellcode ist nicht im Controller und ich finde Deine Bemühungen daher reichlich überflüssig. Nicht überflüssig sind die Vorsicht-Rufe oben zum Inverkehrbringen von Elektronikartikeln.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Wenn ich ein Gerät mit Software kopieren möchte, brauche ich den Source Code ja nicht,
    ich muss also nur irgendwie an die Binärdaten rankommen.
    Wenn ich die habe, progge ich die in einen anderen Chip.

    Um das zu verhindern, gibt es bei fast allen Chips das so genannte Read Code Protection.
    Oft auch "Last Fuse" Verfahren.
    Irgendwie gibt es aber immer wieder ein Hintertürchen wie man da trotzdem ran kommt.
    Ist alles immer ein Frage des Aufwandes und des Nutzens.
    Wennn ich ein Blinklicht habe, lohnt das Auslesen der Software nicht, da ich es schneller selbst programmiert habe.
    Den eigentlichen Code brauche ich aber eigentlich nur für Änderungen und das ist oft ja garnicht erforderlich.

    Ich setzte zwar auch immer die Last Fuse Bits, oder Read Protection Bits,
    damit habe ich zumindest einen gewissen Schutz vor Otto Normal Programmierer.

    Man glaub aber garnicht wie gewieft manche sind um trotzdem an den Code zu kommen...
    Da gibt es dann Beschreibungen, das man eine Überspannung an Pin x legen muss, den Chip auf Temperatur y
    bringen, dann.....
    Hier scheint man SEHR experimentierfreudig zu sein.

    Ich habe das bei einem Microchip PIC mal erlebt. Der Resetpin wurde mittels Register deaktivert und als Eingang programmiert.
    Man kann aber trotzdem auf diesem Pin einen Reset auslösen, indem man eine Spannung ca. 0.6 Volt höher als die Versorgung anlegt.
    Dann wird intern anscheinend eine Diode leitend und der Chip führt einen Reset aus, obwohl die Funktion deaktiviert wurde.
    Ist natürlich ausserhalb der Spezifikation, aber wen interessiert das schon Ich will damit nur zeigen wie simpel
    man eine deaktivierte Funktion umgehen kann.

    Für die Entwickler und/oder kleine Firmen ist das natürlich ganz schlimm, wenn es dann plötzlich einen Clone für einen Bruchteil des Preises gibt.
    Gutes Beispiel ist ein Stabilisierungssystem für Modellhubschrauber, (ich hab den Namen bzw. Hersteller bewust raugenommen) das kostet Original so ca. 200 Euro.
    Es gibt einen hundert Prozent Clone für rund 30 Euro. Da funktioniert auch die recht komplexe Programmiersoftware völlig identisch.
    ! Das soll hier aber keine Werbung für Clone sein, das macht leider viele Firmen kaputt.
    Einen wirklichen Schutz gibt es also nicht.

    Wenn man wirklkich meint etwas Bahnbrechendes entwickelt zu haben, gibt es noch die Möglichkeit ein "Gebrauchsmuster" anzumelden,
    das kost glaube ich keine 50 Euro. Das ist ähnlich bzw. die Vorabversion eines Patents.


    Siro
    Geändert von Siro (29.10.2018 um 22:33 Uhr)

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    163
    Vielen Dank für Eure Antworten. Das Auslesen scheint also zumindest schwierig zu sein und nur für "Kenner" machbar. Das Kopieren direkt in einen anderen Prozessor jedoch leichter - was ja letztlich das (bzw. "ein") Ziel wäre, um das Ganze nachzubauen. So entnehme ich das Euren Antworten. Dann muss ich wohl damit "leben", denn sooooo bedeutend ist mein Gerätlein dann auch wieder nicht, um in die Software eine Enigma einzubauen

    Danke
    Andi

Ähnliche Themen

  1. Arduino Sketch (C) Arduino C++ Sketch: HC-SR04 mit Arduino (AVR)
    Von HaWe im Forum Bascom / C / ASM / Sketch / Codesammlung / Programmschnipsel
    Antworten: 0
    Letzter Beitrag: 22.08.2018, 14:47
  2. Arduino Sketch serielles Terminal: erkennen von CR
    Von Ford Prefect im Forum Arduino -Plattform
    Antworten: 3
    Letzter Beitrag: 18.06.2014, 14:58
  3. Wie kann ich über Arduino einen Rc-Regler steuern?
    Von Moritz Weichert im Forum Motoren
    Antworten: 22
    Letzter Beitrag: 30.01.2013, 12:02
  4. frage zu sketch arduino und webserver
    Von der_tom im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 11.03.2012, 18:07
  5. Arduino kann einen "acos" nicht berechnen. [gelöst
    Von Zimt Creme im Forum Software, Algorithmen und KI
    Antworten: 10
    Letzter Beitrag: 09.02.2011, 07:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen