Hallo,
die Datensicherheit gerade bei Kameras regt mich seit geraumer Zeit auf.
Ist die Kamera weg, kann der Dieb alle meine Bilder ansehen und ich kann
nichts dagegen machen...
Ich möchte in einen Adapter von Micro SD auf normale SD-Karte
einen Atmel oder Pic µC installieren, auf dem ein Tool die Daten von
der Kamera an die SD Karte auswertet und durch schleift und ab dem
Zeitpunkt der Bilddatenübertragung die Daten asymetrisch verschlüsselt.
Zu Hause kann würde ich dann in aller Ruhe die Daten entschlüsseln.
Natürlich kann ich dann auf meiner Kamera die Bilder nicht mehr ansehen,
aber das nehme ich in Kauf.
Ich habe recherchiert:
- Crypto Libs für Atmel kann ich nutzen
- SD Karte Lese/Schreib Lib muss ich eine verwenden die nicht den SPI
Modus verwendet, ansonsten müsste ich die Daten von der Kamera zum µC
abfangen auswerten und auf SPI "parsen"
- Als µC kann ich nur LowVoltage Modelle verwenden, da ich sonst eine
externe Spannungsversorgung brauche.
Meine Fragen:
-Sieht irgendjemand von euch in meinem Vorhaben Probleme die ich noch
nicht erkannt habe?
Oder bekomme ich nicht ausgleichbare Timing Probleme bei der
onTheFly-Verschlüsselung?
Theoretisch muss ich nur den nicht mal das ganze File sondern nur die
JPG Daten ohne Header verschlüsseln (Ab "FF DA" SOS Start of Scan).
-Kann mir irgendwer eine SD-Karten Lib für den SD-Modus empfehlen?
Ich bezweifle, dass Du einen AVR mit ausreichend RAM in so einem kleinen
Gehäuse unterbringen kannst. Wenn das so einfach ginge, hätten das
andere schon gemacht.
Wie soll das praktisch funktionieren? Wenn Du die Kamera verlierst, und
ich finde sie, dann finde ich sie zusammen mit Speicherkarte und
Verschlüsselungsmodul. Was hindert mich dan daran, die Kamera
einzuschalten und mir die Bilder anzuschauen?
Der Klassiker wäre ja, das Modul mit einem Tastenfeld zu versehen, wo
man ein Passwort eingeben muss. Oder einen Fingerabdruck Scanner. Oder
einen Iris-Scanner. ABer all das wird wohl kaum gehen, ohne die Firmware
der Kamera zu modifizieren.
Oder wie stellst Du Dir das vor?
Hallo,
danke für deine Kommentare.
Wenn du meine Speicherkarte und mein Verschlüsselungsmodul (verwende
natürlich eine asymetrische Verschlüsselung) findest und selbst wenn du
es schaffst meine Algo auszulesen fehlt dir mein private key um das Bild
zu entschlüsseln
Die Frage ist wie die Kamera reagiert, wenn sie die bilder nicht mehr
sinnvoll lesen kann.
Auch das Erkennen der bilder kannst du nicht einfach an den paar bytes
ausmachen, du must schon sicherstellen das du auf keinen Fall daten vom
Dateisystem mit verschlüssst.
Aber das ein Atmel schnell genug ist würde ich stark bezweifeln. (außer
wenn du die arm meinst). Dann die Kamera schreibt 2-3MByte in der
sekunde weg.
Eventuell ist es sinnvoller eine Kamera zu kaufen, wo es opensource
Firmware gibt, dort kannst du es "einfach" einprogrammieren.
> in einen Adapter von Micro SD auf normale SD-Karte> einen Atmel oder Pic µC installieren, auf dem ein Tool die Daten von> der Kamera an die SD Karte auswertet und durch schleift und ab dem> Zeitpunkt der Bilddatenübertragung die Daten asymetrisch verschlüsselt.
Vergiss es. Wenn der Hersteller der Kamera einen einigermassen
geeigneten Controller Chip benutzt dann spricht der nicht SPI sondern
das SD Protokoll.
Und Dein Micro ist die Karte - kann sich also grade nicht aussuchen ob
er SPI oder SD sprechen will. Das bedeutet dass Du mindestens das 25 MHz
SD Protokoll sprechen können musst, sonst kann die Kamera die Karte
nicht verwenden.
Dafür brauchst Du schon einen Controller mit SD Schnittstelle, wie sie
in den Karten selbst benutzt werden, oder einen FPGA.
Auch vielen Dank für deine Kritik.
Habe gerade zwei Tests gemacht mit einer uralt 8 MB Speicherkarte
die dementsprechend richtig langsam ist.
Habe eine aktuelle Casio Cam und eine 2 Jahre alte Nikon auf die Karte
schreiben lassen. Die Schreibgeschwindigkeit ist zwar irrlangsam dennoch
meckern die Kameras nicht. Ich vermute daher es gibt in der Cam einen
Buffer der in Abhängigkeit der MÖGLICHEN Schreibgeschwindigkeit geleert
wird. Selbst ein irrlangsam Tiny sollte beim richtigen Handling keine
Probleme machen.
Bei meinem zweiten Test habe ich ein Bild das beide Cams anzeigen
konnten
mit einem Hexeditor nur in dem richtigen "Datensegment" editiert. Also
JPG Header etc. habe ich nicht angefasst!
Natürlich stellt die Kamera Schrott dar, da sie eine diskrete
Transformation auf Datenschrott anwendet. Dennoch gibt es hierbei keine
anderen Komplikationen.
Mein Resume:
1. langsam Tiny sollte beim richtigen Handling keine Probleme machen
2. Solange ich den JPG Header nicht anfasse und nur das "Datensegment"
anfasse sollte ich auch keine Probleme bekommen
Im Prinzip ist das möglich. Auf jedenfall brauchst Du einen
leistungsfähigen Controller mit echtem SD-Interface, z.B: ein LPC2378.
Mit 8 bit Controllern geht das nicht. Die Spannungsversorgung ist nicht
das Problem, alle diese Controller arbeiten wie die Karten mit 3.3V, man
könnte daher den Controller direkt aus dem Kartenslot versorgen.
Warum asymmetrisch verschlüsseln? Asymmetrische Methoden, wie RSA sind
für die direkte Datenverschlüsselung viel zu langsam, sie dienen nur dem
Schlüsselaustausch. Klassiche Algorithmen, wie z.B: AES arbeiten
symmetrisch, damit wäre auch eine Entschlüsseln und damit ein Lesen von
der Karte durch die Kamera möglich. Allerdings müsste man den Schlüssel
irgendwie eingeben.
@ Mike:
Eine asymetrische Verschlüsselung habe ich vorgeschlagen um durch Lesen
des Codes/Binaries eine inverse Verschlüsselung unmöglich zu machen.
Ein eingeben des Codes würde mir auf die Nerven gehen wenn ich schnell
ein Bild machen will. Da nehme ich lieber in Kauf, dass ich die Bilder
nicht sofort sehen kann.
Es gibt ja auch die Kobination:
1. Zufallszahl erzeugen und damit die Daten symetrisch verschlüsseln.
2. Diese Zufallszahl dann asymetrisch verschlüsseln.
Das ist das übliche vorgehen.
Ein leicht anderer Ansatz wäre es, die Daten nicht abzufangen, sondern
nachträglich zu verschlüsseln, z.B. immer dann, wenn die Kamera
abgeschaltet wird. Damit wird die Geschwindigkeit und das
Zugriffsprotkoll unkritisch, dafür musst du für eine Stromversorgung
sorgen, die nicht von dem On/Off-Schalter der Kamera abhängig ist.
Wenn du mehr Zeit sparen willst, verschlüsselst du nicht die gesamten
Bilddaten sondern nur jedes n'te Byte. Damit erzeugst du bereits genug
Müll, dass das Motiv nicht mehr rekonstruierbar ist. Wie groß "n" ist,
hängt natürlich davon ab, wie viele halbwegs erkennbare Bildfragmente
akzeptabel sind.
In dem Fall kannst du aber auch symmetrische Verschlüsselung einsetzen,
denn wenn es dir nicht um Fotos von chinesischen Militäranlagen geht,
sondern um deine Privatsphäre im Urlaub, wird sich wohl keiner die Mühe
machen (geschweige denn das Know-How haben), deinen Key auszulesen und
die Verschlüsselungsmethode zu reverse-engineeren. Bei entsprechend
gesetzten Lockbits geht das nur noch mit sehr hohem Aufwand. Da wäre es
wesentlich leichter, dir einen Trojaner unterzuschieben, der die Fotos
auf deiner Festplatte irgendwo ins Internet schickt.
Ich finde den Gedanken gut und die Frage nach dem Sinn überflüssig.
Hier wird so oft über Facebook etc. der Kopf geschüttelt, oder auch über
unvorsichtige Handybesitzer und Festplattenverkäufer, die ihre Daten
rumschleudern, dass es nur sinnvoll ist, bei einer Kamera die gleichen
Maßstäbe anzusetzen.
Ganz abgesehen davon, dass einige offenbar nicht einmal das
Eingangsposting komplett gelesen haben (von wegen "SPI wird schwierig"
und so, das steht da alles bereits.) macht sich der TE tatsächlich mal
die Mühe, etwas angesprochenes auszuprobieren (Uraltchip in neuer Kamera
wegen eventueller Geschwindigkeitsproblematik).
Ich find' das echt prima und hoffe, das es am Ende funktioniert.
Meine persönliche Meinung ist, das es unnötig sein sollte, die Daten
asymmetrisch zu verschlüsseln und vermutlich sogar reicht, die Farbwerte
nach irgend einem Muster zu quirlen.
Es wird ja niemand ran gehen und die Daten auf Verdacht aufwändig
rekonstruieren.
Hi,
prinzipiell finde ich Datensicherheit auch gut, aber ich frage mich
auch, was der TO für hochgeheime Bilder macht, die sofort verschlüsselt
werden müssten?
Ich photographiere auch sehr viel, im Schnitt 3 bis 5 Tausend Photos pro
Wochenende, aber wenn die Kamera oder die Speicherkarte weg ist, dann
ist das höchstens nur ärgerlich bis teuer, aber nichts
existenzbedrohendes und schon gar nichts, was man zwingend geheim halten
sollte.
Also, was sind das bitte schön für Schmuddelbilder? ;-)
Ist es nicht einfacher, sich die Kamera nicht klauen zu lassen? Mir
wurde die letzte (und einzige) Kamera etwa 1982 bei einem
Wohnungseinbruch geklaut, insofern wäre das bei mir Herumdoktern an
einem nicht existenten Symptom.
Also ich habe an sowas schon für Sata rumgefeilt. Fazit:
Asymmetrisch kannst du das Dateiverschlüsselung nur nehmen, wenn du pro
MB Speicherzeit dir 30 min Zeit nimmst (x86-CPU+ 3000Mhz Takt). Bei
einer modernen Cam wie EOS 7D sind das mal locker 12h - bis zum nächsten
Bild-ready.
Symmetrische Verschlüsselung ist das, was du paktisch nutzen kannst -
wenn du entweder eine Superschnelle CPU (und nein, die gesamte
32bit-ARM- Riege + alle 8+16bitter kannst du vergessen!), eine CPU mit
Hardware-crypto-Zusatz (c.B. Via C1) oder gleich einen Hardwaecrypter
nimmst (FPGA).
Auch den Weg der Jpeg -File-Erkennung ist Unsinn- ws wenn der Bildinhalt
sowas enthält...
Sinnvoller ist es, die Kommando/Daten- übertragung mitzulesen und
umzubauen.
Alle Kommandos wie Write Block, Read Block werden im Klartext
durchgereicht, nur die zu schreibenden Daten werden verschlüsselt.
die Frage ist: wie kommt der Schlüssel da rein, und wie kannst du ihn im
richtigen Moment deaktivieren.
das Ganze wird aber spätestens an der Größe scheitern, wenn du nicht
entsprechende Chip-Dies bekommst.
Die Frage ist, wo Dir die Camera geklaut wird.
Wenn Du sie umgehängt hast? Im Auto/Hotel? Zuhause?
In den letzen beiden Fällen hilft es bereits, die Karte rauszunehmen und
woanders zu lagern. Für Schnappschüsse ist dann eine kleine Billigkarte
drin.
Du kannst auch direkt nach der Fotosession die Bilder auf ein Notebook
überspielen (das hat dann eine Festplattenverschlüsselung).
Richtig gute Kameras können statt auf Karte auch direkt auf ein
angeschlossenes Notebook speichern.
Rufus Τ. Firefly schrieb:> Ist es nicht einfacher, sich die Kamera nicht klauen zu lassen?
Logo. Noch einfacher ist es, seine Bilder regelmäßig auf den PC und dort
auf ein anderes Speichermedium zu übertragen. Dann bleiben von seinen
Aufnahmen im Mittel gar keine bis einige wenige zum Klauen in der
Knipse.
Mal ne Frage: Wozu das Ganze eigentlich? Echte 007-Agenten machen sowas
sicherlich ganz anders und wer als blutiger Amateur was knipst, wofür er
hinterdrein rote Ohren kriegt, hat eher ein mentales Problem.
Was mich neulich erstaunt hat, waren die Webcam-Aufnahmen des Meteoriten
aus Russland. Die Leute fahren dort offenbar alle mit gezückter Webcam
herum um sich später besser vor dem Kadi streiten zu können - oder?
W.S.
W.S. schrieb:> Die Leute fahren dort offenbar alle mit gezückter Webcam> herum um sich später besser vor dem Kadi streiten zu können - oder?
Die Erklärungen die ich bisher immer gehört hab waren:
a) Wenn man in einem Unfall kommt, gewinnt die Person mit besseren
Beziehungen, wenn man keine guten Beweise hat
b) Versicherungsbetrug ist relativ häufig, mit Fußgängern die versuchen
sich absichtlich anfahren zu lassen und Autos die an der Ample mal
schnell den Rückwärtsgang einlegen.
Nimm eine Canon Kamera, implementiere die Verschlüsselung in Lua und die
Sache ist gemacht, die Frage ist nur, wie machst du es, die Kamera zu
entsperren, machbar wäre ein Phonemisches Password.
Chris schrieb:> Nimm eine Canon Kamera, implementiere die Verschlüsselung in Lua und die> Sache ist gemacht, die Frage ist nur, wie machst du es, die Kamera zu> entsperren, machbar wäre ein Phonemisches Password.
Was Chris meint ist: http://chdk.wikia.com/wiki/CHDK
Obwohl ich auch am Sinn zweifle finde ich so etwas durchaus
interessant;-)
Hast du schon mal daran gedacht die Bilder garnicht auf der Kamera zu
speichern?
http://www.eye.fi/
=> Direkt auf ein Verschlüsseltes Gerät Streamen.
Oder die Kamera per USB mit deinem (Verschlüsselten) Android Tablet /
Phone Verbinden und alle Bilder direkt speichern.
(gphoto2 anschauen)
Aber ich hätte noch einen Vorschlag, der 100%ig sicher verhindert, dass
dir die Bilder geklaut werden: einfach keine Bilder machen=)
mfg Andreas