Hallo,
Is het ook mogelijk om een arduino print te beveiligen dat de software er niet weer uitgelezen kan worden?
Ik heb even gezocht maar kon er niet echt iets over vinden..
Johan
Hallo,
Is het ook mogelijk om een arduino print te beveiligen dat de software er niet weer uitgelezen kan worden?
Ik heb even gezocht maar kon er niet echt iets over vinden..
Johan
JohanM3
"Beveiligen Arduino software" is een heel complex verhaal. In de zin van "wat bedoel je met beveiligen, wat bedoel je met Arduino.
Verder staan veel vormen van beveiligen haaks op de "open source", "open hardware" ideeen van de Arduino community.
Ook legaal kunnen er problemen zijn:
BV als je met beveiligen bedoeld dat je de bron code niet vrij wilt geven. Voor Arduino core is het perfect legaal om je code niet open source te maken en commerciële projecten te beginnen, maar is dat ook zo voor alle libraries die je van het net plukt?
Begin dus eerst maar eens met de vraag: Wat bedoel ik met beveiligen? Wat zijn daar de praktische gevolgen van? Wil ik met die gevolgen leven?
Ik geef een voorbeeld
Beveiligen = software niet van de rekeneenheid kunnen halen. Dit betekend -als het mogelijk is- waarschijnlijk (ik ben niet 100% zeker) dat je de software ook niet kan vervangen. Dus eens gebrand altijd gebrand. Kan je daar mee leven? Met een uno met vervangbare relatief goedkope chip zie ik nog niet zo grote problemen maar wat met de smd uno of een mega of een due of een yun?
Met vriendelijke groet
Jantje
Bedankt voor je antwoord.
Ik had een projectje gemaakt en wat andere willen dat ook graag hebben.
Ik wou een paar voor hen maken maar wil eigenlijk niet dat aan de code kunnen zitten.
Vandaar mijn vraag.
Misschien dat er een code was die lezen onmogelijk maakte en alleen overheen kunt schrijven.
Het is voor een Nano print, dus geen hele dure.
Johan
JohanM3:
Hallo,Is het ook mogelijk om een arduino print te beveiligen dat de software er niet weer uitgelezen kan worden?
Ik heb even gezocht maar kon er niet echt iets over vinden..Johan
Het is zoals Jantje zegt, complex. Zowel technisch als juridisch.
Je kunt de lock-bit in een atMega328 aanzetten. (complex)
Je kunt daarna geen nieuwe code meer inladen via je Arduino programma.
Je kunt alleen nog de volledige Mega328 wissen waarbij ook de 'bootloader' wordt gewist.
http://www.evilmadscientist.com/2011/avr-basics-reading-and-writing-flash-contents/
Beschrijft hoe je de machinetaal code uit een mega328 kunt lezen en beveiligen tegen onbevoegd uitlezen.
Het uitlezen van code die van een ander is, kan mogelijk gerangschikt worden onder IP-diefstal.
Aan het einde van het artikel staat ook:
"*There are known ways of getting around this, so please don’t consider lock bits sufficient defense if you are worried about someone stealing your code as a means of industrial espionage."
In de ATMega staat een stuk machinetaal, dat voor een gewone toch onleesbaar is, dan moet je al gaan decompileren etc.
Het is natuurlijk wel vrij eenvoudig om de code te copieren, en er zijn zeker flags waar je dat mee uit kunt zetten, zie de datasheet van de 328. Dat betekent natuurlijk wel dat jij er ook niet meer bijkunt, dus dat kost je een 3 euro. De broncode zoals jij die geschreven hebt, komt nooit in de processor dus die is veilig.
Als je code hebt dat zo "waardevol" is dat het niet gekopieerd mag worden.... kan die 3 euro niet het probleem zijn. Ik dacht wel dat je de Atmega weer kon wissen. Mogelijk heb je daar de HV programmer voor nodig. Maar ik weet dat niet zeker.
@edit: nog veel eenvoudiger. Met de lock bits kun je de Arduino onleesbaar maken voor de programmers. Zodra je de chip helemaal erased kun je hem weer gebruiken.