Verschlüsselung - EncryptionUtil

Hier könnt ihr anderen Leuten helfen, indem ihr Anleitungen oder praktische Codesegmente zur Verfügung stellt.

Verschlüsselung - EncryptionUtil

Beitragvon Ch4t4r » Fr 15. Aug 2014, 13:50

Hey,

ich habe mir letztens eine doch recht große Klasse zum Verschlüsseln und Entschlüsseln von Daten und Streams erstellt (Um nicht SSL etc. benutzen zu müssen) und habe mir gedacht dass der eine oder andere das ganze vielleicht auch gebrauchen könnte. Denkt daran, dass es an sich funktioniert, ich aber kein Sicherheitsexperte bin und daher auch schlecht Sicherheitslücken in dem Programm finden kann und die Verschlüsselung nicht nach x509-Standard abläuft. Benutzt das Ganze auf eigene Gefahr. Weiterhin sind sensible Daten wie der Private Schlüssel eines Clients auf seinem Computer durch Memoryhack leicht auszulesen, hier gibt es kein drumherum. Ihr könnt euch das gesamte Repo auf https://bitbucket.org/Ch4t4r/encryptionutil klonen, fast alles ist mit JavaDoc comments versehen und dürfte so nicht allzuschwer zu verstehen sein. Hier trotzdem ein Beispiel:

Die Kernstücke sind natürlich die verschlüsselten Streams. Serverseite (Pseudocode):
Code: Alles auswählen
  1. EncryptionUtil eu = new EncryptionUtil("password123",new File("." + File.seperator + "server"),SymmetricEncryption.Blowfish);
  2. if(!eu.keysPresent())eu.generateKeyPair("password123", AsymmetricEncryption.RSA, 2048);
  3. EncryptedServerSocket serverSocket = new EncryptedServerSocket(1234);
  4. EncryptedSocket s = ss.accept(new DefaultEncryptionHandler(),eu.getPrivateKey(),eu.getPublicKey());
  5. EncryptedOutputStream out = s.getEncryptedOutputStream();
  6. out.write("ROFL");out.flush();s.close();


Clientseite (Pseudocode):
Code: Alles auswählen
  1. EncryptionUtil eu = new EncryptionUtil("password123",new File("." + File.seperator + "client"),SymmetricEncryption.Blowfish);
  2. if(!eu.keysPresent())eu.generateKeyPair("password123", AsymmetricEncryption.RSA, 2048);
  3. EncryptedSocket s = new EncryptedSocket(new DefaultEncryptionHandler(), eu.getPublicKey(), eu.getPrivateKey(), "127.0.0.1", 1234);
  4. EncryptedInputstream in = s.getEncryptedInputStream();
  5. System.out.println(in.readString());
  6. s.close();


Weitere Funktionen (statisch) enthält die Klasse EncryptionUtil.
Bei generellen Rückfragen, Verständnisfragen etc. schreibt hierrunter eine Antwort oder mir eine PN.
Benutzeravatar
Ch4t4r
 
Beiträge: 455
Registriert: So 7. Jul 2013, 12:44

Zurück zu Anleitungen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste