Hackerboard WikiHaboBlog

[HaBo]

 
Cryptography & Encryption Ver- und Entschlüsselung, Algorithmen, Kryptoanalyse ? Kryptographie in der Praxis. Blowfish, Triple-DES, XOR u.a.

Zero Knowledge?

Diskussion: Zero Knowledge? im Forum Cryptography & Encryption, in der Kategorie Security Area; Ein Zero-Knowledge-Beweis ist ein Verfahren, einem Server nachzuweisen, das richtige Passwort zu besitzen, ohne es direkt zu übermitteln. Nun gibt ...

Antwort
Alt 06.11.08, 22:05   #1 (permalink)
 
Registriert seit: 11.12.06
speedo Leistung: Facit NTK
Likes: 0
Standard Zero Knowledge?


Ein Zero-Knowledge-Beweis ist ein Verfahren, einem Server nachzuweisen, das richtige Passwort zu besitzen, ohne es direkt zu übermitteln. Nun gibt es ja Protokolle und Hash-Verfahren, die das ermöglichen.

Nachdem ich mir nun einige edanken zu einer Möglichkeit gemacht habe, ein eigenes Verfahren zu schaffen, möchte ich zuerst mal fragen, ob in diesem System nicht eine Sicherheitslücke steckt.


Ich bezeichne im Folgenden einmal den Client als den Rechner, der sich zu identifizieren hat (also den Beweis liefern soll), und den Server als den Prüfer des beweises auf Richtigkeit. Als kryptographischen Algorithmus verwende ich Rijndael.


1.: Der User bekommt nach dem Aufbau seiner Verbindung eine 128 Bit Zufallszahl zugeschickt.

2.: Der User verschlüsselt diese Zufallszahl mit seinem Schlüssel.

3.: Der User schickt den verschlüsselten Block zurück an den Server

4.: Der Server Verschlüsselt Seine Zufallszahl ebenfalls und vergleicht sie mit dem Verschlüsselten Datenblock des Users. (Stimmen diese nicht überein, war der Schlüssel nicht richtig.)

Könnte es dadurch Probleme geben, dass jemand, der die Leitung abhört, beim einloggen sowohl Plaintext als auch Ciphertext kennt?

Können andere Probleme auftauchen??


lg, Speedo

speedo ist offline   Mit Zitat antworten
Alt 06.11.08, 22:12   #2 (permalink)
 
Registriert seit: 16.10.07
Spyx Leistung: Facit NTK
Spyx eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
1.: Der User bekommt nach dem Aufbau seiner Verbindung eine 128 Bit Zufallszahl zugeschickt.

2.: Der User verschlüsselt diese Zufallszahl mit seinem Schlüssel.

3.: Der User schickt den verschlüsselten Block zurück an den Server
Wenn man deinen Algorithmus kennt, dann ist es überhaupt kein Problem. Man "hört die Leitung ab", hat somit Zufallszahl und den verschlüsselten Block. Daraus kann man dann einfach den Schlüssel zurückrechnen .
Spyx ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 07.11.08, 07:30   #3 (permalink)
Themenstarter
 
Registriert seit: 11.12.06
speedo Leistung: Facit NTK
Likes: 0
Standard

Das ist mir neu. Wie geht sowas?
speedo ist offline   Mit Zitat antworten
Alt 07.11.08, 10:25   #4 (permalink)
Senior Member
 
Registriert seit: 29.07.05
Heinzelotto Leistung: Facit NTK
Heinzelotto eine Nachricht über ICQ schicken
Likes: 0
Standard

Beispiel: Die verschlüsselung ist: Addiere deine geheimzahl zu der zu dir gesendeten Zahl.
Server sendet: 100
deine Geheimzahl: 28
Du sendest also zurück: 128

Ein Angreifer, der nun 100 und 128 erhält und weiß, wie die Verschlüsselung funktioniert, kommt relativ schnell darauf, dass dein Key 28 ist

Es gibt allerdings auch Methoden, die keine (oder nur sehr schwer) Rückrechnung seitens des Angreifers zulassen, siehe dazu http://de.wikipedia.org/wiki/Asymmet...s_Kryptosystem
Heinzelotto ist offline   Mit Zitat antworten
Alt 07.11.08, 10:35   #5 (permalink)
Themenstarter
 
Registriert seit: 11.12.06
speedo Leistung: Facit NTK
Likes: 0
Standard

Wie ist das denn möglich, dass bei einem komplexen Algorithmus über Ciphertext und Plaintext jemand an das Passwort kommt? Gibt es dazu irgendwelche google-tauglichen Stichworte?


speedo
speedo ist offline   Mit Zitat antworten
Alt 07.11.08, 10:53   #6 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
Zitat:
1.: Der User bekommt nach dem Aufbau seiner Verbindung eine 128 Bit Zufallszahl zugeschickt.

2.: Der User verschlüsselt diese Zufallszahl mit seinem Schlüssel.

3.: Der User schickt den verschlüsselten Block zurück an den Server

4.: Der Server Verschlüsselt Seine Zufallszahl ebenfalls und vergleicht sie mit dem Verschlüsselten Datenblock des Users. (Stimmen diese nicht überein, war der Schlüssel nicht richtig.)
Wenn man einen sicheren Algorithmus verwendet, z.B. AES, dann kann man aus Klartext + Geheimtext nicht den Key gewinnen.

Nur:
Was du beschreibst, nennt sich Challenge And Response Protokoll. Der Server sendet eine Challenge, der Empfänger berechnet etwas und sendet das Response (Antwort) und der Server schaut dann, ob die Antwort richtig ist.

Dies hat gar nichts mit Zero Knowledge zu tun. Zero Knowledge ist nicht nur dass das Passwort nicht über die Leitung gesendet wird, sondern man überzeugt den Server das man das richtige Passwort kennt, ohne das der Server das Passwort kennt! (Natürlich kennt der Server nach dem Login das Passwort immer noch nicht)

Deswegen wird man mit einem kommunikationswechsel nicht hinkommen, sondern man müsste z.B. 100 mal Daten austauschen, um sicher zu stellen, dass der User auch zugansgberechtigt ist.

Das Zero Knowledge Protokoll lässt sich anfänglich nur schwer verstehen, das Beispiel mit der Tür die nur durch einen geheimen Code aufgeht ist aber recht anschaulich: Anschauliches Beispiel zu Zero Knowledge
Alice kann hier Bob überzeugen, dass sie den Trick für die Tür kennt, ohne dass Bob den Trick kennen muss und ohne das Alice diesen Trick verrät.
Und ähnlich wäre das bei Passwörter.


Nur:
Weil man soviele Handshakes (Daten austauschen) machen muss, wird es praktisch kaum eingesetzt. Eine große Schwache von IPSec war (bis vor kurzen eine neuere Version vorgestellt wurde), dass der Handshake für den Schlüsselaustausch ich meine über 6 Schritte ging, was einfach zuviel ist.
Und jetzt 100 oder 200 Schritte durchzuführen...
Elderan ist offline   Mit Zitat antworten
Alt 07.11.08, 11:04   #7 (permalink)
Themenstarter
 
Registriert seit: 11.12.06
speedo Leistung: Facit NTK
Likes: 0
Standard

Danke für den Link. Dann ist das, was ich meine Challange and Response.

Also ist, solange der Algorithmus sicher ist (was ja bei Rijndael, Blowfish oder 3DES gegeben ist), ein Symetrischer Blockschiffre ausreichend? Denn das Handlen von Zahlen > 1024 Bit ist schließlich mit wesentlich mehr Aufwand verbunden und wenn ein Blockschiffre ebenso sicher ist, dann ist das ja auch nichtt nötig.

speedo
speedo ist offline   Mit Zitat antworten
Alt 07.11.08, 13:26   #8 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
naja das Challenge and Response Protokoll hat auch einige Probleme, auf die man reagieren muss. Wie z.B. reply attack, MITM bzw. der Server kann sich als dich ausgegeben.
Insbesondere MITM ist kritisch, weswegen SSL für den Login auf alle Fälle die bessere Variante ist.
Elderan ist offline   Mit Zitat antworten
Alt 07.11.08, 15:21   #9 (permalink)
Themenstarter
 
Registriert seit: 11.12.06
speedo Leistung: Facit NTK
Likes: 0
Standard

Was könnte denn der MITM ausrichten? Immerhin bekommt der erstmal nur die Zufallszahl einmal kodiert und einmal plain. Die weitere Kommunikation kann man ja so gestalten, dass der Server dem Client den IV in verschlüsselter Form übermittelt und der rest der Kommunikation im CBC-Modus stattfindet. Oder übersehe ich da etwas?
speedo ist offline   Mit Zitat antworten
Alt 07.11.08, 16:23   #10 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
den IV bei CBC geheim zu halten bringt gar nichts, da er sich eh nur auf den 1. Block auswirkt. Alle weiteren Blöcke sind vom IV unabhänig.

Was der MITM machen könnte:
Sich in die Mitte stellen und alle Daten mitlauschen, selber böse Anfragen an den Server senden und und und.
Wenn du eine sichere Verbindung haben möchtest, dann wirst du nicht an asymmetrischer Verfahren drum herum kommen.
Am einfachsten man verwendet gleich SSL.
Elderan ist offline   Mit Zitat antworten
Alt 07.11.08, 20:20   #11 (permalink)
Themenstarter
 
Registriert seit: 11.12.06
speedo Leistung: Facit NTK
Likes: 0
Standard

Sicher bietet SSL bei der Praktischen Anwendung viele Vorteile (ganz zu schweigen davon, dass man sich kaum Gedanken um Kryptographie machen muss), mir geht es aber eher um die Theoretischen Aspekte und ich hatte bisher nicht vor, soetwas zu implementieren. Ich wollte mich (Ich bin noch neu auf dem Gebiet der Kryptigraphie) über die möglichkeiten der verschiedenen Algorithmen erkundigen.

Bei einem Asymetrischen Algorithmus kann der MITM doch auch irreführende Traffic versenden. Den Punkt verstehe ich leider nicht so ganz.

Ich dachte immer, das mit dem IV läuft folgendermaßen ab:

-> IV hat Einfluss auf den ersten Block bevor er verschlüsselt wird
-> Erster verschlüsselter Block hat einfluss auf den zweiten Block bevor er verschlüsselt wird
-> Zweiter verschlüsselter Block hat einfluss auf den dritten Block bevor er verschlüsselt wird
...
usw


Wenn ich das also richtig verstanden habe, wirkt sich der IV rekursiv auf alle Blöcke aus, die verschlüsselt werden. Ist dem nicht so?
speedo ist offline   Mit Zitat antworten
Alt 07.11.08, 21:08   #12 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
ne da hast du einen Denkfehler.
Wenn man einen anderen IV wählt, dann sieht zwar der Geheimtext anders aus obwohl der Klartext evt. der selbe ist, dennoch erhöht ein geheimer IV nicht die Sicherheit.

Wenn der IV verloren geht, dann ist davon nur der erste Geheimtextblock betroffen, den man nicht mehr einwandfrei entschlüsseln kann.
Den zweiten Geheimtextblock kann man aber weiterhin entschlüsseln, denn dafür braucht man nur den Geheimtext des 1. Blocks.

Ergo: Bringt es nichts den IV geheim zu halten.

Zitat:
Bei einem Asymetrischen Algorithmus kann der MITM doch auch irreführende Traffic versenden
Für soetwas gibts ja Zertifikate


Naja du kannst dich als MITM einfach dazwischen hängen.
Der Server sendet dem Angreifer eine Challenge, diese sendet man an den Client weiter. Der Client sendet dem Angreifer die Response, und diese gibt der Angreifer an den Server weiter.
=> Angreifer ist beim Server authentifiziert.

Wie gesagt, für den sicheren Kommunikationsaufbau kommt man kaum um RSA oder Diffie Hellman o.ä. herum. Lösungen die ausschließlich symmetrische Verfahren nutzen haben fast immer einen Knackpunkt.
Elderan ist offline   Mit Zitat antworten
Alt 07.11.08, 22:54   #13 (permalink)
Themenstarter
 
Registriert seit: 11.12.06
speedo Leistung: Facit NTK
Likes: 0
Standard

Ja, das ist ein eindeutiger Vorteil.

Aber um nochmal zum CBC zu kommen: http://de.wikipedia.org/wiki/Cipher_Block_Chaining verstehe ich so:

Der IV wird mit dem ersten Block XOR-verknüpft und dann verschlüsselt. Mit dem verschlüsselten Block 1 (Dessen Ciphertext ja vom IV beeinflusst wurde) wird nun der Block 2 XOR-verknüpft und verschlüsselt. Hat so nicht der IV einfluss auf Block 2?

Immerhin ist die verschlüsselte Ausgabe von Block1 durch den IV beeinflusst worden und damit auch der Block2 da er damit XOR-verknüpft wurde?


lg, speedo
speedo ist offline   Mit Zitat antworten
Alt 08.11.08, 14:28   #14 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
natürlich hat der IV indirekt Einfluss auf Block 2, nur, man braucht den IV nicht zu kennen, um Block 2 zu berechnen, wenn man bereits Block1 hat.

Wie gesagt, den IV geheim zu halten bringt rein gar nichts. Denn Block2 hängt nur vom Ciphertext von Block1 ab, und den Geheimtext kennt der Angreifer.
Elderan ist offline   Mit Zitat antworten
Alt 08.11.08, 15:32   #15 (permalink)
Themenstarter
 
Registriert seit: 11.12.06
speedo Leistung: Facit NTK
Likes: 0
Standard

ups stimmt... das war jetzt mächtig schusselig von mir, sorry

damit wäre aber jetzt erstmal alles geklärt. danke für deine hilfe!
speedo ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Security Area » Cryptography & Encryption » Zero Knowledge?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
IT-Knowledge operator001 Umfragen 6 24.02.06 18:15
Codezone.de - Das kostenlose Developer Knowledge Network Meverick Code Kitchen 0 13.01.05 11:20


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61