Forum: Mikrocontroller und Digitale Elektronik Dongle ersatz mit Atmel über Bus manipulationssicher?


von Joachim H. (joachim_huber)


Lesenswert?

Hallo Forum,

ich hatte gestern eine Diskussion mit einem alten Studienkollegen über 
die alten Dongles die mann am LPT angesteckt hat um Software 
freizuschalten.

Ich bin der Meinung das das heutzutage immer noch funktioniert, er ist 
der Meinung das er das System in kurzer Zeit knacken kann. Wir wurden 
uns nicht einig und mitlerweile steht ein Kasten Bier auf dem Spiel ;-)

Damit wir das ausprobieren können haben wir uns auf zwei µC (Atmega 
8)geeinigt. Die Übertragung eines Schlüsselstrings soll über eine 
Busleitung (I²C oder UART) erfolgen.

Was haltet Ihr davon?

von Cyblord -. (cyblord)


Lesenswert?

Nix, so ist es unsicher.

Der Trick besteht darin, nicht das Dongle knacken zu wollen, sondern die 
Software welche damit verdongelt werden soll. Diese kann meist einfach 
so manipuliert werden, dass ihr das Dongle egal ist.
Und schon hilft das ausgeklügelste Dongle mit Kryptografischen Methoden 
und toller Challange/Response Mimik überhaupt nichts mehr.

Google mal nach "NoCD Crack". Gleiches Prinzip.

Wurde hier letztens erst Diskutiert. Evt. hat den Link noch jemand?

gruß cyblord

von Joachim H. (joachim_huber)


Lesenswert?

Hallo cyblord

danke für die schnelle Antwort.

Ja die "NoCD Cracks" sind ein gutes Argument dass das System doch 
ausgehebelt werden kann.

Wenn ich jedoch zwei Atmels verwende und das "LockBit" setze dürfte das 
doch gegen Auslesen und Ändern der Software geschützt sein. Meine 
Bedenkten galten hier eher so der Übertragung das diese aufgezeichnet 
und emuliert wird.

Grüße Joachim

von Cyblord -. (cyblord)


Lesenswert?

Wie jetzt. Es soll gar kein PC involviert sein?

Du willst Software welche auf einem Controller läuft, schützen in dem du 
sie mit einem 2. Controller verdongelst? Sinn?

Gegen wen oder was willst du dann schützen? Software auf einem 
Controller mit Lockbits kann erstmal nicht ausgelesen und damit nicht 
kopiert werden, ohne HW Manipulation am Controller. Daran ändert ein 
Dongle aber nichts.

Bitte erkläre mal genauer was du vorhast.

Der Ansatz, direkt gegen die Kryptografie vorzugehen, scheitert und wird 
auch nicht so gemacht. Bei allen Sicherheitsbetrachtungen von 
Kryptosystemen geht man immer davon aus, dass die Krypto selbst, nicht 
geknackt werden kann. Man greift die Implementiertung, den 
Schlüsselaustausch oder sonst was an.

Ein Challenge/Response System welches fehlerfrei und mittels z.B. AES 
realisiert wird, mit festen Keys, kann man allein durch abhören niemals 
erfolgreich angreifen.

http://xkcd.com/538/

gruß cyblord

von (prx) A. K. (prx)


Lesenswert?

Joachim Huber schrieb:
> Wenn ich jedoch zwei Atmels verwende und das "LockBit" setze dürfte das
> doch gegen Auslesen und Ändern der Software geschützt sein. Meine
> Bedenkten galten hier eher so der Übertragung das diese aufgezeichnet
> und emuliert wird.

Du kannst den AVR einigermassen sicher gestalten, jedenfalls soweit, 
dass der Aufwand fürs Knacken sehr hoch wird. Aber das nützt dir solange 
nichts, wie der Aufwand fürs Entfernen der Abfrage im Programm 
vergleichsweise gering ist.

Der Aufwand von Dongles liegt nicht in den Dongles selbst - 
kryptographisch sichere Methoden sind bekannt. Sondern er liegt darin, 
die Abfrage in der Software so abzusichern, dass die nicht einfach 
weggepatcht werden kann. Da kommt dann Zeugs in Spiel wie dynamisch 
generierter oder ad hoc entschlüsselter Code, Erkennung von Debuggern 
und virtuellen Umgebungen, Laufzeitkontrolle etc. Kurzum: Ungefähr das, 
worin sich die Programmierer guter Trojaner auskennen.

Das Szenario mit 2 AVRs statt einen AVR am PC geht daher meilenweit an 
der typischen Problematik von PC-Dongles vorbei. Denn es ähnelt eben 
nicht dem PC-Dongle, sondern einer Unterhaltung zweiter Dongles 
untereinander.

von Joachim H. (joachim_huber)


Lesenswert?

Hallo cyblord

nein wir dachten eigentlich nur an die zwei Atmels von denen einer den 
Dongle und einer den PC simuliert.

Sinn macht das eigentlich nur den, dass zum Schluss feststeht wer von 
uns den Kasten Bier bekommt ;-)

Genauer gesagt haben wir eine Box in der ein Atmel mit LED ist. Diese 
LED darf nur angehen wenn der spezielle "Dongle-Atmel" angesteckt wird. 
Manipulation seitens der Box haben wir ausgeschlossen.


Grüße Joachim

von (prx) A. K. (prx)


Lesenswert?

Joachim Huber schrieb:
> Sinn macht das eigentlich nur den, dass zum Schluss feststeht wer von
> uns den Kasten Bier bekommt ;-)

Stimmt. Das ist eine rein akademische Aufgabe ohne Bezug zu irgendeiner 
Realität. Mit der richtigen Methode ist das bei überschaubarem Aufwand 
nicht zu knacken.

von Joachim H. (joachim_huber)


Lesenswert?

A. K. schrieb:

> Das Szenario mit 2 AVRs statt einen AVR am PC geht daher meilenweit an
> der typischen Problematik von PC-Dongles vorbei. Denn es ähnelt eben
> nicht dem PC-Dongle, sondern einer Unterhaltung zweiter Dongles
> untereinander.

Ja das stimmt. Jedoch kennt sich von uns keiner so recht mit der PC 
Programmierung sowie den Schnittstellen aus. Deshalb haben wir uns auf 
die µC Lösung geeinigt. Das Prinzip sollte jedoch noch gleich sein.


Welche kryptographisch sichere Methoden gibt es denn?

von (prx) A. K. (prx)


Lesenswert?

Joachim Huber schrieb:
> Welche kryptographisch sichere Methoden gibt es denn?

Bisschen was solltest du für deinen Kasten Bier schon selber machen. 
Sonst gehört der mir - und ich mag kein Bier.

von Cyblord -. (cyblord)


Lesenswert?

Dann ist das ganze absolut sinnlos.

Wie gesagt, das kann man relativ einfach sicher machen. Der nächste 
Schritt wäre dann, das aufschneiden des Dongle-Controllers und das 
auslesen des Speicher mittels Elektronenrastermikroskop um so an den 
Schlüssel zu kommen (oder je nach dem wie das umgesetzt ist).

Aber sogar falls das ganze unsicher gestaltet ist, muss man erstmal 
durch aufwändiges abhören, überhaupt das Verfahren herausfinden. 
Security by Obscurity bringt in solchen begrenzten Szenarien noch sehr 
viel. Man könnte ein unsicheres Challenge/Response implementieren, 
welches nur eine einfache Formel berechnet, und ein Lauscher hätte schon 
Probleme das rauszufinden. Allein erstmal das ganze Protokoll, 
Zahlenformate usw usw.

Wieviele Mannjahre willst du investieren? Das ganze bringt absolut 
nichts.

Überlegt euch mal, stattdessen die ein oder andere Krypto Vorlesung zu 
besuchen. Das würde euch mehr bringen.

gruß cyblord

von Meine Meinung (Gast)


Lesenswert?

Joachim Huber schrieb:
> Manipulation seitens der Box haben wir ausgeschlossen.

...aber genau dort finden die Manipulationen doch in der Praxis statt.
Das wäre doch genauso, als wenn man einem Einbrecher sagt: "Du kannst 
dort einbrechen, aber du darfst kein Fenster einschlagen, nicht die Türe 
eintreten, und auf keinen Fall das Schloß knacken. Das einzige, was du 
darfst, ist den Originalschlüssel zu manipulieren."

Ihr könnt eure Wette ja gern austragen, aber mit der Praxis hat das 
überhaupt nichts zu tun, und demzufolge könnt ihr beide das Bier nicht 
gewinnen :-)

von Cyblord -. (cyblord)


Lesenswert?

> Welche kryptographisch sichere Methoden gibt es denn?

Prinzip:
- Du sendest eine zufällige lange Zahl an das Dongle

- Dongle verschlüsselt diese Zahl mit einem Algo und einem festen Key.

- Dongle sendet Ergebniss zurück.

- Du machst dasselbe und checkst ob beide Zahlen gleich sind.

- Ist die Verschlüsselung sicher (z.B. AES) und korrekt implementiert, 
und der Schlüssel lang genug und geheim, dann ist das System 
unüberwindbar, wenn die Prämisse lautet, der Angreifer darf beide 
Endstellen nicht manipulieren, sondern nur abhören, oder auch den Bus 
manipulieren, also Man-in-the-middle.

Nur was hat man nun davon? Das weiß jeder und das ist langweilig.

gruß cyblord

von oszi40 (Gast)


Lesenswert?

cyblord ---- schrieb:
> - Ist die Verschlüsselung sicher (z.B. AES) und korrekt implementiert,
> und der Schlüssel lang genug und geheim,

Dann macht der böse C64-Knacker einen großen Sprung und lässt Deine 
Prüfung aus

von Cyblord -. (cyblord)


Lesenswert?

oszi40 schrieb:
> cyblord ---- schrieb:
>> - Ist die Verschlüsselung sicher (z.B. AES) und korrekt implementiert,
>> und der Schlüssel lang genug und geheim,
>
> Dann macht der böse C64-Knacker einen großen Sprung und lässt Deine
> Prüfung aus

Lies erstmal den ganzen Thread du Klugscheisser.

von (prx) A. K. (prx)


Lesenswert?

cyblord ---- schrieb:
> Wie gesagt, das kann man relativ einfach sicher machen. Der nächste
> Schritt wäre dann, das aufschneiden des Dongle-Controllers und das
> auslesen des Speicher mittels Elektronenrastermikroskop um so an den
> Schlüssel zu kommen (oder je nach dem wie das umgesetzt ist).

Mit etwas Glück und genug Hirn geht das auch ohne zerstörende 
Datenverarbeitung. Bit für Bit mit präziser Verfolgung des 
Stromverbrauchs wär so ein Weg, denn der Mega8 dürfte da nicht 
abgesichert sein. Auf diese Art wurden schon Sicherheitschips geknackt, 
wie sie auf sowas wie EC-Karten verwendet werden.

von (prx) A. K. (prx)


Lesenswert?

Joachim Huber schrieb:
> Jedoch kennt sich von uns keiner so recht mit der PC
> Programmierung sowie den Schnittstellen aus.

Eine exzellente Voraussetzung für Hobby-Kryptologen. ;-)

von Cyblord -. (cyblord)


Lesenswert?

A. K. schrieb:
> cyblord ---- schrieb:
>> Wie gesagt, das kann man relativ einfach sicher machen. Der nächste
>> Schritt wäre dann, das aufschneiden des Dongle-Controllers und das
>> auslesen des Speicher mittels Elektronenrastermikroskop um so an den
>> Schlüssel zu kommen (oder je nach dem wie das umgesetzt ist).
>
> Mit etwas Glück und genug Hirn geht das auch ohne zerstörende
> Datenverarbeitung. Bit für Bit mit präziser Verfolgung des
> Stromverbrauchs wär so ein Weg, denn der Mega8 dürfte da nicht
> abgesichert sein. Auf diese Art wurden schon Sicherheitschips geknackt,
> wie sie auf sowas wie EC-Karten verwendet werden.

Das geht sicher auch. Aber könnte man da nicht auch was machen, in dem 
man Fake Berechnungen usw. durchführt?

Oder man kann auch über die Zeit gehen und so auf Positionen in Tabellen 
des AES Algos schließen. Wobei man hier auch Gegensteuern kann, mit 
geziehlten Delays.

Aber ich glaube, aufschneiden und reingucken wäre deutlich schneller als 
diese Möglichkeiten, oder nicht?

von (prx) A. K. (prx)


Lesenswert?

cyblord ---- schrieb:
> Aber ich glaube, aufschneiden und reingucken wäre deutlich schneller als
> diese Möglichkeiten, oder nicht?

Kommt drauf an, wie du die beiden Kollegen einschätzt.

Für den schonenden Weg benötigen sie nur normale Elektronikausstattung 
wie ein nicht zu langsames DSO und eben die beiden Chips. Mit etwas 
Glück, Hirn und Programmierfähigkeiten kann das recht schnell gehen.

Für den anderen brauchen sie einen ziemlichen guten Chemielaborkasten 
und ein REM - und viele viele zerstörte Chips um Erfahrung zu gewinnen. 
Du musst zwar nur die eine entscheidende Fuse finden, aber so ganz von 
Null weg...

von Cyblord -. (cyblord)


Lesenswert?

A. K. schrieb:
> cyblord ---- schrieb:
>> Aber ich glaube, aufschneiden und reingucken wäre deutlich schneller als
>> diese Möglichkeiten, oder nicht?
>
> Kommt drauf an, wie du die beiden Kollegen einschätzt. Fürs den
> schonenden Weg benötigt man nur normale Elektronikausstattung wie ein
> nicht zu langsames DSO. Für den anderen einen ziemlichen guten
> Chemielaborkasten und ein REM - und viele viele zerstörte Chips um
> Erfahrung zu gewinnen. Du musst zwar nur die eine entscheidende Fuse
> finden, aber so ganz von Null weg...

Stimmt, es erfordert weniger Ausrüstung. Aber ehrlich gesagt, ich kann 
mir bei keiner solchen Möglichkeit vorstellen, wie das wirklich in der 
Praxis aussehen sollte. Über die Zeitmessungs-Methode hab ich schon 
Paper gelesen, trotzdem hätte ich keine Ahnung wie man sowas erfolgreich 
angehen sollte. Genauso bei deinem Bit-Strom-Ansatz. Theoretisch ja, 
aber praktisch? Ich würde mir das überhaupt nicht zutrauen. Ich 
bevorzuge hier den Schraubenschlüssel, aus dem XKCD ;-)

gruß cyblord

von Gerhard W. (gerhard86)


Lesenswert?

Kann man einen µC mit Flashspeicher denn überhaupt per 
Rasterelektronenmikroskop auslesen? Bei einem Maskenrom ist es was 
anderes, aber ich bezweifel schon dass man den Flashspeicher überhaupt 
nackt bekommt ohne den Inhalt zu zerstören....

von (prx) A. K. (prx)


Lesenswert?

cyblord ---- schrieb:
> Ich bevorzuge hier den Schraubenschlüssel, aus dem XKCD ;-)

If all you have is a hammer, then everything looks like a nail. ;-)

von (prx) A. K. (prx)


Lesenswert?

Gerhard W. schrieb:
> Kann man einen µC mit Flashspeicher denn überhaupt per
> Rasterelektronenmikroskop auslesen?

Ja, m.W. schon. Aber das musst du überhaupt nicht. Du musst bloss die 
richtige Fuse finden und ändern. Manchmal sind bei µCs allerdings solche 
Fuses extra abgesichert, z.B. geschlossener Layer drüber, oder 
Zickzackleitung mit Prüfung auf Intaktheit so. Beim Flash ebenso. Ist 
eine Wissenschaft für sich.

von Cyblord -. (cyblord)


Lesenswert?

A. K. schrieb:
> Gerhard W. schrieb:
>> Kann man einen µC mit Flashspeicher denn überhaupt per
>> Rasterelektronenmikroskop auslesen?
>
> Ja, m.W. schon. Aber das musst du überhaupt nicht. Du musst bloss die
> richtige Fuse finden und ändern.

Völlig richtig, das ganze gibts doch schon als Angebot auch China. Für 
sehr viele Controllertypen. Die haben sich genau auf das Löschen der 
Lockbits spezialisiert.

gruß cyblord

von (prx) A. K. (prx)


Lesenswert?

Bastelanleitung für einen ATmega88 findet man hier:
http://www.flylogic.net/blog/?p=23

von Gerhard W. (gerhard86)


Lesenswert?

A. K. schrieb:
> Ja, m.W. schon. Aber das musst du überhaupt nicht. Du musst bloss die
> richtige Fuse finden und ändern.

Ahh, klar. Echt übel eigentlich.

von Cyblord -. (cyblord)


Lesenswert?

http://itresearch.en.ecplaza.net/read-flash-mcu-remove-lock--282064-2110111.html

> Ahh, klar. Echt übel eigentlich.

Ach naja. Wo man wirklich was zu verbergen hat, gibt es auch Chips 
welche genau gegen solche Angriffe geschützt sind. Grade so EC-Karten 
Dinger haben da Vorkehrungen. 100% sicher ist ja nichts.

von (prx) A. K. (prx)


Lesenswert?

cyblord ---- schrieb:
> Völlig richtig, das ganze gibts doch schon als Angebot auch China.

Klar doch, auch die Russen sind da im Geschäft. Aber dann muss das Bier 
nach China oder Russland, nicht an seinen Freund. Denn der wollte das 
selber machen.

von Cyblord -. (cyblord)


Lesenswert?

A. K. schrieb:
> cyblord ---- schrieb:
>> Völlig richtig, das ganze gibts doch schon als Angebot auch China.
>
> Klar doch, auch die Russen sind da im Geschäft. Aber dann muss das Bier
> nach China oder Russland, nicht an seinen Freund. Denn der wollte das
> selber machen.

Die Wette ist sowieso für die Tonne, weil es der Angreifer so schwer hat 
und der "Verteidiger" so einfach. Unbalanciert halt.
Ein Kasten Bier für den erfolgreichen Angreifer reicht da nicht. 
Mindestens der Porsche oder das EFH muss da sein.

von Gerhard W. (gerhard86)


Lesenswert?

cyblord ---- schrieb:
> Ach naja. Wo man wirklich was zu verbergen hat, gibt es auch Chips
> welche genau gegen solche Angriffe geschützt sind.

Natürlich, ich hätte auch nicht erwartet dass die Software in einem µC 
100% sicher ist, aber das hört sich (wie ja mittlerweile erwähnt wurde) 
doch nach etwas an das relativ schnell und einfach erledigt werden kann 
wenn sich jemand darauf spezialisiert. Dass in den meisten Fällen 
reicht, dass nicht einfach jeder Bastler den Programmer anstecken und 
die Software runterziehen kann, ist natürlich auch klar.

von oszi40 (Gast)


Lesenswert?

cyblord ---- schrieb:
> Die Wette ist sowieso für die Tonne, weil es der Angreifer so schwer hat
> und der "Verteidiger" so einfach. Unbalanciert halt.

Höchste Verschlüsslung garantiert noch lange nicht, daß KEINER Fehler 
macht. Siehe Fall Sn*wden oder die Putzfrau, die Deinen Code schon 
morgen zufällig im Papierkorb findet...

von Cyblord -. (cyblord)


Lesenswert?

oszi40 schrieb:
> cyblord ---- schrieb:
>> Die Wette ist sowieso für die Tonne, weil es der Angreifer so schwer hat
>> und der "Verteidiger" so einfach. Unbalanciert halt.
>
> Höchste Verschlüsslung garantiert noch lange nicht, daß KEINER Fehler
> macht. Siehe Fall Sn*wden oder die Putzfrau, die Deinen Code schon
> morgen zufällig im Papierkorb findet...

Es ist hier aber keine "höchste Verschlüsselung" nötig. Wie ich schon 
schrieb, selbst ein unsicherer Algorithmus, selbst eine billige 
Pseudo-Verschlüsselung, hält den Angreifer hier schnell mal wochen oder 
gar monatelang auf. Außerdem, welche Putzfrau? Es ging hier um eine 
private Wette. Sieht man auch am Zitat oben. Wieviel Zeit würdest du da 
investieren? Im Gegenzug gehts beim Anderen sehr schnell. DAS meine ich 
mit unbalaciert.

Liest du eigentlich auch mal die Posts oder schreibst du einfach IMMER 
nur irgendnen Quatsch?

gruß cyblord

von oszi40 (Gast)


Lesenswert?

cyblord ---- schrieb:
> Liest du eigentlich auch mal die Posts

Sicher. Es würde mich trotzdem wundern, wenn alle Angreifer genau DAS 
tun, was Du möchtest. :-)

von Cyblord -. (cyblord)


Lesenswert?

oszi40 schrieb:
> cyblord ---- schrieb:
>> Liest du eigentlich auch mal die Posts
>
> Sicher.

Sicher nicht. Du quasselst mich nur substanzlos von der Seite an. Erzähl 
doch mal was du genau meinst. Was willst du uns denn eigentlich sagen?

von MCUA (Gast)


Lesenswert?

Die Wette versteh ich nicht.
Es gibt Verschlüsselungen die (nach jetzigem Stand) definitv nicht 
geknackt werden können. Da kann man wetten wie man will.
Das heist aber nicht, dass man nicht aufm PC (beim PC-Progr) die 
Dongle-Abfragestellen (auch wenn die sich dynamisch ändern) eleminieren 
kann.
Ist nur eine Frage des Aufwandes.

von c-hater (Gast)


Lesenswert?

Joachim Huber schrieb:

> Ja das stimmt. Jedoch kennt sich von uns keiner so recht mit der PC
> Programmierung sowie den Schnittstellen aus. Deshalb haben wir uns auf
> die µC Lösung geeinigt. Das Prinzip sollte jedoch noch gleich sein.

Nein, ist es nicht. Wie dir die anderen Leute schon versucht haben, zu 
erklären, ist der Hauptangriffsvektor bei PC-Software eben diese 
Software, nicht der Dongle, der sie schützen soll.

Um vergleichbare Verhältnisse zu schaffen, dürftest du nur den Dongle 
gegen Auslesen schützen, müßtest du den eigentlich zu schützenden Atmel 
aber auslesbar lassen.

Dann ist es genau wie beim PC: Algorithmus und Schlüssel liegen de facto 
im Klartext vor, nur mehr oder weniger aufwendig verschleiert.

von Joachim H. (joachim_huber)


Lesenswert?

Dass sich hier so eine Diskussion entwickelt hätte ich jetzt nicht 
erwartet.

Ihr habt natürlich recht, wir hatten bei unserer kleinen Wette nicht 
bedacht das die Schwachstelle ja die PC Software ist. So waren wir 
versessen auf die Übertragung und den Dongle selbst dass wir das 
Übersehen haben.

Ich danke allen für Ihre Antworten. Vor allem cyblord und prx.

Grüße Joachim

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
Noch kein Account? Hier anmelden.