Eigenen Verschlüsselungsalgorithmus in Windows XP einbinden
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
algorithmus
datum
demo
frage
karte
knacken
paket
problem
programm
realisieren
rechner
rolle
schritt
senden
stelle
testen
treibers
url
verbindung
windows
-
Ich hatte eine Idee für einen eigenen Verschlüsselungsalgorithmus. Den habe ich auch schon fertig und nun würde ich ihn gerne unter Windows XP so einbinden, dass mein WLAN-Datenverkehr ab sofort über diesen Algorithmus verschlüsselt wird. Mein Router müsste natürlich auch entsprechend nachgerüstet werden, aber das möchte ich an dieser Stelle erstmal außenvor lassen. Als Entwickler ist man natürlich immer überzeugt von seiner eigenen Arbeit, daher möchte auf diesem Wege meinen Algorithmus auf Herz und Nieren testen. Die Frage ist eben nur, wie ich das ganze bewerkstellige, ich hoffe dass ich wenigstens um die Entwicklung eines eigenen Treibers herum komme, aber ich warte erstmal eure Antworten ab.
Eine Demo gibt es übrigens hier, falls ihr den Algorithmus mal testen wollt:
Demo: http://www.vampiresilence.de/download/cck-demo.zip
(Technische Details nur auf Anfrage)
Liebe Grüße
- VampireSilence
Beitrag zuletzt geändert: 25.4.2010 23:42:02 von vampiresilence -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Da ich davon ausgehe, dass dein Algorithmus komplett Softwareseitig funktioniert, reicht es doch, einfach die Datenpakete entsprechend zu verschlüsseln, d.h. du baust erst einmal eine unverschlüsselte Ad-Hoc Verbindung zwischen 2 Systemen auf und schreibst dann ein einfaches Programm, welches über WinSock oder Streams usw seine Daten mit dem Host austauscht. Dann kannst du bequem versuchen, die Daten mit zu schneiden und zu knacken.
Bei TCP/IP wirst du ja wohl vermutlich bleiben. Aber auf Dauer und für den praktischen Einsatz sind rein softwaremäßige Verschlüsselungen nicht so doll, da sie viel CPU-Time in Anspruch nehmen. Soweit ich weiß werden WEP und WPA2 hardwareseitig, also auf der entsprechenden Wlan-Karte ent- und verschlüsselt, sodass die CPU weitgehend davon entlastet bleibt. -
Also da muss ich nochmal nachhaken. Eine (unverschlüsselte) Verbindung aufbauen ist nicht das Problem, aber wie genau ist das dann mit dem WinSock-Programm ?
Also ich stelle mir das so vor, zu aller erst muss ich ja den Zielrechner einmal finden, dabei wüsste ich schon nicht genau, wie ich das machen müsste. Ich müsste ja meine WLAN-Karte anweisen, die Umgebung nach potentiellen Gegenstellen abzusuchen. Wenn ich dann einen Rechner gefunden habe, brauche ich den berühmten 3-Hand-Shake, das wird wiederrum kein Problem sein, aber dann sind wir wieder beim zweiten Problem: Wie kann ich alle Daten, die Windows nun sendet über das Programm adaptieren ? Also auch Pings, Traces, DHCP, etc. ? Ich kann ja ein cli-Programm schreiben, dass jeden Parameter einfach als Hash zurückgibt, aber woher weiss Windows dann, dass es die Daten überhaupt über dieses Programm vor dem Senden verschlüsseln soll ?
Der Schritt danach wird mit Wireshark dann wieder ein Klacks, nur muss ich erstmal dahin kommen.
Du hast übrigens Recht, das ganze ist rein softwareseitig. Eine Hardwareimplementierung wäre für meinen Kenntnisstand in Sachen Elektronik defintiiv zu hoch angesetzt.
Liebe Grüße
- VampireSilence -
Zum überprüfen deiner Verschlüsselung reicht doch erst mal eine reine Datenübertragung.
Wenn du ALLE Daten von Windows wirklich verschlüsseln willst, kommst du um einen Treiber für eine virtuelle Netzwerkkarte nicht herum.
Bei dir reicht doch erst einmal eine simple AdHoc PC zu PC Verbindung, wie du mit dem Windows-Netzwerkmanager eine AdHoc Verbindung aufbaust steht sicher in der MS Hilfe. Ebenso ist die Funktion der .Net Streams in der MSDN erklärt.
Wenn du wirklich ALLE von Windows gesendeten Daten übertragen sollst, was an sich für die Verschlüsselung keine Rolle spielt, kannst du diese auch von einem 2ten PC verschlüsseln lassen, der dann die Rolle der Hardware übernimmt. Dazu müsstest du an diesem die Pakete auffangen, also dumpen, verschlüsseln, über ein primitives Protokoll an einen weiteren PC senden, der die Pakete dann entschlüsselt und entgültig versendet, dies muss bidirektional von statten gehen und ist daher nicht sonderlich einfach.
Generell ist C# keine Sprache für hardwarenahe Dinge, da sie ganz andere Schwerpunkte setzt, daher mein erster Tipp das ganze einfach über Streams zu realisieren, prüfen kannst du die Sicherheit dabei ja ebenfalls, wenn du es über einen unverschlüsselte und leicht abhorchbare Methode verschickst und die einfachste wäre da einfach ein AdHoc Wlan. -
Da wäre ich wieder. Ich habe deinen Rat befolgt und nun mehrere jeweils 1 GB große Dateien zwischen 2 Rechnern ausgetauscht, ohne den Algorithmus knacken zu können. Habe die Pakete zwar abfangen, jedoch nicht decodieren können, auch diverse Programme wie aircrack versagten erwartungsgemäß und das Wichtigste dabei: die Quell- und Zieldateien waren danach vollkommen identisch.
Ich muss allerdings dazu sagen, dass ich in diesem Gebiet kaum Erfahrungen habe, daher kann es gut sein, dass es evtl noch erfolgreiche Techniken gäbe, die mir schlichtweg nicht bekannt sind. Daher die Frage: Gibt es Institutionen oder private Cracker, die da nochmal drüber schauen würden ?
Wenn die dann ebenfalls keine Schwächen finden - so habe ich mir überlegt - schreibe ich mir einfach ein Programm, dass auf dem Prinzip von Hamachi beruht und quasi nur einen virtuellen Adapter bereitstellt, der die Daten vor dem Versand dann einmal verschlüsselt und dann erst an den Gegenrechner weiterschickt.
Liebe Grüße
- VampireSilence -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage