Verschluesselung fuer Poin2Point Kommunikation mit wenig CPU last
-
Zeus schrieb:
Also ich würde gern wissen, welche Sicherheitsanforderung vorliegen. Wirklich Sicherheit, Pseudosicherheit wegen juritsche Rahmenbedinung.
Juristisch - nichts. Es werden keine Personenbezogenen Daten übermittelt - aber es werden eben Magnetstreifen erstellt und wir wolle nicht dass Jemand anhand des Datenverkehrs den wir haben selber solche Magnetkarten erstellt und unsere Kartenleser damit austricksen kann.
Der Datenverkehr findet auch nicht über das Internet statt, sondern in mehr oder weniger geschlossenen Netzen - wobei hier natürlich durchaus auch sowas wie WLAN vorkommen kann - die Netze sind also nicht abgesichert und tw sogar absichtlich offen für unbekannte Clients.
Wir garantieren halt eine gewisse Sicherheit wenn man unser System verwendet und sie damit (aktuell eben wegen besserer Sicherheit der Magnetstreifen) durchaus nicht schlecht positioniert.
-
rapso schrieb:
es darf kein echter zufallsgenerator sein, es muss ein pseudogenerator sein, sodass beide seiten die gleichen werte erhalten
verschlüsselung ist so ziemlich unwirksam, wenn man pseudo-zufallswerte nimmt, die auch ein angreifer vorausberechnen kann. wenn der verschlüsselungs-algo initialisierungsvektoren usw. austauschen muss, dann sollte er sich besser sowas hier bedienen: http://en.wikipedia.org/wiki/HMAC
rüdiger schrieb:
-fricky- schrieb:
rüdiger schrieb:
...und wie willst du die in einem Magnetkartenleser einbauen? Ne ne ne
mit ner z-diode, oder einem rauschgenerator: http://www.techlib.com/electronics/pinknoise.htm
oder gleich was fertiges nehmen: http://home.comcast.net/~orb/
geht alles, also nicht immer nur 'nein' sagen. wir sind ja nicht im c++ forum.
Das Rauschen könnte man ja beeinflussen oder selbst auslesen, wenn man Zugang zum Gerät hat.
was iss'n das für'n argument? wenn man zugang zum gerät hat, zumindenst auf dem level, dass man hardwareeingriffe machen kann, dann ist sowieso jede art von verschlüsselung für die katz.
-
-fricky- schrieb:
was iss'n das für'n argument? wenn man zugang zum gerät hat, zumindenst auf dem level, dass man hardwareeingriffe machen kann, dann ist sowieso jede art von verschlüsselung für die katz.
Ne, das stimmt nicht. Zumindest Verschlüsselungschips, Smartcards etc. sind ja so gebaut, dass man das Gerät zerstören müsste um einen Zugriff auf die Interna zu bekommen.
Aber ja, dass Argument ist ein bisschen weit hergeholt. Nur steht es wohl außer Frage, dass Shade an jedes Gerät noch zusätzliche Hardware basteln kann. Zumal sich dann ja eher ein Verschlüsselungschip anbieten würde.
Und das Rauschen kann man ja immer noch in gewisser Hinsicht beeinflussen bzw. Beeinflussungen des Rauschens ausnutzen.
Mein Punkt ist einfach nur: OTP ist was für die Theorie. In der Praxis ist der Einsatz einfach nicht realistisch durchführbar (Gibt natürlich ein paar Spezialfälle. Aber die sind vernachlässigbar) oder führt dazu, dass das System unsicher wird. Die Amis konnten zB während des 2. Weltkriegs die Kommunikation des Auswärtigenamtes lesen, obwohl die OTP benutzten, einfach weil der Zufallsgenerator mit dem die Schlüssel generiert wurden nicht zufällig genug war.
-
Warum muss der client das passwort generieren? Das kann doch auch der Server machen.
-
nachgefragt schrieb:
Warum muss der client das passwort generieren? Das kann doch auch der Server machen.
Aber dann hat man immer noch das Problem den Schlüssel zu verteilen. Und bedenke, dass du für jedes verschlüsselte Byte ein Byte Schlüssel benötigt.
Sprich es bringt dir auch nichts den Schlüssel via asymmetrischer Kryptographie zu verteilen, da du dann genauso gut die Nachricht direkt via asymmetrischer Kryptographie schicken könntest.
=> OTP ist nicht praktikabel.
-
rüdiger schrieb:
Aber dann hat man immer noch das Problem den Schlüssel zu verteilen. Und bedenke, dass du für jedes verschlüsselte Byte ein Byte Schlüssel benötigt.
Sprich es bringt dir auch nichts den Schlüssel via asymmetrischer Kryptographie zu verteilen, da du dann genauso gut die Nachricht direkt via asymmetrischer Kryptographie schicken könntest.
=> OTP ist nicht praktikabel.
rapso schrieb:
...fuer ne art one-time-pad...
Nen richtigen OTP wollte er glaub ich nicht, sondern nur ein relativ langes Passwort, so habs ich zumindest verstanden.
XOR dürfte halt die beste Wahl sein, wenn man wirklich extrem CPU Power sparen muss, sonst kann man auch was aufwendigeres nehmen.
-
nachgefragt schrieb:
XOR dürfte halt die beste Wahl sein, wenn man wirklich extrem CPU Power sparen muss, sonst kann man auch was aufwendigeres nehmen.
XOR ist ziemlich anfällig für ein paar triviale Attacken.
-
nachgefragt schrieb:
Nen richtigen OTP wollte er glaub ich nicht, sondern nur ein relativ langes Passwort, so habs ich zumindest verstanden.
XOR dürfte halt die beste Wahl sein, wenn man wirklich extrem CPU Power sparen muss, sonst kann man auch was aufwendigeres nehmen.
Dann kann man sich das XOR auch gleich sparen, weil ein derartiges Vorgehen absolut gar keinen Schutz bietet. Man kann mittels Koinzidenzerfassung die Schlüssellänge ermitteln und muss dann nur noch den Text um die Schlüssellänge verschieben und mit dem Original XORen.
-
rüdiger schrieb:
nachgefragt schrieb:
Nen richtigen OTP wollte er glaub ich nicht, sondern nur ein relativ langes Passwort, so habs ich zumindest verstanden.
XOR dürfte halt die beste Wahl sein, wenn man wirklich extrem CPU Power sparen muss, sonst kann man auch was aufwendigeres nehmen.
Dann kann man sich das XOR auch gleich sparen, weil ein derartiges Vorgehen absolut gar keinen Schutz bietet. Man kann mittels Koinzidenzerfassung die Schlüssellänge ermitteln und muss dann nur noch den Text um die Schlüssellänge verschieben und mit dem Original XORen.
Du willst doch nicht sagen, dass man nur die Schlüssellänge wissen muss und schon die XOR Verschlüsselung geknackt hat? Was meinst du mit "den Text um die Schlüssellänge verschieben"? Welchen Text? Den Original hast du doch nicht. Und was soll Text verschieben für ne Operation sein?
-
nachgefragt schrieb:
rüdiger schrieb:
nachgefragt schrieb:
Nen richtigen OTP wollte er glaub ich nicht, sondern nur ein relativ langes Passwort, so habs ich zumindest verstanden.
XOR dürfte halt die beste Wahl sein, wenn man wirklich extrem CPU Power sparen muss, sonst kann man auch was aufwendigeres nehmen.
Dann kann man sich das XOR auch gleich sparen, weil ein derartiges Vorgehen absolut gar keinen Schutz bietet. Man kann mittels Koinzidenzerfassung die Schlüssellänge ermitteln und muss dann nur noch den Text um die Schlüssellänge verschieben und mit dem Original XORen.
Du willst doch nicht sagen, dass man nur die Schlüssellänge wissen muss und schon die XOR Verschlüsselung geknackt hat? Was meinst du mit "den Text um die Schlüssellänge verschieben"? Welchen Text? Den Original hast du doch nicht. Und was soll Text verschieben für ne Operation sein?
Man muss ja noch nicht einmal die Schlüssellänge wissen, da man diese auch gut über statistische Methoden rausfinden kann. Natürlich nicht den Originaltext, sondern den verschlüsselten Text. Text verschieben um j bedeutet, dass du aus a[i] a[(i+j)%length] machst.
Okay, das Ergebnis muss man dann noch einmal auswerten. Eine Anleitung findest du hier http://www.richardclegg.org/networks2/2003/codes.pptAber hier ist auch ein Dienst, der das alles für dich übernehmen kann: http://cryptology.dod.net/xor/xor.php
-
http://cryptology.dod.net/xor/xor.php antwortet gerade nicht.
Shift the ciphertext by the key length and XOR with itself. Since a | b | b = a, this removes the key and leaves us with the plaintext XOR'd with a copy of itself shifted by the key length.
Now have k mono-alphabetic substitution ciphers so do frequency analysis on each one in turn.Geht diese Analyse nur, wenn man normalen Text verwendet oder auch bei unbekanntem binarys?
-
nachgefragt schrieb:
Geht diese Analyse nur, wenn man normalen Text verwendet oder auch bei unbekanntem binarys?
geht nur mit text. ausserdem ist es abhängig von der verwendeten sprache. wenn du z.b. ein binary mit einem xor-schlüssel vercryptest, der genau so lang ist wie das file selbst, dann ist es absolut unknackbar.
-
~fricky schrieb:
nachgefragt schrieb:
Geht diese Analyse nur, wenn man normalen Text verwendet oder auch bei unbekanntem binarys?
geht nur mit text. ausserdem ist es abhängig von der verwendeten sprache.
Nein, es geht nicht nur mit Text. Siehe die verlinkte Seite. Es geht auch mit Binaries, wenn du statistische Informationen darüber ermitteln kannst.
~fricky schrieb:
wenn du z.b. ein binary mit einem xor-schlüssel vercryptest, der genau so lang ist wie das file selbst, dann ist es absolut unknackbar.
Das ist Blödsinn, wie ich hier bereits geschrieben habe.
-
rüdiger schrieb:
~fricky schrieb:
wenn du z.b. ein binary mit einem xor-schlüssel vercryptest, der genau so lang ist wie das file selbst, dann ist es absolut unknackbar.
Das ist Blödsinn, wie ich hier bereits geschrieben habe.
mal ein kleines beispiel: der text "hello world" wird XOR mit sich selbst verschlüsselt. heraus kommen 11 nullen. nun verrat mir mal, wie ein hacker aus 11 nullen "hello world" macht, wenn er den schlüssel nicht hat?
übrigens solltest du die links auch selber lesen, die du gepostet hast. schlecht sind die nämlich nicht.
-
~fricky schrieb:
rüdiger schrieb:
~fricky schrieb:
wenn du z.b. ein binary mit einem xor-schlüssel vercryptest, der genau so lang ist wie das file selbst, dann ist es absolut unknackbar.
Das ist Blödsinn, wie ich hier bereits geschrieben habe.
mal ein kleines beispiel: der text "hello world" wird XOR mit sich selbst verschlüsselt. heraus kommen 11 nullen. nun verrat mir mal, wie ein hacker aus 11 nullen "hello world" macht, wenn er den schlüssel nicht hat?
übrigens solltest du die links auch selber lesen, die du gepostet hast. schlecht sind die nämlich nicht.
Es funktioniert natürlich nicht immer. Das habe ich nie behauptet. Aber dein Beispiel ist ja auch vollkommen irrelevant. Besonders für Shades Fall.
Bei Shade kann ein Angreifer ohne Probleme an eine ausreichende Datenmenge kommen. Je nachdem kann der Angreifer sogar an eine beschriebene Magnetkarte kommen und hat entsprechende Plaintextdaten. Damit fällt XOR sowieso in sich zusammen (a ^ b ^ a = b). Wenn es sich um einen Kunden handelt oder jemand ein Gerät klaut, ist es auch relativ einfach mögliche Schlüssel, Formate etc. auszulesen. Und in der Produktion ist es ja auch nicht unbedingt möglich für jeden Kunden einen eigenen Schlüssel zu hinterlegen, so dass man mit einem erfolgreichen Angriff _alle_ Kunden knackt.
Natürlich, wenn Shade nur das minimalste Minimum an Sicherheit gewährleisten will, kann er zu solchen Methoden greifen. Aber ich denke mal, dass es ihm schon darum geht eine vernünftige Sicherheit anzubieten. Wenn es um ein erfolgreiches/zentrales Produkt in der Firma geht, kann nämlich ein erfolgreicher Angriff dafür sorgen, dass die ganze Firma den Bach runtergeht.
Und eigentlich würde ich hier gerne diese Schwachsinns Diskussion beenden und lieber warten, bis Shade etwas zu dem Thema sagt oder fragt.
-
Hmmm von dem bestehende Verfahren:
DES -> zu unsicher
3DES -> vebraucht zuviel Rechenzeit
AES -> scheint das richtige zu sein ;o
-
rüdiger schrieb:
Bei Shade kann ein Angreifer ohne Probleme an eine ausreichende Datenmenge kommen. Je nachdem kann der Angreifer sogar an eine beschriebene Magnetkarte kommen und hat entsprechende Plaintextdaten.
Eine Magnetkarte zu bekommen ist sogar trivial, da sie ja eben an Kunden ausgegeben wird
Man muss also nur Kunde von unseren Kunden sein.
Aber mit den Daten auf der Magnetkarte kann man zum Glück nichts anfangen (ist nicht bei allen Konkurrenten der Fall). Aber natürlich kann man wenn man die Kommunikation von Client zu MagnetkartenEncoder mitliest und dann die erstellte Magnetkarte sich ansieht einen Teil der Daten in Klartext lesen.
Damit fällt XOR sowieso in sich zusammen (a ^ b ^ a = b). Wenn es sich um einen Kunden handelt oder jemand ein Gerät klaut, ist es auch relativ einfach mögliche Schlüssel, Formate etc. auszulesen. Und in der Produktion ist es ja auch nicht unbedingt möglich für jeden Kunden einen eigenen Schlüssel zu hinterlegen, so dass man mit einem erfolgreichen Angriff _alle_ Kunden knackt.
Das ist zum Glück nicht möglich. Wenn man die Kommunikation mitliest und versteht kann man "nur" kopien der erstellten Magnetkarten machen, man kann dennoch nicht selber eine neue erstellen. Aber da es ja nach Lage trivial ist die Kommunikation mitzulesen, sind kopien schon schlimm genug.
Und eigentlich würde ich hier gerne diese Schwachsinns Diskussion beenden und lieber warten, bis Shade etwas zu dem Thema sagt oder fragt.
Ich lese mit und finde es interessant. Ihr habt viele punkte genannt denen wir nachgehen werden.
Symmetrische Verschlüsselung gefällt mir aus folgendem Grund nicht:
Ich logge die Kommunikation zwischen Client und Magnetkartenencoder mit und sende dann nachts wenn ich physischen zugang zu dem MagnetkartenEncoder habe die selben Daten und habe eine Kopie der erstellten Magnetkarte. Das könnte zB ein Mitarbeiter des Kunden machen - der hat ja problemlos physischen Zugang zu den Geräten.
-
Symmetrische Verschlüsselung gefällt mir aus folgendem Grund nicht:
Ich logge die Kommunikation zwischen Client und Magnetkartenencoder mit und sende dann nachts wenn ich physischen zugang zu dem MagnetkartenEncoder habe die selben Daten und habe eine Kopie der erstellten Magnetkarte. Das könnte zB ein Mitarbeiter des Kunden machen - der hat ja problemlos physischen Zugang zu den Geräten.vergiss nicht deinen 8 bitter. der käme bei AES schon ins schwitzen. asymmetrische ciphers rechnen etwa 1000 mal so lange und brauchen viel mehr taktzyklen. deine magnetkarten-user wollen bestimmt keine halbe stunde warten, bis der 8-bitter fertig ist, oder?
übrigens: gegen diese sogenannten 'replay attacks' gibts auch mittel und wege, wie z.b. austausch von autentifizierungs-keys mit (ebenfalls verschlüsseltem) zeitstempel darin usw.
btw: ist 'ne technische bibliothek in der nähe, dann leih' dir mal das buch 'applied cryptography' aus. ich würde ja gern 'nen download-link posten, aber dann wird der mod wieder sauer.
-
Shade Of Mine schrieb:
rüdiger schrieb:
Bei Shade kann ein Angreifer ohne Probleme an eine ausreichende Datenmenge kommen. Je nachdem kann der Angreifer sogar an eine beschriebene Magnetkarte kommen und hat entsprechende Plaintextdaten.
Eine Magnetkarte zu bekommen ist sogar trivial, da sie ja eben an Kunden ausgegeben wird
Man muss also nur Kunde von unseren Kunden sein.
Aber mit den Daten auf der Magnetkarte kann man zum Glück nichts anfangen (ist nicht bei allen Konkurrenten der Fall). Aber natürlich kann man wenn man die Kommunikation von Client zu MagnetkartenEncoder mitliest und dann die erstellte Magnetkarte sich ansieht einen Teil der Daten in Klartext lesen.
Das würde ja vermutlich schon reichen um XOR zu knacken.
Shade Of Mine schrieb:
Damit fällt XOR sowieso in sich zusammen (a ^ b ^ a = b). Wenn es sich um einen Kunden handelt oder jemand ein Gerät klaut, ist es auch relativ einfach mögliche Schlüssel, Formate etc. auszulesen. Und in der Produktion ist es ja auch nicht unbedingt möglich für jeden Kunden einen eigenen Schlüssel zu hinterlegen, so dass man mit einem erfolgreichen Angriff _alle_ Kunden knackt.
Das ist zum Glück nicht möglich. Wenn man die Kommunikation mitliest und versteht kann man "nur" kopien der erstellten Magnetkarten machen, man kann dennoch nicht selber eine neue erstellen. Aber da es ja nach Lage trivial ist die Kommunikation mitzulesen, sind kopien schon schlimm genug.
Ich meinte auch eher, dass man dann den Schlüssel für alle Geräte hätte. Entsprechend könnte man überall einfach mitlesen oder den Schlüssel gleich auf Rapidshare hochladen und einen Link an alle Konkurrenten, Cracker und deinen Chef schicken.
Shade Of Mine schrieb:
Symmetrische Verschlüsselung gefällt mir aus folgendem Grund nicht:
Ich logge die Kommunikation zwischen Client und Magnetkartenencoder mit und sende dann nachts wenn ich physischen zugang zu dem MagnetkartenEncoder habe die selben Daten und habe eine Kopie der erstellten Magnetkarte. Das könnte zB ein Mitarbeiter des Kunden machen - der hat ja problemlos physischen Zugang zu den Geräten.Das meinte ich am Anfang mit der Gefahr der eigenen Protokolle :). So etwas kann man natürlich durch gewisse Methoden vermeiden. Aber man kann sich am Ende halt viele Probleme an Bord holen, die man auf den ersten Blick gar nicht sieht.
Aber ich würde vielleicht auch eher auf einer Mailingliste/Newsgroup/Forum fragen, wo sich die Leute besser mit dem Thema auskennen.
~fricky schrieb:
btw: ist 'ne technische bibliothek in der nähe, dann leih' dir mal das buch 'applied cryptography' aus. ich würde ja gern 'nen download-link posten, aber dann wird der mod wieder sauer.
Das Buch kann ich auch nur sehr empfehlen! :lieve:
Und ja, bitte keine Download-Links hier posten, da dies zu rechtlichen Problemen für uns führen kann!
-
Danke fuer den Tipp, das Buch hab ich naemlich sogar.
Aber wie gesagt: wir wollten nie etwas eigenes erfinden. Ich suche lediglich schnelle Algorithmen die eine ordentliche Sicherheit bieten (eben performance im tausch gegen Sicherheit). Aber jetzt gibt es ja schonmal massig Sachen zum weiter verfolgen.