Hi!
Naja, ich bezweifele das Du da was erkannt hättest,
Och, ich hätte RFC 791 und 793 gezückt und mich gefreut die mal auf einen Hexdump loslassen zu können.
Kann ich ja nicht ahnen das sowas geht ;-)
zumindest mein sniffer schreibt da grostes Kauderwelsch! "POST" ist das erste Wort was man lesen kann.
Nimm doch Ethereal.
Was denn jetzt, kannst du das im Klartext lesen oder nicht? Wenn nicht nehem ich auch kein Ethernal, das habe ich schonmal probiert und habe in 10 Minuten kein stück herausgefunden wie das blöde Ding funktioniert!
Leeider kann ich keien binärdaten lesen, oder was auch immer diese Kauderwelsch zu sagen hatte!
Das wären die IP und TCP-Header gewesen.
Und den Zeigt ethernal an? Oder mußt DU den erst durch ein eigenes Script schicken? Gibt´s eine PHP-Funktion die sowas entschlüsseln kann?
Ja genau. Bloß entweder ist das noch nicht fertig oder es muss beim Kompilieren extra eingeschaltet werden. Der kompilierte Snapshot scheint nur allgemeine OpenSSL-Funktionen zu enthalten.
Aber warum schreiben die das dann bei news.txt mit rein???
Die Sache mit mcrypt hat sich für mkich fürs erste erledigt, nicht nur das ich es bei mir nicht ans laufen bekomme, auch mein Provider hat es nicht installiert! Also erstmal vergessen!(ich habe ihn trotzdem mal aufgefordert das Modul zu installieren :-))
Für das OpenSSL-Gezeugs musst du dir erstmal ein Schlüsselpaar machen, wobei der Sender den öffentlichen Schlüssel bekommt und der Empfänger den privaten Schlüssel (der geheim bleiben muß). Beim Senden öffnest du dann den öffentlichen Schlüssel, nimmst openssl_seal() und schmeisst es auf den Schlüssel und den Klartext. Zurück kriegst du einen verschlüsselten Sitzungsschlüssel und den Geheimtext, die du beide an den Empfänger überträgst. Der öffnet seinen geheimen Schlüssel und schmeisst openssl_open() auf den Geheimtext, diesen Schlüssel und den verschlüsselten Sitzungsschlüssel und kriegt den Klartext zurück.
OK. soweit in der Theorie. Soll also heißen das ich mich um alles selbst kümmern muß, also dass keine SSL Verbindung einmal zu Stande kommt sondern das ich immer manuell bverschlüsseln muß, richtig? Wobei sich mir da die Frage stellt ob ich dann bei SSL bleibe, denn gerade bei openSSL ist ja die ein oder andere Sicherheitslücke bekannt, und wenn man das eh manuell macht, dann wäre vielleicht GPG doch die bessere Variante, oder?
Wobei ich jetzt SSL einmal hinbekommen möchte.
Mein erstes praktisches Problem, wie erstelle ich die Schlüssel? openssl_pkey_new () erzeugt also einen privaten schlüssel. Das mache ich dann mal auf beiden Servern und habe jeweils private schlüssel, die ich dann in einer Datei ablege, oder direkt im Script speichere. Dann gehen die Probleme los - wie komme ich an die öffentlichen Schlüssel? Hat das vielleicht was hiermit zu tun:
bool openssl_csr_new ( array dn, resource privkey [, array extraattribs [, array configargs]])
Also muß ich erstmal den privaten Schlüsselerzeugen, dann mit diesem privaten das den öffentlichen(csr(Zertifikat)), aber die Funktion gibt ja nur TRUE oder FALSE zurück, wie soll das bitte gehen? Und das wolll ich unter "dn" angeben?
Sagen wir mal ich hätte jetzt beide Schlüssel und würde die jeweils in einer Datei speichern. Dann baue ich aber ein Verbindung zum normalen HTTP-Server auf an Port 80? Nur stehe ich dann wieder vor dem Problem, der verschlüsselte String ist vermutlich binär, also muß ich das wieder wie bei gz als Datei-Upload tarnen oder was? Also dann den Sitzungsschlüssel als POST-Variable übertragen, und den ssl-String als weitere POST-Variable mit multipart/form-data und boundary...
Aber ich habe SSL immer anders begriffen. Ich dachte SSL sei eine Verschlüsselung auf euner niedrigeren Ebene als der Anwendungs-Ebene als HTTP, das also der komplette http-Traffic so verschlüsselt wird, ich also eine TCP/IP Verbindung zu Port 443 des SSL-Servers herstelle(mit Sitzungsschlüssel und private Key authentifizieren), die SSL-verschlüsselten Daten übertragen und mit den entsprechenden Schlüsseln den kompletten http-Header entschlüsseln und dann normal weiterverarbeiten.
Und ich habe ja einen Server der SSL spricht, der hat bestimmt auch ein Zertifikat... nur habe ich kei0en Ahnung wie ich das jetzt nutzen soll, so wie ich das verstehe ist das eine VErschlüsselung einer Post-Variable im HTTP-Header, das widersrpicht sich absolut mit meinem bisherigen Bild von SSL!
Dasselbe müßte dann irgendwie zurück funktionieren, aber ehrlich gesagt, ich habe mir jetzt einuges zu den PHP Funkionen bzgl. openssl durchgelsen, und das auch eínigermaßen verstanden, aber für mich sieht das _ganz_ anders aus als das was der Browser, cURL... unter SSL verstehen! Aber vermutlich habe ich es einfach noch nicht verstanden ;-)
Viele Grüße
Andreas