Einzelnen Beitrag anzeigen

Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#1

Verbindung verschlüsseln ( RSA + AES )

  Alt 21. Feb 2012, 15:02
Hallo,

ich habe eine kleine Lib erstellt namens CryptConn.

Diese dient zur verschlüsselten Übertragung von Daten per Delphi zu PHP und umgekehrt.

Es wird vor dem Senden ein zufälliger AES-Schlüssel generiert. Mit diesem wird der Text verschlüsselt
und der Schlüssel wird RSA-verschlüsselt mitgeschickt.

Verwendet wurde: AES-CBC 128Bit Key mit Padding und RSA-OAEP mit einem leeren Init-Hash (kann leicht geändert werden)


In der Delphi-Unit wurde ein Standard-Random verwendet, dieses kann aber leicht ausgetauscht werden.
In der PHP-Unit wurde ein relativ sicherer Random-Algo verwendet.


Folgende Libs wurden verwendet:

Delphi:

- DEC von negaH
(SHA1, AES, Base64)

- BigInteger von F. Rienhardt aka peanut (editiert von mir)
->Basis 256 hinzugefügt
(RSA)


PHP:

- SecurePHPLib



Weitere Angaben:


Der AES Schlüssel hat eine feste Länge von 128Bit.
Der RSA-Algo ist auf Delphi-Seite fest für Längen <= 20 Zeichen gestaltet ( kann aber leicht für beliebige Längen modifiziert werden).

Auf PHP-Seite gibt es keine Einschränkungen.


Für jeden Aufruf wird ein neuer AES-Schlüssel generiert.

Die RSA-Schlüssel müssen vorher ausgetauscht werden.
Im PHP-Script sind die Schlüssel Base64-kodiert um sie im Quelltext unter zubringen und sind im PKCS1-Format.

Es können beliebige Formate genutzt werden (einfach mal in die RSA.php schauen).


Die RSA-Schlüssel in der Delphi-Unit liegen als BigInteger ( e, d, n) vor.
Andere Formate müssen selber implementiert werden


PHP-Seitig können vorinstallierte Libs wie mcrypt etc. genutzt werden, sind aber nicht notwendig.

Hauptsächlich wurden Teile der securePHPLib nach Delphi übertragen.



Edit: Ihr könnt die Lib frei verwenden und abändern. Sie ist sicherlich noch nicht perfekt. Falls jemand diese erweitert, bitte hier reinposten, damit alle etwas davon haben

Edit 2: Fehler mit Randomize, Random und XOR korrigiert


Keywords: RSA , AES , Verschlüsselung , Kodierung , Encode , Encryption
Angehängte Dateien
Dateityp: rar CryptConn.rar (285,4 KB, 69x aufgerufen)
"Never touch a running system administrator !"

Geändert von jokerfacehro (22. Feb 2012 um 12:06 Uhr)
  Mit Zitat antworten Zitat