Hallo Allerseits! Ich möchte die unautorisierte Verbreitung meines Programms erschweren, benötige aber trotzdem die Möglichkeit des Updates über einen Bootloader. Der Einsatz von entsprechender Verschlüsselung ist mir zu aufwendig. Da ich jeden verwendeten MC erstmals selbst programmiere denke ich an folgende Vorgehensweise: In den Bootloader schreibe ich eine Art Signatur, welche ich dann im eigentlichen Programm überprüfe. Geht das so ohne weiteres? Auch mit Bascom? Ich könnte mir vorstellen dass der Bootloader vor dem Start des Programms die Signatur in den Eeprom schreibt und und das eigentlichen Programm diese dann liest und sofort wieder löscht. Mir ist klar, das dies kein besonders guter Schutz ist, da man ja nur das eigentliche Programm entsprechend verändern muss. Da das Programm aber nur in Hex vorliegt, würde mir dies aber reichen, ich möchte es nur nicht zu einfach machen ohne mein Wissen das Programm zu verwenden. Was denkt Ihr? Grüße Christoph
freeky schrieb: > Der Einsatz von entsprechender Verschlüsselung ist mir zu > aufwendig. Dann kannst Du´s auch lassen. Es muß ja kein AES sein, aber wenn Du Deine HEX-Files so verknotest, dass nur Dein Bootloder sie entheddern kann, wäre das doch schon mal was. freeky schrieb: > In den Bootloader schreibe ich eine Art Signatur, welche ich dann im > eigentlichen Programm überprüfe. > Geht das so ohne weiteres? Auch mit Bascom? Diese Mimik kann durch jedes andere Programm, dass diese Signatur emuliert, ausgehebelt werden. Auch Programme, die sich um den Bootloder einen feuchten Kehrricht scheren, laufen anstandslos. Andersherum wird ein Schuh draus: Der Bootloader muss die Signatur im Quellcode des Programmes suchen und wenn diese nicht passt, das Programm einfach nicht starten. Dazu musst Du freilich die LockBits setzen und auch SPI verriegeln. Findige Programmierer werden aber auch hierfür eine Lösung kennen. freeky schrieb: > Ich möchte die unautorisierte Verbreitung meines Programms erschweren, Das gelingt Dir aber nur dann, wenn Du jedem Chip eine andere Kennung gibst, und jedem Kunden dann eine entsprechend passende Programmdatei zuspielst, die nur auf diesem Chip läuft. Bei XMegas kein Problem, bei einfachen Megas schon.
Knut Ballhause schrieb: > freeky schrieb: >> Der Einsatz von entsprechender Verschlüsselung ist mir zu >> aufwendig. > > Dann kannst Du´s auch lassen. Es muß ja kein AES sein, aber wenn Du > Deine HEX-Files so verknotest, dass nur Dein Bootloder sie entheddern > kann, wäre das doch schon mal was. > Daran hab ich auch schon gedacht > freeky schrieb: >> In den Bootloader schreibe ich eine Art Signatur, welche ich dann im >> eigentlichen Programm überprüfe. >> Geht das so ohne weiteres? Auch mit Bascom? > > Diese Mimik kann durch jedes andere Programm, dass diese Signatur > emuliert, ausgehebelt werden. Auch Programme, die sich um den Bootloder > einen feuchten Kehrricht scheren, laufen anstandslos. Andersherum wird > ein Schuh draus: Der Bootloader muss die Signatur im Quellcode des > Programmes suchen und wenn diese nicht passt, das Programm einfach nicht > starten. Dazu musst Du freilich die LockBits setzen und auch SPI > verriegeln. Findige Programmierer werden aber auch hierfür eine Lösung > kennen. > Wenn ein anderes Programm, dass sich nicht um die Signatur schert eingespielt wird, dann ist mir das egal. Ich will ja nur mein Programm schützen. Wenn die Signatur im Programm steht, dann nützt mir das doch überhaupt nichts. Dann läuft das Programm ja auch auf ATMegas bei denen der signierte Bootloader fehlt. Ich möchte ja mittels Signatur im schreib- und auslese geschützten Bootloader sicher stellen, dass es nur auf bestimmten, von mir entsprechend programmierten ATMegas läuft. > freeky schrieb: >> Ich möchte die unautorisierte Verbreitung meines Programms erschweren, > > Das gelingt Dir aber nur dann, wenn Du jedem Chip eine andere Kennung > gibst, und jedem Kunden dann eine entsprechend passende Programmdatei > zuspielst, die nur auf diesem Chip läuft. Bei XMegas kein Problem, bei > einfachen Megas schon. Jeden Chip eine andere Kennung ist richtig, das ist auch so geplant. Die Programmdatei bleibt gleich, die prüft nur ob der Schlüssel gültig ist. Gruß Christoph
Hagen Re schrieb: > Beitrag "AVR-Bootloader mit Verschlüsselung" Diese Thread hab ich mir die letzten Tage durchgezogen. Denke ich werde Deinen Bootloader einsetzen. Was mich erst davon abgehalten hat, war die fehlende Dokumentation im letzten Downloadpaket. Habe nun auch die älteren Pakete runtergezogen und dort ist die Doku ja noch drin. Hoffe nur, das ich das so ohne weiteres hinbekomme. Grüße Christoph
freeky schrieb: >> > Wenn ein anderes Programm, dass sich nicht um die Signatur schert > eingespielt wird, dann ist mir das egal. Ich will ja nur mein Programm > schützen. Dann frage ich mich, warum du nicht einfach die Lockbits im Mega setzt und gut ists? Dazu noch ein Bootloader mit dem man zwar einspielen aber nicht aulesen kann und du hast was du willst.
Na es geht sicher darum, dass keiner die Binär-/Hexdatei des Programmcodes entwendet, verbreitet und auf andere Controller/Hardware aufspielt, um das Produkt weiterzuvermarkten. In dem Fall geht es wirklich nur so, den Controller mit dem Code über Signaturen zu verheiraten, so dass keiner ohne den anderen spielt. Und dann die Lockbits setzen, damit die Signaturen im Flash oder EEPROM nicht überschrieben werden können. Die Binär-/Hexdatei muss dann eben auch so verschlüsselt werden, damit keiner die Sperren entfernen kann. Das setzt den "Kopierer" vor die schwierige Aufgabe, selber ein Programm schreiben zu müssen, um die Hardware zu verwenden. Was nicht gänzlich unmöglich ist...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.