Knipex schrieb:
> Ist es möglich das kein anderer meine Daten liest.
Wie kann der Stick erkennen, dass er an deinem Windows
hängt und nicht an einem anderen Rechner?
Ich denke, der Host (PC) wird sich an deinem Stick nicht
vorher irgendwie besonders anmelden (z.B. mit einem Passwort)?
Was hindert jemanden, das Verhalten deines Windows-Rechners
mit einem (z.B. Embedded) System 1:1 nachzubilden?
Wenn der Stick (irgendwie) eindeutig erkennen kann,
dass er an deinem Rechner hängt, dann kann er auch verhindern,
dass die Daten ausgeliefert werden, wenn er deinen Rechner
nicht erkennt.
Dann kann natürlich immer noch jemand Dritter, der deinen Rechner
bedient, auf den Strick zugreifen...
Oder man könnte vielleicht auch (irgendwie) direkt auf deinen Stick
zugreifen und das interne Flash des uC auslesen (ob das jetzt Sinn macht
und man damit überhaupt an die Daten bekommt, weil nicht verschlüsselt,
sei jetzt mal dahingestellt).
Markus Müller schrieb:
> - Prozessor schreibt die Datei auf den Stick, codiert jedoch die Daten
> - Beim Lesen decodiert Dein Stick die Daten und gibt die decodierten
> zurück
Das hab ich noch nicht verstanden...
Beim Schreiben verschlüsseln, beim Lesen entschlüsseln, ok,
dann sind die Daten nicht aus dem Flash des uC lesbar.
Das Ver-/Entschlüsseln ist dann für den PC transparent.
Warum kann die Datei auf dem USB Stick dann nicht vom PC gelesen
oder auch auf einen anderen Stick kopiert werden?
Und dem PC sollte es dann erst einmal egal sein,
ob die Daten vom richtigen oder falschen USB Stick kommen?
Markus Müller schrieb:
> oder mache ein CDC und mit spreche das ganze mit libusb an.
Das "Besondere" an CDC ist, dass Windows bereits einen Treiber
mitbringt, so dass nur noch ein INF-File benötigt, damit der
(virtuelle) serielle Port angelegt wird. Daraufhin kann man mit
jedem Programm darauf zugreifen, welches serielle Ports unter
Windows bedienen kann (und nicht auf bestimmte COM-Ports limitiert ist).
Welchen Sinn macht es hier, statt dem Treiber libusb-win32 zu benutzen?
(Ich hoffe, du hattest libusb-win32 gemeint?)
Anders, wenn ein proprietäres Interface implementiert wird.
Dann gibt es (evt. per Default) noch keine Treiber und man kann
libusb-win32 (als Treiber) benutzen, um damit das proprietäre
Interface zu bedienen. Aber auch das bietet keinen Schutz,
dass nicht jemand anderes den Stick ansprechen kann, weil
mittels einfacher USB Tools (usbview) das Interface angezeigt
werden kann und solch ein Treiber auch von einem Dritten
leicht erzeugt werden kann.
@Knipex:
Du könntest die Daten natürlich nur im RAM des uC ablegen.
Solange der "USB Stick" Spannung hat, bleibt der Inhalt gespeichert.
Zieht man den Stick ab oder wird der PC aus geschalten
(vorausgesetzt der USB Port ist dann spannungslos),
dann ist der Inhalt (möglicherweise) weg.
Vielleicht ganz hilfreicher Artikel:
http://www.heise.de/newsticker/meldung/29C3-Wenn-der-USB-Stick-luegt-1775128.html
Auszug daraus:
"Beispielsweise greifen Windows-PCs gleich neun Mal auf den MBR des
USB-Sticks zu, Linux-Distributionen sind über ihren Automounter
unterscheidbar. Ein solches Verhaltensmuster kann der USB-Stick
registrieren und demgemäß die Daten ausspielen, die der Eigentümer
preisgeben will."
Dies bedeutet aber erst einmal nur einen Unterscheidung,
ob Windows da ist oder nicht, noch nicht, ob PC1 oder PC2 mit selber
Windows Version zugreift. Ob man dies weiter verfeinern kann,
und damit dann doch noch die PCs unterscheiden kann, kann ich
nicht sagen.