1. #1

    Registriert seit
    06.11.2011
    Beiträge
    418
    Thanked 686 Times in 246 Posts

    Standard [Java] Packet-Verschlüsselung

    Ich wollte es eigentlich auf Banana-Coding releasen, aber ist ja zur Zeit (?) wegen eines Defaces down. Ist eigentlich nur für die Server-seitige Programmierung interessant, denn für den Client brauchen wir die Entschlüsselung, und die hab ich schon vor Ewigkeiten released. Ist vielleicht aber auch für andere interessant, DeKa hatte mich auch mal danach gefragt für seine Client Bridge, hier müssen die Pakete nach dem Entschlüsseln ja auch wieder verschlüsselt werden.

    Nach der Huffman-Kodierung folgt noch eine XOR-Verschlüsselung mit einem Key. Das Ganze ist so programmiert, dass der Key theoretisch unendlich lang sein könnte, besteht hier aber immer nur aus dem Char 'K'. Dadurch wird nur der Opcode verschlüsselt, und das nicht einmal random. Das Ganze bringt uns eigentlich nichts, aber egal, wir wollen cool sein und übernehmen es einfach mal so. Wer will kann ja auch einen Random Key generieren, aber auch das bringt nicht wirklich viel in Sachen Schutz gegen Packet Logger/Editoren.

    Code:
    byte[] bytes = Huffman.getEncoder().encode(packet, 0);
    
    if (key != null) {
    	for (int i = 0; i < key.length; i++) {
    		if (bytes.length <= i) {
    			break;
    		}
    
    		bytes[i] = (byte) (bytes[i] ^ key[i]);
    	}
    }
    Der Key wird dem Client mit dem Authentication-Packet (Opcode '(') übermittelt und wird danach festgelegt, sodass key hier im Code nicht mehr null ist.

    Edit: Wenn jemand einen Random Key generieren möchte, dann muss dieser getrimmt werden, entweder schon bei der Übergabe zum Client oder spätestens beim Festlegen.
    Geändert von Flav (22.04.2012 um 14:41 Uhr)

  2. The Following 2 Users Say Thank You to Flav For This Useful Post:

    Localhost (02.05.2012), Sky.NET (30.10.2012)

  3. #2
    Avatar von Mentos
    Registriert seit
    18.11.2011
    Beiträge
    451
    Thanked 498 Times in 240 Posts

    Standard AW: [Java] Packet-Verschlüsselung

    Nach der Huffman-Kodierung folgt noch eine XOR-Verschlüsselung mit einem Key.
    Nein. Vor der Huffman-Kodierung
    „Es sind nicht unsere Fähigkeiten, die zeigen, wer wir wirklich sind, es sind unsere Entscheidungen.“
    - Albus Dumbledore, Harry Potter 2


    /guestchat registerGuest

  4. The Following User Says Thank You to Mentos For This Useful Post:

    Sky.NET (30.10.2012)

  5. #3

    Registriert seit
    06.11.2011
    Beiträge
    418
    Thanked 686 Times in 246 Posts

    Standard AW: [Java] Packet-Verschlüsselung

    Kommt jetzt etwas spät, weil ich eine Ewigkeit nicht aktiv war. Ob nach oder vor Huffman kommt natürlich ganz darauf an, ob du es aus Perspektive des Clients oder des Servers betrachtest.

  6. The Following User Says Thank You to Flav For This Useful Post:

    .Niklas (24.07.2013)

Ähnliche Themen

  1. Tor verschlüsselung und entschlüsselung
    Von Tony Montana im Forum Security
    Antworten: 1
    Letzter Beitrag: 01.07.2014, 11:49
  2. Verschlüsselung mithilfe Magnetkarten
    Von DANP im Forum Security
    Antworten: 1
    Letzter Beitrag: 29.12.2013, 02:14
  3. Verschenke EA Spiele-Packet
    Von Mentos im Forum Verschenke
    Antworten: 29
    Letzter Beitrag: 31.03.2013, 16:44
  4. [C#] Packet-Builder
    Von DeKaDeNz im Forum Sourcecode
    Antworten: 0
    Letzter Beitrag: 31.12.2011, 13:09
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.